代码|App供应链安全|第三方SDK自动化安全合规检测

App已深入到用户的生活中 , 各类App应用程序迅速普及 , 在促进经济社会发展、服务民生等方面发挥了重要作用 。 随着市场的快速迭代 , 技术的不断创新 , App开发者为了提升产品研发效率、降低成本 , 经常嵌入第三方SDK(Software Development Kit, 软件开发工具包)以快速实现某些基础、特定的功能 。
通付盾北斗团队对市面上的SDK做了深度分析与统计 , SDK主要类型有以下几类:框架类、广告类、推送类、统计类、地图类、第三方登陆类、社交类、支付类、客服类、测试类、安全风控类、Crash监控类、人脸识别类、语音识别类、短信验证类、基础功能类等 。 各类App平均使用第三方SDK的数量在10个以上 。 例如 , 我们检测了某款App , 其用到的第三方SDK多达20多款 。 具体情况见以下图1 。

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

图1某App使用的第三方SDK情况
不难看出 , SDK依附于App已渗入到各个行业的大量App中 , SDK的生命周期取决于App的生命周期 。 SDK与App的关系可见图2 。

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

【代码|App供应链安全|第三方SDK自动化安全合规检测】 图2SDK使用场景示意图
SDK本身不具备运行能力 , 必须等待宿主App调用才能被执行 , 完成特定功能 。
第三方SDK无疑给App开发者带来了极大便利 , 但与此同时SDK的安全与合规问题也逐渐漏出水面 , SDK收集个人信息和安全问题也已得到了各方的关注 。 2019 年以来各监管部门均将SDK违法违规收集个人信息作为重点审查对象之一 。 涉及SDK安全与合规的主要标准、规范见下表1 。

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

表1涉及SDK安全与合规的主要标准、规范
近期RSAC2021落下帷幕 , RSAC沙盒大赛冠军是一家专注于代码安全的厂商 , 这说明供应链安全开始成为一个全球关注的热门新兴领域 , 这当然和美国供应链安全事件的大规模爆发是分不开的 , 同时从整个安全架构层面上来分析 , 供应链确实是目前安全最脆弱一环 , 从今年的HW数据来看 , 有30%左右的攻击都是来自供应链 , 而供应链安全里最重要的一环就是源代码的安全治理 。
下文从SDK自动化检测 , 以安全性与合规性两个层面重点展开描述 , 简述相关检测原理 。
SDK安全检测
被检测的SDK可以单独以jar、aar、zip、so等形式存在 , 也可以集成到具体应用中 , 在掌握全面的移动安全风险信息前提下 , 对SDK进行检测 , 检测流程主要分为待检测包的预处理、特征扫描、数据处理三大步骤 。
首先 , 对应用程序安装包或者SDK包进行反编译 , 得到代码文件;

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

图3某SDK反编译后部分代码
然后 , 对反编译后的代码文件进行特征扫描 , 查找相应的符号特征信息 , 并与国家漏洞信息库进行完整的特征匹配 , 记录漏洞的特征信息、代码位置及风险信息;
最后 , 对特征扫描生成的漏洞信息数据集整合处理并生成检测报告 , 报告中可展示具体的安全风险问题、漏洞位置、修复建议等 。

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

图4SDK安全检测流程
SDK在开发时聚焦于功能实现而忽视了安全性 , 导致SDK本身存在安全漏洞 。 这些漏洞可被恶意攻击者利用 , 对嵌入该SDK的大量App及其最终用户的数据及隐私安全造成损害 。 我们对市场上主流App及SDK做了检测分析 , 第三方SDK相关的漏洞安全包括:编码规范检测、发布规范检测、代码安全检测、环境安全审计检测、组件安全检测、数据安全检测、安全漏洞检测7个层级 , 60多项潜在的安全风险 。

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

图5某第三方SDK组件漏洞
下表2列出了主要的SDK安全漏洞 。

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

