Negli ultimi anni, l'attenzione verso la sicurezza del software è cresciuta, spingendo le organizzazioni a considerare più attentamente la gestione della sicurezza e della conformità del software. Il Software Bill of Materials (SBOM) si è affermato come una delle chiavi fondamentali per garantire la sicurezza della software supply chain. In  questo articolo scopriremo perché l’adozione di SBOM è diventata cruciale per la software security, esaminandone le sfide e i vantaggi.

Cosa è SBOM (Software Bill of Materials)?

Con l'acronimo SBOM si intende la distinta base del software: un inventario dettagliato delle componenti di un'applicazione o sistema. In altre parole, stiamo parlando di un elenco di informazioni fondamentali sulle componenti del software, come librerie, framework, moduli e modelli di codice, insieme alle loro versioni, alle dipendenze e alle fonti di provenienza.

Sicurezza nel Cloud: leggi le strategie di difesa contro i nuovi attacchi! Scarica il White Paper Guida alla Cloud Native Security

A cosa serve SBOM?

Come abbiamo visto, il Software Bill of Materials fornisce una panoramica completa delle risorse utilizzate nel processo di sviluppo e produzione del software. Include dettagli sulle versioni del software, le licenze utilizzate, le vulnerabilità note, gli aggiornamenti disponibili e informazioni sulle catene di approvvigionamento delle componenti. L'importanza di questo documento risiede quindi nella trasparenza e nella visibilità che offre sulla catena di approvvigionamento del software.

Con un Software Bill of Materials accurato, le organizzazioni possono identificare facilmente le vulnerabilità, le dipendenze obsolete o le componenti con licenze non conformi. Di conseguenza, possono prendere decisioni informate per gestire i rischi e garantire la sicurezza e la conformità del software.

Immagina se un pasticcere non sapesse esattamente quali ingredienti stanno entrando nei suoi dolci. Se un ingrediente contaminato venisse utilizzato, chi sarebbe responsabile? Questa circostanza mostra quanto sia importante per un'azienda dolciaria avere chiaro cosa sta mettendo nei suoi prodotti e da dove arrivano gli ingredienti, a tutela dei suoi clienti e anche della propria reputazione.

Analogamente, i produttori di software devono avere una conoscenza approfondita dei componenti presenti nelle loro applicazioni. SBOM agisce come una ricetta dettagliata per il software, offrendo un mezzo essenziale per gestire i componenti software che potrebbero nascondere vulnerabilità di sicurezza o problemi di licenza. Questo strumento si rivela fondamentale per l'azienda, non solo per proteggersi legalmente ma anche per salvaguardare gli utenti finali e mantenere alta la fiducia nel proprio marchio.

POTREBBE INTERESSARTI ANCHE:
Cloud Security: proteggere i dati nell’era del Cloud
Cloud Native Security: il White Paper della CNCF

Perché SBOM è cruciale per la software security?

SBOM riveste un ruolo indiscutibile nella sicurezza del software, specialmente in un panorama tecnologico che diventa giorno dopo giorno più intricato e pieno di minacce. Il Software Bill of Materials permette alle organizzazioni di scovare in fretta componenti vulnerabili e intervenire prontamente.

A sottolineare il valore critico che SBOM riveste oggi, ci pensa l'OSSRA (Open Source Security and Risk Analysis) nel suo rapporto del 2024, che rivela il 91% dei repository di codice esaminato include componenti arretrati di 10 versioni o più. L'articolo del nostro CTO Paolo Mainardi Have we reached a point of no return on managing software dependencies?, sottolinea la problematica, discutendo delle crescenti difficoltà nella gestione delle dipendenze software, specialmente nel contesto della sicurezza della catena di fornitura del software. Questi dati evidenziano l'urgente necessità di adottare SBOM per mantenere la sicurezza del software. Vediamo quali sono le principali aree di beneficio:

1. Identificazione delle vulnerabilità

