详解Android App AllowBackup配置带来的风险
前言
笔者在使用自己编写的 Drozer 模块对国内流行的安卓手机应用进行自动化扫描后发现有大量涉及用户财产和隐私的流行安卓应用存在 Android AllowBackup 漏洞,已测试成功受到漏洞影响的应用包括:新浪微博,百度云网盘,美团,大众点评,去哪儿等等。
漏洞案例
先来看一个情景案例,某IT男一直暗恋部门某女神,一天女神手机太卡了找IT男帮助清理手机空间,IT 男高兴地答应女神两分钟搞定,屁颠屁颠的跑到自己电脑旁边连上手机,女神在一边呆呆的看着IT男敲了几行代码然后在手机上点了几下,最后果然两分钟不到就搞定了,在女神谢着离开后,IT男露出了 WS 的笑容。
没错,他成功了盗到了女神的微博帐号,终于不用问同事女神的微博帐号是多少了~当然这不是结局,一天晚上睡觉时,他看了女神的微博私信后心突然碎了。到底发生了什么,这背后有啥不可告人的秘密?且看本文详细分析。
漏洞背景
在谷歌 2010 年发布 Android 2.2 Froyo (冻酸奶)系统中,谷歌引入一个了系统备份的功能,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用。 第三方应用开发者需要在应用的 AndroidManifest.xml 文件中配置 allowBackup 标志(默认为 true )来设置应用数据是否能能够被备份或恢复。当这个标志被设置为true时应用程序数据可以在手机未获取 ROOT 的情况下通过adb调试工具来备份和恢复,这就允许恶意攻击者在接触用户手机的情况下在短时间内启动手机 USB 调试功能来窃取那些能够受到 AllowBackup 漏洞影响的应用的数据,造成用户隐私泄露甚至财产损失。
使用反编绎工具 JEB 查看 weibo 客户端 manifest 配置:
在之前的案例正是因为新浪微博安卓客户端(最新版) AndroidManifest.xml 并没有配置:
导致女神手机中的微博客户端数据可以在短时间内通过 ADB 调试备份到电脑中最后恢复到IT男手机,然后IT男以后每天就可以用女神的帐号看女神发了啥微博和私信内容。当然可利用的场景当然不止于此,想想,如果存在漏洞的是你的团购应用呢(看看有啥团购券我先来用吧),当然还有你的网盘应用(说不定可以看女神的私密照~),哦,对了连社交和理财应用也不能放过(女神们还敢把手机给 IT 男清理不)。
检测方法
1)手工检测
测试环境:
- Windows 7,ADB 调试工具
- 物理接触目标手机1,连接手机1到 PC 端
- 手机1和手机2均未被 ROOT,开启 USB 调试
- 不用安装其它应用,不启动被测试的应用
测试流程:
- 连接安装开启USB调试手机1 到PC端
- 在PC自动(也可以提前)安装好手机驱动后
- 启动命令行界面输入以下命令:
- 点击手机1确认备份界面的“备份我的数据”
- 等待备份完成,至此微博客户端数据成功备份为 com.sina.weibo.ab 文件
- 断开手机1的连接,可以把手机还给女神啦
- 连接手机2 ,在命令行界面下输入以下命令:
- 点击手机2确认恢复界面的“恢复我的数据”
- 等待恢复完成
- 打开手机2中新安装的微博客户端,测试可正常登录手机1中帐号执行各种操作,且长期有效。
2)在线检测
目前国内三个主要的Android应用漏洞在线检测系统均能较好的检测此漏洞,建议普通用户和开发者使用腾讯金刚审计系统上传应用安装包进行检测。
1.腾讯金刚审计系统检测结果( http://service.security.tencent.com/kingkong )
2.阿里聚安全检测结果( http://jaq.alibaba.com/ )
3.360捉虫猎手检测结果( http://appscan.360.cn/ )
影响范围
目前测试了手上一台安装有Android 4.1.1系统的魅族MX2手机和安装有Android 4.4.2系统的魅族MX4手机均测试成功,理论上影响Android 2.2-Android 4.4系统中存在风险的应用。
建议评级:
尽管此漏洞的利用条件较高,需要物理接触,但此漏洞对涉及用户财产与隐私类的APP来说杀伤力较大,建议厂商视情况修复。
- 金融类APP 高危
- 支付类APP 高危
- 团购类APP 中危
- 社交类APP 中危
- 网盘类APP 中危
- 其它类APP 低危/无影响
修复方案
开发者如要避免应用数据泄露的风险,应当在设置 AndroidManifest.xml 文件中配置 android:allowBackup=“false”,此时应用程序数据无法被备份和恢复。或者在应用启动时检测手机硬件和网络环境是否改变,如果存在异常则强制退出或重新登录。
编写Drozer模块实现漏洞自动化扫描
Drozer是MWR InfoSecurity公司开发的一款安卓应用安全评估框架,其社区版开源在Github上(https://github.com/mwrlabs/drozer )。对于从事安卓应用漏洞测试的安全研究者们来说,他们可以使用drozer提供的框架自己编写模块(Module)方便对的安卓应用进行漏洞检测与利用。
以下是自己编写一个Drozer Module,用于自动化批量检测手机中的哪些应用存在AllowBackup风险。