软件物料清单 (SBOM)是一种提供软件项目中使用的组件和依赖项的详细清单的文档。 它还列出了软件中使用的所有库、框架及其各自的版本。 当谈到开源软件(OSS)时,SBOM 在确保透明度、安全性和合规性方面可以发挥关键作用。
使用 SBOM(尤其是在 OSS 中)使组织能够了解组件和依赖关系、改善风险管理等等。 下面我们概述了这些好处。
OSS 通常会包含各种第三方组件和依赖项。 SBOM 允许开发人员和用户清楚地了解软件中使用的所有组件。 这包括开源库和框架及其特定版本。 这种可见性有助于了解软件的组成、识别潜在的漏洞以及跟踪与开源组件相关的任何许可义务。
与任何其他软件类似,OSS 也容易受到安全漏洞的影响。 通过 SBOM,组织可以跟踪开源组件的版本并随时了解与这些版本相关的任何已知漏洞。 这样可以通过及时应用补丁或更新来缓解和报告任何安全问题,从而实现主动漏洞管理(参见RFC8615 )。 通过拥有最新的 SBOM,组织可以评估漏洞的影响并采取适当措施来保护其软件。
近年来,软件供应链安全已成为人们关注的焦点。 SBOM 通过提供软件中使用的组件及其来源的透明度,有助于增强供应链安全性。 它还允许组织评估他们所依赖的组件的可信度和安全态势。 通过 SBOM,组织可以识别和减轻与受损或恶意组件相关的风险,从而降低软件供应链攻击的可能性。
OSS 鼓励合作和社区参与。 SBOM 通过为不同贡献者和利益相关者提供对软件组件的共同理解来促进有效协作。 它通过清楚地识别需要更新或修复的组件来帮助协调补丁管理工作。 当所有参与者都可以参考共享的 SBOM 来解决安全漏洞和其他问题时,开源社区内的协作会变得更加高效。
在某些行业,监管框架要求组织展示其applications或系统中使用的软件组件的透明度和控制力。 SBOM 提供满足这些合规性要求所需的文档。 它允许组织证明尽职调查、可追溯性和对相关法规的遵守,特别是在 OSS 的安全和许可方面。
OSS 通常受特定许可证的管辖,这些许可证规定了如何使用、修改和分发软件。 SBOM 提供了所有开源组件及其相应许可证的全面概述。 这有助于组织确保遵守他们所使用的 OSS 的许可条款。 通过了解许可义务,组织可以就其软件的分发和使用做出明智的决定,同时避免任何法律或合规问题。
一些政府和银行业和医疗保健业等受到严格监管的行业的组织正在倡导使用 SBOM,或考虑将使用 SBOM 作为一项要求(无论是在内部还是对其供应商)。
构建 SBOM 需要整个软件供应链中各个利益相关者的协作和参与。 通过让这些利益相关者参与并促进他们之间的合作,组织可以构建一个强大而可靠的 SBOM,以捕获有关软件组件的必要信息、增强供应链安全性并促进风险管理和合规工作。
以下是应参与该过程的一些关键个人或角色:
组织应该致力于构建一个 SBOM,以提供软件组件、其来源、依赖关系和相关安全信息的全面视图。 这使得软件供应链风险得到更好的管理并提高了整体软件安全性。
以下是构建 SBOM 的关键步骤:
SBOM 可能会因多种原因而失败或无法达到其预期用途。 应对这些挑战并确保 SBOM 的准确性、完整性和时效性可以帮助降低失败的风险。
以下是一些常见的失败原因,反映了构建 SBOM 的最佳实践:
总的来说,SBOM 是管理 OSS 复杂性的有价值的工具。 它促进开源生态系统内的透明度、安全性、合规性和协作。 通过提供软件组件、其版本和相关许可信息的详细清单,SBOM 使组织能够做出明智的决策、管理风险并确保其软件项目的完整性和安全性。