Android 应用安全篇

Android应用典型问题分析

Activity暴露

某知名互联网手机隐藏工厂测试工具FactoryTest.apk中的Activity暴露,可被任意应用发起Intent调用,且有自动模式,

导致:可以打开蓝牙,WIFI;可以进入无限循环测试,对用户产生严重干扰。

Activity是组件的边界之一,使用隐式跳转+exported=false可以有效避免activity暴露问题。

Backup/Restore(备份恢复)

某视频客户端免登录的做法是服务器下发一个securityKey,在用户登出之前,客户端一直利用这个securityKey来跟服务器通信。

但是,这个securityKey是直接明文存放在数据库中,利用Backup/Restore就能在另外一台root手机中窃取这个securityKey,伪造客户端通信。

AllowBackup=false

某应用云服务存在中间人攻击

某云服务使用HTTPS通信,但是如果手机被安装上恶意证书(例如利用“证书相关权限绕过”漏洞),并通过恶意代理,HTTPS的数据包还是可以被窃取和篡改的,如登录帐号和密码!

很多应用为了省事(),进行https开发时信任所有证书,不对证书进行校验。年初的时候一大批app中枪,包括当当、滴滴、前程无忧、京东、天猫、我团、新浪微盘、携程、赶集、墨迹天气、拉手网。。。太多了。

举个点评的例子。。。

修复方案:

改SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER为SSLSocketFactory.STRICT_HOSTNAME_VERIFIER验证。

关于剪贴板的攻击

很多ROM厂商都提供的验证码短信的提取定制,支持一键复制功能,但是即使没有监听短信接收广播的恶意应用也可以通过监听剪贴板获得验证码。

微信抢红包神器

过年的时候出现了一大波抢红包神器app,可以监听到有人发红包后自动打开微信点击抢红包Button,秒杀双手。

原理:利用Android提供的AccessibilityService,拥有辅助功能的app都可以监控任何应用的view,并且可以触发输入事件。

与AccessibilityService相关的还有微信支付密码事故。

支付界面的键盘是由12个View组成,当用户打开辅助功能后,三方app能够监听到这12个Button的onClick,拿到相应的text,从而破解支付密码。

解决方案:

让敏感的View中Accessibility失效

-setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO)   not important

-setAccessibilityDelegate(),空实现delegate类。

如何分类Android应用安全

安全的关键是定义边界

边界分类

有哪些工具可以帮助我们快速找到安全问题

github上有现成的开源项目帮助我们理解移动上的安全问题

https://github.com/nil1666/AuditDroid

AuditDroid提供测试用例代码,让开发者可以快速定位安全问题。

总结:安全问题是每个app都逃不开的,尤其身在O2O行业,既有来自天量用户的消费支付安全风险,又有来自竞争对手的逆向抓取破解,安全问题本着魔高一尺道高一丈的节奏,势必应该成为运营的一部分,打好这场攻防战。

时间: 2024-10-25 15:33:27

Android 应用安全篇的相关文章

在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤

原文:在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤 Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装的windows10 + vs2013 with update 4. 2. 安装Java SDK,按照Next一步步安装,此处省略,如下图: 3. 安装Android SDK:因为在线安装的访

Android安全篇

从广义上讲,智能终端的安全主要涉及硬件.通信.软件.信息等4个层面,其中硬件的安全包括设备的跟踪/定位.防摔.防尘.防水.防震.Flash的防磨损.电磁兼容.触摸屏防划等:通信的安全主要指通信链路的安全,涉及蜂窝.WiFi.BT.互联网等的通信,相关的技术包括防窃听.防拦截.防病毒.防入侵等:软件的安全包括防破解.防反编译.防抄袭等:信息的安全包括隐私保护.敏感数据的保护.数据加密等.随着移动互联网的不断发展,智能终端的安全受到人们的重视,同时诞生了很多创新的机会. 为了更好地保护系统私有数据的

ESA2GJK1DH1K安全篇: Android以SSL方式连接MQTT服务器

------------恢复内容开始------------ 不导入证书方式 1.增加以下代码 static class miTM implements TrustManager, X509TrustManager { public X509Certificate[] getAcceptedIssuers() { return null; } public boolean isServerTrusted(X509Certificate[] certs) { return true; } publ

[转]Android应用安装包apk文件的反编译与重编译、重签名

背景介绍: 最近在做Robotium自动化测试,使用到solo.takeScreenshot()函数以在测试过程中截图,但此函数需要被测试APP具有<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />权限.在只有被测试APP的apk文件的情况下,修改apk文件后缀名为zip,解压缩后,修改AndroidManifest.xml文件,删除META-INF文件夹,重压缩为apk文

[转发]在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤

Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装的windows10 + vs2013 with update 4. 2. 安装Java SDK,按照Next一步步安装,此处省略,如下图: 3. 安装Android SDK:因为在线安装的访问google存在问题,而且速度慢,这里采用离线安装包,拷贝Android SDK到指定目录 我这里拷贝到C

我的安全之路——Web安全篇

write in my dormitory at ??9:47:05 Friday, April 7, 2017 by giantbranch(一个当初想横跨web跟二进制的菜鸡) ----致即将毕业的自己. 这是我的安全之路系列第一篇,敬请期待第二篇:<我的安全之路--二进制与逆向篇> 总览 大一:基本都在学习学校的课程,C语言,C++,高数啊,不过分数还可以,在大一复习周还在php3小时光速入门呢 大二:web开发,大概在下学期5月份这样子开始web安全 大三:开始去参加比赛,刷题,学习各

Linux修改SSH远程登录端口 --服务器安全篇

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px SimSun; color: #333333; background-color: #ffffff } span.s1 { } span.s2 { color: #ff0000 } 1.修改SSH远程登录端口为5000 输入 vi/etc/ssh/sshd_config Port 5000                        #把'#Port 22'修改为'Port 5000':(

Web安全篇之SQL注入攻击

在网上找了一篇关于sql注入的解释文章,还有很多技术,走马观花吧 文章来源:http://www.2cto.com/article/201310/250877.html ps:直接copy,格式有点问题~ 大家早上好!今天由我给大家带来<web安全之SQL注入篇>系列晨讲,首先对课程进行简单介绍,SQL注入篇一共分为三讲:       第一讲:"纸上谈兵:我们需要在本地架设注入环境,构造注入语句,了解注入原理.":       第二讲:"实战演练:我们要在互联网上

web开发性能优化---安全篇

1.权限管理 从模块.表单.数据审核.功能button全面数据安全验证及管理. 2.ip验证 数据接口訪问进行IP校验 3.登录.操作日志.程序安全日志  系统所实用户登录.操作所有日志记录. 程序安全日志操作可查看我之前写过[LogHelper 日志记录帮助类]. 4.SQL注入校验过滤 a.表单控件js前端校验.特殊字符过滤 b.採用Global.asax的Application_BeginRequest事件过滤敏感字符. c.request请求过滤 特殊字符过滤可查看我之前写过[採用Glo