没有免费午餐——再探移动互联网软件供应链安全

admin 2023年2月21日13:04:39评论19 views字数 2805阅读9分21秒阅读模式

前情回顾:

有免费午餐——移动互联网软件供应链安全初探

软件供应链安全作为国家近几年新提出的网络安全理念,不再是针对软件供应链上单一环节进行安全防护,而是针对软件供应链全链路进行安全监控防护。

移动互联网软件开发具备开发工具链、第三方组件与开源组件等供应链要素不可或缺的特点。根据《2022年中国开源软件产业研究报告》显示,开源项目的数量从2017年的283万个增长到2020年的1500万个,在4年时间里提升了430%[1]。第三方组件与开源组件生态的繁荣发展,在为企业节省大量人力物力的同时,能够提高软件生产质量与业务的敏捷性。

没有免费午餐——再探移动互联网软件供应链安全

图1 2017-2020年开源项目数


在上文中,我们对移动互联网软件供应链安全的开发工具链、第三方组件与开源组件进行了系统性的讲解。本文将对第三方组件与开源组件的现状和甲方视角下的软件供应链安全管理进行展开讲解。


PART

01
第三方组件与开源组件的现状

2020年起,国家工信部依据《个人信息保护法》《网络安全法》《电信和互联网用户个人信息保护规定》等法律法规,持续开展对移动互联网软件是否存在侵害用户权益的行为的检查。其中,多个知名第三方组件存在违规收集用户设备信息的行为

没有免费午餐——再探移动互联网软件供应链安全

图2 工信部关于侵害用户行为的APP通报

谷歌为了降低第三方组件违规超范围收集用户敏感信息的风险,从Android 13开始,通过进程隔离以及明确定义API和数据的访问权限控制等手段,切断第三方组件利用宿主的权限超范围采集的通路,从而减少第三方组件在未经许可的情况下跟踪用户的应用使用情况数据[2]

同时,随着开源组件生态的繁荣发展,开源组件之间的依赖关系愈发复杂,若某个开源组件爆出安全缺陷,其引起的蝴蝶效应将带来十分严重的影响,攻击面将会由点及面呈现出爆炸式的放大效果。根据Veracode发布的2021软件安全状况报告可以了解到,当开发团队了解应用程序中漏洞信息时,3个星期的时间就可以修复50%的漏洞,若开发团队不了解其信息,则这一时长大幅增长到7个月以上[3]

因此,随着移动互联网软件的复杂度的增加,供应链全链路中的第三方组件与开源组件所带来的的安全风险可能成为攻击者的切入点


PART

02
甲方视角下的软件供应链安全管理

vivo为了给消费者提供易用的使用体验,开发了大量的移动互联网软件。vivo千镜安全实验室作为vivo专业的安全团队,在第三方组件与开源组件的引入、集成、测试以及运营等全阶段提供安全保障,确保第三方组件的应用安全与开源组件的使用合规,提升消费者的隐私安全体验。


2.1 引入前检测

第三方组件在引入阶段时,vivo千镜安全实验室会采用静态分析、动态自动分析和手工调试等多种方式,对第三方组件进行深度的安全和隐私评估,保障第三方组件不会存在侵害用户权益的行为。

开源组件在引入阶段时,vivo千镜安全实验室通过构建开源组件风险知识库,将引入组件与风险知识库进行匹配,从License、安全、合规等多维度生成开源组件引入报告。


2.2 引入后扫描

由于vivo的应用程序众多,如果对所有代码仓及分支进行人工审查,无疑会消耗巨大的人力。因此,vivo千镜安全实验室开发了软件成分分析引擎,其中包含正向扫描与逆向检测两个子引擎。软件成分分析引擎通过CI集成自动化触发代码仓扫描,实现自动化分析检测。同时,通过风险管控流程触发风险处理流程,将扫描结果通知到各负责人,从而确保第三方组件的应用安全和开源组件的使用合规。

没有免费午餐——再探移动互联网软件供应链安全

图3 软件成分分析引擎架构图


2.2.1 正向扫描

正向扫描引擎又称为源码扫描引擎,主要通过扫描代码仓的方式对各应用程序进行软件成分分析,进而扫描出应用程序所集成的第三方组件及开源组件。

在进行正向扫描之前,需要对应用程序的资产以及第三方组件和开源组件的特征进行收集。应用程序的资产包括代码仓、负责人等信息;第三方和开源组件的特征主要包括开发商、负责人、版本、文件HASH等信息。

正向扫描引擎包括gradle文件扫描、工程文件扫描以及代码片段扫描:

  • Gradle文件扫描指通过解析工程中gradle文件,获取通过gradle引入的第三方组件和开源组件;

  • 工程文件扫描指通过扫描工程中jar包或aar包,获取通过本地集成引入的第三方组件和开源组件;

  • 码片段扫描指通过扫描源代码,将源代码中代码片段与开源组件的知识库进行比对,获取代码引入的开源组件。

值得一提的是,正向扫描引擎能够检测出应用程序引入的第三方组件和开源组件的版本信息。当第三方组件和开源组件披露出安全漏洞时,能够通过正向扫描即时检测出引用问题组件的应用程序信息,从而提高安全响应效率。


2.2.2 逆向检测

逆向检测引擎主要通过对应用程序的反汇编路径使用特征指纹匹配的方式进行软件成分分析,进而扫描出应用程序所集成的第三方组件及开源组件。

在进行逆向检测之前,需要对第三方组件和开源组件的特征进行收集。由于逆向扫描主要对应用程序的反汇编代码进行扫描,因此需要将加固的应用进行脱壳预处理。

逆向扫描引擎对APK进行反汇编后,将反汇编的代码与组件的特征指纹进行匹配,从而得到扫描结果。


2.2.3 扫描结果

在正向扫描和逆向检测完成之后,会将结果综合成一份软件成分分析报告。在报告中会详细展示应用程序引入的组件信息与版本,并且与已管控的组件记录进行比对,直观查看不合规组件引用情况,确保第三方组件的应用安全和开源组件的使用合规。


PART

03
总结

随着数字经济时代的到来以及移动互联网的兴起,针对软件供应链安全的攻击趋势逐渐增强,移动互联网供应链安全也不可避免地受到冲击。vivo作为全球知名的手机厂商,建立了一套完整的移动互联网供应链管理流程,并且将其融入到软件开发生命周期中,严格控制第三方组件和开源组件的使用风险,始终致力为消费者提供完善的隐私保护体验!


参考文献:

[1] 2022年中国开源软件产业研究报告:https://report.iresearch.cn/report/202202/3931.shtml

[2] Android 13隐私沙盒:

https://developer.android.com/design-for-safety/privacy-sandbox/sdk-runtime#process-isolation

[3] 软件供应链安全白皮书(2021):

https://www.xmirror.cn/page/particulars?id=3641&type=xq&value=&file=/resurce/Uploads/upfile/20220715/62d12fe5d10d6.pdf


往期推荐:





Android中的SELinux机制介绍


密码困境与无密码认证


浅谈个人数据处理法律角色的判定


vivo 亮相第十届互联网安全大会,分享隐私保护实践


没有免费午餐——再探移动互联网软件供应链安全
关注我们,了解更多安全内容

原文始发于微信公众号(vivo千镜):没有免费午餐——再探移动互联网软件供应链安全

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月21日13:04:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   没有免费午餐——再探移动互联网软件供应链安全http://cn-sec.com/archives/1269226.html

发表评论

匿名网友 填写信息