“软件物料清单”(SBOM) 是软件的嵌套清单,是组成软件组件的成分列表,列出和记录软件组件,有效地显示了整个供应链。
SPDX 和 SWID 与 SBOM 非常类似
软件产品的开发制造与实物类产品的开发制造本质是一样的,SBOM = BOM of Software。
有制造业从业经验的读者一定明白 BOM 在企业中的核心地位,类推来说,SBOM 其实也是软件企业的战略核心。
制造行业中的一个术语,物料清单 (BOM) 跟踪汽车、电子产品和食品等物品中存在的组件、零件和原材料。BOM 本质上用作生产路线图,详细说明每个组件在整个供应链中的旅程。
通过使用 BOM,公司可以快速识别和修复生产问题。例如,当 2016 年发现有缺陷的高田安全气囊时,汽车制造商能够通过 BOM 中包含的零件记录跟踪所有受影响的车辆。有了这些数据,制造商可以快速查看受影响零件的列表并发出召回警报。简而言之,BOM 可提高安全性和性能并加快问题解决速度。
今天的大多数软件都包含一系列复杂的第三方软件组件,既有专有的,也有开源的。在处理一组复杂的部件时,保持所有项目和源位置的运行列表至关重要。否则,您将很难监控正在使用的组件,这可能会导致代码过时或不安全。
软件 BOM 或 SBOM 是专门应用于软件的一系列元数据。关键信息包括组件名称、许可证信息、版本号和供应商。这通过提供所有详细信息的正式列表来降低生产者和消费者的风险,使其他人能够了解他们的软件中的内容并采取相应的行动。
SBOM 对软件行业来说并不陌生,但随着开发复杂性和成本的不断增加,它们变得越来越重要。最近,它们已成为许多行业的标准要求。
只是,以前并没有 SBOM 这样的词汇来对这种价值进行理论化的总结与探索。
开发软件是一项具有挑战性且通常耗时的任务。造成这种情况的最大原因之一是很难为新问题创建解决方案。在现实世界中,软件工程师会将复杂的问题分解为更简单的问题,这使他们能够采用迭代方法。软件工程师通过使用开源软件库来实现这一点,但这会面临几个挑战:
- 您如何确定软件使用了哪些开源库?
- 如何判断这些开源库是否安全?
- 这些开源库什么时候升级?
这些问题无法消除,但如果我们有了 SBOM,是的在开发、构建和维护阶段,就可以从全局上掌握软件的生命周期,消除软件对核心技术人员的依赖。
SBOM 的理念是一个新事物,需我们在实际工作中实践并总结。
参考:
内容目录