有时候,SBOM (软件材料清单)更多的是理论上的,而不是实际的。有很多关于使用 SBOM 的潜在好处的讨论,比如软件供应链安全和守规,以及流行的 SBOM 格式,比如 CyclonedX 和 SPDX。但是我们的一些客户(特别是那些在 SBOM 旅程早期的客户)已经提到,他们在现实世界的 SBOM 环境中面临着做决策的挑战。
考虑到这一点,我认为将一个示例应用程序和两个描述它的 SBOM 示例放在一起会很有帮助。在这个博客中,您将找到指向这两个示例的链接,以及它们的节和数据字段的描述。
本文中的所有分析都将基于以下SBOM 实例:
https://github.com/CortezFrazierJr/my_recipe_book/blob/main/sampleSPDX.json?ref=fossa.com
SBOM Example : SPDX
SPDX (Software Packet Data Exchange,软件包数据交换)支持标记/值(它称之为“简单的基于文本的格式”)、 YAML、 JSON 和 Excel 电子表格格式。我们的示例 SPDX SBOM 是 JSON 格式的。
有效的 SPDX SBOM 将始终包含具有文档创建信息的部分。根据材料清单的组成,它还可以包括描述包、文件、片段、许可信息、关系和注释的部分。
文档创建信息
文档创建信息包括 SPDX 文档的“谁”、“何时”和“如何”。示例 SPDX SBOM 中的文档创建信息从第2行开始,到第118行结束。其中一些数据字段是:
第2行: SPDX ID ——这提供了一种标准化的方法来引用整个文档中的 SPDX 材料清单。
第3行: SPDX 版本-这清楚地说明了材料清单所使用的 SPDX 规范的哪个版本。我们的示例使用当前版本的 SPDX 2.3(尽管即将推出的 SPDX v3.0正在开发中)。
第10行: 许可证列表版本-SPDX 许可证列表是常用的开源许可证的集合,包括简短的许可证标识符。许可证列表会定期更新(尽管通常只有很小的更改) ,这就是为什么许可证列表版本是文档创建信息的一部分。
第119行: 数据许可证——一份 SPDX 材料清单必须包括数据许可证,它基本上表明你正在使用知识共享 CC01.0通用许可证的条款下的 SPDX 规范。
包信息
我们的 SBOM 示例的包信息部分从第120行开始。因为我们的应用程序依赖于许多包,所以我们的示例 SBOM 包含多个包条目。但是,我们在这里只讨论其中的一个。
包信息部分中的一些数据字段是:
第122行: SPDX ID-这是包 SPDX 标识符字段。它用于唯一引用 SPDX 文档中的给定包。
第128行: 供应商-这是给定包装的“实际分销来源”。这应该是一个作者(或组织) ,而不是一个主机网站。供应商不同于发起人(第127行) ,后者指的是原产地,而供应商指的是分销点。
第131行: 许可声明-这是组件作者声明的包许可。这与结束许可证(第134行)不同,因为结束许可证是由 SPDX 文档创建者(通常是一个 SBOM 工具)声明的,这就是为什么这些字段有时具有不同的值。
第135行: 校验和——包校验和字段的目的是帮助 SPDX 文档使用者确定原包中的任何文件是否已经更改。
第181行: 外部引用-此数据字段通常用于链接到安全文档,如 VEX (漏洞可利用性 eXchange)或包标识符,如 PURL。
依赖关系
我们的 SPDX SBOM 的这一部分用于描述 SPDX 元素之间关系的性质。这些元素可能是包、文件和/或片段,甚至是材料清单本身。(第4633-4635行说明了我们的 SPDX SBOM 正在描述我们的 Recipe Book 应用程序。)关系通常用于描述依赖项的性质,例如一个元素依赖于另一个元素(或包含另一个元素)。SPDX 提供了许多描述关系的方法,比如“ DependsOn”、“ DependencyOf”、“ Contains”等等。
文件信息
如前所述,SPDX 不仅可以描述包,还可以描述文件(和片段)。我们的示例 SBOM 不包含任何代码片段,但是,从6661行开始,它描述了几个文件。“文件信息”部分中的数据字段与“包信息”部分类似,尽管存在一些差异。(例如,虽然它们不包括在我们的示例中,但是包信息部分有一些字段可以用来通信发布日期、构建日期和有效日期。而且,“文件信息”部分有一些字段,可用于传达文件通知和文件贡献者。)
其他组列
这些不包括在我们的示例中,但是 SPDX 也支持以下部分:
片段信息: 用于描述文件的一部分,包括字节和行范围在内的数据字段。
注释信息: 用于提供与部分或全部材料清单相关的附加上下文和注释。
检测到的其他许可证信息: 用于提供关于不常见许可证(不在 SPDX 许可证列表中的许可证)的附加上下文,这些许可证可能出现在材料清单中。
UniSCA能自动化一键生成SBOM,并支持SPDX在内的数种可定制导出格式,节省团队大量时间,切实有效地维护软件供应链安全。
CodeAnt试用地址
UniSCA试用地址
原文链接:让代码安全变轻松,简单好用的开发安全平台-CodeAnt