SBOM 标准格式:完整指南

您所在的位置:网站首页 物料清单包括的内容有哪些 SBOM 标准格式:完整指南

SBOM 标准格式:完整指南

2024-07-16 11:37| 来源: 网络整理| 查看: 265

软件物料清单 (SBOM) 是软件应用程序中使用的所有组件、库和其他依赖项的列表。 SBOM 的标准格式包括 SPDX、CycloneDX 和 CPE(通用平台枚举)。这些格式提供了一种结构化的方式来表示软件应用程序中的组件和依赖项,从而更容易理解和管理与这些组件相关的安全风险。

在本文中,我们将详细解释什么是各种 SBOM 格式和标准、SBOM 应包含哪些内容以及为什么所有组织都需要使用它。

什么是 SBOM 标准?SBOM 应包括哪些内容?SPDX SBOM 标准格式CycloneDX SBOM 标准格式SWID标签为什么软件物料清单很重要?什么是 SBOM 标准?

现代软件系统供应链的复杂性和动态性对透明度提出了重大挑战。这种缺乏透明度会导致网络安全风险,并增加与开发、采购和维护相关的成本。其后果是深远的,不仅影响企业,还影响我们相互联系的世界中的公共安全和国家安全等集体事务。

软件供应链透明度的提高可以通过以下方式降低网络安全风险和成本:

改进对易受攻击系统的识别并确定事件的根本原因 减少计划外和非生产性工作 允许更明智的市场差异化和组件选择 跨多个部门的标准化格式,减少重复工作 检测可疑或假冒软件组件

以清晰一致的格式收集和共享这些信息有助于降低成本、提高可靠性并增强对我们数字基础设施的信任。

为了这个目的, NTIA 软件透明度标准和格式工作组 成立于 2018 年,旨在评估软件物料清单的当前格式并确定未来的潜在用途。该小组检查了与识别软件产品中使用的外部组件和共享库以及以机器可读格式传达此信息相关的现有标准和计划。该小组没有考虑专有格式。最初的调查于 2019 年底发布,并于 2021 年更新,重点强调 SBOM 工具生态系统的好处以及 SBOM 技术领域协调和统一的重要性。关键要点是 SBOM 数据可以以各种格式传输,并且生态系统应支持它们之间的互操作性。

工作组发现常用三种格式: 

软件包数据交换 (SPDX®),一种由 Linux 基金会开发的开源机器可读格式,现已成为 ISO/IEC 标准 CycloneDX (CDX),一种由 OWASP 社区开发的开源机器可读格式 软件识别 (SWID),是各种商业软件发行商使用的 ISO/IEC 行业标准

值得注意的是,这三种格式共享一些共同信息。然而,它们传统上用于软件开发过程的不同阶段,并且面向不同的受众。我们将在本文中详细讨论每种格式。

SBOM 应包括哪些内容?

NTIA 的最低组成部分 SBOM 的组成部分(称为要素)由三个广泛且相互关联的领域组成。这些元素允许采用灵活的方法来实现软件透明度,同时解决技术和功能操作问题。将来可能会添加更多细节或技术进步。如前所述,这些是目前的最低组件,组织可能需要更多组件。软件供应链的透明度可能会随着时间的推移而提高和发展。

博曼 SBOM 所需的最低元素 通常分为三类:

数据字段: SBOM 应包含有关软件组件的重要数据,例如组件名称、供应商名称、版本和唯一标识符。它还应包括有关组件之间依赖关系的信息,以便准确识别和跟踪整个供应链中的所有软件组件。 做法和流程: SBOM 文档还应概述创建和更新 SBOM、分发和访问它以及处理错误的标准实践和程序。 自动化支持: 软件物料清单应该是机器可读的,并且能够自动生成以连续跟踪数据。它通常采用 SPDX、CycloneDX 和 SWID 标签等标准格式,这也使得它们可供人类阅读。 SPDX SBOM 标准格式

SPDX®(软件包数据交换)规范是一种 ISO/IEC 标准,用于以多种文件格式共享有关软件组件、许可证、版权和安全详细信息的信息。该项目开发并继续改进一套数据交换标准,允许企业和组织以人类和机器都能理解的格式共享软件元数据,从而简化软件供应链流程。

SPDX 信息可以链接到特定的软件产品、组件或组件集、单个文件,甚至是小代码片段。 SPDX 项目专注于创建和完善一种语言来描述可作为 SBOM 的一部分进行交换的数据,以及以多种文件格式(RDF/XML、XLSX、标签值、JSON、YAML)呈现此数据的能力和 XML),以便轻松收集和共享有关软件包和相关内容的信息,从而缩短时间并提高准确性。

SPDX 规范概述了有效文档所需的字段和部分,但需要注意的是,并非所有部分都是强制性的,只有创建信息部分是必需的。文档创建者可以选择他们想要包含的部分和字段,这些部分和字段描述了他们计划共享的软件和元数据信息。

SPDX 可以通过表示软件开发和部署中发现的所有组件来有效捕获软件物料清单数据。它用于记录发行版 .iso 映像、容器、软件包、二进制文件、源文件、补丁,甚至嵌入其他文件中的小代码片段。 SPDX 提供了一套全面的关系来连接文档内和 SBOM 文档之间的软件元素。 SPDX SBOM 文档还可以引用外部源,例如国家漏洞数据库和其他打包系统元数据。

