CycloneDX vs SPDX: välj rätt CRA-kompatibelt SBOM-format

CycloneDX och SPDX är de två format som uppfyller CRA:s krav på en maskinläsbar SBOM. Valet mellan dem är inte en efterlevnadsfråga: båda duger. Det är en arbetsflödesfråga om vilket format som passar hur ditt team hanterar sårbarhetsspårning och licensefterlevnad. CycloneDX är ett OWASP-projekt optimerat för säkerhetssyften. SPDX är en Linux Foundation-standard med erkännande som ISO/IEC 5962:2021. Den här sidan jämför båda utifrån de dimensioner som spelar roll för CRA och BSI TR-03183-efterlevnad, med fungerande exempel på vardera.

Sammanfattning

  • Både CycloneDX (OWASP) och SPDX (Linux Foundation) uppfyller CRA:s krav på ett allmänt använt och maskinläsbart format
  • CycloneDX 1.6 eller senare är att föredra för säkerhetsarbetsflöden; inbyggt VEX-stöd kom i 1.4 och den rika evidence-strukturen i 1.5
  • SPDX 2.2.1 är den version som standardiserats som ISO/IEC 5962:2021; SPDX 2.3 är den aktuella stabila revisionen och är bakåtkompatibel med ISO-baslinjen. SPDX 3.0 är under framtagning som ISO/IEC DIS 5962
  • Formatvalet påverkar inte vilka fält du är skyldig att fylla i enligt BSI TR-03183: fältkraven är identiska för båda formaten
2
Godkända format
CycloneDX eller SPDX
VEX
CycloneDX inbyggt
Vulnerability eXploitability
ISO 5962
SPDX 2.2.1-erkännande
2021 internationell standard
Dec 2027
Fullt ikraftträdande
Format måste vara på plats

Vilka SBOM-format godtar CRA?

CRA kräver ett "allmänt använt och maskinläsbart" format. I praktiken uppfyller två standarder kravet:

Format Standard Bäst för
CycloneDX OWASP Säkerhetsfokus, inbyggt VEX-stöd
SPDX Linux Foundation Licensefterlevnad, bredare spridning

Båda formaten är godkända. CycloneDX används i allt högre grad för säkerhetssyften tack vare sitt inbyggda stöd för:

  • Vulnerability Exploitability eXchange (VEX)
  • Säkerhetsrådgivning
  • Beroendegrafer
graph LR
    SCN[Component Names] --- SBOM((SBOM))
    VS[Versions] --- SBOM
    SUP[Supplier Info] --- SBOM
    DEP[Dependencies] --- SBOM
    SBOM --- LIC[Licenses]
    SBOM --- PURL[Package URLs]
    SBOM --- HASH[Hash Values]
    SBOM --- OSC[Open Source Components]
    style SBOM fill:#008080,color:#fff,stroke:#006666,stroke-width:4px
    style SCN fill:#e8f4f8,stroke:#008080,color:#333
    style VS fill:#e8f4f8,stroke:#008080,color:#333
    style SUP fill:#e8f4f8,stroke:#008080,color:#333
    style DEP fill:#e8f4f8,stroke:#008080,color:#333
    style LIC fill:#e8f4f8,stroke:#008080,color:#333
    style PURL fill:#e8f4f8,stroke:#008080,color:#333
    style HASH fill:#e8f4f8,stroke:#008080,color:#333
    style OSC fill:#e8f4f8,stroke:#008080,color:#333

Sida vid sida

Dimension CycloneDX SPDX
Ursprung OWASP-projekt Linux Foundation
Senaste stabila spec 1.7 (okt 2025); sikta på 1.6 eller senare för CRA 2.3 (aktuell); 3.0 i ISO DIS
Standarderkännande OWASP, ECMA TC54 (under framtagning) ISO/IEC 5962:2021 (täcker SPDX 2.2.1)
Primärt fokus Säkerhet och sårbarhetshantering Licensefterlevnad och juridisk granskning
VEX-stöd Inbyggt (sedan 1.4, jan 2022) Via extern CSAF
Komponent-evidence Identitet och förekomster sedan 1.5 (jun 2023) Ej tillämpligt
Licensuttryck Tillräckligt Heltäckande (SPDX-licenslistan är kanonisk)
Verktyg Syft, Trivy, cdxgen producerar CycloneDX direkt Syft, scancode-toolkit, FOSSA
Specifikationens omfång Lättare, enklare att implementera Mer heltäckande, mer utförlig

CycloneDX

OWASP-projekt. Designat för säkerhet från grunden: lättare spec, inbyggt VEX, direkt CVE-koppling, starkt inbyggt verktygsstöd (Trivy, Syft, cdxgen). Välj CycloneDX när sårbarhetsspårning är prioritet.

