SBOM:组件信息、格式与版本维护

Sytance · 更新于

软件物料清单(SBOM)记录应用或系统由哪些软件组件构成,以及组件之间的关系。它为组件盘点、许可证检查和漏洞调查提供基础。清单是否有用,取决于它能否准确描述实际交付的软件。

SBOM 描述的产品与版本

一份 SBOM 对应具体的产品版本、构建或交付文件,例如固件镜像或安装包。组件条目记录这个范围内包含的软件。结合版本、生产方、标识符和依赖关系,才能判断条目描述的是哪个组件。

以虚构工业网关为例,清单描述的是一个固件发布版本,管理应用和嵌入的库是组件。远程遥测服务属于外部依赖;记录该服务不代表它的服务端软件包被包含在网关固件中。

公开示例使用虚构组件解释数据结构,并非 Sytance 或某款已发布网关的实际组件清单。

组件标识符

名称相似的软件包可能来自不同的软件包生态。Package URL(purl)通过类型、命名空间、名称和版本等字段标识软件包。文件哈希则用于识别具体文件内容,使用时需要同时明确哈希算法和计算对象。

组件标识需要根据软件包元数据或供应商资料填写。猜测供应商名称后拼成的 purl,可能指向错误的软件包。原始版本号也需要保留,因为下游构建可能带有独立的补丁修订号。

SPDX 和 CycloneDX 都能表达组件信息及关系,具体字段和含义取决于格式版本。应选择生成工具和接收工具均能正确处理的版本。

清单的准确性与覆盖范围

文件即使符合 JSON 语法,也可能描述了错误版本。应将 SBOM 与构建输入和交付制品核对,调查不一致之处。源代码依赖列表可能包含未交付的开发工具,也可能漏掉直接复制进镜像的库。

  • 目标一致:产品、版本和制品与本次发布相符。
  • 标识准确:组件版本和标识符能够找到来源依据。
  • 关系完整:依赖路径已经记录,方向正确。
  • 覆盖范围清楚:注明供应商尚未提供的资料和仍未分析的部分。
  • 信息可用:接收工具能够保留本次用途需要的字段。

2026 年 SBOM 最小元素

CISA 与合作机构联合发布的 2026 年 SBOM 最小元素指导,对 NTIA 2021 年文件进行了更新。内容涉及文档元数据、组件数据,以及维护和共享方式。该文件属于指导材料,明确说明其不增加新的要求。

实际交付时,应约定规范、格式版本和客户追加要求。文件通过格式校验,并不能证明客户要求的信息已全部提供。

漏洞匹配与产品影响

漏洞匹配根据组件标识和版本,找出可能影响该组件的已报告漏洞。下一步需要判断受影响代码是否存在,以及能否在该产品中被利用,并检查构建选项、修改内容、执行路径和公告中的利用条件。

漏洞可利用性交换信息(VEX)用于传达某个漏洞对特定产品版本的影响判断,并关联分析依据。没有匹配到漏洞时,也需要考虑数据覆盖不足或组件标识不完整的可能性。

受支持版本的清单记录

将原始清单与产品版本归档。软件未变、清单信息需要更正时,发布可追溯的文档修订;软件发生变化时,为新版本建立对应记录。

新公告指出组件漏洞时,应检查所有受支持版本的清单。客户可能仍在运行旧版本,其中的组件与当前产品不同。

延伸阅读