Cosa devi sapere sulle distinte materiali del software
Impara a conoscere i concetti delle distinte base software (SBOM) e gli elementi di base definiti in Software Package Data Exchange (SPDX).
Lo sviluppo del software moderno è incredibilmente complesso. Al giorno d'oggi il software è sempre composto da una combinazione di componenti. Questi componenti sono in genere moduli e librerie richiamati da altro codice o anche programmi autonomi utilizzati insieme ad altri programmi.
Fino a qualche anno fa valeva la regola 80/20: in qualsiasi software significativo, l’80% del contenuto non doveva essere tuo. Non ha senso dal punto di vista economico provare a sviluppare più del 20% di un software perché è probabile che qualcuno abbia già costruito componenti con le funzionalità necessarie. Concentrati invece sullo sviluppo di ciò che ti dà un vantaggio competitivo. Negli ultimi anni, questo equilibrio potrebbe addirittura essersi spostato a 90/10.
È qui che entra in gioco la distinta base del software (SBOM). Si tratta di un record formale contenente i dettagli e le relazioni della catena di fornitura di tutti i componenti utilizzati nella creazione del software. Questi componenti possono essere open source o proprietari, disponibili gratuitamente o a pagamento, ampiamente disponibili o ad accesso limitato. Le informazioni presenti in una SBOM possono essere utilizzate in numerosi modi, aiutando a rispondere a varie domande contrattuali, legali o tecniche sul software.
I primi sforzi per fornire SBOM sono stati per lo più guidati dal desiderio di conformità legale. Ogni componente software è coperto da una licenza specifica, che potrebbe imporre alcuni obblighi sul suo utilizzo. Per essere legalmente conformi, è necessario soddisfare tutti gli obblighi di tutte le licenze. Questo è semplice, ma non facilmente realizzabile. Un primo passo ovvio è avere un registro di tutti i componenti e di tutte le licenze, che è esattamente ciò che è una SBOM.
Tuttavia, negli ultimi due anni, a seguito degli attacchi alla catena di fornitura del software, la forza trainante dietro l’adozione della SBOM e la necessità di conoscere gli esatti componenti all’interno di ogni componente software è stata la sicurezza. Si prevede ora che le SBOM accompagnino alcuni tipi di distribuzione del software. Ad esempio, l'Ordine esecutivo (EO) 14028 degli Stati Uniti consiglia alle agenzie governative statunitensi di iniziare a richiedere SBOM per qualsiasi prodotto hardware o software che acquisiscono.
Che cos'è una distinta base software (SBOM)?
A livello concettuale, una SBOM è come un semplice sommario: è un elenco completo di componenti software, con informazioni su nome, versione, origine ed eventualmente informazioni aggiuntive su licenza, vulnerabilità, provenienza o qualsiasi altra area di interesse. Poiché possono essere facilmente comprese, queste informazioni possono essere espresse in diversi formati: come tabella, come documento di testo, come foglio di calcolo e così via. Affinché le informazioni siano utili, lo stesso formato dovrebbe essere compreso e concordato da entrambi i membri di uno scambio.
Scambio dati pacchetto software (SPDX)
Più di dieci anni fa, un gruppo di persone interessate che rappresentavano varie aziende iniziò a lavorare sul problema della definizione di un formato comune e standardizzato che chiamarono Software Package Data Exchange (SPDX). Tutti erano d'accordo sul fatto che questo standard non dovrebbe rappresentare un vantaggio competitivo per nessuna azienda specifica, quindi il lavoro è proseguito seguendo completamente i principi dell'open source, con la partecipazione aperta di chiunque volesse contribuire.
SPDX è uno standard aperto per la comunicazione delle informazioni SBOM. L’anno scorso è stato ratificato come standard internazionale ISO/IEC 5962:2021. La specifica SPDX è prodotta in modo collaborativo riunendo un gran numero di partecipanti, organizzati in gruppi di lavoro in base ai loro interessi e competenze. Intel ha partecipato attivamente a molti gruppi sin dall'inizio, come il team tecnico che definisce le specifiche SPDX, il team legale che lavora sull'elenco delle licenze SPDX e il team di sensibilizzazione che promuove l'uso di SPDX.
L'approccio adottato da SPDX è che le informazioni presenti in una SBOM dovrebbero essere fattuali. Ad esempio, registra semplicemente la licenza dichiarata per ciascun componente software ed evita interpretazioni legali dei termini o degli obblighi di licenza. Un'altra caratteristica importante di SPDX è che le informazioni possono essere codificate in una varietà di formati, come testo puro con struttura minima, JSON, XML, RDF e persino fogli di calcolo.
La struttura di un documento SPDX è gerarchica. Oltre alle informazioni rilevanti per il documento stesso, come autore e data, le informazioni vengono presentate a livelli di granularità crescente, corrispondenti a pacchetti, file o snippet. Quasi tutte le informazioni a ogni livello sono facoltative, quindi è possibile generare una SBOM che offra una visione generale o una contenente informazioni estremamente dettagliate. La flessibilità del formato lo rende ideale per qualsiasi numero di casi d'uso reali. Ad esempio, un destinatario di una SBOM potrebbe essere interessato solo alle informazioni sulla vulnerabilità della sicurezza, mentre un altro potrebbe interessarsi a quali licenze sono coperte dai diversi componenti e agli obblighi legali che impongono.
Numerosi strumenti possono gestire i documenti SPDX. A seconda della funzionalità e del punto preciso della catena di fornitura del software in cui opera lo strumento, è possibile avere una tassonomia completa degli strumenti. Ad esempio, il documento SPDX potrebbe essere prodotto durante la creazione del software oppure potrebbe essere generato successivamente analizzando il software già creato. Altri strumenti utilizzano queste informazioni e possono analizzare, trasformare, confrontare o unire documenti SPDX.
I gruppi di lavoro stanno attualmente progettando la prossima versione principale. La versione 3 di SPDX rappresenta uno sforzo importante, poiché ristruttura le informazioni SBOM in sezioni modulari e compartimentate. Ciò consentirà, ad esempio, di avere una SBOM con particolare attenzione alle informazioni sulla sicurezza e sulla vulnerabilità e meno contenuti sui dettagli della licenza. Considerati i casi d’uso in costante aumento per le SBOM, si prevede che questo approccio modulare porterà a un’adozione più diffusa.
Intel prevede di introdurre SBOM per accompagnare le sue offerte software nel 2023. Nel frattempo, anche i membri di open.intel continueranno a partecipare attivamente agli sforzi di definizione delle nuove versioni di SPDX.
Questo post è basato su un recente discorso tenuto alla Conferenza sul software libero dell'Alto Adige (SFScon), puoi vedere il video e controllare le diapositive qui.