20211228-中国信通院-软件开发包(SDK)安全研究报告(2021年)_44页_1mb
报告摘要
SDK安全研究报告总结
核心内容概述
本报告由中国信息通信研究院与腾讯联合发布,聚焦于SDK在移动应用生态中的广泛应用及其所带来的安全与合规风险。随着移动互联网的快速发展,SDK已成为App开发不可或缺的一部分,但其泛用性和灵活性也带来了潜在的安全隐患。报告从SDK行业现状、合规风险、安全风险及安全措施建议等方面展开分析,旨在为SDK和App开发者提供参考,推动行业生态健康发展。
主要观点
- SDK在App开发中被广泛应用,已成为App功能实现的重要工具。
- SDK的使用带来了个人信息收集、数据传输、代码安全、恶意行为等多重风险。
- 国家和行业对SDK的合规与安全问题已引起高度重视,出台多项政策和标准进行规范。
- SDK安全需贯穿其整个生命周期,涉及设计、开发、测试、分发、集成和运维等多个环节。
- 开发者需采取技术手段和管理措施,防范SDK带来的安全漏洞和恶意行为。
关键信息
一、SDK行业发展现状
-
SDK应用广泛,行业发展持续活跃
- SDK种类繁多,覆盖广告、推送、数据统计、地图、第三方登录、支付、Crash监控、人工智能等多个领域。
- 常见SDK类型及供应商如下:
- 广告类:广点通、力美、友盟、TalkingData、有米、多盟等
- 推送类:极光推送、个推推送、Mobpush、友盟推送、百度推送、云巴推送等
- 数据统计分析类:Appsee、Mixpanel、Google Analytics等
- 地图类:腾讯地图SDK、百度地图SDK、凯立德SDK、googlemapSDK等
- 第三方登录类:QQ互联、微信开放平台、微博开放平台等
- 支付类:微信支付、支付宝、百度钱包、银联、Apple Pay等
- Crash监控类:Bugly、Umeng、firebase等
- 人工智能类:腾讯AI开放平台SDK、Face++、百度AI开放平台等
-
App集成多款SDK,形成共生关系
- 国内App平均集成超过20款SDK,体育运动类、医疗健康类、时尚购物类App集成数量较多。
- 部分SDK存在频繁自启动、动态加载、敏感信息收集等行为,可能引发安全问题。
二、SDK的合规风险
-
SDK未经用户同意收集个人信息
- SDK可能通过后台操作或自启动等方式,未明确告知用户即收集个人信息。
-
SDK超范围收集个人信息
- SDK可能收集与功能无关的个人信息,甚至涉及敏感数据如通讯录、地理位置等。
-
SDK未经用户授权使用个人信息
- SDK可能在未获得用户授权的情况下,将个人信息用于其他目的,如广告精准营销、数据共享等。
-
SDK违规传输个人信息
- 未加密传输或错误配置可能导致个人信息泄露。
-
App对嵌入SDK的安全管理监督不足
- App对SDK行为缺乏有效监控,容易引入合规风险。
三、SDK的安全风险
-
SDK安全漏洞问题不容忽视
- 漏洞类型包括代码源文件安全、内部数据交互安全、本地数据存储安全、通信数据传输安全、防御检测等。
- 常见漏洞包括Web组件远程代码执行、ContentProvider数据泄露、Activity组件隐私泄露、Manifest不安全属性配置、源码泄漏、随机数加密破解、HTTPS敏感数据劫持等。
-
SDK的恶意行为带来隐藏风险
- 恶意行为包括流量劫持、资费消耗、隐私窃取、静默下载安装、广告刷量、恶意广告、勒索、挖矿、远程控制、剪切板劫持等。
- 恶意SDK可能通过动态更新机制隐藏恶意行为,影响用户数据安全和隐私。
四、面向开发者的安全措施建议
-
面向SDK开发者
- 遵守《个人信息保护法》《网络安全法》等法律法规,合法合规收集和使用个人信息。
- 将安全与合规贯穿SDK整个生命周期,遵循“合理、最小、必要”原则。
- 向App开发者提供合规与安全开发指南,明确告知SDK收集信息的类型和目的。
- 与App开发者签订合作协议,明确双方在个人信息保护方面的责权。
-
面向App开发者
- 选择合法、合规的第三方SDK,建立SDK安全规范。
- 依法依规处理与SDK相关的个人信息,确保用户知情权和选择权。
- 完善与SDK提供者的合作协议,动态监测SDK安全性。
- 定期进行安全评估,及时修复已知漏洞或替换高风险SDK。
附录一:SDK安全实践
- 信通院发起“SDK安全专项行动”,制定评测方案和指标体系,已开展三轮评测。
- 腾讯推出“灵犀隐私保护平台”,提供SDK合规检测和分析服务,支持App一键获取合规SDK列表。
- 腾讯云移动合规检测平台支持自动化检测SDK与App的隐私合规问题,涵盖多个检测点。
附录二:SDK安全关键技术
-
SDK研发环境
- SDK开发需考虑代码安全性、依赖项管理及分发方式(如Jar包、ARR包)。
-
SDK安全防护技术
- 包括代码混淆、代码加密、SO加固等,用于保护SDK核心逻辑不被破解和篡改。
-
SDK安全检测技术
- 从来源安全性、代码安全性、行为安全性等方面进行检测,包括:
- 来源检测:检查SDK提供者信息、安全能力、隐私政策等。
- 代码检测:检查是否存在恶意代码、安全漏洞、敏感权限申请等。
- 行为检测:检查SDK是否涉及敏感行为、权限使用、数据传输等。
- 从来源安全性、代码安全性、行为安全性等方面进行检测,包括:
附录三:常见SDK安全风险
- 包括Web组件远程代码执行、ContentProvider数据泄露、Activity组件隐私泄露、Manifest不安全属性配置、源码泄漏、随机数加密破解、HTTPS敏感数据劫持、系统组件本地拒绝服务、Intent消息使用风险、Keystore漏洞、私有文件泄漏、第三方SDK漏洞、AppKey信息泄露、目录遍历、ContentProvider组件本地SQL注入、私有目录写漏洞、Fragment框架层注入、Scheme SQL注入、弱加密算法等。
总结
SDK在移动应用生态中发挥着重要作用,但也伴随着显著的安全和合规风险。开发者需加强安全意识,遵循法律法规,采用技术手段进行防护和检测,以保障用户数据安全和App运行安全。同时,行业需推动标准化评测和合规管理,共同构建安全可靠的SDK生态。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载