SBOM(软件 物料清单)是确保软件组件完整性的基本要素--其起源可追溯到 20 世纪 90 年代最早的软件开发工作,用于记录开源依赖关系。SBOM 可帮助企业跟踪其软件应用堆栈中的组件,并保持符合行业法规。随着软件生态系统日益复杂,采用标准化的 SBOM 格式对于提高安全性和互操作性至关重要。
定义 SBOM
软件 Bill of Materials (SBOM) 是软件应用程序中所有组件的综合清单,包括专有、开源和第三方软件元素。它提供详细的元数据,如软件名称、版本、供应商、许可证信息和用于验证的加密哈希值。
通过提供对软件依赖关系的全面可见性,SBOM 可提高供应链的透明度,实现vulnerability detection,并支持合规性。通过识别和应对软件生态系统中的潜在威胁,它们可以帮助企业降低安全风险、简化审计工作并改进事件响应。
什么是 SBOM 标准?
SBOM(软件物料清单)标准通过提供统一的软件组件文档框架,确保不同行业和组织之间的一致性和互操作性。这些标准有助于企业简化漏洞管理,符合不断变化的监管要求,并促进软件生产商、供应商和最终用户之间的无缝协作。
通过采用标准化的 SBOM 格式,企业可以提高软件供应链的安全性,降低软件被篡改的风险,并增强软件的整体透明度。
什么是 SBOM 格式?
SBOM 格式是标准化的机器可读模式,用于构建和共享 SBOM 中包含的数据。这些格式定义了系统之间如何表示和交换软件组件细节。
应用最广泛的 SBOM 格式包括SPDX和CycloneDX,这两种格式都支持软件生命周期内的自动化、互操作性和可追溯性。这些格式可确保软件组件文档的一致性,从而改进vulnerability detection、合规性和供应链风险管理。
SBOM 的主要组成部分

SBOM 必须包含能使软件包完全透明的关键要素,这样才能有效。美国国家电信和信息管理局(NTIA)定义了SBOM 的七个最基本要素:
- 供应商详细信息:指明负责软件的实体。
- 软件 和组件名称:标识软件组件。
- 版本信息:指定组件的版本信息。
- 作者姓名:创建 SBOM 报告的个人或组织(但不是工具)。
- 组件关系:描述软件元素之间的依赖关系和互动关系。
- 时间戳:SBOM 元信息的一部分,用于指定报告生成的日期和时间。
- 其他唯一标识符:提供定义软件组件的其他信息
其他重要组成部分包括
- SBOM 类型: 介绍如何以及为何需要 SBOM 报告。
- 许可证信息:定义软件的使用权。
- 加密哈希值:确保组件的完整性和真实性。
SPDX SBOM 格式
软件 数据交换(SPDX)格式由 Linux 基金会开发,是一种广泛使用的 SBOM 标准,旨在促进开源许可证合规性和软件组件跟踪。它提供了一种记录软件组件及其相关元数据的结构化方式,使其成为提高软件透明度和安全性的重要工具。
此外,SPDX 是获得 ISO(国际标准化组织)认证的格式,符合标准化和质量保证要求。
SPDX 格式文件包含几个关键要素:
描述软件包,可由一个或多个文件组成,包括源代码、二进制文件、文档等。其他类型的信息包括有关原作者、源代码、下载 URL、校验和以及许可概述的详细信息。
特定文件的详细信息,如许可证、校验和、文件贡献者等。
通过规定软件许可证,确保知识产权管理。
记录软件依赖关系的层次结构。
提供额外的元数据,并建立软件工件之间的关系。
SPDX 格式支持多种格式,可根据使用情况和工具兼容性灵活运用:
- 标签/值 (.spdx):基于文本的简单格式
- JSON (.spdx.json):一种轻量级的机器可读格式
- YAML (.spdx.yml): 人性化的数据序列化格式
- RDF/XML (.spdx.rdf): 用于语义数据表示的结构化格式
- 电子表格(.xls):有助于人工分析的表格格式
SPDX 被各大科技公司、监管机构和开源软件社区广泛采用。它通常用于
- 开源软件许可证管理:帮助企业跟踪并遵守开源许可要求。
- 安全审计: 深入了解软件组件,检测漏洞并管理风险。
- 合规性:确保遵守与软件透明度相关的行业标准和法律要求。
- 软件 出处跟踪:建立软件组件的清晰脉络,提高问责性。
通过利用 SPDX 格式,企业可以加强供应链安全,简化合规工作,并提高软件生态系统的可见性。