Una delle principali funzioni dello SBOM è quella di identificare e individuare le vulnerabilità del software, fornendo una visione chiara delle componenti utilizzate e delle eventuali lacune nella sicurezza. Un documento ben organizzato che raccoglie tutte le risorse di un’applicazione facilita infatti l’interpretazione delle scansioni di sicurezza e dunque l'identificazione delle vulnerabilità. Quindi possiamo dire che, grazie alla sua natura dettagliata, il Software Bill of Materials contente agli strumenti di scansione di confrontare le versioni utilizzate con database di vulnerabilità noti.

2. Conformità e gestione del rischio

Il Software Bill of Materials riveste ovviamente una grande importanza anche per la compliance. Offre alle organizzazioni uno strumento essenziale per attestare la conformità alle normative e agli standard settoriali. Permette, in primo luogo, di tracciare e documentare con precisione le componenti software impiegate nei prodotti o nei sistemi aziendali. Questa trasparenza è vitale non solo per dimostrare la conformità alle leggi sulla sicurezza e sulla privacy dei dati, ma anche per intervenire tempestivamente al fine di ridurre i rischi legati alle vulnerabilità di sicurezza.

Potrebbe interessarti anche il video di Paolo Mainardi al recente DevSecOpsDay, che discute della Supply Chain della nostra infrastruttura cloud.

 

Come creare e gestire uno SBOM?

Realizzare uno SBOM non è una passeggiata, proprio perché il software è un groviglio di dipendenze interconnesse tra i vari componenti. Una sfida aggiuntiva è rappresentata dalla necessità di catalogare questi elementi seguendo una terminologia univoca e condivisa, il che richiede la cooperazione con la comunità open source per venire a capo di standard, metodologie e strumenti. Insomma, creare e gestire uno SBOM richiede un metodo rigoroso e strumenti ad hoc per assicurarsi che tutto sia preciso e niente venga lasciato al caso:

  1. Il processo di creazione inizia con l'identificazione e la raccolta delle componenti software utilizzate nell'applicazione o nel sistema. Questo passaggio può essere fatto manualmente, esaminando il codice sorgente e le dipendenze del software, o utilizzando strumenti di analisi statica e dinamica per identificare automaticamente le componenti.
  2. Successivamente, le informazioni raccolte vengono organizzate e documentate in un formato standardizzato, come ad esempio il formato CycloneDX o SPDX, che fornisce una struttura comune per la rappresentazione delle informazioni sulle componenti software.
  3. Una volta creato, lo SBOM deve essere costantemente aggiornato per riflettere eventuali modifiche apportate al software nel corso del tempo. 

Infine, vale la pena di sottolineare che per gestire in modo efficace uno SBOM, è importante integrarlo nel ciclo di vita dello sviluppo del software. Ciò significa incorporare la sua creazione, aggiornamento e gestione nei processi esistenti di sviluppo del software, garantendo che questo venga generato e aggiornato in modo coerente e sistematico.

LEGGI ANCHE: 
DevSecOps: 6 principi per introdurlo in azienda 
Container Security: che cos’è e come ottenerla

SBOM e il Cyber Resilience Act (CRA)

Il Cyber Resilience Act (CRA), proposto dalla Commissione Europea, mira a migliorare la sicurezza dei prodotti digitali e a fornire maggiore trasparenza agli utenti finali. In questo contesto, gli SBOM rivestono un ruolo critico nel soddisfare i requisiti del CRA.

La trasparenza fornita da un Software Bill of Materials completo e accurato consente agli utenti finali di comprendere appieno la composizione del software e delle componenti digitali presenti nei prodotti che utilizzano. Questo non solo aumenta la fiducia degli utenti nella sicurezza dei prodotti digitali, ma fornisce anche alle autorità di regolamentazione e ai produttori stessi gli strumenti necessari per identificare e gestire le vulnerabilità nei componenti software.

In conclusione, l'implementazione di uno SBOM aggiornato e dettagliato rappresenta una tattica fondamentale per garantire la sicurezza delle catene di fornitura software. Questo approccio non solo salvaguarda l'integrità e la sicurezza delle organizzazioni e dei loro utenti finali ma si pone anche come un pilastro essenziale per il rispetto delle normative emergenti in materia di cybersicurezza, come evidenziato dal Cyber Resilience Act.

Guida Security CNCF