2022年04月14日 09:44
近年来,伴随着移动互联网应用(application, app)的迅猛发展,软件开发工具包(software development kit, sdk)也逐渐走进大众视野。根据工信部《2021年上半年互联网和相关服务业运行情况》数据,截至2021年6月底,国内一款app平均集成超过20款sdk。sdk作为软件开发中常用的服务调用方式被广泛应用于app开发中,为app日益丰富的功能实现提供了便捷方案,降低了开发成本。然而,随着移动互联网安全形势不断变化,sdk可能存在的安全风险、恶意行为,以及隐藏在app背后不透明地收集使用个人信息等问题也日渐凸显,为移动互联产业的健康有序发展带来了一定影响。“安全发展、标准先行”,在当前复杂的安全形势下,研制sdk相关安全标准为sdk行业安全水平整体提升提供了重要助力。
一、标准研制思路
中国信息通信研究院(以下简称中国信通院)牵头研制的《移动互联网应用程序sdk安全规范》(以下简称标准)于2021年9月10日在中国互联网协会正式立项。在标准编制过程中,中国信通院汇聚多方力量,吸收行业从业者宝贵经验,联合腾讯云计算(北京)有限责任公司、深圳凡泰极客科技有限责任公司、深圳市网安计算机安全检测技术有限公司、北京腾云天下科技有限公司、深圳市和讯华谷信息技术有限公司、北京贵士信息科技有限公司、每日互动股份有限公司、北京数智鑫源科技有限公司等多家单位,按部就班完成编制工作,并推进至送审阶段。
本标准研制过程中充分考虑了sdk产品的技术特性,在app开发中,sdk常以“功能包”“服务包”的形态出现,具有泛用性、灵活性、便利性等特点。sdk提供方将原本复杂的服务、功能封装后,app开发者只要通过集成sdk的方式,即可如“搭积木”般在app中引入相关服务,在简化app开发流程、丰富产品形态的同时,隐藏了服务实现逻辑,保护服务提供方的商业秘密。《移动互联网应用程序sdk安全规范》标准聚焦sdk开发、运维环节,通过明确相关环节安全要求,力求为sdk开发者提供有益的思路,减少sdk产品潜在安全风险、漏洞,同时给出各项要求的测评方法,为app开发者、相关机构强化测评能力、健全技术手段提供指引,帮助相关方发现并规避sdk安全风险。
二、标准安全要求简析
sdk在设计开发时聚焦于功能的实现,安全风险难以完全避免,需要通过规范安全开发、运营流程尽量减少风险。标准将sdk重点安全要求划分为五大方向,除基础安全外还包括:
代码及资源文件安全
当前,大量移动互联网sdk基于安卓系统及java语言环境开发,灵活性较大,且缺少统一的分发平台与安全审核机制,针对sdk代码及资源文件安全编译、存储等提出要求,能够有效降低重要逻辑、业务实现方法等安全信息泄露的风险,保护企业及用户的合法权益。
数据存储安全
在业务功能的实现过程中,部分sdk在用户终端设备上创建本地文件,用于存储运行所需的数据,约束sdk本地数据存储安全措施可以有效规避如重要数据明文存储、本地数据访问控制措施不足等问题。
数据交换安全
与服务端的数据交互是多数sdk实现业务功能的必要手段,但如果重要数据、个人信息过程中以明文方式基于不安全的协议传输,可能导致数据泄露,威胁产品安全及用户权益。对sdk数据传输机制进行规范,可以降低数据在传输过程中被截获、窃取的风险,是提高产品安全水平的重要一环。
重要组件安全
从技术业务逻辑上看,sdk产品常作为某类业务功能、服务的实现手段,为宿主app提供附加功能或服务,故无法避免与宿主app、系统组件、其他应用进行联调、交互。针对其这一特征,对sdk重要组件、联调机制、安全配置提出要求,不仅可以降低组件不安全调用引发安全风险的可能性,而且可以提升sdk开发集成的便利性,为产品的应用提供助力。
根据上述思路,本标准在第五章内根据sdk实际开发、运行、维护中面临的主要安全挑战提出了三十余项安全要求,覆盖sdk开发运维的基本安全机制、数据存储、数据交互、重要组件、代码及资源文件等方面,并在第六章中给出了对应的测评方法。标准测评方法在紧扣安全要求的同时,吸纳sdk厂商、app厂商、用户等各方诉求,综合考虑测评成本及实施难度,给出具体方法介绍的同时提供了明确的结果判定准则,可以有效指导sdk安全测评工作的开展。
三、标准应用持续推进
2021年,中国信通院安全研究所大数据应用与安全创新实验室发起“sdk安全专项行动”,通过长期前瞻研究和实践探索,以《移动互联网应用程序sdk安全规范》标准和实践经验为基础,建立了完整的sdk评测方案和指标体系。
目前,“sdk安全专项行动”已顺利完成三期评测工作并已启动第四期评测,得到业内积极反馈和广泛认可,已有近三十款sdk通过检验并获颁证书。与此同时,中国信通院联合安全企业、互联网厂商、评测机构多方力量,持续推动标准实践应用,聚焦行业热点,构建交流平台,满足sdk厂商、app开发者、最终用户多方需求,助力“sdk厂商安全高效开发、app开发者规范透明集成、最终用户安心积极使用”的健康生态发展。