SPDX 文档由多个组件组成:创建信息、包信息、文件信息、片段信息、其他许可信息、关系和注释。

每个 SPDX 文档都可以由完整的数据模型实现和标识符语法表示,允许不同数据输出格式(RDF/XML、标签值、XLSX)之间的交换以及文档准确性的正式验证。 SPDX 规范的 2.2 版本包括其他输出格式,例如 JSON、YAML 和 XML,并且还解决了原始 SBOM 文档中标识的“已知未知问题”。有关 SPDX 底层数据模型的更多信息,请参阅 SPDX 规范的附录 III 和 SPDX 网站。

CycloneDX SBOM 标准格式

CycloneDX 项目成立于 2017 年,旨在开发完全自动化、注重安全的 SBOM 标准。核心工作组使用基于风险的标准流程,每年发布不可变且向后兼容的版本。 CycloneDX 包括现有规范,例如包 URL、CPE、SWID 和 SPDX 许可证 ID 和表达式。 SBOM 可以用不同的格式表示,包括 XML、JSON 和协议缓冲区 (protobuf)。

CycloneDX 是一种轻量级 SBOM 规范,旨在用于供应链组件分析和软件安全。它支持软件组件库存、外部服务以及它们之间的关系的通信。它是由 OWASP(开放 Web 应用程序安全项目)开发的开源标准。

CycloneDX 可以捕获开源组件的动态特性,其源代码是可访问、可修改和可重新分发的。规范可以表示组件的谱系,包括其祖先、后代和变体,从任何角度描述组件的谱系,以及使其独一无二的提交、补丁和差异。

CycloneDX 项目维护着一系列支持或兼容该标准的已知开源和专有工具,该标准受到社区的支持。

CycloneDX 规范制定了详细的对象模型,确保所有实现的一致性。可以使用 XML Schema 和 JSON Schema 或使用 CycloneDX 命令行界面对其进行验证。还提供 XML 和 JSON 媒体类型,用于支持格式的自动交付和使用。

CycloneDX SBOM 可能包含以下信息: BOM 元数据、组件、服务、依赖项、组合和扩展

CycloneDX 是一个全面的 SBOM 标准,可以表征各种类型的软件,包括应用程序、组件、服务、固件和设备。它广泛用于跨行业描述软件包、库、框架、应用程序和容器映像。该项目与主要的开发生态系统兼容,并为 GitHub actions 等软件工厂提供实现,使组织能够完全自动化 SBOM 创建。

SWID标签

SWID 标签(即软件识别标签)的创建是为了使组织能够以透明的方式跟踪其托管设备上安装的软件。该标准由 ISO 于 2012 年制定,并于 19770 年修订为 ISO/IEC 2-2015:2015。这些标签包含有关软件产品特定版本的详细信息。

SWID 标准概述了跟踪软件的生命周期:SWID 标签在软件产品安装过程中添加到端点,并在产品卸载过程中删除。特定 SWID 标签的存在直接对应于它所描述的软件的存在。多个标准化组织,例如可信计算组织 (TCG) 和互联网工程任务组 (IETF),都将 SWID 标签纳入其标准中。

为了跟踪软件组件的生命周期,SWID 规范有四种类型的标签:主要标签、补丁标签、语料库标签和补充标签。语料库标签、主标签和补丁标签具有相似的用途,它们描述不同类型软件的存在和存在,例如软件安装程序、软件安装和软件补丁,以及软件产品的可能状态。另一方面,补充标签提供了语料库、主要标签或补丁标签中未找到的附加详细信息。

补充标签可以链接到任何其他标签,以提供可能有用的额外元数据。 SWID 标签一起可以执行多种功能,例如软件发现、配置管理和漏洞管理。

SWID 标签可以充当 SBOM,因为它们提供软件组件的标识信息、组件工件的文件列表和加密哈希值,以及有关 SBOM(标签)创建者和软件组件创建者的出处信息。这些标签还可以链接到其他标签,从而允许表示依赖关系树。

可以在构建和打包过程中生成 SWID 标签,从而在打包相应的软件组件时自动创建基于 SWID 标签的 SBOM。

为什么软件物料清单很重要?

软件物料清单 (SBOM) 对于组织来说变得越来越重要,因为他们的目标是管理和保护他们使用的软件。对于这个问题没有简短的答案 什么是 SBOM。 SBOM 提供组成软件包的所有组件和依赖项的完整列表,包括版本号、作者和许可证信息等信息。此信息对于安全性和合规性以及跟踪软件组件的来源至关重要。

许多组织(包括受监管行业的组织)正在使用 SBOM 来确保遵守通用数据保护条例 (GDPR) 和支付卡行业数据安全标准 (PCI DSS) 等法规。 SBOM 还可以帮助识别和管理软件中的漏洞,以及跟踪软件组件的来源。此外,SBOM 可以协助管理软件许可证,确保组织按照其许可证条款使用软件。

SBOM 还可用于跟踪开源软件的使用情况,这在软件开发中变得越来越普遍。通过提供有关软件包中使用的开源组件的详细信息,SBOM 可以帮助组织确保遵守开源许可证。

此外,SBOM 可用于支持软件开发和维护。通过提供有关软件包中使用的组件的详细信息,SBOM 可以帮助开发人员了解软件包的依赖性,这可以帮助他们识别潜在的兼容性问题并就新组件的使用做出明智的决策。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3