Come generare una SBOM con lo strumento Open Source di Microsoft

0
45
Shutterstock.com/Song_about_summer

Un SBOM (Distinta materiali del software) ti aiuta a comprendere la tua catena di fornitura del software elencando i pacchetti e i fornitori che codice su cui si basa. Le SBOM stanno rapidamente guadagnando slancio come un modo per contribuire a migliorare la sicurezza sulla scia di importanti attacchi alla catena di approvvigionamento nel mondo reale.

Uno dei principali sostenitori degli SBOM è Microsoft, che ha pubblicato il suo approccio alla loro generazione nell'ottobre 2021. All'inizio di quest'anno la società ha reso open source il suo strumento per la produzione di SBOM su Windows, macOS e Linux.

In questo articolo imparerai come iniziare a utilizzare il progetto per indicizzare le dipendenze del tuo codice. Produce documenti compatibili con SPDX che elencano i file, i pacchetti e le relazioni all'interno del progetto. SPDX (Software Package Data Exchange) è lo standard ISO per gli SBOM, quindi puoi passare i rapporti generati direttamente ad altri strumenti dell'ecosistema.

Microsoft aveva originariamente annunciato il progetto con il nome Salus. Da allora si è ritirato da questo termine perché è in conflitto con il progetto di sicurezza del codice Salus esistente che ha avuto origine su Coinbase. Il generatore SBOM è ora chiamato semplicemente sbom-tool.

Guida introduttiva

Puoi scaricare lo strumento SBOM dal repository GitHub di Microsoft. I binari precompilati sono disponibili nella pagina dei rilasci. Seleziona il download corretto per il tuo sistema, quindi rendi eseguibile il binario e spostalo in una posizione nel tuo percorso.

Ecco un esempio per Linux:

$ wget https://github.com/microsoft/sbom-tool/releases/download/v<VERSION>/sbom-tool-linux-x64 $ chmod +x sbom-tool-linux-x64 $ mv sbom-tool-linux-x64 /usr/local /bin/sbom-tool

Dovresti essere in grado di eseguire sbom-tool per visualizzare le informazioni della guida nella finestra del tuo terminale:

$ sbom-tool Non è stata specificata alcuna azione Lo strumento Sbom genera un SBOM per qualsiasi artefatto di build. Utilizzo – Microsoft.Sbom.Tool <action> -options

Generazione di uno SBOM

I nuovi SBOM vengono creati eseguendo il sottocomando genera dello strumento. È necessario fornire alcuni argomenti:

  • -b (BuildDropPath) – La cartella in cui salvare i manifesti SPDX SBOM generati.
  • -bc (BuildComponentPath) – La cartella che verrà scansionata per trovare le dipendenze nel tuo progetto.
  • -nsb (Spazio dei nomiUriBase) – Il percorso di base che verrà utilizzato come spazio dei nomi del manifest SBOM. Questo dovrebbe essere un URL di proprietà della tua organizzazione, ad esempio https://example.com/sbom.

Anche lo strumento SBOM deve conoscere i tuoi progetti nome e versione. Spesso può dedurre ciò da file già presenti nel repository, come il nome package.json e i campi della versione, ma potrebbe essere necessario fornire le informazioni manualmente o sovrascrivere le impostazioni predefinite in alcuni casi. Aggiungi i flag pn e pv per farlo:

  • -pn (nome pacchetto) – Il nome del tuo progetto o pacchetto.
  • -pv (PackageVersion) – La versione del progetto che stai scansionando. Questo dovrebbe corrispondere alla versione di rilascio che accompagna il tuo SBOM in modo che gli utenti possano correlare gli elenchi di dipendenze con build specifiche.

Ecco un esempio di generazione di un SBOM per i file nella tua directory di lavoro. Lo SBOM verrà inserito nella sottodirectory sbom-output. Questo deve esistere prima di eseguire lo strumento.

$ mkdir sbom-output $ sbom-tool generate -b sbom-output -bc . -pn esempio -pv 1.0 -nsb https://example.com/sbom

Una panoramica dei risultati della scansione verrà mostrata nel tuo terminale:

[INFO] 3728 file e 607 directory enumerati in 00:00 :00.5938034 [INFO] |ID rilevatore componenti |Tempo di rilevamento |# Componenti trovati |# Riferimento esplicito | … [INFO] |Npm |0,63 secondi |241 |0 | … [INFO] |Totale |0,64 secondi |241 |0 | [INFO] Tempo di rilevamento: 0,6374678 secondi.

Questo progetto usa npm per gestire le sue dipendenze. Lo strumento ha rilevato 241 pacchetti all'interno del file package.json della directory di lavoro.

