Dal recente aumento degli attacchi alle catene di fornitura del software, la generazione della distinta base del software (SBOM) è diventata una fase fondamentale dello sviluppo che i team devono completare per creare e spedire il software in modo sicuro. Una SBOM è un elenco completo che descrive in dettaglio tutti i componenti software utilizzati in un prodotto software. Lo scopo della sicurezza SBOM è garantire la trasparenza e la tracciabilità all'interno della catena di fornitura del software, consentendo alle organizzazioni di identificare e correggere potenziali vulnerabilità della sicurezza e rischi di conformità.
Ma creare e gestire una SBOM è un compito complicato, soprattutto per le organizzazioni con un ampio portafoglio di software. Identificare tutti i componenti software utilizzati in un prodotto e tenere traccia di tutti gli aggiornamenti e le patch garantendone l'accuratezza richiede un approccio sistematico.
In questo articolo discuteremo delle migliori pratiche e strategie per gestire una SBOM in modo efficace, delle sfide associate alla gestione della SBOM e di come semplificare questo processo per mantenere sicura la catena di fornitura del software.
Cos'è la gestione SBOM?
La creazione di una distinta base del software è solo il primo passo nel processo di mantenimento della sicurezza del software. Ma creare un elenco di componenti software non è sufficiente; devi monitorare, convalidare, modificare e gestire la tua SBOM. In questo modo sei sicuro non solo di essere a conoscenza dei componenti del tuo software, ma di comprendere effettivamente tutti i rischi dei singoli componenti e il loro impatto sul tuo software.
La gestione SBOM è il processo di monitoraggio della distinta base del software così come viene generata nella pipeline DevOps. La gestione della SBOM implica la generazione, l'archiviazione, l'analisi e il monitoraggio della documentazione SBOM. Il completamento di queste attività di gestione della SBOM durante il ciclo di vita dell'app ti aiuta a identificare le dipendenze del software e a migliorare la sicurezza della catena di fornitura.
La tua SBOM non ha alcuna utilità quando viene lasciata inattiva nella directory di build in cui è stata generata. La gestione della SBOM ti aiuta a sfruttare questi dati in modo da poter generare informazioni utili e comprendere meglio i componenti open source del tuo pacchetto software e il loro impatto sulla catena di fornitura del software. Anche la scansione e il reporting delle vulnerabilità sono aspetti della gestione SBOM.
Pertanto, sebbene la generazione delle distinte base del software sia una parte importante del processo DevOps, il processo continuo di gestione della SBOM è ancora più importante. Ti consente di sfruttare e implementare pienamente sistemi di riscaldamento delle vulnerabilità, politiche zero-trust e intelligence della catena di fornitura software a lungo termine.
Approfondimenti sulla gestione della SBOM
Per tenere il passo con il numero crescente di minacce ai diversi software lungo la catena di fornitura, Gartner prevede che fino al 60% delle organizzazioni che fanno affidamento sul software come infrastruttura critica inizieranno a imporre l’uso di SBOM nei prossimi anni. Questo secondo Report Gartner Innovation Insight 2022 su SBOM che fornisce informazioni vitali sull'importanza di implementare un programma di gestione SBOM.
Il rapporto riconosce l’importanza della sicurezza informatica SBOM per migliorare la visibilità, l’integrità, la trasparenza e la sicurezza dei codici utilizzati nelle catene di fornitura del software. Senza conoscere i componenti del software, è difficile comprendere l'entità dei rischi e delle vulnerabilità di questo software. La soluzione migliore è semplicemente tenere traccia di tutti i software in un'applicazione e confrontarli con un database di vulnerabilità note per garantire che siano sicuri.
Secondo il rapporto Gartner, ogni organizzazione dovrebbe investire nella generazione di una SBOM per ogni pacchetto software creato. Successivamente, dovrebbero verificare la SBOM di tutto il software utilizzato. È inoltre necessaria una gestione continua della SBOM in modo che possano rivalutare i dati per comprendere i nuovi rischi per la sicurezza anche dopo la distribuzione dell'app.
Strategie per un'efficace gestione della distinta base del software
Le organizzazioni possono garantire la sicurezza e la conformità del software che creano o utilizzano dando priorità alla gestione SBOM. Di seguito sono riportate alcune delle strategie per gestire in modo efficace la distinta base del software di un'organizzazione.
Automatizza la generazione della SBOM
È necessario creare una distinta base del software per ogni iterazione del software. Ma gli sviluppatori avranno difficoltà a raggiungere questo obiettivo se avranno bisogno di generare manualmente SBOM per ogni build. Ecco perché Generazione della SBOM dovrebbe essere integrato nella pipeline di distribuzione del software. L'automazione consente di raggiungere la “velocità della macchina” per la generazione di SBOM come raccomandato dalla National Telecommunications and Information Administration (NTIA).
Automazione SBOM aumenta inoltre l'integrità e l'affidabilità della documentazione SBOM. Le SBOM automatizzate generate all'interno della pipeline di sviluppo possono essere firmate crittograficamente, dimostrando agli utenti che l'elenco dei componenti software nella SBOM è autentico.
Formattazione strutturata
Tutti i dati presentati nella gestione della distinta materiali del software devono essere strutturati in base a un formato standard. Sebbene ce ne siano molti altri, SPDX, SWID e CycloneDX sono tre dei formati più popolari. Poiché non esiste una raccomandazione SBOM ufficiale o uno standard generalizzato a livello di settore, ciascuna organizzazione può scegliere il formato più adatto alle proprie esigenze. Il fattore più importante in questo caso è la coerenza, indipendentemente dal formato SBOM scelto.
Fornire SBOM per SaaS
Quando si tratta di implementare misure di sicurezza informatica per il software, le organizzazioni spesso si concentrano su app o software che distribuiscono nel cloud o in locale, mentre le app SaaS che utilizzano vengono ignorate.
Tuttavia, è consigliabile fornire SBOM anche per queste app Software as a Service. I clienti che utilizzano un modello SaaS non devono gestire gli aggiornamenti software o le nuove versioni. Tuttavia, nel caso in cui l'applicazione SaaS di un cliente venga compromessa a causa di una vulnerabilità, fornire SBOM per l'applicazione può fungere da allarme tempestivo e contribuire anche alle proprie misure di sicurezza informatica.
Aggiornamenti regolari per ogni versione
Per essere più efficaci, le SBOM dovrebbero essere specifiche della versione; gli sviluppatori dovrebbero rivedere la SBOM ogni volta che distribuiscono un aggiornamento per la loro applicazione. È facile per gli sviluppatori cadere nella trappola di creare una SBOM una volta e aggiornarla di tanto in tanto a causa della difficoltà di aggiornarla manualmente tra una versione e l'altra. Le aziende dovrebbero garantire che la gestione della distinta base del software venga tempestivamente aggiornata ogni volta che è disponibile una nuova versione del loro software. Questo è un altro motivo per cui è importante automatizzare la generazione della SBOM poiché semplifica la generazione di una versione aggiornata della SBOM ogni volta che si rilascia un aggiornamento.
Stabilire canali di comunicazione chiari
La gestione della SBOM coinvolge più parti interessate collegate al prodotto software in un modo o nell'altro. Ciò include fornitori di software, team di sviluppo, clienti e altri. Uno dei modi per garantire un'efficace gestione della SBOM è stabilire canali di comunicazione chiari tra queste parti interessate. Ciò garantisce che tutti abbiano accesso a qualsiasi nuova informazione sui componenti software di un prodotto e possano implementare eventuali aggiornamenti secondo necessità
Includi metadati
La quantità di metadati (informazioni aggiuntive come dati di licenza e stato delle patch) da includere nella documentazione SBOM dipende dal formato in uso. Sebbene alcuni formati possano supportare più metadati di altri per impostazione predefinita, gli sviluppatori dovrebbero dare la priorità all'aggiunta del maggior numero possibile di metadati alla propria SBOM. Queste informazioni aggiuntive semplificano la gestione della SBOM per gli utenti poiché non dovranno cercare manualmente queste informazioni ogni volta che ne hanno bisogno. I metadati semplificano inoltre l'identificazione e l'aggiornamento dei componenti vulnerabili dei prodotti ogni volta che viene annunciata una falla di sicurezza.
Sfide di gestione della SBOM
Nonostante l'adozione diffusa della SBOM, molti aspetti della gestione della SBOM rimangono impegnativi per gli utenti. Forse la sfida più grande è la mancanza di standardizzazione nella formattazione SBOM nel settore. Sebbene l'adesione allo stesso standard per la creazione e la condivisione di SBOM garantisca il miglior valore per tutti, ci vorrà del tempo prima che si possa raggiungere il consenso.
Un'altra sfida è la necessità di mantenere le SBOM aggiornate e pertinenti. Il software creato dalla maggior parte delle organizzazioni è dinamico. Ciò significa che gli aggiornamenti vengono rilasciati periodicamente e vengono aggiunti nuovi componenti. Per rimanere pertinente e sicura da utilizzare, la distinta dei materiali del software deve essere aggiornata con ogni nuova versione del software. Ogni organizzazione deve pianificare gli strumenti di generazione e gestione della SBOM in modo da poter rilasciare la nuova SBOM con ogni nuova versione del software in modo più fluido.
Inoltre c'è il rischio di imprecisioni o omissioni all'interno della SBOM, che possono portare all'esposizione a vulnerabilità e problemi di conformità. Alcuni strumenti di generazione SBOM non riescono a documentare il codice non elaborato o i file binari inclusi dagli sviluppatori nel codice sorgente. Le SBOM generate in questo modo creano un falso senso di completezza che le rende insicure. Per motivi di sicurezza e trasparenza, la SBOM dovrebbe essere molto dettagliata, elencando il maggior numero possibile di componenti e fornendo in modo ottimale informazioni gerarchiche per mostrare la relazione tra questi componenti.
Infine, esiste il rischio di gestire la sicurezza della SBOM stessa perché contiene informazioni sensibili sui componenti software utilizzati durante il processo di sviluppo, comprese potenziali vulnerabilità della sicurezza. Pertanto, le organizzazioni devono adottare misure per salvaguardare la SBOM da accessi o divulgazioni non autorizzate.
Sommario
Per concludere, è fondamentale sottolineare l'importanza di una corretta gestione della distinta base del software per qualsiasi organizzazione che crea o utilizza prodotti software. Oltre a creare una SBOM, l'implementazione di pratiche di gestione SBOM efficaci aiuta un'azienda a mantenere i propri prodotti software sicuri e conformi alle normative pertinenti.
Alcuni dei componenti chiave di un efficace framework di gestione della SBOM includono la tenuta di un inventario completo dei componenti software, la pianificazione di aggiornamenti regolari, l'esecuzione di valutazioni dei rischi secondo necessità e l'automazione della generazione e della gestione della SBOM.
Aderendo a queste best practice, un'organizzazione può acquisire una comprensione molto più approfondita delle proprie catene di fornitura software per ridurre al minimo il rischio di violazioni della sicurezza ed evitare altri potenziali problemi. In definitiva, una gestione SBOM efficace ti aiuterà a creare prodotti software sicuri e più affidabili che soddisfino le esigenze dei tuoi clienti e di tutte le parti interessate.