Oggi che le aziende non hanno più confine, diventa ancor più importante certificare l’integrità del software con la firma digitale. Nella corsa costante verso la produttività le aziende si sono rivolte sempre più spesso a soluzioni software puntuali che hanno trasformato i loro ambienti IT in un patchwork di sistemi di fornitori diversi, finendo per minacciare la sicurezza stessa delle informazioni. Più sono le soluzioni, maggiore il numero di relazioni di fiducia che offrono agli intrusi una più estesa superficie di attacco. E, con il progressivo impiego di integrazioni tra sistemi con l’obiettivo di ottimizzare prestazioni e produttività, un attacco può diffondersi davvero rapidamente.
Le violazioni della supply chain che sfruttano software di terze parti per infiltrarsi in un’organizzazione sono diventate frequenti. Nel 2020, il codice maligno iniettato in un aggiornamento del software SolarWinds si è prima diffuso attraverso i dipartimenti del governo federale degli Stati Uniti per poi espandersi a livello globale e infettare circa 18.000 organizzazioni in tutto il mondo. Nel marzo di quest’anno, più di 20.000 imprese statunitensi sono state compromesse attraverso una vulnerabilità in Microsoft Exchange Server. Inoltre, non è raro che partner con un ruolo relativamente marginale nella catena di approvvigionamento rappresentino un rischio importante: una delle più grandi violazioni di dati della storia, l’attacco del 2013 al rivenditore statunitense Target, è avvenuta attraverso la compromissione del software di climatizzazione e, da allora, la sicurezza della supply chain è diventata un tema considerato critico a tutti i livelli.
Ma se i rischi derivanti dagli attacchi ai software della catena di approvvigionamento sono impossibili da ignorare, lo stesso vale per le promesse della tecnologia. È una dicotomia che si presenta in molte aziende e può costringere gli sviluppatori a fare una scelta: aderire ai più elevati standard di sicurezza o concentrarsi sulla creatività.
Esiste un modo per conciliare queste strade apparentemente opposte? In realtà sì: ripensare il software signing, il processo atto a fornire la prova innegabile che un software non sia stato alterato o corrotto prima della sua implementazione.
Le tecniche tradizionali di firma digitale del codice, ad esempio, usano chiavi crittografiche per verificare l’autore e l’integrità del contenuto di un repository ponendo l’onere di generare le chiavi e tenerle al sicuro sullo sviluppatore. Alcuni potrebbero ritenere questa responsabilità eccessiva e smettere di firmare il codice che scrivono (negativo per la sicurezza) o scrivere meno codice (negativo per l’innovazione), ma in ogni caso entrambi gli approcci avrebbero effetti sugli altri sviluppatori. Quando gran parte del software oggi è basato su principi open source e chiunque può prenderne il codice e adattarlo, la questione della provenienza diventa cruciale. E questo vale anche per il software proprietario, che sfrutta sempre di più il codice open source.
Ed è proprio questa comunità che sta lavorando a un ambiente di firma del software più favorevole agli sviluppatori. Il progetto – denominato sigstore – sostituisce le chiavi di lunga durata con altre effimere legate a identificatori esistenti (si pensi agli indirizzi e-mail, al login dei social media), dando vita anche a un registro pubblico e immutabile di tutte le attività. Entrambi essenzialmente sollevano gli sviluppatori dall’onere della firma, lasciandoli liberi di fare ciò che sanno fare meglio. Inoltre, un sistema che non si basa su chiavi che possono essere rubate o perse è intrinsecamente più sicuro.
I progressi sono stati rapidi. Da quando sigstore è stato lanciato nel 2019, i suoi membri fondatori – Red Hat, Google e Purdue University – sono stati affiancati da altre organizzazioni, e il progetto si è trasferito sotto l’ala della Linux Foundation. Anche la portata si è ampliata, con sotto-progetti che hanno poi acquisito vita propria come Cosign (per la firma digitale di container e artefatti software generali), Rekor (log di trasparenza) e Fulcio (certificato di autorità). Infine, sono nate collaborazioni con altre iniziative open source, in particolare Tekton Chains (un’estensione del progetto Tekton CI/CD).
Questi, tuttavia non sono solo importanti indicatori di successo ma mostrano come sigstore potrebbe essere implementato, ovvero come caratteristica integrata in una tecnologia più ampia. Qualsiasi passo in avanti per assimilare le capacità di sigstore nel toolkit esistente di uno sviluppatore non farà altro che favorire uno degli obiettivi chiave del progetto: semplificare e automatizzare la firma digitale al punto da farlo diventare un’infrastruttura invisibile di cui gli sviluppatori in futuro non si accorgano né preoccupino più.