Lo strumento SBOM attualmente supporta 19 diversi linguaggi di programmazione e formati di pacchetto. L'elenco include gemme npm, NuGet, PyPi, Maven, Rust Crates e Ruby, nonché pacchetti Linux presenti nelle immagini Docker. Sono supportati anche i riferimenti a repository GitHub remoti.

Contenuti SBOM

La SBOM generata verrà scritta in _manifest/spdx_2.2/manifest.spdx.json all'interno della directory di output della build specificata. SBOM è un file JSON abbastanza dettagliato destinato a essere utilizzato da altri software.

{ "files": [], "packages": [ { "name": "color- convert", "SPDXID": "SPDXRef-Package-A72B0922E46D9828746F346D7FD11B7F81EDEB15B92BEEDAE087F5F7407FECDC", … }

Ci sono quattro tipi principali di informazioni all'interno del rapporto:

  • I file sezione– Questo elenca tutti i file contenenti il ​​codice sorgente che hai scritto nel tuo progetto. Lo strumento SBOM popolerà questa sezione solo quando vengono scansionati determinati tipi di progetto, come le soluzioni C#.
  • La sezione dei pacchetti – Un catalogo completo di tutte le dipendenze di terze parti presenti nel tuo progetto, con riferimenti al loro gestore del pacchetto sorgente, alla versione utilizzata e al tipo di licenza che si applica.
  • La sezione delle relazioni
  • La sezione delle relazioni
  • forte>– Questo descrive in dettaglio tutte le relazioni tra i componenti elencati nella SBOM. La relazione più comune che vedrai è DEPENDS_ON, che dichiara un elemento nella sezione dei pacchetti come una delle dipendenze del tuo progetto. Esistono anche molti altri tipi di relazione, come CREATED_BY, DEPENDENCY_OF e PATCH_FOR.

  • Dettagli dei metadati del rapporto– Campi come name, documentNamespace, spdxVersion e creationInfo identificano lo SBOM, lo strumento utilizzato per crearlo e la revisione del manifest SPDX applicabile.

Ora hai un SBOM puoi iniziare a usarlo con altri strumenti per condurre scansioni di vulnerabilità e gestire la conformità delle licenze. Puoi prendere in considerazione la distribuzione di SBOM con le tue versioni software in modo che i consumatori possano ispezionare il contenuto di ogni nuova versione. Le SBOM vengono generate al meglio come parte della tua pipeline di compilazione in modo che rimangano aggiornate.

Avere accesso a una SBOM è inestimabile quando compaiono nuovi importanti problemi della catena di approvvigionamento. Le organizzazioni che utilizzano SBOM erano in una posizione migliore per rispondere a Log4j, ad esempio. Potrebbero esaminare i loro rapporti per trovare rapidamente progetti a seconda della libreria vulnerabile, invece di controllare manualmente gli elenchi dei pacchetti.

Scansione delle immagini Docker

SBOM Lo strumento è in grado di scansionare le immagini Docker esistenti come parte di una generazione di report. Per utilizzare questa funzionalità, è necessario aggiungere il flag -di e specificare il tag dell'immagine o il digest che si desidera scansionare. Il resto degli argomenti rimane lo stesso.

$ sbom-tool generate -di ubuntu:latest -b sbom-output -bc . -pn demo -pv 1.0 -nsb https://demo.com/demo

L'immagine Docker verrà analizzata per identificare i pacchetti che include. Verranno aggiunti al rapporto SBOM insieme alle dipendenze trovate nella cartella di origine. Puoi eseguire la scansione di più immagini Docker in un'unica operazione separando i loro tag o sintetizzando gli hash con virgole.

Riepilogo

SBOM Tool è una giovane utility di generazione SBOM open source sviluppata presso Microsoft. Supporta diversi formati di pacchetto leader e produce output compatibile con SPDX. Ciò significa che puoi inserire le SBOM generate direttamente in altri strumenti come Grype per trovare automaticamente vulnerabilità di sicurezza e dipendenze obsolete.

Le SBOM sono un modo efficace per aumentare la consapevolezza delle catene di fornitura del software e scoprire problemi in agguato. La produzione e la distribuzione di una SBOM aiuta gli utenti a capire cosa viene silenziosamente incluso nel loro progetto. Lo strumento SBOM è un modo per generare report standard del settore con un solo comando, rendendo più semplice offrire uno SBOM con ciascuna delle tue versioni.

LEGGI SUCCESSIVO

  • › Le migliori custodie per iPhone 14 Pro Max del 2022
  • › Come personalizzare l'orologio nella schermata di blocco di Android
  • › iOS 16.0.2 è uscito, ecco i bug che risolve
  • › Come sbloccare Netflix
  • › Lo Smart Display che amiamo è scontato del 45% fino a domenica
  • › Come correggere l'errore di avvio di Linux nell'errore del BIOS