SPDX e CycloneDX: formati SBOM a confronto

Tutti i messaggi

Nonostante la crescente adozione della distinta base software (SBOM) come strumento di gestione delle vulnerabilità e sicurezza informatica, molte organizzazioni hanno ancora difficoltà a comprendere i due formati SBOM più popolari in uso oggi, SPDX e CycloneDX. In questo articolo confronteremo questi due formati per aiutarti a scegliere quello giusto per le tue esigenze.

Cosa sono i formati SBOM

Nello sviluppo delle distinte base del software per lo sviluppo del software e la gestione delle vulnerabilità, è necessario aderire a un formato o a standard specifici. I formati SBOM standard definiscono una struttura specifica e unificata per la generazione di SBOM e determinano anche il modo in cui verrà condivisa con clienti e utenti lungo la catena di fornitura del software. I formati SBOM definiscono anche la composizione del software in un formato facile da comprendere per altri strumenti di sicurezza informatica. In genere, sono disponibili tre formati SBOM. Loro includono:

Scambio dati pacchetto software (SPDX): questo è un progetto SBOM open source e leggibile dalla macchina della Linux Foundation. È stato progettato principalmente per garantire conformità e trasparenza nella gestione del codice open source e proprietario da parte dei team di sviluppo e delle aziende.

CicloneDX (CDX): questo è anche un formato SBOM open source e leggibile dalla macchina sviluppato dalla comunità Open Web Application Security Project (OWASP). Si tratta di un formato SBOM leggero incentrato sulla facilità di adozione e automazione della generazione di SBOM in tutta la pipeline di sviluppo software. 

Tag di identificazione del software (SWID):  I tag SWID sono considerati più un identificatore software che un formato SBOM. Fornisce un modo semplice e trasparente per tenere traccia dell'inventario del software memorizzando informazioni specifiche sulla versione del software.

Generalmente vengono riconosciuti ufficialmente solo i formati SPDX e CycloneDX SBOM. L'utilizzo principale del formato SWID è per l'identificazione del software perché non offre tante informazioni quanto gli altri due formati.

SPDX e CycloneDX contengono informazioni sovrapposte e molti sostengono che possano essere utilizzati in modo intercambiabile poiché non esiste un unico formato SBOM “standard”. Tuttavia, i due formati hanno tradizionalmente casi d’uso diversi all’interno del ciclo di vita dello sviluppo del software. Pertanto, le diverse organizzazioni devono determinare quale funziona meglio per loro in base alle loro esigenze specifiche di sicurezza informatica e conformità.

Clicca qui per saperne di più sui formati standard SBOM.

Confronto tra SPDX e CycloneDx

SPDX e CyclonDX sono i due formati standard per la generazione di SBOM ed è probabile che rimarranno tali per molto tempo a venire. La maggior parte delle piattaforme di generazione SBOM supportano entrambi i formati. Tuttavia, sono strumenti distinti con casi d'uso diversi. Alcune delle loro differenze principali sono evidenziate di seguito:

Panoramica di CycloneDX

CycloneDX è un progetto SBOM open source di una delle principali organizzazioni di sicurezza software, Open Web Application Security Project (OWASP). Il progetto è stato lanciato nel 2017 come piattaforma di analisi dei componenti per aiutare gli utenti a identificare i rischi nella catena di fornitura del software. L'identificazione della vulnerabilità rimane il caso d'uso principale di CycloneDX. Questo formato SBOM aiuta anche con la conformità della licenza e con l'identificazione di componenti software obsoleti.

CycloneDX si concentra sull'automazione e sulla semplificazione dell'adozione dei requisiti SBOM durante l'intero ciclo di creazione del software. Il formato viene utilizzato sia da organizzazioni di software open source che proprietarie per casi d'uso di sicurezza.

Come formato BOM, CycloneDX ha altre applicazioni oltre alla preparazione delle distinte materiali del software. Può anche essere utilizzato per compilare componenti, vulnerabilità e servizi di hardware e sistemi cloud. Le SBOM preparate nel formato Cyclone DX elencano le vulnerabilità in tre campi principali. Questi sono:

  • Common Platform Enumeration (CPE): vulnerabilità all'interno di un'applicazione, dispositivi hardware o sistema operativo.
  • SWID: il tag identificativo del Software viene utilizzato per analizzare i componenti del software installato
  • URL del pacchetto (PURL). CycloneDX elenca anche i metadati dei pacchetti software.

Oltre a ciò, il formato CycloneDX supporta anche il tracciamento della provenienza dei prodotti software e dei loro componenti. Ciò rende più semplice identificare gli autori e i fornitori del software e di tutti i suoi componenti.

Panoramica dell'SPDX

SPDX sta per Software Package Data Exchange. È un progetto open source della Linux Foundation creato con l'intento di fungere da formato comune per la raccolta e la condivisione di dati software, in particolare informazioni sulle licenze.

Lo standard SPDX è stato originariamente sviluppato nel 2011 come strumento di gestione delle licenze open source. Nel corso degli anni il formato è stato perfezionato per includere nuovi campi che migliorano la capacità del formato di acquisire importanti informazioni relative alla sicurezza e renderlo più interoperabile con altri formati SBOM standard.

Nel settembre 2021, l'International Standard Organization ha riconosciuto il formato SPDX come standard riconosciuto a livello internazionale per la pubblicazione SBOM. SPDX è l'unico formato SBOM ad aver raggiunto questa impresa.