CycloneDX SBOM 格式
CycloneDX 格式由 OWASP 基金会开发,提供包括 SBOM 在内的全栈 BOM(物料清单),其设计重点在于安全性、漏洞管理和全面的软件透明度。它提供了一种规范性对象模型,可有效描述软件组件、服务和依赖关系之间的复杂关系。
CycloneDX 格式的主要功能包括
捕捉供应商详细信息、许可信息、作者、工具、制造流程等。
可进行精确的漏洞识别、可利用性分析,并支持 VEX 用例。
代表软件组件和服务之间的直接关系和传递关系。
支持 JSON、XML 和协议缓冲区(protobuf),确保与安全工具的广泛兼容性。
与 OWASP ASVS、MASVS、SCVS 和 SAMM 等安全标准集成,提供机器可读的合规性跟踪框架。
CycloneDX 具有强大的架构和安全驱动方法,被广泛应用于以网络安全为重点的漏洞管理和安全监控应用中。这使得 CycloneDX 格式成为软件供应链风险管理的重要工具。
CycloneDX 与 SPDX 格式对比
特点 | SPDX | CycloneDX |
聚焦 | 开源许可合规与知识产权 | 应用安全和供应链分析 |
特点 | 软件组件的综合元数据 | 轻便、用户友好,重点关注基本组件数据和安全评估 |
使用案例 | 开源许可(最初)、合规性审计和软件出处 | 漏洞管理、软件供应链分析和安全监控 |
收养 | 大型科技公司和合规团队 | 安全工具提供商和网络安全公司、DevSecOps 团队 |
探索 SWID 标签

