(SBOM)
01 标准化
要使 SBOM 能被广泛应用,并且能被自动读取,其交换格式则必须符合标准规范。
业界常用的两个标准是 SPDX 和 CycloneDX。这些标准旨在建立SBOM输出的统一性,以便当使用两个不同的 SBOM 生成工具,生成同一软件的 SBOM 时,他们能产生相同的结果。
这些格式可以定制为:包含、排除或链接到某些信息,例如许可证、版权和漏洞,具体取决于用例和垂直行业。
需要注意的是,SPDX 和 CycloneDX 只是描述 SBOM 文件结构的标准,但不代表展示的信息是完全准确或全面的。一旦 SBOM 在生成过程,工具将错误信息输入,最终输出的SBOM文件虽然格式标准,但信息也是有误的。
02 全面性
几乎所有的软件应用程序中,最大的攻击面都是由开源组件组成。开源组件安全影响范围之广,我们从史诗级漏洞Log4j 漏洞事件中就可清晰了解到。
所以,对于大多数组织来说,保护软件供应链和信息基础架构,优先级最高的措施就是:快速识别和修复开源软件漏洞。
很多人都认为, SBOM 只是一个开源软件(OSS)库存。所以,大多数软件组件分析(SCA)供应商在生成的SBOM中,只列出了OSS组件,以及不同级别的传递依赖关系。但是仅仅考虑OSS是不够的,因为其他非开源软件组件也可能成为软件供应链安全隐患。系统漏洞可能源于所有类型的代码,而不仅仅是开源。
所以,拥有一个能详细展示软件内部所有成分(包括自定义代码、开源组件和第三方非 OSS 组件等)的SBOM,至关重要。
03 互操作性
SBOM 是静态文档。所以,如果企业使用SBOM只是为了检查软件,除此之外什么也不做,那么从软件SBOM中获得的价值就非常有限。SBOM的使用,重点在于发挥它的“互操作性”,让其加入到软件供应链的风险管理中去。
接下来,将为大家详细展开:“可操作性”的SBOM,在软件供应链安全风险管理中的三大应用方向:集中管理、风险定位、安全告警。
1. 集中管理
随着社会分工的细化,以及技术的复杂化,企业为满足高效高质完成产品迭代的需求,将大部分软件的研发和方案编写、实施交给了相关的专业厂商。
尤其是大型企业,软件供应商数量众多,不同供应商软件内部组成成分、来源、安全状态都存在较大的差异。这时,则需要供应商们提供标准统一的SBOM文件,并通过系统对SBOM进行集中管理。
2. 风险定位
当被广泛开发者应用的组件存在新的0day漏洞时,企业可以通过查询旗下所有软件系统的SBOM,进而从大量软件中定位到引用了该组件的所有软件系统。
但是,当软件数量达到上百数千个的时候,手动的检查操作显然不现实。因此,倘若通过一个界面,便可快速从成千上万个软件的SBOM中,定位到引用了目标组件的软件,企业的软件供应链风险管理能力将得到显著提升。
3. 安全告警
企业还可将SBOM与威胁情报、漏洞管理系统进行集成,以便在新的零日漏洞浮出水面时,可以快速、自动化定位到存在安全风险的软件应用,进行及时安全告警,推送给软件供应链安全管理员。
04 SBOM不是灵丹妙药
一个完整的SBOM,尽管非常重要,但也只是软件供应链风险管理中的一小部分。
就像我们吃东西一样,我们同样也会考虑食品加工制作的全流程,是否存在危害健康的隐患。例如:我们除了考虑食品制作原料是否存在未知成分之外,还会关注其违反了卫生管理规定等等其他各种各样的问题。软件供应链安全治理,同样的也是一件复杂的事情。
确保软件产品可以安全使用,需要做好软件供应链全流程的管控,而不仅仅是拥有 SBOM。
网安云SBOM管理平台: https://wanyun.cn/Product/SBOM
本文为外文翻译,原文为:Building a Better SBOM