Exempel på en CycloneDX-komponentpost:

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "version": 1,
  "components": [
    {
      "type": "library",
      "name": "lodash",
      "version": "4.17.21",
      "purl": "pkg:npm/lodash@4.17.21",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "cc6d..."
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    }
  ]
}

SPDX

Linux Foundation-standard. SPDX 2.2.1 är erkänd som ISO/IEC 5962:2021; SPDX 2.3 är den aktuella stabila revisionen och är bakåtkompatibel med ISO-baslinjen. Heltäckande licensuttryckssyntax, längre erfarenhet av leveranskedjeefterlevnad och starkare hantering av komplexa licensscenarier. Välj SPDX när licensefterlevnad och juridisk granskning styr ditt arbetsflöde.

Exempel på en SPDX-komponentpost:

{
  "spdxVersion": "SPDX-2.3",
  "dataLicense": "CC0-1.0",
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "my-application",
  "packages": [
    {
      "SPDXID": "SPDXRef-Package-lodash",
      "name": "lodash",
      "versionInfo": "4.17.21",
      "downloadLocation": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
      "licenseConcluded": "MIT",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "cc6d..."
        }
      ]
    }
  ]
}

Så väljer du

Användningsfall Rekommendation
Primärt fokus är säkerhet och sårbarheter CycloneDX
Primärt fokus är licensefterlevnad SPDX
Behöver VEX-integration för sårbarhetsarbetsflöden CycloneDX
Företag med befintliga SPDX-verktyg SPDX
Tysk marknad (BSI TR-03183-anpassning) Båda (båda rekommenderas)
Startar från noll utan tidigare formatpreferens CycloneDX (enklare, säkerhetsfokus)

För CRA-efterlevnad fungerar båda formaten. CRA anger inget föredraget format. Välj ett och var konsekvent i hela din produktportfölj. Du kan generera båda från samma bygge med verktyg som Syft eller Trivy, men att standardisera på ett format minskar den operativa omkostnaden.

BSI TR-03183:s fältkrav gäller för båda formaten

Det format du väljer påverkar inte vilka fält du måste fylla i. Namn, version, leverantör, PURL, hash, licens och beroendeförhållanden krävs enligt BSI TR-03183 oavsett om din SBOM är CycloneDX eller SPDX.

Vanliga frågor

Vilka SBOM-format godtar CRA?

CRA kräver ett "allmänt använt och maskinläsbart" format. CycloneDX (OWASP) och SPDX (Linux Foundation) är de två format som uppfyller detta krav. Förordningen namnger dem inte explicit, men inga andra format når upp till den ribban i praktiken.

CycloneDX eller SPDX: vilket ska jag välja för CRA-efterlevnad?

Båda uppfyller CRA:s krav på ett "allmänt använt och maskinläsbart" format. Välj CycloneDX om din prioritet är säkerhet: det har inbyggt VEX-stöd (Vulnerability Exploitability eXchange), passar bättre för sårbarhetsarbetsflöden och används i allt högre grad som standardformat för CRA-anpassade verktyg. Välj SPDX om din prioritet är licensefterlevnad, bredare ISO-erkännande (ISO/IEC 5962) eller om du redan använder SPDX sedan tidigare arbete med öppen källkod. Du kan producera båda från samma bygge, men att standardisera på ett format i hela din produktportfölj minskar den operativa omkostnaden. Formatvalet påverkar inte vilka fält du är skyldig att fylla i enligt BSI TR-03183.

Vad du gör härnäst

  1. Bekräfta ditt format: CycloneDX för säkerhetsfokuserade team, SPDX om du har befintliga arbetsflöden för licensefterlevnad. Är du osäker börjar du med CycloneDX (1.4 som minimum för CRA).
  2. Kontrollera dina obligatoriska fält mot BSI TR-03183:s kvalitetsnivåer: namn, version, leverantör, PURL/CPE, hash, beroenden, licenser. Dessa gäller för båda formaten.
  3. Förstå de Bilaga I-skyldigheter din SBOM måste uppfylla: se CRA SBOM-krav för format, tillämpningsområde och dokumentationsreglerna i Bilaga VII.
  4. Automatisera genereringen i CI/CD med Syft, Trivy eller cdxgen. En manuell export uppfyller inte den löpande uppdateringsskyldigheten som utlöses av varje release, patch eller komponentändring.
  5. Placera din SBOM i den tekniska filen enligt Bilaga VII (punkt 2(b) för beskrivningen av sårbarhethanteringsprocesserna; punkt 8 för kopior på begäran), redo för marknadskontrollmyndigheter. Om du hellre inte vill bygga SBOM-inmatning från grunden hanterar CRA Evidence CycloneDX/SPDX-inmatning och TR-03183-kvalitetsbedömning över produktversioner.