不同格式标准SBOM清单横评:SPDX、CDX和DSDX
字数 1614 2025-08-22 12:22:24

软件物料清单(SBOM)标准格式详解:SPDX、CDX与DSDX

1. SBOM概述

软件物料清单(SBOM)是包含软件应用中使用的所有组件、库和其他依赖项的列表,其核心价值在于:

  • 提高软件供应链透明度
  • 揭示供应链中的弱点
  • 支持漏洞、许可证和授权管理
  • 降低开发、采购及维护成本
  • 增进供应链上下游间的信任

2. 主流SBOM标准格式对比

2.1 SPDX (Software Package Data Exchange)

基本信息

  • 许可证:cc-by-3.0
  • 主办方:Linux基金会
  • 标准化:ISO/IEC 5962(2021年9月列入国际标准)
  • 最新版本:v3.0-rc1(候选版本),最广泛使用v2.2(2020年发布)

特点

  • 专注于许可证信息描述
  • 支持代码文件及片段引用场景
  • 从v2.1开始支持与漏洞数据关联
  • 标准化程度高,是唯一获得ISO认可的SBOM标准

支持格式

  • SPDX原生格式
  • XML
  • JSON
  • RDF
  • YAML

字段组成
(详细字段说明请参考原文)

2.2 CDX (CycloneDX)

基本信息

  • 许可证:apache-2.0
  • 主办方:OWASP
  • 最新版本:v1.5(2023年6月发布)

特点

  • 轻量级标准,专注于自动化SBOM使用和管理
  • 提供更多安全相关信息
  • 支持硬件及云系统描述
  • 记录服务信息及制造/部署信息
  • 扩展性强但结构更复杂

支持格式

  • XML
  • JSON

字段组成
(详细字段说明请参考原文)

2.3 DSDX (Digital Supply-chain Data Exchange)

基本信息

  • 主办方:OpenSCA社区主导,开源中国、电信研究院、中兴通讯联合发起
  • 发布时间:2023年8月
  • 定位:中国首个数字供应链SBOM格式

特点

  • 适配中国企业实战化应用场景
  • 兼容SPDX、CDX、SWID国际标准和国内标准
  • 引入运行环境及供应链流转信息
  • 采用最小集/扩展集形式增强灵活性
  • 考虑国内企业出海合规需求

支持格式

  • DSDX原生格式
  • JSON
  • XML

字段组成
(详细字段说明请参考原文)

3. 标准格式对比总结

特性 SPDX CDX DSDX
标准化程度 ISO国际标准 行业标准 国内社区标准
重点领域 许可证信息 安全审计、漏洞管理 运行环境、供应链流转
扩展性 中等 强(支持硬件/云) 灵活(最小集/扩展集)
复杂度 中等 可调节
适用场景 标准化合规 安全审计 中国企业实战场景

4. OpenSCA工具使用指南

OpenSCA支持输出多种标准格式SBOM文件,并提供相关分析功能:

4.1 基本命令

  1. 输出SBOM清单:
opensca-cli -path ${project_path} -out output.dsdx
  1. 使用SBOM清单输出依赖、漏洞及许可证信息:
opensca-cli -token ${token} -path ${sbomname.suffix} -out output.html

*注:suffix可以是dsdx/dsdx.json/dsdx.xml/cdx.json/cdx.xml等格式

4.2 使用建议

  • 为获得准确结果,输入的SBOM需包含Purl信息
  • 推荐优先使用CDX及DSDX格式
  • 从v3.0.0开始支持通过SBOM清单输出依赖、漏洞及许可证信息

5. 选择建议

  • 国际化项目:优先考虑SPDX(ISO标准)
  • 安全敏感项目:考虑CDX(安全信息更丰富)
  • 国内企业项目:推荐DSDX(适配国内实践)
  • 兼容性要求高:选择支持多格式输出的工具(如OpenSCA)

6. 参考资料

  1. SCA技术进阶系列(四):DSDX SBOM供应链安全应用实践
  2. SPDX官方文档
  3. CycloneDX官方文档
  4. OpenSCA官方文档

