CycloneDX vs SPDX: scegliere il formato SBOM conforme al CRA

CycloneDX e SPDX sono i due formati che soddisfano il requisito del CRA relativo agli SBOM leggibili da un dispositivo automatico. La scelta tra i due non è una questione di conformità: entrambi sono ammessi. È una questione di flusso di lavoro, ovvero quale formato si adatta meglio alla gestione delle vulnerabilità e alla verifica della conformità delle licenze nel proprio team. CycloneDX è un progetto OWASP ottimizzato per i casi d'uso della sicurezza. SPDX è uno standard della Linux Foundation che vanta il riconoscimento ISO/IEC 5962:2021. Questa pagina confronta entrambi i formati in base alle dimensioni rilevanti per la conformità al CRA e a BSI TR-03183, con esempi funzionanti per ciascuno.

  • Sia CycloneDX (OWASP) sia SPDX (Linux Foundation) soddisfano il requisito del CRA relativo al formato degli SBOM leggibili da un dispositivo automatico
  • CycloneDX 1.6 o versioni successive è preferito per i flussi di lavoro sulla sicurezza; il supporto nativo VEX è arrivato nella versione 1.4 e la struttura evidence avanzata nella versione 1.5
  • SPDX 2.2.1 è la versione standardizzata come ISO/IEC 5962:2021; SPDX 2.3 è la revisione stabile corrente ed è retrocompatibile con la baseline ISO. SPDX 3.0 è in corso come ISO/IEC DIS 5962
  • La scelta del formato non incide sui campi obbligatori ai sensi di BSI TR-03183: i requisiti sui campi sono identici per entrambi
2
Formati ammessi
CycloneDX o SPDX
VEX
CycloneDX nativo
Vulnerability eXploitability
ISO 5962
Riconoscimento SPDX 2.2.1
Standard internazionale 2021
Dic 2027
Applicazione integrale
Il formato deve essere in uso

Formati SBOM ammessi dal CRA

Il CRA richiede formati «in un formato di uso comune e leggibile da un dispositivo automatico». In pratica, due standard soddisfano questo requisito:

Formato Standard Adatto a
CycloneDX OWASP Sicurezza, supporto nativo VEX
SPDX Linux Foundation Conformità delle licenze, adozione più ampia

Entrambi i formati sono ammessi. CycloneDX è sempre più preferito per i casi d'uso della sicurezza grazie al supporto nativo per:

  • Vulnerability Exploitability eXchange (VEX)
  • Advisory sulle vulnerabilità
  • Grafi delle dipendenze
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

Confronto diretto

Dimensione CycloneDX SPDX
Origine Progetto OWASP Linux Foundation
Spec stabile corrente 1.7 (ottobre 2025); target 1.6 o superiore per il CRA 2.3 (corrente); 3.0 in ISO DIS
Riconoscimento OWASP, ECMA TC54 (in corso) ISO/IEC 5962:2021 (copre SPDX 2.2.1)
Focus principale Sicurezza e gestione delle vulnerabilità Conformità delle licenze e revisione legale
Supporto VEX Nativo (dalla versione 1.4, gennaio 2022) Tramite CSAF esterno
evidence dei componenti Identità e occorrenze dalla versione 1.5 (giugno 2023) Non applicabile
Espressione delle licenze Adeguata Completa (la lista licenze SPDX è canonica)
Strumenti Syft, Trivy, cdxgen producono CycloneDX nativamente Syft, scancode-toolkit, FOSSA
Peso della spec Più leggera, più facile da implementare Più completa, più verbosa

CycloneDX

Progetto OWASP. Progettato per la sicurezza fin dall'inizio: spec più leggera, VEX nativo, collegamento diretto ai CVE, solido supporto nativo degli strumenti (Trivy, Syft, cdxgen). Si scelga CycloneDX quando il tracciamento delle vulnerabilità è la priorità.

Esempio di voce componente CycloneDX:

