软件物料清单

SBOM(软件物料清单)是软件应用程序中所有组件、依赖关系和许可证的结构化清单。 它提供详细的元数据,包括组件名称、版本、许可证、漏洞和依赖性,帮助企业跟踪开源和第三方软件,以实现安全、合规和风险管理。

您可以轻松地以标准化格式(SPDX、CycloneDX )导出 SBOM,并导入第三方 SBOM,同时使用 VEX 数据来满足政府和客户的要求。

在流水线运行过程中,有一些工具可用于生成 SBOM。 目前可用于生成 SBOM 的工具是

什么是软件包 SBOM?

软件包 SBOM 详细说明了软件项目中使用的所有软件包的所有信息。 它提供所使用的每个软件包的版本、许可证和漏洞信息。 软件包 SBOM 在微服务级别生成,架构中的每个微服务都会生成一个 SBOM。

SBOM 生命周期

SBOM 生命周期横跨微服务部署的所有步骤(CI、CD、CC 管道运行)。

  • 持续集成(CI)管道--在 CI 管道运行期间,会为每个已构建的微服务生成一个 SBOM。
  • 持续部署(CD)管道 - 在 CD 管道运行期间,会为所有已部署的微服务生成发布 SBOM。
  • 持续合规(CC)管道 - CD 管道运行完成后,CC 管道会持续监控已部署的应用程序。 在 CC 管道运行期间,会检索和扫描为 CI 管道中每个微服务生成的 SBOM。

SBOM 的生命周期
SBOM 的生命周期

持续集成管道中的 SBOM 生命周期

持续集成管道从应用软件库中构建可部署的工件。

当 CI 管道在 code-compliance-checks 步骤运行时,CRA 会运行并为资源库创建一个包 SBOM,并从中创建已部署的工件。 此软件包 SBOM 包含 CI 管道中正在构建的每个微服务所使用软件包的相关信息。 它提供了每个软件包的许可证、版本和漏洞信息。

该软件包 SBOM 存储在管道的证据锁中,以便在部署到生产过程中进一步使用。

持续部署管道中的 SBOM 生命周期

持续部署管道会收集所有证据并生成变更请求摘要内容。

当通过 CD 管道将软件包部署到生产环境时,将提取存储在证据保管箱中的软件包 SBOM。 这些 SBOM 汇总起来形成一个释放 SBOM。 版本 SBOM 将作为附件添加到变更请求中。

持续合规管道中的 SBOM 生命周期

持续合规管道在部署到生产阶段后,会定期扫描已部署的工件及其源代码库中的漏洞。

当 CC 管道运行时,它会从证据保管箱中检索先前存储的、在 CI 管道运行期间生成的软件包 SBOM。 CC 管道不会重新创建软件包 SBOM。

用于 SBOM 验证的 SBOM 实用程序

当管道运行时,SBOM 将以 standardcyclonedx 两种格式作为附件添加到 com.ibm.code_bom_check 证据中。

sbom-utility 工具通过完成一系列默认和自定义检查来验证 SBOM,以确定元数据是否包含:

  • 位于 SBOM 根级的组件,包含数据
  • 时间戳
  • 每个组件字段的 namebom-ref

要为 SBOM 验证收集证据,请将 sbom-validation-collect-evidence 设置为 1。 证据作为 com.ibm.code_bom_check 的附件收集,证据类型和工具类型为 sbom-utility

更多信息,请参阅 sbom-utility 工具文档