软件开发包(SDK)安全研究报告(2021年)-44页_1mb
报告摘要
SDK安全研究报告总结
核心内容
本报告由中国信息通信研究院与腾讯联合编制,旨在分析SDK行业的发展现状、合规风险、安全风险,并提出针对开发者的安全措施建议,以促进SDK行业生态的健康发展。
主要观点
1. SDK行业发展现状
- SDK在移动应用中广泛应用,已成为App开发的重要组成部分,帮助开发者实现功能扩展、提高效率。
- App通常集成超过20款SDK,部分App集成数量高达30款以上,形成App与SDK的共生关系。
- SDK种类多样,涵盖广告、推送、数据统计、地图、第三方登录、支付、Crash监控、人工智能应用等。
2. SDK的合规风险
- 未经用户同意收集个人信息:部分SDK未明确告知用户其收集个人信息的目的、方式和范围,导致用户信息被非法获取。
- 超范围收集个人信息:SDK可能收集与其功能无关的信息,如设备信息、通讯录、地理位置等。
- 未经用户授权使用个人信息:SDK可能在未获得用户授权的情况下,将收集的数据用于非服务目的,如定向推送、广告精准营销等。
- 违规传输个人信息:部分SDK未采取安全传输措施,存在明文传输、非法共享等风险。
- App对嵌入SDK的安全管理不足:App开发者未能有效监控SDK的行为,导致合规风险难以掌控。
3. SDK的安全风险
- 安全漏洞问题:SDK存在多种安全漏洞,如代码源文件、内部数据交互、本地数据存储、通信数据传输、防御检测等。
- 恶意行为风险:恶意SDK可能实施流量劫持、资费消耗、隐私窃取、静默下载安装、广告刷量、远程控制、勒索、挖矿等行为,对用户隐私和App安全构成严重威胁。
- 新型物联网SDK黑产:部分黑产在设备出厂前嵌入恶意SDK,通过云端控制物联网设备,如机顶盒、路由器等,窃取家庭IP并用于非法活动。
关键信息
1. SDK类型及典型供应商
| 序号 | SDK分类 | 功能描述 | 典型供应商 |
|---|---|---|---|
| 1 | 广告类 | 提供广告展示和数据分析功能 | 广点通、力美、友盟、TalkingData、有米、多盟 |
| 2 | 推送类 | 向用户推送消息、通知等 | 极光推送、个推推送、Mobpush、友盟推送、百度推送、云巴推送 |
| 3 | 数据统计分析类 | 收集用户行为数据 | Appsee、Mixpanel、Google Analytics |
| 4 | 地图类 | 提供定位、路线优化等 | 腾讯地图SDK、百度地图SDK、凯立德SDK、googlemapSDK |
| 5 | 第三方登录类 | 提供第三方账号登录功能 | QQ互联、微信开放平台、微博开放平台 |
| 6 | 支付类 | 提供支付、财务管理等功能 | 微信支付、支付宝、百度钱包、银联、Apple Pay |
| 7 | Crash监控类 | 提供异常上报与分析 | Bugly、Umeng、Firebase |
| 8 | 人工智能应用类 | 实现人脸识别、文字识别等功能 | 腾讯AI开放平台SDK、Face++、百度AI开放平台 |
2. 政策与标准
- 监管层面:中央网信办、工信部、公安部、市场监管总局联合治理SDK的个人信息收集行为。
- 标准层面:SDK安全指引、SDK安全国标、SDK安全行标等,为SDK安全落地提供明确导向。
- 金融行业标准:包括《个人金融信息保护技术规范》《移动金融客户端应用软件安全管理规范》等,对SDK在金融场景中的使用提出更高要求。
3. SDK安全风险
- Web组件远程代码执行漏洞:通过WebView组件加载恶意JS代码,导致远程代码执行。
- ContentProvider组件数据泄露漏洞:未校验URI参数,导致数据泄露。
- Activity组件隐私泄露漏洞:未限制file协议,导致隐私数据被窃取。
- Manifest不安全属性配置风险:如
allowBackup和debuggable未合理设置,可能导致数据泄露。 - 源码泄漏漏洞:代码混淆率低,易被逆向分析。
- 随机数加密破解漏洞:使用不安全的随机数生成器,导致数据可被预测。
- HTTPS敏感数据劫持漏洞:未正确校验SSL证书,导致数据被劫持。
- 系统组件本地拒绝服务漏洞:未校验Intent参数,导致应用崩溃。
- 自定义权限滥用风险:未合理设置权限保护级别,导致权限被绕过。
- Intent消息使用安全建议:需防范恶意Intent劫持,避免信息泄露。
- Keystore漏洞检测:不当使用KeyStore可能导致敏感信息泄露。
- 私有文件泄露风险:未合理设置文件权限,导致数据被窃取。
- 第三方SDK漏洞:历史案例显示部分SDK存在后门、强推广告、隐私窃取等风险。
- AppKey信息泄露漏洞:AppKey和密码被硬编码,易被泄露。
- 目录遍历漏洞:文件名未校验,导致路径跳转和数据篡改。
- ContentProvider组件本地SQL注入漏洞:未进行权限控制,导致数据被篡改。
- 私有目录写漏洞:未合理设置文件权限,导致内部存储被恶意修改。
- Fragment框架层注入:未校验Fragment名称,导致未授权访问。
- Scheme SQL注入:通过Scheme触发SQL注入攻击。
- 弱加密算法:如DES、RSA Padding、ECB模式等,增加数据泄露风险。
安全措施建议
面向SDK开发者
- 遵守法律法规:确保SDK符合《个人信息保护法》《网络安全法》《数据安全法》等要求。
- 覆盖整个生命周期:在SDK设计、开发、测试、运维等阶段落实安全合规要求。
- 提供合规指南:向App开发者提供SDK使用指南,明确合规要求。
- 明确责权约定:通过协议或合同明确双方在个人信息保护方面的责任和义务。
面向App开发者
- 选择合规SDK:确保SDK提供者信息透明、合规,具备良好的安全能力。
- 建立安全规范:对SDK的引入、使用、运维、退出等环节制定安全规范。
- 依法处理个人信息:向用户明示SDK收集的个人信息类型、目的、方式等,并征得用户同意。
- 动态监测与评估:对集成的SDK进行持续安全监测和定期评估,及时修复漏洞或替换风险SDK。
- 完善合作协议:确保与SDK提供者之间的协议明确,便于管理与监督。
附录要点
附录一:SDK安全实践
- 信通院SDK安全专项行动:已开展三轮评测,13款SDK通过评测,形成标准化评测方案。
- 腾讯灵犀隐私保护平台:通过技术扫描和大数据分析,识别SDK的隐私采集行为,实现高效合规。
附录二:SDK安全关键技术
- 研发环境:SDK开发与App开发类似,但需考虑被其他App集成使用。
- 安全防护技术:包括代码混淆、代码加密、SO加固等,防止核心逻辑被篡改。
- 安全检测技术:涵盖来源、代码、行为等多方面检测,识别潜在风险。
附录三:常见SDK安全风险
- 包含Web组件、ContentProvider、Activity组件、Manifest配置、源码泄漏、随机数加密、HTTPS劫持、本地拒绝服务、Intent Scheme、Keystore、私有文件泄露、第三方SDK、AppKey泄露、目录遍历、SQL注入、私有目录写、Fragment注入等。
图表摘要
- 图1:各类App平均集成SDK数量。
- 图2:集成次数较多的第三方SDK类型分布。
- 图3:第三方SDK各类敏感行为统计。
- 图4:SDK安全漏洞类型占比。
- 图5:恶意SDK动态更新后隐蔽执行恶意行为。
- 图6:新型物联网SDK黑产。
- 图7:SDK安全专项行动评测范围。
- 图8:评测流程。
- 图9:腾讯云移动合规检测平台。
- 图10、11:平台检测示例。
表格摘要
- 表1:常见SDK类型及典型供应商。
- 表2:部分SDK合规相关要求。
- 表3:典型SDK恶意行为。
本报告强调了SDK在移动应用生态中的重要性,同时指出其在合规与安全方面存在的风险,为开发者提供了全面的安全建议与实践参考。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载