Esempio SBOM: spiegazione di un esempio di file SBOM

Negli ultimi anni, le persone sono diventate sempre più consapevoli dei rischi intrinseci dell’utilizzo di componenti open source nei propri software. Considerando che la maggior parte del software è un mix di logica open source e proprietaria, sapere quali ingredienti sono stati importati dall’esterno, direttamente o temporaneamente, è essenziale per una corretta gestione del rischio del prodotto software finale. Poiché i tempi in cui si monitorava gli ingredienti utilizzando complicati fogli di calcolo sono ormai lontani e tristemente inefficienti, il modo principale per eseguire tale monitoraggio è utilizzare una SBOM, una distinta base software. Come altre distinte base, è essenzialmente un elenco degli ingredienti software da cui è costruito il software con l'aggiunta delle relazioni tra i diversi ingredienti con un'attenzione particolare a quali componenti dipendono l'uno dall'altro.

Esistono due principali formati SBOM utilizzati oggi sul mercato: SPDX e CycloneDX. 

Scambio dati pacchetto software (SPDX) è un progetto SBOM open source e leggibile dalla macchina della Linux Foundation. L'ultima versione dell'SPDX è stata progettata in linea con lo standard NTIA per '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.

CicloneDX (CDX) è anche un formato SBOM open source e leggibile dalla macchina sviluppato dalla comunità Open Web Application Security Project (OWASP). 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.

Perché la SBOM è importante?

La SBOM è estremamente utile per i team di sviluppo software, le organizzazioni di acquisto e gli utenti finali. Il suo utilizzo può contribuire a garantire che i componenti open source e di terze parti siano aggiornati e offre visibilità su quali dipendenze del progetto presentano vulnerabilità note che potrebbero essere sfruttabili nel software. Gli acquirenti di software, d'altro canto, possono utilizzare le SBOM per analizzare il rischio inerente a un prodotto attraverso valutazioni di vulnerabilità. 

Le organizzazioni trarrebbero un servizio migliore collaborando con i propri fornitori per garantire che abbiano accesso a informazioni corrette e aggiornate sui componenti del progetto implementati in sistemi e/o prodotti. Dovrebbero inoltre valutare regolarmente le proprie SBOM per ridurre al minimo i rischi derivanti dall'utilizzo di componenti open source e di terze parti.

Campioni SBOM

A seconda del formato SBOM utilizzato, potrebbero esserci differenze nei componenti della SBOM. a seconda delle dimensioni e della complessità del tuo progetto, un file SBOM JSON può facilmente raggiungere migliaia di righe o più. Poiché esaminare un file di mille righe non è molto informativo, utilizziamo esempi esistenti e più semplici per vedere cosa include ciascun formato SBOM. Daremo uno sguardo più da vicino ai campioni dei due principali formati presenti oggi sul mercato. 

SPDX

È possibile trovare l'esempio SPDX SBOM che seguiremo qui.

Il JSON inizia con informazioni generali sul file stesso: i metadati.

Campione SBOM

Successivamente, otteniamo i metadati relativi al software che stiamo esaminando:

Campione SBOM

Notare il checksum e il suo valore. Ogni sezione della SBOM include la crittografia e il risultato della parte in questione in modo che chi esamina il file possa essere sicuro che il software o il componente menzionato sia identico a quello che stanno guardando. 

Senza tale garanzia, potresti facilmente trovare più copie con lo stesso nome di componenti o software e non avresti idea di quale di queste versioni sia stata controllata o inclusa nel software o nella SBOM che lo descrive.

Seguendo la descrizione del software controllato possiamo iniziare a vedere i componenti:

Campione SBOM

Puoi vedere più campi inclusi per descrivere la licenza di un componente, la sua home page, versione, nome completo, ecc. 

Un'altra cosa che puoi trovare in un formato SPDX sono le annotazioni: aggiunte apportate in un secondo momento a una sezione e includono ulteriori informazioni e talvolta anche testo libero:

Campione SBOM

Per saperne di più su questo formato e sulle sue funzionalità, puoi visitare il Pagina SPDX della Fondazione Linux. 

CicloneDX 

Il formato SBOM CycloneDX può essere descritto in un file JSON, un file XML o in buffer di protocollo. Per mantenere le cose semplici e uniformi seguiremo un esempio JSON CycloneDX semplificato. L'esempio descritto può essere trovato qui.

Il JSON inizia con informazioni generali sui metadati del file.

Campione SBOM

Quindi i metadati sul software esaminato:

Campione SBOM

Successivamente i componenti software e le loro dipendenze:

Campione SBOM

Tieni presente che questo è un esempio semplificato e che il formato può includere molte altre informazioni. Per uno sguardo più completo ai vari casi d'uso, puoi consultare la pagina dei casi d'uso OWASP CyclonDX qui.

Ecco un esempio da quella pagina che mostra la creazione di un elenco di dipendenze:

Campione SBOM

Ed ecco una descrizione più esaustiva dei vari componenti di questo formato presa da OWASP Funzionalità della distinta base pagina:

Funzionalità della distinta base

Come utilizzare una SBOM

Non sentirti in colpa se non riesci a seguire gli esempi di file visti qui. Anche se i file JSON sono perfettamente leggibili dagli esseri umani, sono molto più adatti per essere leggibili dalle macchine in modo che software specializzati possano assorbire le informazioni ed emettere i risultati forniti dall'analisi. 

Puoi utilizzare un elenco di componenti software per verificare che non contenga licenze open source indesiderate (linea GPL3.0 o MPL1.1). Puoi controllare regolarmente un elenco di dipendenze per vedere se ci sono aggiornamenti disponibili o controllare i nomi dei pacchetti rispetto ai database delle vulnerabilità per sapere quali dipendenze problematiche include il tuo software.

Può sembrare complicato acquisire una SBOM e recuperare tutte le informazioni, ma ricorda che non devi fare tutto da solo. Servizi come la piattaforma Scribe Security possono eliminare molti grattacapi e offrire molti più vantaggi. Sentiti libero di dare un'occhiata alla nostra piattaforma e scoprire in quale altro modo puoi gestire il tuo rischio utilizzando il nostro sistema di monitoraggio continuo sul ciclo di vita dello sviluppo e sui prodotti finali.