注:本文基于2023年12月1日发布的《不同格式标准SBOM清单横评:SPDX、CDX和DSDX》整理,如需最新信息请参考各标准官方文档。

软件物料清单(SBOM)标准格式详解:SPDX、CDX与DSDX 1. SBOM概述 软件物料清单(SBOM)是包含软件应用中使用的所有组件、库和其他依赖项的列表,其核心价值在于: 提高软件供应链透明度 揭示供应链中的弱点 支持漏洞、许可证和授权管理 降低开发、采购及维护成本 增进供应链上下游间的信任 2. 主流SBOM标准格式对比 2.1 SPDX (Software Package Data Exchange) 基本信息 : 许可证:cc-by-3.0 主办方:Linux基金会 标准化:ISO/IEC 5962(2021年9月列入国际标准) 最新版本:v3.0-rc1(候选版本),最广泛使用v2.2(2020年发布) 特点 : 专注于许可证信息描述 支持代码文件及片段引用场景 从v2.1开始支持与漏洞数据关联 标准化程度高,是唯一获得ISO认可的SBOM标准 支持格式 : SPDX原生格式 XML JSON RDF YAML 字段组成 : (详细字段说明请参考原文) 2.2 CDX (CycloneDX) 基本信息 : 许可证:apache-2.0 主办方:OWASP 最新版本:v1.5(2023年6月发布) 特点 : 轻量级标准,专注于自动化SBOM使用和管理 提供更多安全相关信息 支持硬件及云系统描述 记录服务信息及制造/部署信息 扩展性强但结构更复杂 支持格式 : XML JSON 字段组成 : (详细字段说明请参考原文) 2.3 DSDX (Digital Supply-chain Data Exchange) 基本信息 : 主办方:OpenSCA社区主导,开源中国、电信研究院、中兴通讯联合发起 发布时间:2023年8月 定位:中国首个数字供应链SBOM格式 特点 : 适配中国企业实战化应用场景 兼容SPDX、CDX、SWID国际标准和国内标准 引入运行环境及供应链流转信息 采用最小集/扩展集形式增强灵活性 考虑国内企业出海合规需求 支持格式 : DSDX原生格式 JSON XML 字段组成 : (详细字段说明请参考原文) 3. 标准格式对比总结 | 特性 | SPDX | CDX | DSDX | |------|------|-----|------| | 标准化程度 | ISO国际标准 | 行业标准 | 国内社区标准 | | 重点领域 | 许可证信息 | 安全审计、漏洞管理 | 运行环境、供应链流转 | | 扩展性 | 中等 | 强(支持硬件/云) | 灵活(最小集/扩展集) | | 复杂度 | 中等 | 高 | 可调节 | | 适用场景 | 标准化合规 | 安全审计 | 中国企业实战场景 | 4. OpenSCA工具使用指南 OpenSCA支持输出多种标准格式SBOM文件,并提供相关分析功能: 4.1 基本命令 输出SBOM清单: 使用SBOM清单输出依赖、漏洞及许可证信息: * 注:suffix可以是dsdx/dsdx.json/dsdx.xml/cdx.json/cdx.xml等格式 4.2 使用建议 为获得准确结果,输入的SBOM需包含Purl信息 推荐优先使用CDX及DSDX格式 从v3.0.0开始支持通过SBOM清单输出依赖、漏洞及许可证信息 5. 选择建议 国际化项目 :优先考虑SPDX(ISO标准) 安全敏感项目 :考虑CDX(安全信息更丰富) 国内企业项目 :推荐DSDX(适配国内实践) 兼容性要求高 :选择支持多格式输出的工具(如OpenSCA) 6. 参考资料 SCA技术进阶系列(四):DSDX SBOM供应链安全应用实践 SPDX官方文档 CycloneDX官方文档 OpenSCA官方文档 注:本文基于2023年12月1日发布的《不同格式标准SBOM清单横评:SPDX、CDX和DSDX》整理,如需最新信息请参考各标准官方文档。