软件成分分析技术介绍

软件成分分析技术介绍

1.关于软件成分分析

SCA,Software Composition Analysis,软件成本分析是一种对二进制软件的组成部分进行识别、分析和追踪的技术。在开源软件日益盛行的今天,开源安全威胁成为企业组织无法回避的话题,与此同时,应用交付规模和频率的正在快速增长,软件成分分析对于安全合规风险管控和安全态势感知都是必不可少的能力。

2.基本原理

SCA 的目标是第三方基础组件/可执行程序/源代码等类型的以二进制形式存储的文件,包括但不限于源代码片段或 Package,可执行的二进制组件/程序,基础 lib,tar/tgz 压缩文件,镜像/镜像层,广义的软件构建过程等等。因此,所有以二进制形式存储的文件皆可以是其分析目标。

SCA 的方法不局限于具体的软件开发语言技术栈,即不关注是 Java、Python、C/C++、Golang 或者是 Node,还是 Docker(OCI)Image ,或者是广义的构建过程,而是从文件层面关注目标的各组成文件本身,以及文件与文件之间的关联关系以及彼此组合成目标的过程细节。简而言之,SCA 是一种跨开发语言的二进制文件分析技术。

软件成分分析分为两种模式,静态和动态。静态模式是使用工具对目标二进制文件进行解压,识别和分析各个部分的关系;动态模式则是依赖于活动过程,在活动执行的同时收集必要的活动元数据信息,通过数据的方式对目标组件各个部分之间的关系进行标定。动态模式主要针对组件缺乏自描述信息的场景,如 tgz 文件,而静态模式比较适合有自描述信息的文件,如 docker image。

软件成分分析技术介绍

3)研发平台提供交付管控能力
在研发平台进行流程推进时,对版本不合规供应链进行识别,然后提供流程阻断能力,这样的阻断能力能够有效防止携带不合规版本供应链的镜像发布到线上。

3.2 应用安全风险治理

大致的流程如上,区别在于这里需要安全扫描能力为供应链标注高、中、低危风险等级。

3.3 业务中台 SPI 治理

近些年业务中台的概念非常火,大家都在积极投入建设中台。业务中台的能力是通过业务 SPI Bundle 的方式提供给场景方调用的,随着业务中台能力的逐渐丰富,SPI Bundle 版本也会随之不断迭代,某些版本已经老旧或者存在安全漏洞也需要进行治理。
于是,我们就出现了 3.1 中的供应链治理诉求。

4.相关产品

目前商业化的产品都是偏工具性质的,距离企业级平台产品差距还是比较大。在开源领域 Google 提出的基于 Grafeas + Kirits 的模型是最符合云原生的、高度可扩展的。

软件成分分析技术介绍

5.更多资料

开源容器安全工具 Grafeas
https://www.oschina.net/p/grafeas

来源:feng1456

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月1日
下一篇 2020年7月1日

相关推荐