SBOM
CycloneDX vs SPDX
CycloneDX 與 SPDX 是幾乎所有工具都支援的兩種 SBOM 格式。兩者都描述一套軟體中的元件及其彼此關係。差異在於它們的起源、還能承載哪些資訊,以及背後由哪個標準組織支持。
更新日期
簡短的答案
請使用您的客戶、主管機關或工具所要求的格式。如果沒有人要求,資安工作較常選擇 CycloneDX,因為它原生支援 VEX;以授權合規為主時,則較常選擇 SPDX。大多數產生工具(包括 CRACI)都能產生兩種格式。
並列比較
| 功能 | CycloneDX | SPDX |
|---|---|---|
| 維護單位 | OWASP Foundation 與 Ecma International | Linux Foundation |
| 標準 | ECMA-424 | ISO/IEC 5962:2021 |
| 目前版本 | 1.7(2025 年 10 月) | 3.0(2024 年 4 月) |
| 起源 | 資安與供應鏈風險 | 開源授權合規 |
| 清單類型 | SBOM、SaaSBOM、HBOM 等 | 資安、建置、資料集與 AI 的設定檔(profile) |
| 漏洞資料 | 內建 VEX | 3.0 的資安設定檔 |
| 編碼格式 | JSON、XML、Protocol Buffers | 多種,包括 JSON |
CycloneDX
CycloneDX 由 OWASP Foundation 開發,並由 Ecma International 標準化為 ECMA-424。1.7 版於 2025 年 10 月發布。它從資安與供應鏈風險出發,涵蓋的範圍不只軟體:SBOM、服務用的 SaaSBOM,以及硬體用的 HBOM。它支援 VEX,因此同一種格式就能說明某個漏洞是否影響產品。它可序列化為 JSON、XML 或 Protocol Buffers。
SPDX
SPDX 是由 Linux Foundation 託管的開源專案,並獲認可為國際標準 ISO/IEC 5962:2021。它從授權合規出發,其授權識別碼的應用範圍遠超過 SBOM。2024 年 4 月發布的 SPDX 3.0 新增了資安、建置、資料集與 AI 的設定檔。
影片:SBOM 基礎
摘自我們在 KCD Helsinki 的演講:SBOM 記錄哪些內容、SPDX 與 CycloneDX 在實務上的差異,以及 OpenVEX 增加了什麼。
SBOM basics: SPDX, CycloneDX and OpenVEX
Petteri Pulkkinen和Erika Marttinen 於 Kubernetes Community Days Helsinki 2026,SBOMbastic: Getting Ready for Upcoming EU Cybersecurity Regulation in Software Supply Chains 的 16:50 至 22:05。
主管機關接受哪些格式
歐盟 Cyber Resilience Act(CRA)要求 SBOM 採用「常用且機器可讀的格式」,但並未指定特定格式。德國 BSI TR-03183-2 2.1.0 版則更為具體:JSON 或 XML 格式的 CycloneDX 1.6 以上版本,或 SPDX 3.0.1 以上版本。請參閱 CRA SBOM 要求。
內容比格式更重要
兩種格式都可能裝著不完整的 SBOM。決定 SBOM 是否有用的,是它是否列出進入產品的所有內容,包括遞移相依套件。CRACI 在您的 GitHub Actions 建置執行時記錄 SBOM,依作業與快取標示其完整性,並以 CycloneDX 或 SPDX 匯出。請參閱建置時 SBOM 產生。若要檢查任一格式檔案的內容,請使用 SBOM 品質檢查清單。
CycloneDX vs SPDX:常見問題
CycloneDX 和 SPDX 哪個比較好?
整體而言兩者沒有優劣之分。CycloneDX 源自資安用途,原生支援 VEX;SPDX 源自授權合規,並且是 ISO 標準。大多數工具都能產生兩種格式。請選擇您的客戶、主管機關或工具所要求的格式。
歐盟 Cyber Resilience Act 要求哪一種 SBOM 格式?
CRA 要求使用常見且機器可讀的格式,但並未指定特定格式。德國 BSI TR-03183-2 接受 JSON 或 XML 格式的 CycloneDX 1.6 以上版本與 SPDX 3.0.1 以上版本。
CycloneDX 與 SPDX 可以互相轉換嗎?
有工具能進行雙向轉換,但兩種格式並非一對一對應,因此轉換時可能遺失細節。如果可以,請直接產生您需要的格式。
CRACI 匯出 CycloneDX 還是 SPDX?
兩者皆可。CRACI 在您的 GitHub Actions 建置執行時記錄 SBOM,並以 CycloneDX 或 SPDX 匯出,內容包括遞移相依套件與每個元件所宣告的授權。