上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

腾讯安全科恩实验室:2018年Android应用安全白皮书(36页).pdf

编号:14326 PDF 36页 8.70MB 下载积分:VIP专享
下载报告请您先登录!

腾讯安全科恩实验室:2018年Android应用安全白皮书(36页).pdf

1、Tencent Security KEEN SECURITY LAB 腾讯安全科恩实验室 2018年Android应用安全白皮书 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 1 0 1 1 信息安

2、全顶级服务 护航产业数字化变革 守护全网用户信息安全 Android应用行业概览 Android应用安全现状 Android应用安全风险分析 目录 Contents Keen Security Lab 2018 Android Application Security White Paper 腾讯安全科恩实验室 2018年Android应用安全白皮书 Android移动应用蓬勃发展 Android应用安全亟待加强 安全投入现状仍无法满足安全需求 2018年Android应用安全问题频发 应用安全问题产生原因复杂 科恩Android应用自动化漏洞扫描系统ApkPecker 2018年Androi

3、d应用检测样本统计分析 数据泄露 组件间通信问题 第三方库漏洞 服务后台问题 隐私问题 Android应用安全自查雷达图 Android应用安全检测趋势 总结与展望 02 04 05 06 07 09 10 15 19 21 24 25 27 29 Keen Security Lab 2018 Android Application Security White Paper 腾讯安全科恩实验室 2018年Android应用安全白皮书 Android应用行业概览 根据最新全球数字报告数据【1】,目前全球有 51.1 亿独立移动用户,占全球人口总数的 2/3。2018 年用户平均每天 花费在移动设

4、备上的时间达到 3 个小时,移动应用市场蓬勃发展并不令人意外。 2018 年全球 App 下载量超过 1940 亿次,年增速超过 9%。移动用户还在付费下载、App 内购买和 App 内订阅等模 式下进行消费。这类服务在 2018 年收入超过 1010 亿美元【2】(包含 iOS 数据) ,增速到达了 23%,智能手机用户在 单个移动应用上平均花费 20.15 美元。 Android移动应用蓬勃发展 23% SPEED UP $20.15 SPEND 194 BILLION +9% NUMBER $101 BILLION 5.112 BILLION 67% NUMBER 3 HOURS 01

5、02 Keen Security Lab 2018 Android Application Security White Paper 2018 Android Application Security White Paper 中国移动互联网的发展也在全球排名前列。截至 2018 年 12 月,我国手机网民规模达 8.17 亿,全年新增手机网民 6433 万。智能手机操作系统市场份额【3】显示在我国 Android 系统占比已经超过 80%。 截至 2018 年 12 月,我国市场上监测到的在架 App 数量为 449 万款【4】。中国移动应用下载量在 2018 年总下载量 占比将近 50%,是

6、目前全球移动应用下载量最大的国家【2】。 2018年移动应用在架数量统计图 我国智能手机系统占比统计图 Android iOS Windows Other 其它 Blackberry Android iOS Windows Other 2018.1 2018.2 2018.3 2018.4 2018.5 2018.6 2018.7 2018.8 2018.9 2018.10 2018.11 2018.12 单位: 万款 500 400 300 200 100 0 40744246447449 80.1% 19.7% 0.1% 0% 0.1% Andr

7、oid应用安全亟待加强 Android 系统到 2018 年已经有 10 年的历史,系统进驻超过 20 多 亿台设备,用户在谷歌应用商店可以访问的应用 数量也达到三百万个以上。但在系统本身迅速发展的过程中,Android 系统上的安全问题一直备受瞩目。 数据显示, 从 2012 年到 2018 年,Android 平台的恶意程序数量增长迅猛。截至 2018 年第三季度末,G DATA 统计数据【5】显 示在 Android 系统发现超过 320 万个新的恶意样本,平均每天发现超过 11000 个新的恶意软件样本。 国家互联网应急中心表示,我国移动互联网安全亟待加强。2017 年,通过国家互联网

8、应急中心自主捕获和厂商交 换获得的移动互联网恶意程序数量达 253 万余个,同比增长 23.4。其中,排名前三的恶意程序类型分别为流氓行 为类、恶意扣费类和资费消耗类。 同时,由于开源组件自身安全存在诸多问题,加上当前应用程序普遍基于开源组件进行开发,使得应用开发过程中 会产生大量安全漏洞严重影响安全性。例如, Insignary 公司在检测 Google Play 商店最受欢迎的 Android 应用程序 后发现【7】,约有 20包含具有已知安全漏洞的开源组件,这些漏洞可能被黑客利用。尽管 Android 移动应用程序 的开发在功能上越来越强大,但在开发阶段产生的安全问题却成为制约 App