表2SDK主要安全漏洞
App中嵌入的第三方SDK越多 , 安全漏洞涉及的范围就会越广 , App开发者应当谨慎使用第三方SDK 。 值得一提的是:存在一类SDK利用动态加载技术实现远程控制恶意代码执行 , 因为恶意代码在本地不存在 , 执行时才被下载到本地执行 , 逃脱了杀毒类软件的扫描 , 隐蔽性非常强 , 对最终用户造成了极大伤害 。
SDK合规检测
一些常见的SDK , 如支付类SDK、导航类SDK , 本身的功能就与个人信息有密切关系 , SDK常见搜集的信息包括手机设备信息(如IMEI、IMSI等设备唯一识别码)、网络信息(如IP地址、MAC地址、Wi-Fi热点等)、手机状态信息(如已安装/运行中的应用信息)、用户行为信息(如锁屏、安装、升级、卸载应用软件)、用户个人信息(如电话号码、地理位置、通话记录)等 , 其搜集的信息范围很广泛 。 SDK作为App的一部分 , App需要对SDK的行为承担法律责任 , 《数据安全管理办法(征求意见稿)》、《个人信息安全规范》、《移动互联网应用程序(App)收集使用个人信息自评估指南》明确指出App应如何处理与SDK的关系 。
SDK经常在App背后收集用户个人信息 , 这一类行为难以被发现 , 需要依托自动化动态类的检测帮助识别 , SDK依托于App运行 , 因此可以对App直接进行检测 , 找出SDK运行部分即可 。
主要思路:定制化ROM及真机设备 , 在定制化ROM中加入探针和监听器 , 将AppPUSH到定制设备中运行 , 通过脚本控制App在定制化ROM自动运行 , 遍历App全部功能 , 定制化ROM中的探针与监听器记录整个App运行过程中产生的数据、权限申请行为、数据采集行为等 , 依据权限检测标准 , 主动发现App及SDK未经授权擅自收集、过度和非必要收集、频繁索权和强制收集、私自共享个人信息给第三方等违规问题 。 定制化ROM+动态检测可准确地找出SDK中存在的敏感权限调用及过度收集个人信息行为 。

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

图6动态检测分析流程示意
下面提供了一组具体实现:
分析第三方SDK信息 。 通过逆向工具分析应用内smali文件、AndroidManifest.xml等关键信息 , 分析并获取应用包含的第三方SDK信息 , 如下图7

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

图7某应用内包含的SDK列表
通过定制化ROM+动态检测收集运行时的权限调用情况、记录调用点、记录个人信息采集情况及其他运行数据 。 在权限调用事件分析基础上 , 对检测过程中权限调用事件与SDK进行匹配 , 生成关联SDK的调用分析数据 , 可以检测到具体权限调用时间点、权限申请位置、权限申请目的等信息 。 如下图8和图9 。

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

图8运行时权限调用事件列表

代码|App供应链安全|第三方SDK自动化安全合规检测
文章图片

图9某SDK在应用运行时权限调用情况
从近期的安全事件中以及前期监管通报的案例中能够看到 , 多起案例均是App集成的SDK搜集个人信息 , 但没有在隐私政策提及SDK收集信息的动作 , 最终导致监管通报批评 , 造成不良舆论 , 甚至App被直接下架 , 对业务造成影响 。
通付盾北斗团队凭借自身在移动安全领域与隐私保护领域研发服务实力 , 已将SDK安全与合规检测完全云服务化 , 通付盾云SDK检测服务依托于先进的动静双结合检测引擎技术 , 结合云真机检测平台 , 自动收集与分析市场上出现的SDK , 依据检测标准 , 对各类App及SDK进行全面检测 , 提供专业的检测报告和修改建议 。
欢迎登录通付盾云体验SDK检测服务 。
团队介绍
通付盾北斗团队(负责安全合规产品)于2013年成立 , 8年来专注于移动应用全生命周期的安全研究 , 积累了丰富的移动应用安全实战经验 , 不断保持技术研发与创新 , 致力于为企业提供移动应用全生命周期安全工程解决方案 。 自研了符号执行、动态沙箱、大数据分析、VMP虚拟机保护、iPA动态壳保护等多个核心技术 。 团队所研发产品已服务于上千家各行业客户 , 深入到政府、军工、能源、金融、运营商、教育、医疗、传媒、交通、互联网等行业 , 为数十亿级移动终端提供了移动应用安全保障 。 其中移动应用安全合规检测成功服务国测、军测、公安和工信部 , 实现国家级测评机构全覆盖 。
“技术、安全、创新”

    推荐阅读