{
  "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

Standard della Linux Foundation. SPDX 2.2.1 è riconosciuto come ISO/IEC 5962:2021; SPDX 2.3 è la revisione stabile corrente e rimane retrocompatibile con la baseline ISO. Sintassi completa per l'espressione delle licenze, consolidata esperienza nella conformità della supply chain e gestione più solida degli scenari di licenza complessi. Si scelga SPDX quando la conformità delle licenze e la revisione legale guidano il flusso di lavoro.

Esempio di voce componente SPDX:

{
  "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..."
        }
      ]
    }
  ]
}

Come scegliere

Caso d'uso Raccomandazione
Focus principale su sicurezza e vulnerabilità CycloneDX
Focus principale su conformità delle licenze SPDX
Necessità di integrazione VEX per i flussi di gestione delle vulnerabilità CycloneDX
Azienda con strumenti SPDX già in uso SPDX
Mercato tedesco (allineamento BSI TR-03183) Entrambi (entrambi consigliati)
Nessun formato preesistente CycloneDX (più semplice, orientato alla sicurezza)

Per la conformità al CRA, entrambi i formati funzionano. Il CRA non indica un formato preferito. Si scelga un formato e lo si applichi in modo coerente all'intero portafoglio di prodotti. È possibile generare entrambi dalla stessa build con strumenti come Syft o Trivy, ma standardizzarsi su uno riduce il carico operativo.

I requisiti sui campi di BSI TR-03183 si applicano a entrambi i formati

Il formato scelto non incide sui campi da compilare. Nome, versione, fornitore, PURL, hash, licenza e relazioni di dipendenza sono obbligatori ai sensi di BSI TR-03183 indipendentemente dal fatto che lo SBOM sia CycloneDX o SPDX.

Domande frequenti

Quali formati SBOM accetta il CRA?

Il CRA richiede formati «in un formato di uso comune e leggibile da un dispositivo automatico». CycloneDX (OWASP) e SPDX (Linux Foundation) sono i due formati che soddisfano questo requisito. Il Regolamento non li cita esplicitamente, ma nessun altro formato soddisfa attualmente questo livello nella pratica.

CycloneDX o SPDX: quale scegliere per la conformità al CRA?

Entrambi soddisfano il requisito del CRA relativo al formato «in un formato di uso comune e leggibile da un dispositivo automatico». Si scelga CycloneDX se la priorità è la sicurezza: dispone di supporto nativo VEX (Vulnerability Exploitability eXchange), si adatta meglio ai flussi di gestione delle vulnerabilità ed è sempre più il formato di riferimento per gli strumenti orientati al CRA. Si scelga SPDX se la priorità è la conformità delle licenze, un riconoscimento ISO più ampio (ISO/IEC 5962), o si dispone già di SPDX da precedenti attività di conformità open source. È possibile produrre entrambi dalla stessa build, ma standardizzarsi su uno nell'intero portafoglio di prodotti riduce il carico operativo. La scelta del formato non incide sui campi obbligatori ai sensi di BSI TR-03183.

Prossimi passi

  1. Si confermi il formato: CycloneDX per i team orientati alla sicurezza, SPDX in presenza di flussi di conformità delle licenze già consolidati. In caso di dubbio, si inizi con CycloneDX (1.4 come minimo per il CRA).
  2. Si verifichino i campi obbligatori rispetto ai livelli di qualità BSI TR-03183: nome, versione, fornitore, PURL/CPE, hash, dipendenze, licenze. Si applicano a entrambi i formati.
  3. Si prendano visione degli obblighi dell'Allegato I che lo SBOM deve soddisfare: si consulti Requisiti SBOM del CRA per formato, ambito e regole di documentazione dell'Allegato VII.
  4. Si automatizzi la generazione nella CI/CD con Syft, Trivy o cdxgen. Un'esportazione manuale non soddisfa l'obbligo continuativo di aggiornamento che scatta a ogni rilascio, patch o modifica di componente.
  5. Si inserisca lo SBOM nel fascicolo tecnico dell'Allegato VII (punto 2(b) per la descrizione della gestione delle vulnerabilità; punto 8 per le copie da fornire su richiesta), pronto per le autorità di vigilanza del mercato. Se si preferisce non configurare dall'inizio l'acquisizione degli SBOM, CRA Evidence gestisce l'acquisizione CycloneDX/SPDX e il punteggio di qualità TR-03183 su tutte le versioni del prodotto.