2026 年每日通報的 CVE 數量比前一年多 131%。

SBOM

CycloneDX vs SPDX

CycloneDX 與 SPDX 是幾乎所有工具都支援的兩種 SBOM 格式。兩者都描述一套軟體中的元件及其彼此關係。差異在於它們的起源、還能承載哪些資訊,以及背後由哪個標準組織支持。

更新日期

簡短的答案

請使用您的客戶、主管機關或工具所要求的格式。如果沒有人要求,資安工作較常選擇 CycloneDX,因為它原生支援 VEX;以授權合規為主時,則較常選擇 SPDX。大多數產生工具(包括 CRACI)都能產生兩種格式。

並列比較

截至 2026 年 9 月。
功能 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 匯出,內容包括遞移相依套件與每個元件所宣告的授權。

一次建置取得兩種格式

在 CRACI 上執行一個 GitHub Actions 作業,並將其記錄的 SBOM 以 CycloneDX 或 SPDX 匯出。

預約示範