SBOM
Che cos'è una SBOM?
Una SBOM, o software bill of materials, è un elenco leggibile da una macchina dei componenti di un software: ogni libreria, pacchetto e dipendenza, con versione, produttore e licenza. Per il software è ciò che l'etichetta degli ingredienti è per il cibo. Quando viene pubblicata una nuova vulnerabilità, una SBOM Le dice in pochi minuti se Lei distribuisce il componente interessato.
Aggiornato il
Che cosa significa SBOM?
SBOM sta per software bill of materials. Il termine viene dal settore manifatturiero, dove una distinta base elenca le parti che compongono un prodotto. CISA descrive una SBOM come un inventario annidato, un elenco degli ingredienti che compongono i componenti software.
Gran parte del codice di un'applicazione moderna è stata scritta da qualcun altro, e gran parte di questo codice arriva in modo indiretto: Lei aggiunge un pacchetto e questo porta con sé decine di dipendenze transitive. Una SBOM mette tutto per iscritto, così può rispondere alla domanda "siamo colpiti?" senza leggere un solo repository.
Che cosa contiene una SBOM?
Una SBOM utile ha due parti: i dati sulla SBOM stessa e i dati su ogni componente. I 2026 Minimum Elements, pubblicati da CISA, NSA e FBI con partner internazionali il 29 luglio 2026, sostituiscono l'elenco NTIA del 2021 e fissano il riferimento a cui oggi si rifà la maggior parte degli acquirenti.
| Parte | Campi |
|---|---|
| Sulla SBOM | Autore e firma dell'autore, marca temporale, nome e versione del formato dei dati, nome e versione dello strumento, versione della SBOM e contesto di generazione |
| Su ogni componente | Nome, versione, produttore, identificatori come un package URL, valore e algoritmo di hash, licenza e relazioni di dipendenza |
Il contesto di generazione conta più di quanto sembri. Indica quando è stata creata la SBOM: prima della build, durante la build, dall'artefatto finito o dopo. Due SBOM della stessa release possono differire proprio per questo motivo. Veda gli esempi di SBOM per capire come appaiono questi campi in un file reale.
Formati SBOM
Due formati coprono quasi tutte le SBOM in uso. CycloneDX, di OWASP, è nato in ambito sicurezza e descrive anche vulnerabilità e servizi. SPDX, della Linux Foundation, è nato per la conformità delle licenze. Entrambi possono contenere gli elementi minimi e la maggior parte degli strumenti li produce entrambi. Veda CycloneDX vs SPDX per capire come scegliere.
Perché le SBOM sono importanti
- Risposta più rapida agli incidenti. Quando emerge una vulnerabilità come Log4Shell, la domanda è quali dei Suoi prodotti la contengono. Con le SBOM è una ricerca. Senza, è un progetto.
- Monitoraggio delle vulnerabilità dopo il rilascio. Un software che era pulito al momento del rilascio può diventare vulnerabile domani. Ricontrollare le SBOM archiviate rispetto ai nuovi advisory permette di accorgersene senza ricompilare nulla.
- Rischio legato alle licenze. La licenza dichiarata di ogni componente mostra le condizioni copyleft o commerciali prima che arrivino nel prodotto.
- Domande di clienti e autorità di regolamentazione. Gli acquirenti chiedono sempre più spesso una SBOM in fase di procurement e diversi framework si aspettano un inventario dei componenti.
A chi serve una SBOM?
A chiunque distribuisca software e a chiunque debba rispondere di ciò che contiene. Di solito l'obbligo arriva da uno di questi ambiti:
- Dispositivi medici. La sezione 524B della FDA richiede una SBOM per i cyber device nelle domande presentate prima dell'immissione in commercio.
- Prodotti venduti nell'UE. Il Cyber Resilience Act chiede ai fabbricanti una SBOM. Veda requisiti SBOM del CRA e strumenti.
- Appalti federali statunitensi. Il memo OMB M-26-05 del gennaio 2026 lascia a ogni agenzia la decisione se richiederne una, quindi si aspetti decisioni caso per caso.
- Software per i pagamenti. Il requisito 6.3.2 di PCI DSS 4.0 chiede un inventario del software su misura e dei suoi componenti di terze parti. Non prescrive una SBOM, ma una SBOM soddisfa questa esigenza.
Come generare una SBOM
Ci sono tre modi per crearne una, e il metodo determina che cosa finisce nel file.
| Metodo | Che cosa legge | Lacuna tipica |
|---|---|---|
| Scansione del codice sorgente | Manifest e lockfile nel repository | Tutto ciò che la build scarica e che nessun lockfile elenca |
| Scansione dell'output | Un'immagine container o un binario finito | Il codice compilato è ambiguo e gli strumenti di build non lasciano traccia |
| Registrazione della build | Ciò che la build ha effettivamente scaricato durante l'esecuzione | Il traffico che aggira il sistema di registrazione, che dovrebbe essere segnalato |
I generatori open source come Syft, Trivy e cdxgen usano i primi due metodi. I loro risultati divergono sullo stesso commit, perché ognuno ha regole proprie su che cosa leggere. Per vedere le opzioni a confronto, consulti i migliori strumenti SBOM.
SBOM, SCA e VEX
- Una SBOM è un inventario. Dice che cosa c'è, non se è sicuro.
- La software composition analysis è l'analisi. Individua i componenti e ne verifica i rischi, e molti strumenti SCA producono anche una SBOM.
- VEX è una dichiarazione sull'impatto. Dice se una vulnerabilità nota colpisce davvero il Suo prodotto, riducendo il rumore che una SBOM da sola genera.
Generare una SBOM è la parte facile
Un file che nessuno legge non cambia nulla. Il valore nasce dal conservare una SBOM per release, dal monitorarle e dal poterle trovare quando serve. Questo lavoro è la gestione delle SBOM, e le best practice per le SBOM spiegano come portarlo avanti.
Come CRACI crea le SBOM
CRACI è un runner GitHub Actions che registra ogni pacchetto scaricato da ciascun job, a ogni profondità dell'albero e compresi i pacchetti ripristinati dalle cache CI. Il risultato è una SBOM della build che ha prodotto la release, con uno stato di completezza che indica ciò che il job non ha potuto vedere. Si esporta in CycloneDX o SPDX e CRACI continua a rivalutarla man mano che vengono pubblicate nuove vulnerabilità. Veda la generazione di SBOM in fase di build.
SBOM: domande frequenti
Che cos'è una SBOM in parole semplici?
Una SBOM è una lista degli ingredienti del software. Indica ogni componente di un prodotto, con versione, produttore e licenza, in un formato leggibile dalle macchine.
Che cosa significa SBOM?
SBOM sta per software bill of materials.
Perché serve una SBOM?
Per capire rapidamente se una vulnerabilità appena pubblicata colpisce ciò che Lei distribuisce, vedere i rischi legati alle licenze prima del rilascio e rispondere a clienti e autorità di regolamentazione che chiedono che cosa contiene il Suo prodotto.
Quali sono i due principali formati SBOM?
CycloneDX e SPDX. CycloneDX è di OWASP ed è nato in ambito sicurezza. SPDX è della Linux Foundation ed è nato per la conformità delle licenze. Entrambi possono contenere gli elementi minimi.
Una SBOM è obbligatoria per legge?
Dipende dal prodotto e dal mercato. La sezione 524B della FDA ne richiede una per i cyber device e il Cyber Resilience Act dell'UE la chiede ai fabbricanti. Negli appalti federali statunitensi oggi la decisione spetta a ogni agenzia. Per molte altre aziende è un requisito dei clienti più che un obbligo di legge.
Con quale frequenza va aggiornata una SBOM?
Generi una nuova SBOM per ogni release, perché ogni build può scaricare versioni diverse. La SBOM di una release in seguito non cambia, ma dovrebbe continuare a confrontarla con le nuove vulnerabilità.
Chi crea la SBOM?
Di solito il team che sviluppa il software, idealmente in CI, così ogni release ne riceve una automaticamente. Il software acquistato dovrebbe arrivare con una SBOM del fornitore.
Veda la SBOM della Sua build reale
Esegua un workflow GitHub Actions su CRACI e confronti la SBOM registrata con ciò che riportano i Suoi strumenti attuali.
Prenota una demo