9、发展的重要因素。 2012 2013 2014 2015 2016 2017 2018 214,327 1,192,035 1,548,129 2,333,777 3,246,284 3,002,482 4,000,000 3, 189, 480 (Q1-Q3) (Forecast) 新增Android恶意样本数量统计图(截止到2018年第三季度) New Android malware samples (per year) 03 04 Keen Security Lab 2018 Android Application Security White Paper 2018 Android Ap

10、plication Security White Paper 安全投入现状仍无法满足安全需求 在 Android 应用安全性提升方面,谷歌一直充分重视并投入大量成本推进【8】。从 2015 年开始,谷歌启动应用安 全改进计划(App Security Improvement) ,旨在提高应用的安全性。应用开发者的应用程序在 Google Play 商 店上架前需要进行安全扫描,扫描出的安全问题需要按照开发安全提示和建议进行修复。迄今为止,该计划已帮 助开发人员在 Google Play 上修复了超过一百万个应用。除此之外,Google Play 商店已经上架的应用也会不断 被重新扫描,以应对新

11、出现的安全漏洞以及其他威胁。通过持续改进现有检查安全漏洞,应用安全改进计划仍在 不断更新检测内容。 应用程序安全性改进警报示例 Java 语言编写 Android 应用程序打包成 Apk 文件后,使用反编译工具可以进行逆向分析,容易暴露风险。添加恶 意代码后二次重打包等手段可以进一步破坏原应用的安全性。为了更好地对抗这些风险,App 技术加固技术也不 断地发展。实现形式从最开始将 dex 文件动态加载、内存不落地加载,到函数级别的指令抽取、指令转换,发展 到 VMP 虚拟机保护以及多种方式结合使用。各种加固方案或多或少都有优缺点,具备加固解决方案和能力的厂商 也在不断增加。但与此同时,应用安全

12、防护措施整体实施情况并不乐观。 2018年Android应用安全问题频发 2018 年初, 安卓 App 被曝存在应用克隆风险, 利用多点耦合产生的漏洞, 可以实现 “克隆” 用户账户、 窃取隐私信息, 甚至进一步实现盗取账号及资金。 同月,三星安卓浏览器被爆严重漏洞,攻击者可以通过利用高危同源策略绕过漏洞开启网站服务,如果用户访问攻 击者控制的站点,攻击者就可以从浏览器中的不同标签页窃取用户数据。该漏洞相关受影响设备多达 3 亿。 年底,上海警方成功捣毁一个利用网上银行漏洞非法获利的犯罪团伙。该团伙利用银行 App 安全漏洞,使用黑客 技术软件成倍放大定期存单金额,从中非法获利 2800 余

13、万元。随着数字化金融的迅猛发展,类似业务漏洞一旦被 不法分子发现并加以利用,造成的经济损失十分惨重。 造成严重安全问题的并不一定是通过新颖的漏洞利用形式,还可以是非常简单、 “历史悠久”的漏洞模式,但这类 漏洞却往往容易被大多数开发者忽视,例如 WebView 组件所带来的安全问题。 Android 移动应用安全需要自上而下整个产业闭环的各个角色共同维护和提高,不应是开发厂商、设备厂商和应用 分发渠道之间割裂的责任。 05 06 Keen Security Lab 2018 Android Application Security White Paper 2018 Android Applic

14、ation Security White Paper 应用安全问题产生原因复杂 Android 移动应用从开发到用户实际交互使用涉及多个环节,每个环节都存在引发安全问题的诸多因素。从 Android 系统本身的安全背景,到应用开发环节、应用上架过程,不同阶段都有可能为最终漏洞完整攻击链“添砖 加瓦” 。 系统安全存隐患,提权破坏安全机制 Android 本身是开源系统并且是开放的,所有人都可以研究源码。硬件厂商可以根据自身定制化需求在修改源码的 基础上发布自己的系统并提供给用户使用,第三方 ROM 开发者可以根据自己的需求设计开发并提供给用户下载。 甚至进一步,用户还可以实现手机提权并获取 r

