Appare improbabile pensare, nel contesto delle infrastrutture fisiche, che un solo volontario possa occuparsi della manutenzione di tale struttura. Tuttavia, ciò accade invece per le infrastrutture digitali, sulle quali si fa affidamento ogni giorno per proteggere i dati di una carta di credito oppure quando si eseguono pagamenti e acquisti online.
Il caso Heartbleed: una vulnerabilità critica in OpenSSL
Tuttavia, tale impostazione non è completamente libera di difetti di sicurezza. A tal proposito, basti pensare a “Heartbleed”, ufficialmente designato come CVE-2014-0160, la quale è stata una vulnerabilità di sicurezza critica scoperta in OpenSSL, un’implementazione open source dei protocolli Transport Layer Security (TLS) e Secure Sockets Layer (SSL), utilizzati per proteggere la comunicazione su Internet, garantendo la riservatezza e l’integrità delle informazioni sensibili, come le credenziali di accesso e i dati finanziari.
Il bug, rivelato per la prima volta nell’aprile 2014, esisteva nell’estensione Heartbeat di OpenSSL, una funzionalità che consente ai partner di comunicazione di mantenere aperta una connessione e verificarne lo stato. Il difetto ha permesso agli aggressori di sfruttare una vulnerabilità sovralettrice del buffer, potenzialmente perdendo informazioni sensibili dalla memoria del server interessato.
Dopo la scoperta di tale difetto, le aziende tecnologiche hanno promesso di investire per ampliare il team di OpenSSL, convertendo, dunque, i cd. “volontari” in veri e propri dipendenti pagati, con lo scopo di proteggere il web. D’altro canto, come affermato da Mar Hicks, storica della tecnologia presso l’Università della Virginia, Internet è stato impostato come “decentralizzato” e le aziende ne condividono il controllo con accademici e anche appassionati.
Il caso XZ Utils: malware volontariamente introdotto nel codice
Ad aprile 2024 è stata scoperta un’altra falla nell’infrastruttura di internet: un volontario che per due anni aveva aiutato a gestire “XZ Utils”, un software open-source utilizzato per comprimere e decomprimere dati su Linux, ha scoperto l’introduzione di un malware nel codice, consentendo agli hacker di inviare comandi nefasti che altrimenti sarebbero stati prevenuti. Ancora una volta un progetto gestito da volontari era stato violato, questa volta deliberatamente.
XZ Utils essendo open source è scritto e mantenuto da piccoli team di programmatori, e, in molti casi, da un singolo individuo. Nel caso di XZ Utils, questa persona è stata per anni Lasse Collin, che ha fatto parte del progetto fin da subito, il quale assemblava e distribuiva gli aggiornamenti del software.
Tuttavia, negli ultimi anni pare che la manutenzione di tale strumento open source sia diventata più onerosa. Secondo l’esperto di sicurezza Michał Zalewski, circa due anni fa è apparso all’improvviso uno sviluppatore che si fa chiamare “Jia Tan”, il quale ha iniziato a fornire utili contributi alla libreria XZ Utils. Zalewski ha affermato che “poco dopo l’arrivo di Jia Tan sono comparsi diversi account apparentemente sock puppet – account aggiuntivi creato da un membro già iscritto a una comunità virtuale – che hanno iniziato a fare pressione su Lasse affinché passasse il testimone; sembra che ad un certo punto abbia ceduto nel 2023”. E sembra che i due aggiornamenti infettati da malware siano stati rilasciati proprio da Jia Tan.
Gli esperti di sicurezza informatica non si sono solo limitati ad analizzare il caso della backdoor bensì hanno preso in considerazione anche l’esistenza di una campagna online concentrata per convincere Lasse Collin a cedere il controllo del software open source a Jia Tan. Un esperto sudafricano di sicurezza ha dichiarato durante un’intervista rilasciata all’“Economist” che sospettava che l’SVR, il servizio di intelligence russo dietro la penetrazione di SolarWinds nelle reti governative statunitensi, possa aver avuto un ruolo nell’attacco.
Log4j: un’altra vulnerabilità critica in un popolare strumento open source
Oppure ancora, nel 2021, Log4j – anche conosciuta come CVE-2021-44228 – uno strumento che registra gli errori del computer, ha affrontato una vulnerabilità simile, la quale ha permesso agli attaccanti di eseguire un codice arbitrario a distanza (RCE), consentendo loro di prendere il controllo dei sistemi colpiti, tra cui software e infrastrutture, inclusi server web, applicazioni e giochi online. Essendo una libreria open source popolare, Log4j è stato incorporato in molte applicazioni senza che gli sviluppatori di esse fossero a conoscenza del rischio. L’”exploit” (una tipologia di virus o di script) ha sfruttato una falla nella funzione di elaborazione delle stringhe JNDI (Java Naming and Directory Interface) di Log4j, permettendo agli attaccanti di inviare una richiesta appositamente formattata contenente una stringa malevola attraverso i log di un’applicazione che utilizzava Log4j. Nel momento in cui il software cercava di loggare la stringa, la ricerca poteva essere manipolata eseguendo l’RCE.
Gli sforzi per mitigare tale vulnerabilità sono stati immediati e intensi; molti fornitori di software hanno rilasciato patch di emergenza per correggere le “falle”, e le organizzazioni di sicurezza informatica hanno emesso avvisi e linee guida per proteggere i sistemi colpiti.
L’importanza della sicurezza nel software open source
Tuttavia, queste vulnerabilità hanno sollevato discussioni più ampie per quanto riguarda il panorama della sicurezza del software open source, sulla gestione delle dipendenze di terze parti e sull’importanza di una risposta rapida e coordinata alle minacce informatiche emergenti.
A tal proposito, Synopsys ha pubblicato nel febbraio 2024 la nona edizione del rapporto annuale “Open Source Security and Risk Analysis” (OSSRA), il quale ha messo in evidenza che quasi i tre quarti delle basi di codice commerciali valutate per il rischio contengono componenti open source influenzati da vulnerabilità ad alto rischio, che rappresentano un forte aumento rispetto all’anno precedente.
Nel rapporto OSSRA, il Synopsys Cybersecurity Research Center (CyRC) ha analizzato i risultati anonimi di oltre 1.000 audit di codebase commerciali in 17 settori. Il rapporto fornisce ai team di sicurezza, sviluppo e legali una visione completa del panorama open source, comprese le tendenze nell’adozione e nell’uso del software open source, nonché la prevalenza di vulnerabilità di sicurezza e rischi di licenza software e qualità del codice.
L’aumento delle vulnerabilità open source ad alto rischio
Mentre le basi di codice contenenti almeno una vulnerabilità open source sono rimaste costanti anno su anno all’84%, un numero significativamente maggiore di codebase conteneva vulnerabilità ad alto rischio nel 2023. Questo può essere potenzialmente attribuito a variabili come l’instabilità economica e i conseguenti licenziamenti dei lavoratori tecnologici, riducendo il numero di risorse disponibili per correggere le vulnerabilità. Secondo i dati, la percentuale di basi di codice con vulnerabilità open source ad alto rischio – quelle che sono state attivamente sfruttate, hanno documentato exploit proof-of-concept o sono classificate come vulnerabilità di esecuzione di codice remoto – sono aumentate dal 48% nel 2022 al 74% nel 2023.
“Il rapporto OSSRA di quest’anno indica un allarmante aumento delle vulnerabilità open source ad alto rischio in una varietà di settori critici, lasciandoli a rischio di sfruttamento da parte dei criminali informatici”, ha dichiarato Jason Schmitt, direttore generale di Synopsys Software Integrity Group.
La crescente pressione sui team software per muoversi più velocemente ha probabilmente contribuito a questo forte aumento delle vulnerabilità open source e di conseguenza gli attori maligni hanno approfittato di questo vettore di attacco. Dunque, mantenere un’adeguata “igiene” del software identificando, monitorando e gestendo efficacemente l’open source è un elemento chiave per rafforzare la sicurezza della catena di approvvigionamento del software.
Già il bug Heartbleed ha fatto luce sui potenziali rischi associati a software open source ampiamente utilizzai e ha spinto uno sforzo collettivo per migliorare le pratiche di sicurezza. Mentre la tecnologia continua a progredire, le lezioni apprese dalle vulnerabilità contribuiscono alla continua evoluzione della sicurezza informatica, sottolineando la necessità di vigilanza, trasparenza e collaborazione nella salvaguardia del regno digitale.
Tuttavia, se le aziende tecnologiche non costruiranno da sole una migliore infrastruttura, incaricare e pagare delle organizzazioni o persone che lo facciano per loro sembra una soluzione percorribile e affinché ciò funzioni, le aziende tecnologiche dovrebbero fornire dei finanziamenti costanti, anziché rimediare ex post al problema presentatosi.
Possibili soluzioni per migliorare la sicurezza delle infrastrutture digitali
Attualmente esistono già iniziative che sono volte a migliorare la sicurezza degli open source software (OSS); attraverso il programma Secure by Design della Cybersecurity and Infrastructure Security Agency, l’agenzia federale statunitense sta lavorando assieme alla comunità del software open source per garantire che la sicurezza sia incorporata fin dall’inizio dello sviluppo del software, anche attraverso la promozione dell’adozione di codifica sicura per la memoria con linguaggi privi di vulnerabilità di sicurezza della memoria.
Il caso della backdoor XZ Utils è anche un esempio che illustra una maggiore necessità di controlli ed equilibri in OSS, considerato che le revisioni lunghe, manuali o automatiche di tutte le modifiche inviate a un progetto risultano essere fondamentali per trovare aggiunte di codice dannoso.
Conclusioni
Di conseguenza, le responsabilità e le azioni di aziende private che beneficiano del lavoro dei volontari sono fondamentali per migliorare la sicurezza di OSS. Per proteggere il cyberspazio, queste imprese dovrebbero spendere più risorse per controllare la sicurezza dei software open source, dal momento che si è costruito completamente un mondo su una tecnologia che è intrinsecamente poco sicura. In questo campo, gli appassionati costituiscono una grande parte del movimento open source, che spesso, più per passione che per altro, sviluppano software gratuiti rendendo i codici sorgente disponibili pubblicamente, ma non vengono sostenuti abbastanza dalle industrie.