SWID 标签应用
为了正确管理软件,企业必须对其管理的设备保持准确的软件库存,以支持更高层次的业务、信息技术和网络安全功能。准确的软件库存有助于企业
- 通过跟踪安装和使用情况,管理软件许可协议的合规性,避免不必要的成本。
- 确保遵守组织政策,减少软件足迹和攻击面。
- 验证更新和补丁,以减少已知漏洞和网络威胁。
- 根据安全策略评估配置,以加固系统并减少攻击载体。
- 规划软件升级和遗留系统更换的投资。
虽然一些供应商提供许可证管理、更新、补丁和配置跟踪工具,但企业往往依赖多种工具来管理不同的软件产品。这种分散性增加了人为错误和资源限制的风险,限制了企业保持主动软件管理的能力。我们需要一种统一的机制来提供整个企业所有软件的全面视图,而不论其供应商是谁。
根据 ISO/IEC 19770-2:2015 标准的定义,SWID(软件 识别)标签提供了一种透明的方式来跟踪安装在受管设备上的软件,从而满足了这一需求。SWID 标签文件包含特定软件版本的描述性元数据,并遵循一个生命周期,在安装过程中添加,卸载时删除。这种生命周期可确保 SWID 标签的存在与其描述的软件产品直接对应。
美国国家标准与技术研究院(NIST)建议采用 SWID 标签标准,包括 TGC(可信计算小组)和 IETF(互联网工程任务组)在内的多个标准机构已将 SWID 标签纳入其标准。
NIST 继续推动 SWID 标签在软件社区的广泛应用,并将其集成到网络安全参考数据和安全自动化内容中。此外,NIST 还将 SWID 标签数据纳入 NVD(国家漏洞数据库)和 SCAP(安全内容自动化协议)1.3 版,以加强漏洞跟踪和安全管理。
通过将 SWID 标签纳入安全自动化框架,企业可以改进软件库存跟踪、漏洞评估、合规性监控和整体网络安全态势。
软件 物料清单的重要性
SBOM在软件透明度和问责制方面发挥着至关重要的作用。它们提供了对软件供应链的深入了解,使企业能够验证软件组件的完整性。这种透明度降低了软件被篡改和未经授权修改的风险,最终加强了软件生产商、供应商和最终用户之间的信任。
此外,SBOM 还支持事件响应和软件生命周期管理。当发现漏洞时,拥有详细的 SBOM 可以让安全团队快速评估影响并有效实施补丁。这种积极主动的方法可以最大限度地减少停机时间,并确保关键系统在新出现的威胁面前保持安全。
安全与合规中的 SBOM
SBOM 是确保软件安全性和合规性的重要工具。通过提供所有软件组件的全面清单,SBOM 使企业能够更有效地跟踪和管理漏洞。它们使安全团队能够主动识别和降低风险,确保所有第三方和开源依赖项都是最新的,并且不存在已知漏洞。随着网络威胁变得越来越复杂和普遍,这种可视性至关重要。
NIST、ISO、14028 号行政命令和其他地区技术指南等监管框架规定了更严格的软件透明度和安全措施,使 SBOM 成为合规的基本要求。利用 SBOM 的组织可以更轻松地证明遵守了这些标准,从而避免潜在的法律和财务影响。通过维护准确和最新的 SBOM,企业可以简化审核、减少合规管理费用,并确保软件符合行业法规。
比较 SBOM 格式
优势和劣势
每种 SBOM 格式都有不同的用途,因此必须根据具体需求选择合适的格式。
特点 | 优势 | 弱点 |
SPDX | 内容全面,应用广泛。重点关注许可和合规性。 | 对于较小的项目来说可能比较复杂 |
CycloneDX | 针对安全和漏洞管理进行了优化。 | 较少强调许可细节 |
SWID 标签 | 集成到软件中 | 行业间标准化程度有限 |
其他与 SBOM 有关的格式
VEX 和其他格式
漏洞可利用性交换(VEX)格式通过提供对软件漏洞可利用性的重要见解来增强 SBOM。传统的漏洞扫描仪可能会在没有上下文的情况下标记漏洞,而 VEX 则不同,它可以帮助安全团队确定特定漏洞在特定条件下是否真的可以被利用。这样,企业就能有效地确定安全补丁的优先级,并将资源集中用于应对最紧迫的威胁。
VEX 提供结构化的机器可读数据,可与漏洞扫描仪无缝集成,减少误报并简化修复工作。通过指定漏洞可被利用的条件(如所需的系统配置或启用的应用程序功能),VEX 可确保安全团队利用可操作的情报开展工作,而不是利用令人不知所措的潜在风险列表。
VEX 于 2021 年由美国国家电信和信息管理局(NTIA)开发,可使用多种格式实施,包括 OpenVEX、CSAF VEX 和 CycloneDX VEX。这些实施方式允许企业根据其安全工具和合规要求定制 VEX 数据,从而提高软件供应链的整体安全性。
通过将 VEX 与 SBOM 结合使用,企业可以获得更全面的漏洞管理方法,提高补丁优先级、合规性报告和风险缓解战略的效率。
结论
了解和实施 SBOM 对于现代软件安全至关重要。通过利用 SPDX、CycloneDX 和 SWID 标签等格式,企业可以提高软件供应链的透明度,降低安全风险。
下一步工作
评估贵组织当前的软件供应链实践,探索符合安全性和合规性需求的 SBOM 格式。
欲了解更多有关利用强大的 SBOM 解决方案保护软件供应链安全的信息,请访问OPSWAT的软件 Supply Chain 安全解决方案。
