官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
随着企业对开源软件的使用增加,开源依赖项(开源的组件,通常称为依赖项)中携带的安全漏洞和其他安全风险无处不在,企业必须密切关注自身的软件使用包中的潜在安全威胁。为了解决并跟踪开源软件中存在的安全问题,SCA技术应运而生。
一、什么是SCA
SCA是一项通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。软件成分分析是任何安全开发生命周期的标准基本部分,及时发现问题可以降低成本,提高敏捷性,使软件更安全,并帮助开发团队学会将安全性纳入其规划和设计决策中,对于维护软件安全起到了重要作用。
二、SCA的特点
SCA(Software Composition Analysis)软件成分分析,通过检测软件许可证、依赖项以及代码库中的已知漏洞和潜在漏洞来分析开源组件,使安全团队和开发人员能够:
1、为所有应用程序创建准确的物料清单(BOM)
BOM 描述应用程序中包含的组件、所用组件的版本以及每个组件的许可证类型。BOM 可帮助安全专业人员和开发人员更好地了解应用程序中使用的组件,并深入了解潜在的安全和许可问题。
2、发现并跟踪所有开源组件
发现源代码、二进制文件、容器、构建依赖项、子组件以及修改和操作系统组件中使用的所有开源。这一点尤其重要,因为公司会考虑广泛的软件供应链,包括合作伙伴、第三方供应商和其他开源项目。
3、管理开源许可证合规性并降低风险
许可证合规性在组织内的各个级别(从开发人员到高级管理层)都至关重要。SCA 强调了制定策略响应许可证合规性和安全事件。
4、实现主动和持续监控
持续监控安全、漏洞问题,并为当前和交付的产品中新发现的漏洞创建可操作的警报。
5、无缝集成到构建环境中
在 DevOps 环境中集成项目安全性和许可证扫描,以便扫描代码并识别构建环境中的依赖项。
三、几款开源SCA工具
大部分开源SCA都没有直接的生成开发团队所需要的漏洞安全信息,需要自己来维护依赖项的漏洞信息或结合第三方组件维护漏洞信息。OSV-Scanner能够直接通过google官方维护的标准化漏洞数据库,生成组件依赖漏洞信息,可更快捷方便的实时跟踪组件相关风险。
四、OSV-Scanner
OSV-Scanner是google于近期推出的一款100%开源免费的开源软件漏洞扫描SCA工具,OSV-Scanner是基于google去年推出的开源漏洞(OSV)模式和OSV.dev(OSV.dev 采用OpenSSF Vulnerability format的标准格式聚合多源漏洞数据,为解决多源漏洞数据格式不一致提供了一套标准定义)服务开发的。OSV-Scanner的特性如下:
1、支持包括go、python、java等16类常用语言生态系统的漏洞扫描能力
2、支持基于 Debian 的 docker 镜像扫描
3、支持基于漏洞过滤的扫描能力
4、支持基于软件物料清单(SBOM)的扫描,格式包括标准SPDX、CycloneDX
5、支持基于标准包(purl)路径的扫描
6、支持基于文件目录的扫描方式
7、基于标准JSON格式输出扫描结果
五、总结
竞争激烈的市场环境促使软件开发人员在软件项目中要依赖堆积如山的依赖项,即将外部软件库依赖到项目中来添加相应功能,每个依赖项都可能包含现有的已知漏洞或是未知的新漏洞,因此自动化的跟踪扫描十分重要。OSV-Scanner扫描程序通过将代码和依赖项与已知漏洞列表进行匹配,并在需要程序补丁或程序更新时通知,提供此自动化功能。除此之外,还生成可靠、高质量的漏洞信息,缩小开发人员的软件包列表与漏洞数据库中信息之间的障碍。后续OSV-Scanner将支持CI、C/C++语言生态、VEX,OSV-Scanner扫描程序将会在供应链安全方面成为一个不错的SCA技术解决方案。