软件开发包(SDK)安全研究报告(2021)_44页_1mb
报告摘要
软件开发包(SDK)安全研究报告总结
核心内容概述
本报告由中国信息通信研究院安全研究所与深圳市腾讯计算机系统有限公司联合编制,聚焦SDK在移动应用开发中的广泛应用及其带来的安全与合规风险。报告分析了SDK在当前移动应用生态中的角色、其在数据收集与传输中可能引发的问题,以及如何通过政策、标准和技术手段来提升SDK的安全性与合规性。
主要观点
- SDK已成为移动应用开发中不可或缺的组件,广泛用于广告、推送、数据统计、地图、支付等功能,但其泛用性和灵活性也带来了安全和合规隐患。
- SDK可能未经用户同意收集个人信息,超范围收集、违规使用、非法传输等行为对用户隐私构成威胁。
- SDK可能被恶意利用,如流量劫持、隐私窃取、远程控制、挖矿等,对App及用户安全造成严重危害。
- SDK的生命周期中存在多个安全风险点,包括代码安全、数据交互、通信传输、行为安全等,需系统性地进行防护。
- 随着政策和标准的逐步完善,SDK的合规性要求日益明确,SDK开发者和App开发者需共同承担责任,提升安全意识。
关键信息
一、SDK行业发展现状
- SDK应用广泛:App平均集成超过20款SDK,体育、医疗、时尚类App集成SDK数量较多。
- SDK类型多样:包括广告类、推送类、数据统计分析类、地图类、第三方登录类、支付类、Crash监控类、人工智能类等。
- 主要SDK供应商:
- 广告类:广点通、力美、友盟、TalkingData、有米、多盟
- 推送类:极光推送、个推推送、Mobpush、友盟推送、百度推送、云巴推送
- 数据统计类:Appsee、Mixpanel、Google Analytics
- 地图类:腾讯地图SDK、百度地图SDK、凯立德SDK、googlemap SDK
- 第三方登录类:QQ互联、微信开放平台、微博开放平台
- 支付类:微信支付、支付宝、百度钱包、银联、Apple Pay等
- Crash监控类:Bugly、Umeng、Firebase
- 人工智能类:腾讯AI开放平台SDK、Face++、百度AI开放平台SDK等
二、SDK的合规风险
-
未经用户同意收集个人信息
- SDK通过App传达信息,部分SDK未完整告知用户收集目的、方式、范围。
- SDK可能私自调用权限进行信息收集。
-
超范围收集个人信息
- SDK收集与服务无关的个人信息,或强制申请非必要权限。
- 存在自动收集、频繁收集等问题。
-
未经用户授权使用个人信息
- SDK可能将用户信息用于非服务目的,如精准营销、数据共享等。
- 可能导致用户信息被用于诈骗、社会工程攻击等违法行为。
-
违规传输个人信息
- 未加密传输、明文传输、未验证服务器证书等问题可能导致信息泄露。
-
App对SDK的安全管理不足
- 缺乏对SDK行为的有效监督,SDK合规风险难以被App识别。
三、SDK的安全风险
-
代码源文件安全
- SDK未进行混淆、加密处理,易被逆向分析和篡改。
- 安卓环境的灵活性增加了SDK源代码泄露的可能性。
-
内部数据交互安全
- SDK与宿主App、系统组件及其他应用交互过程中,存在数据泄露、组件越权调用等风险。
-
本地数据存储安全
- 未加密存储、未设置访问控制、敏感数据明文存储等问题常见。
-
通信数据传输安全
- 使用不安全传输协议、未验证证书、未加密传输数据等,导致信息被截取或篡改。
-
防御检测
- 需要对关键参数、数据文件进行校验和加密,防止恶意利用。
四、安全措施建议
面向SDK开发者
- 满足法律法规要求:遵守《个人信息保护法》《网络安全法》等,保护用户信息。
- 覆盖SDK整个生命周期:从设计、开发、测试到运维,需贯穿安全合规要求。
- 提供合规与安全指南:向App开发者提供SDK使用规范,提升其安全意识。
- 明确双方责权:通过协议或合同约束SDK的使用范围、权限申请、信息处理方式等。
面向App开发者
- 合法选择SDK:选择信息处理规则明确、沟通反馈渠道有效的SDK。
- 依法处理个人信息:向用户告知SDK的名称、收集目的、权限使用等,并征得用户同意。
- 完善合作协议:明确双方在个人信息保护方面的责任和义务。
- 动态监测SDK安全性:定期进行安全评估,及时修复漏洞或替换存在风险的SDK。
- 停止使用恶意SDK:对已知存在恶意行为的SDK及时停用。
附录内容概要
附录一:SDK安全实践
- 信通院SDK安全专项行动:
- 评测对象包括安卓系统App集成的SDK。
- 评测范围涵盖数据存储、交互、代码安全、行为安全等。
- 通过三期评测,已有13款SDK通过评测,后续将定期开放评测。
- 腾讯云移动合规检测平台:
- 支持App及集成SDK的隐私合规检测。
- 可识别违规收集、超范围收集、强制权限、自启动等风险。
- 提供SDK合规版本推送,实现高效双向合规。
附录二:SDK安全关键技术
- SDK研发环境:
- SDK作为功能模块,被多个App集成使用。
- 分发方式包括编译后的Jar包、ARR包或源代码。
- SDK安全防护技术:
- 代码混淆、代码加密、SO加固等技术用于保护核心逻辑。
- SDK安全检测技术:
- 来源安全性检测:检查SDK提供者信息、隐私政策、安全能力等。
- 代码安全性检测:检测恶意代码、安全漏洞、权限申请等。
- 行为安全性检测:分析SDK的敏感行为、权限使用、数据传输等。
附录三:常见SDK安全风险
- Web组件远程代码执行漏洞
- ContentProvider组件数据泄露漏洞
- Activity组件隐私泄露漏洞
- Manifest不安全属性配置风险
- 源码泄漏漏洞
- 随机数加密破解漏洞
- HTTPS敏感数据劫持漏洞
- 系统组件本地拒绝服务漏洞
- 自定义权限滥用风险
- Intent消息使用安全建议
- Keystore漏洞检测
- 私有文件泄露风险
- 第三方SDK漏洞
- AppKey信息泄露漏洞
- 目录遍历漏洞
- ContentProvider组件本地SQL注入漏洞
- 私有目录写漏洞
- Fragment框架层注入
- Scheme SQL注入
- 弱加密算法风险
结论
SDK作为移动应用开发的重要工具,其安全合规问题已成为移动应用生态健康发展的关键因素。SDK开发者和App开发者需共同承担合规与安全责任,通过技术防护、政策规范和行业合作,提升SDK的整体安全性,保护用户隐私和数据安全。未来,随着政策和标准的完善,以及检测平台和专项行动的推进,SDK安全问题有望得到更有效的治理。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载