Giunta alla versione 2.2.2, la versione originale della specifica SPDX è stata sviluppata per facilitare la conformità alle politiche di licenza del software. Le versioni successive hanno aggiunto alcune funzionalità che lo rendono utile per un'ampia gamma di casi d'uso, inclusa l'identificazione delle vulnerabilità del software.

L'ultima versione di SPDX è stata progettata in linea con lo standard NTIA per gli "Elementi minimi per una distinta base del software". Elenca i componenti, i diritti d'autore, le licenze e i riferimenti di sicurezza di un pezzo di software.

Si prevede che un documento SBOM in formato SPDX contenga campi e sezioni specifici come evidenziato di seguito:

  • Informazioni sulla creazione del documento: queste informazioni vengono utilizzate per determinare la compatibilità con gli strumenti di elaborazione standard
  • Informazioni sul pacchetto: le informazioni sul pacchetto definiscono entità importanti che condividono lo stesso contesto all'interno del pacchetto software, come contenitori, componenti e prodotti.
  • Informazioni sul file: informazioni di identificazione dei file del software, come nome, licenza e informazioni sul copyright per ciascun file.
  • Informazioni sullo snippet: questo non è sempre applicabile. Le informazioni sullo snippet sono necessarie solo quando i dati del software provengono da una fonte diversa.

●  Relazioni e annotazioni: una SBOM in formato SPDX indica anche la relazione tra i diversi documenti, file e pacchetti utilizzati all'interno del software con annotazioni chiare che rendono più semplice per chiunque rivedere le relazioni dei componenti software.

SPDXCicloneDX
Informazioni: il formato SPDX SBOM acquisisce informazioni sull'autore della distinta base del software, su come è stata creata e quando è stata creata per ciascuna versione del file SPDX.Metadati della distinta base: il formato CycloneDX acquisisce informazioni importanti sul produttore/fornitore del software e sui componenti di destinazione. Include anche informazioni sulla licenza e metadati degli strumenti utilizzati per creare la distinta base.
Informazioni sul pacchetto: include i dati relativi alle proprietà comuni dell'intero pacchetto software.Componenti: delinea tutti i componenti del software lungo l'intera catena di fornitura.
Informazioni sui file: dati relativi a tutti i file inclusi nel pacchetto software.Servizi: delinea le API esterne, gli URL degli endpoint e i requisiti di autenticazione. Considerare attendibili gli attraversamenti dei confini e altri requisiti esterni del software.
Informazioni sullo snippet: dati relativi a una parte specifica di un file.Dipendenze: questo campo delinea la relazione diretta e transitiva tra i diversi componenti di un software
Informazioni sulla licenza: un campo per acquisire dati sulle licenze non acquisite nell'elenco delle licenze SPDX.Estensioni: fornisce dati sui punti di estensione che saranno utili per casi d'uso e funzionalità futuri.
Correlazione tra elementi SPDX: il campo mostra come i diversi file, documenti e pacchetti dettagliati nella documentazione SPDX sono collegati tra loro.
nnotazioni: informazioni aggiuntive per spiegare come è stato rivisto il documento SPDX, chi lo ha rivisto e quando è stato rivisto.

Qual è la differenza tra SPDX e CycloneDX?

I due formati SBOM standard evidenziati sopra possono essere utilizzati per generare, condividere e gestire i dati SBOM. Consentono agli utenti di generare informazioni accurate sui componenti di un prodotto software. Il formato SPDX (Software Package Data Exchange) è stato progettato principalmente come un modo per gestire le licenze software open source e condividere informazioni sui pacchetti. CycloneDX, d'altra parte, consente agli utenti di creare SBOM (Software Bill of Materials) che forniscono informazioni dettagliate sui componenti software.

Quale standard è meglio utilizzare?

Poiché il formato scelto determina la struttura del documento SBOM, i suoi componenti, come verrà generato e come verrà condiviso con gli utenti, è importante scegliere il formato SBOM corretto per generazione di SBOM in base alle esigenze specifiche della tua organizzazione.

Sebbene SPDX e CycloneDX abbiano applicazioni molto simili, sono diversi in termini di casi d'uso originali. Il formato SPDX è stato creato nel 2011 come strumento di gestione delle licenze. Oggi è ancora utile condividere informazioni dettagliate sui componenti di un sistema software con gli esseri umani lungo la catena di fornitura. Ciò rende questo formato più utile per scopi di sviluppo software.

CycloneDX (CDX), d'altra parte, è stato sviluppato più recentemente con lo scopo principale di generare documentazione SBOM che lo renda uno strumento di gestione delle vulnerabilità più efficiente poiché descrive in dettaglio tutti i componenti standard di un prodotto software. La natura leggera di CycloneDX lo rende anche uno strumento efficiente per generare distinte materiali software leggibili dalla macchina che è possibile condividere ed elaborare rapidamente

In fin dei conti, non esiste un formato “migliore” tra questi due. Quale scegliere dipende in gran parte dalle esigenze specifiche della tua organizzazione e dal caso d'uso previsto del documento SBOM che intendi generare. 

Questo contenuto è offerto da Scribe Security, un fornitore leader di soluzioni di sicurezza end-to-end per la catena di fornitura di software, che offre sicurezza all'avanguardia per artefatti di codice e processi di sviluppo e distribuzione del codice attraverso le catene di fornitura di software. Per saperne di più.