15、oot 权限。但厂商或者第三方 ROM 开发者的修改并没有任何门槛, 在自定义优化的部分可能会引入新的安全隐患,root 权限的获取更是打破了系统本身的安全权限管理机制。 开源组件碎片化,安全修复困难 应用开发厂商在系统上进一步根据需求开发对应的 Android 移动应用程序。厂商在开发过程中也充分享受系统开源 与开放的便利性,引入公开现成的开源组件。开源组件的引入确实为应用开发厂商的开发过程提高效率,减少类似 功能的重复开发成本。但数量较多的第三方开源组件本身存在的安全问题,也会随着直接调用或者间接优化而转嫁 给正在开发的移动应用。在当今开发采购模式下,开发厂商甚至几乎不可能知道哪些开源组件

16、驻留在应用程序中, 更不必说根据组件类别、版本进行安全问题追踪和修复。 安全能力不足,避雷力不从心 移动应用开发本身门槛低,尤其是更高效便捷的开发集成开发环境工具(Integrated Development Environment) 的发展、更多开源组件的复用降低了 Android 应用开发难度。更多初学者也可以迅速学习并实现基本的功能。部分 开发人员在开发的过程中,也有意识地避免写容易产生安全漏洞的代码,努力按照安全开发规范进行开发工作。但 由于安全能力有限,遗漏、误用安全措施反而会造成新的安全隐患。例如,为了提高数据传输保密性而使用对称加 密算法,但却将密钥硬编码在 Java 代码中,加

17、密操作形同虚设。此外,使用 https 安全协议进行网络连接,但却 调用 setHostnameVerifi er 函数设置 ALLOW_ALL_HOSTNAME_VERIFY 标志位,导致中间人攻击的漏洞。 安全投入不足,缺失安全生命周期管理 由于安全漏洞产生的大部分环节都在开发过程中,因此应用安全的保障和提升需要在整个产品开发生命周期进行安 全管理。一旦其中某些环节出现问题,都可能产生安全漏洞。由于涉及到的角色以及人员数量庞大,这对应用的安 全生命周期管理提出了更高的要求。为了能更系统、完整地管理应用安全生命周期,需要应用开发厂商投入相应的 人力、 物力资源。部分厂商难以充分重视以及投入足

18、够的资源, 在完成开发后, 没有进一步进行代码审计、 安全扫描、 漏洞修复以及应急响应。应用开发厂商将可能包含漏洞风险的应用提供给用户下载和使用,也意味着将安全问题暴 露给恶意攻击者。由于系统本身特殊性,除了部署常规的安全策略,Android 应用安全生命周期管理还需要考虑保 障手机被提权或者病毒入侵后应用自身的数据安全。 Keen Security Lab 2018 Android Application Security White Paper 腾讯安全科恩实验室 2018年Android应用安全白皮书 Android应用安全现状 为了客观地评估当前 Android 移动应用安全,我们使用

19、腾讯安全科恩实验室 Android 应用自动化漏洞扫描系统对应 用样本进行检测。我们对检测结果进行数据统计,然后从应用安全风险数量、等级、类型等角度分析,多维度展现 Android 应用安全风险现状。 随着移动安全威胁与日俱增,攻击手段和安全防护技术也在相互对抗中发展。应用安全问题产生原因复杂而琐碎, 难以用单一的系统或者工具完全解决相关问题。近年来,市场上也出现了大量与 Android 移动安全相关的工具,涉 及应用漏洞扫描、恶意软件分析、实时安全监测等多个领域。相比较而言,针对应用开发厂商以及应用市场,使用 应用漏洞扫描工具可以辅助相关安全人员定位应用安全隐患。在此背景下,腾讯安全科恩实验

20、室研究并开发了面向 攻击面的 Android 应用自动化漏洞扫描系统ApkPecker。该系统是一款全自动 Android 应用漏洞扫描工具,通 过对Android应用生命周期建模和应用攻击面建模, 采用静态数据流分析和污点分析的技术, 提高漏洞发现的准确率, 同时保证检出的漏洞质量并给出漏洞触发的完整路径, 最终以报告的形式全面分析应用的安全风险并给出修复建议。 高准确率: 检测报告根据需求高精度筛选不同安全等级的漏洞结果,准确率处于行业领先水平; 攻击面全覆盖: 覆盖九大漏洞类型,精准定位三十余种漏洞检测项的风险位置。检测内容与检测插件保持持续更新,全面覆盖各种 攻击面; 完整攻击路径:

21、基于数据流分析技术跟踪从攻击入口点到漏洞触发点的完整代码路径,精准定位漏洞,提供漏洞修复建议以及最佳 安全开发范例以协助进行针对性修复; 动静结合检测模式: 一方面进行静态扫描结果的动态验证提高结果的准确性,另一方面针对应用的服务端系统做进一步的扫描,完善漏 洞检测的维度; 自动生成 POC: 支持自动化生成漏洞利用 POC 代码,直观体会漏洞可能产生的影响。 ApkPecker主要有以下特性: 科恩Android应用自动化漏洞扫描系统 ApkPecker 2018年Android应用检测样本统计分析 本次 Android 移动应用安全检测,我们选取 2018 年下载量较高的共计 1404 个

22、应用进行漏洞扫描,在 1381 个 App 中共发现 37920 个安全问题,相关结果将在本白皮书中进行展示。 1404 个检测样本选取应用市场中 14 个分类下载量前 100 名左右的 App ,应用类型包括:影音播放、系统工具、通 讯社交、 手机美化、 新闻阅读、 摄影图像、 考试学习、 网上购物、 金融理财、 生活休闲、 旅游出行、 健康运动、 办公商务、 育儿亲子。根据应用宝数据,检测样本累计下载量超过 1100 亿次,各分类的下载量情况如下图所示: 下载量排名前5位的应用类型是系统工具、 通讯社交、 影音播放、 网上购物、 新闻阅读, 相关累计下载量将近900亿次。 30000000

23、000 25000000000 20000000000 5000000000 0 系统工具 通讯社交 影音播放 新闻阅读 旅游出行 网上购物 摄影图像 办公商务 生活休闲 金融理财 考试学习 手机美化 健康运动 育儿亲子 下载量 各类应用累计下载量 1404 个 App 中仅 23 个未检测出安全风险,1381 个 App 平均每个应用发现 27.5 个安全风险,存在安全风险的 App 占比高达 98%: 应用安全风险情况统计图 存在风险 未检测出风险 09 10 98% 2% Keen Security Lab 2018 Android App

24、lication Security White Paper 2018 Android Application Security White Paper 存在安全风险的 1381 个 App 中共检测出 37920 个安全风险,安全风险数量按应用类型分布情况如下: 各类应用安全风险数量统计图 影音播放 通讯社交 网上购物 新闻阅读 健康运动 生活休闲 手机美化 办公商务 考试学习 摄影图像 系统工具 旅游出行 金融理财 育儿亲子 4000 3500 3000 2500 2000 1500 1000 500 0 安全风险数量 安全风险数量排名前三的应用类型是影音播放、通讯社交、网上购物。这三类应用

25、类型用户黏性强,平均应用使用 时长也位列前三。相比较而言,通讯社交、网上购物、影音播放这几类应用产品功能多、交互方式丰富,一旦有安 全漏洞被不法分子利用,影响的用户群体数量大、范围广,造成的损失严重。 本次检测针对九大安全检测类共 31 种安全风险类型,每种检测内容都发现数量不等的安全风险。九大安全检测类 分别为:组件间通信、二进制、密码学、存储、第三方库、网络通信、WebView、数据库、其他。检测出的安全风 险数量按九大安全检测类分布情况如下: 19% 16% 10% 4% 3% 2% 2% 0% 4% 44% 组件间通信 第三方库 二进制 密码学 网络通信 存储 其他 WebView 数

26、据库 安全风险数量最多的检测类型是组件间通信,数量超过 16000 个,占比超过 44%。其次第三方库、二进制、密码学 相关安全风险数量也相当多。 根据更细分的 31 种安全风险类型分类,排名前 10 的类型所对应检测出的安全风险数量以及受影响 App 数量分布 情况如下: 拒绝服务漏洞、隐式 Intent 信息泄露风险以及二进制风险三种类型安全风险影响的 App 数量最多,数量超过均 1000 个。Native 库漏洞安全风险也不容忽视。 检测出的安全风险按照安全等级划分,分布情况如下: 由于拒绝服务漏洞、隐式 Intent 信息泄漏风险、二进制风险等数量排名靠前的安全风险类型的安全等级属于

