作者简介
周京 就职于工商银行业务研发中心蓝军团队,从事安全技术研究工作,主要关注应用安全、人工智能等技术领域。
第三方SDK是潜藏在移动应用中的不确定因素,本文中,工商银行蓝军对第三方SDK嵌入存在的信息安全风险进行了梳理分析,并针对性地给出了风险防控的思考和建议。
一、背景
7月16日,央视3·15晚会拉开大幕,晚会曝光了某些第三方开发的SDK包存在违规收集个人隐私信息的高风险行为,将第三方SDK的风险和危害直接呈现在公众面前,工信部要求严查涉事企业,并责成国内应用商店针对此类风险开展地毯式排查。
事实上,第三方SDK导致的风险事件近年来从未间断:“爱心推”SDK遭黑客预留后门并植入恶意代码;猎豹App中嵌入的第三方SDK违规采集客户信息,遭美国政府起诉。SDK导致的安全事件层出不穷,影响范围极广。
第三方SDK具有安全风险隐蔽性强、危害大、监管困难的特点,其相对不可控性使得整个相关产业链遭受严重的信任危机,给应用安全管理带来了全新的挑战。因此,提升针对第三方SDK嵌入的整体安全防护水平已经成为当前急需解决的一个问题。
二、风险分析
结合丰富的攻防实战经验,我们认为第三方SDK的风险主要包括两大类:一是由于自身健壮性不足导致被外部攻击,二是第三方代码在利益驱动下的主动恶意行为,主要包括国家反病毒联盟定义的八大恶意行为。所以,在第三方代码嵌入审核工作中,需要在原有的安全要求上,同步增加对相关恶意行为的关注和审查,全面防控安全风险。
第三方代码嵌入风险分析
1、自身脆弱性导致风险
通过针对App内嵌入第三方SDK场景进行威胁建模,使用“STRIDE”模型对存在的攻击面和风险进行分析,相关攻击面及风险如下图所示。
STRIDE模型
自身脆弱性风险分析
2、第三方恶意行为导致风险
国家反病毒联盟对App的恶意行为进行了汇总归纳,具体包括八大恶意行为,其风险及威胁情况见下表。
APP恶意行为分析表
我们认为,当前企业面临的安全风险主要由自身脆弱性和第三方恶意行为导致。虽然部分风险可以通过现有的安全审核流程、安全厂商测评等手段进行控制,但仍缺少体系化的风险控制流程。为防范上述风险,企业仍需要建立一整套安全防护优化方案,对相关风险进行整体防控。
当前风险总结
三、风险防护手段
针对与第三方合作过程中蕴藏的各类风险,参考业界实践与实际工作经验,我们认为,可通过合同约束、安全审核、隔离防护、监控处置等手段相结合的安全风险管控方法,从四个维度实现全生命周期、全局体系化对第三方代码的引入进行风险控制。
防护方案
1、合同约束
在目前第三方SDK嵌入的开发模式下,合同约束方面管控思路主要包含以下四方面:
合同约束
2、安全审核
关于安全审核的安全防护优化建设建议分为标准建设和工具建设两方面。
标准建设:对第三方提交的报告内容要进行审核的内容进行明确和定义。建立第三方安全检测报告审核规范,制定合作方检测报告的审核流程、审核要求、审核方法,确保合作方提交的第三方检测报告等满足相关要求,与开展安全检测具有同等效果。
工具建设:建设SDK安全审核扫描系统与恶意行为审核系统。
3、隔离防护
第三方SDK隔离防护方面的建设思路如下:App加固后,嵌入的SDK会同时被加固保护,包括代码混淆、加入花指令、代码逻辑扁平化处理等保护,防止代码被合作方调试、逆向或篡改。
4、监控处置
由于SDK中存在通过热更新推送的方式嵌入恶意代码的情况,故需要通过合作方安全监控技术手段,对合作方应用或组件的运行情况进行监测。在出现异常或违规行为时对应用进行控制,确保合作方在运行的各个周期符合安全要求。需要建设的内容包括终端监控组件、云端检测分析引擎等。
监控处置
四、风险处置建议
经过评估与分析,建议采取如下的防护手段进行风险处置,以有效控制第三方代码嵌入的各类风险。
风险处置情况表
确保App所集成的SDK安全可靠,是保障业务健康发展的一道红线。随着个人信息保护法规的实施落地与企业数字化转型进程加速,越来越多的企业正在认真审视自身应用安全管理,期冀实现稳定有序的发展。建立SDK全生命周期管理制度,保障软件供应链安全,降低业务安全风险,是企业未来需要慎重考虑的议题。
声明:本文来自FCC30+,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。