SBOM-format och standarder
CycloneDX och SPDX, och hur du väljer mellan dem
En SBOM behöver följa ett standardformat för att kunna läsas av andra än den som skapade den. Två format används i praktiken: CycloneDX och SPDX.
Jämförelse
| CycloneDX | SPDX | |
|---|---|---|
| Förvaltas av | OWASP | Linux Foundation |
| Standard | ECMA-424 | ISO/IEC 5962:2021 |
| Ursprungligt syfte | Säkerhetsanalys av komponenter | Licensinformation för öppen källkod |
| Filformat | JSON, XML, Protocol Buffers | JSON, YAML, RDF, tag-value |
| Utöver SBOM | VEX, VDR, HBOM, CBOM, ML-BOM, SaaSBOM | Profiler för säkerhet, licenser, bygge och AI (SPDX 3) |
CycloneDX
CycloneDX1 togs fram inom OWASP för att beskriva mjukvarukomponenter med sårbarhetsanalys som främsta användning. Version 1.6 antogs 2024 som standarden ECMA-424 av Ecma International.
Formatet kan uttrycka mer än en SBOM. Samma specifikation används för VEX, för kryptografiska tillgångar (CBOM) och för hårdvara (HBOM).
SPDX
SPDX2 (Software Package Data Exchange) kommer från Linux Foundation och började som ett sätt att utbyta licensinformation om öppen källkod. Version 2.2.1 är ISO-standarden ISO/IEC 5962:2021.
SPDX 3, som kom 2024, är uppdelad i profiler för olika användningar, bland annat säkerhet, bygge och AI. De flesta verktyg stöder fortfarande främst SPDX 2.
Vilket format ska man välja?
Båda formaten uppfyller kravet i Cyber Resilience Act (CRA) på ett allmänt använt och maskinläsbart format, och båda kan uttrycka SBOM Minimum Elements.
Valet avgörs oftast av omgivningen:
- vilket format era byggverktyg skapar bäst
- vilket format era kunder eller leverantörer kräver
- om ni behöver VEX i samma format, vilket talar för CycloneDX
- om licensefterlevnad är huvudsyftet, vilket talar för SPDX
Det går att konvertera mellan formaten, men uppgifter kan gå förlorade eftersom formaten inte har exakt samma fält. Skapa helst SBOM:en direkt i det format som ska levereras.