27、低危, 因此在本次检测中,低危占比超过 70%。尽管高危、中危比例并不突出,但在安全风险总量大的前提下,高危和中 危安全风险可以造成的安全威胁仍然十分严重。 不同风险类型数量以及相关 App 数量统计图 风险数量App 数量 8725 7388 1813782 322 5925 6074 2250 11281047 646425 484 323 708 2746 拒绝服务漏洞 隐式 Intent 信息泄露风险 二进制风险 Native 库漏洞 加密模式错误使用风险 文件全局可读风险 SDK 漏洞 SSL 证书错误忽略风险 密码硬编码风险 可控 Int

28、ent 参数打开 未导出组件风险 其他 71% 15% 14% 高危 中危 低危 安全风险等级分布图 11 12 Keen Security Lab 2018 Android Application Security White Paper 2018 Android Application Security White Paper 上述由腾讯科恩实验室自动化漏洞扫描工具 ApkPecker 检测出的结果,我们抽样选取 140 个样本后进行进一步安全 风险确认。在选取的 140 个样本中,检测结果中的安全风险误报率约为 17%,可利用漏洞数量超过 240 个,占抽 样样本检测结果中总漏洞数量 8

29、% 。 ApkPecker 检测结果准确率安全风险可利用比例 准确误报可利用不可利用 83% 17% 92% 8% 1535117667 os_type:1 imei 0 x10000000 (new File(v6) 0 x100 Keen Security Lab 2018 Android Application Security White Paper 腾讯安全科恩实验室 2018年Android应用安全白皮书 Android应用安全风险分析 本章根据安全风险触发场景来对移动安全常见风险进行分析。数据泄漏、组件间通信风险、SDK 库漏洞、Native 库 漏洞等问题,在当前移动应用频繁出

30、现。App 的安全风险并不是相互独立、彼此割裂的关系,甚至结合多种安全风 险构建成完整攻击链的趋势越来越明显。这些利用场景会对用户造成非常直接、严重的安全威胁。除了上述几类移 动应用内常见检测项容易发现的问题,越来越多的后台问题也需要引起重视。此外,2018 年是移动应用隐私问题频 发的一年,针对移动应用隐私检测的分析也会在本章进行客观展示。 随着移动应用功能复杂化与交互多样化,越来越多的应用将数据进行本地存储。存储的数据内容可能是涉及个人隐 私信息的聊天数据和身份信息,或者是健康状况的医疗数据,甚至是敏感的金融类移动支付数据。移动设备上数据 存储的性能、安全等需求,对应用和系统在用户数据保护

31、方面提出了更高的要求。 Android 系统提供了多种方式对应用数据进行存储和读写。存储区域包括应用私有目录和外置公共存储区域,数据 读写方式除了常规的文件操作以外,还提供了如系统组件 ContentProvider 和 WebView 特性 FileScheme 等方式。 而在使用这些方法时,由于开发人员安全意识的缺失或是对系统功能理解的不透彻,可能会导致应用数据的过度泄 露,甚至导致账号权限的劫持。 开发人员在应用开发的过程中,出于方便调试和日志分析的目的,会将类似 Token、网络明文包等关键数据通过 log 打印或者写入本地日志文件。当数据存储到 SDcard 等不安全的区域时,就会引

32、起关键数据的泄露。 例如, 某款音箱应用将网络交互包明文记录在SDcard上的日志文件, 其中包括了关键的union_access_token数据, 获取该 token 意味着可以实现音箱的远程控制。 安全建议:随着新权限管控粒度的引入,Android Q 系统加强了对于外置存储的权限控制,对该类问题有一定程度 上的缓和。开发者在开发过程中也应严格管理正式发布版本中调试与日志的信息脱敏。 #:2018 年 08 月 24 日 21:34:27 content:request- https: /app/invoke/ ?sign=9e6250921adaeb7d9d3cb568099c5a2f

33、Message message = parseIntent(intent); this.setContentView(this.rootlayout); if(message.imageObject != null) String v6 = ImageUtil.copyFileToSdcard(this, message.imageObject.path, 0); 文件复制 Keen Security Lab 2018 Android Application Security White Paper 2018 Android Application Security White Paper A

34、ndroid 系统中提供了 ContentProvider 的数据共享机制,可以通过 URI Scheme 机制来实现数据的访问。当对外 公开的 Provider 缺少数据访问权限的检查时,也会导致应用数据的泄露。本次共检测出 10 个移动应用存在 ContentProvider 数据接口泄露问题。 例如,我们检测发现在某应用中包含公开 ContentProvider 组件,对外部传入的参数路径没有做严格的安全校验, 导致了文件路径穿越的漏洞,最终可以导致核心的账号数据泄露。 在进一步的情况中,对于未公开但设置了 grantUriPermissions=true 的 Provider,可以通过

35、在 Intent 调用中设置 Flags 来授予 Provider 的访问权限。如果应用中同时存在可控的 Activity 调用漏洞时,通过可控的 Intent 数据回调 到攻击应用, 攻击应用同样可以获取 Provider 的数据访问权限, 导致 Provider 接口完全暴露, 造成未公开数据泄露。 public ParcelFileDescriptor openFIle(Uri arg4, String arg5) arg4.getLastPathSegment(); if (this.uriMatcher.match(arg4) != 1) throw new FileNotFound

36、Exception(new StringBuilder(Unsupported uri: ).append(arg4.toString().toString(); return ParcelFileDescriptor.open(new File(new StringBuilder() .append(ContentProvider)this).getContext().getCacheDir() .append(File.separator) .append(arg4.getLastPathSegment().toString(), 0 x10000000); Intent intent =

37、 new Intent(); intent.setComponent(new ComponentName(com.tencent.keenlab, com.tencnet.keenlab.PocActivity); intent.addFlags(FLAG_ACTIVITY_NEW_TASK); intent.addFlags(FLAG_GRANT_READ_URI_PERMISSION); intent.addFlags(FLAG_GRANT_WRITE_URI_PERMISSION); Uri uri = Uri.parse(content:/ + AUTHORITY + /my_down

38、loads); intent.setData(uri); 安全建议:在使用 ContentProvider 对外提供数据访问时,除了做好权限的配置,也要对外部输入的数据做严格 的校验,同时也需要防范多个漏洞所引起的漏洞链,做好整体的安全防护。 ContentProvider数据接口需多重防护 在 2018 年 1 月,腾讯安全首次公开“应用克隆”这一移动攻击威胁模型。该威胁是利用 WebView 支持使用 FileScheme 的模式访问文件的特性,实现读取应用私有文件,造成应用数据泄露。在本次检测结果中,共 190 个 移动应用被发现仍有 335 个 WebView FileScheme 数

39、据泄露问题。 其他 App存在 WebView File 跨域问题的 App 在现有的应用开发模式中,Web 和原生 Android 代码的混合开发变的越来越普遍,WebView 在应用中扮演的角色 也越来越重要。由于业务开发的需要,Web 页面可以通过 JavaScript Interface 与 Java 代码进行复杂的通信以及访 问文件。WebView 可以通过三个 API 控制 File 域访问文件的功能: 当在 WebView 的配置中开启了 setAllowFileAccessFromFileURLs 或者 setAllowUniversalAccessFromFileURLs 时

40、, 即可通过让 WebView 以 File 域加载网页的方式去访问其他的应用文件,最终导致数据的泄露。对于包含 WebView 的组件, 某些情况下为了支持浏览器的调用, 会在配置文件中加入浏览器调用的支持, 从而会导致更严重的远程利用。 安全建议: 合理配置 WebView 进行 File 域访问文件的功能,对于以 File 域加载网页的访问方式还需要进一步进行判断访问文 件权限。 webView.getSettings().setAllowFileAccess(boolean); webView.getSettings().setAllowFileAccessFromFileURLs(b

41、oolean); webView.getSettings().setAllowUniversalAccessFromFileURLs(boolean); WebView FileScheme疏忽造成应用克隆威胁 86% 14% WebView File 跨城相关 App 占比图 335 条相关风险 17 18 Keen Security Lab 2018 Android Application Security White Paper 2018 Android Application Security White Paper App 的组件分为导出组件和非导出的内部组件。导出组件在为同设备 A

42、pp 提供访问接口的同时,也会引入相应的安 全风险。在组件间通信过程中,有多种常见被利用的方法。如果开发人员缺少对外部输入的校验和异常处理,通过 构造异常Intent输入数据, 则可以造成拒绝服务攻击。 如果公开组件根据输入数据, 会新生成Intent来启动内部组件, 同时 Intent 数据访问未被限制,外部输入控制新生成 Intent 的目标组件、Data、Bundle 等参数,可以访问内部非 公开组件,造成功能被恶意调用。在此基础上,如果配合 ContentProvider 和 WebView File Scheme 问题,可以造 成数据泄漏。 在检测的 1400 多个应用中,我们在 1

43、045 个 App 中检测出存在 8725 个拒绝服务风险,在 323 个 App 中发现 708 个可控 Intent 参数打开未导出组件导致功能被恶意调用风险。数据泄漏问题已在上一小节进行详细介绍,本节不再 赘述。 组件间通信问题 26% 74% 23% 77% 存在拒绝服务风险 App 占比统计图存在可控 Intent 参数打开未导出组件风险 App 占比图 共 8725 个拒绝 服务风险 共 708 个可控 Intent 参数打开未导出组件风险 存在拒绝服务风险 App其他 App其他 App存在可控 Intent 参数打开 未导出组件风险 App 数据泄漏 功能恶意调用 拒绝服务 调

44、用内部组件 合法判断 创建 Intent 外部输入 目标组件 Data Bundle . 公开组件 异常处理 未判断 调用非预期 内部组件 配合 ContentProvider 或 WebView FileScheme 问题 未处理 组件间通信过程中,通过导出组件收到 Intent 来生成新的 Intent 以启动不同的内部组件。这种场景下的 Intent 的 创建有四种常见方式: (1 )Intent 复制,通过 new Intent(intent) 函数实现; (2) Intent 转发,通过 Intent.getParcelable 系列函数实现; (3) Intent 的组合拼装,通过

45、 Intent.setComponent, Intent.putExtra,Intent.setData 等函数实现; (4)URI Scheme 生成 Intent,通过 Intent.parseUri 实现。 以 Intent 转发创建 Intent 被利用的安全风险为例,在我们的检测结果中发现某应用中存在导出组件 ClientUiProxy- Activity: 通过控制 Intent 中的 PROXY_INTENT 参数,可以控制 startActiviy 的整个 Intent,以该应用权限启动任意 Activity。 同时该 App 中存在一个内部组件 PrebundledGameA

46、ctivity 存在 WebView fi le 跨域问题。组合利用这两个漏洞,可 以实现读取应用私有文件从而实现信息泄漏。 安全建议: 在 Intent 的创建过程中,严格校验外部输入数据,考虑异常处理,避免非预期的内部组件被外部 App 访问。 /com. .ui.client.ClientUiProxyActivity protected final void onCreate(Bundle bundle) super.onCreate(bundle); Intent intent = (Intent) getIntent().getParcelableExtra( com. .PROX

47、Y_INTENT); if (intent != null) startActivityForResult(intent, 1000); return; /com. .games.features /.builtingames.PrebundledGameActivity protected final void onCreate(Bundle bundle) webView = (WebView)findViewByID(R.id.webview); webView.getSettings.setAllowUniversalAccessFromFileURLs(true); /. Strin

48、g data = getIntent().getDataString(); webView.loadUrl(data); 19 20 Keen Security Lab 2018 Android Application Security White Paper 2018 Android Application Security White Paper 第三方库漏洞 集成第三方库的开发方式可以增强应用功能以及加快开发周期,因此大量 App 在开发周期中会直接调用第三方库。 但部分第三方库在开发过程中没有注重代码的安全性,存在安全问题。而这些安全问题往往会成为攻击者攻击宿主 应用的“跳板” 。这样

49、即使宿主应用本身有着良好的安全性,应用整体也会面临着严重的安全风险。除此之外,第 三方库爆出安全问题并发布安全补丁更新新版后, 应用没有及时跟进安全修复方案, 也可能会在窗口期被恶意利用。 本节将从 SDK 库以及 Native 库两方面分析第三方库的安全问题。 SDK库 本次自动化检测分析了市面上数十款主流 SDK,在 1404 款检测样本 App 中,共有 1038 个 App 有 2166 次 SDK 相 关调用。统计显示,接近一半比例共 646 个 App 上存在 1047 个 SDK 漏洞。 近来SDK的安全逐渐受到大家的广泛关注, 17年友盟SDK被爆出越权漏洞。 友盟SDK中一个导出组件存在以下逻辑: 存在 SDK 风险 App 数量统计图 该 SDK 会使用

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(腾讯安全科恩实验室:2018年Android应用安全白皮书(36页).pdf)为本站 (风亭) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部