La scorsa settimana, grazie alla scoperta della backdoor nella libreria open source Xz per Linux, un 38enne ingegnere di Microsoft, Andres Freund, ha probabilmente sventato il più grande cyber attacco di sempre. Un piano per diffondere un malware che avrebbe avuto un impatto sconvolgente. Avrebbe consentito ad attaccanti di rubare informazioni, installare codici malevoli o provocare interruzioni in infrastrutture critiche.
Il ricercatore ha notato qualcosa che non andava in un software su cui lavorava e così si è accorto che qualcuno stava probabilmente cercando di accedere ai computer di tutto il mondo. Satya Nadella, amministratore delegato di Microsoft, ha elogiato la sua “curiosità e maestria” che hanno permesso di rilevare un’assurda relazione fra una libreria (utile per altre attività) e un server di accesso remoto.
“La vulnerabilità scoperta da ricercatore Microsoft e di particolare rilievo”, commenta Paolo Dal Checco, informatico forense, “perché evidenzia come una piccola componente sviluppata in modo quasi amatoriale negli ultimi anni è diventata parte sostanziale di un sistema molto più complesso e utilizzato in numerosissimi ambiti, anche professionali o legati al mondo della sicurezza informatica”.
L’aggiornamento è giunto a tempo di record, ma non tutti hanno ancora corretto la vulnerabilità.
“Il caso è sicuramente molto preoccupante”, conferma Pierluigi Paganini, analista di cyber security e CEO Cybhorus, “in quanto i sistemi non aggiornati continuano ad essere esposti a seri rischi e potenzialmente alla loro completa compromissione“.
Ecco perché è urgente aggiornare subito.
Indice degli argomenti
Backdoor nella libreria Xz per Linux: una scoperta casuale
La saga è iniziata all’inizio di quest’anno, mentre Freund tornava in aereo da una visita ai suoi genitori in Germania. Durante l’esame di un registro di test automatizzati, ha notato alcuni messaggi di errore che non ha riconosciuto. Il jet-lag e i messaggi non sembravano urgenti, così li ha archiviati nella sua memoria.
Ma qualche settimana dopo, mentre eseguiva altri test a casa, ha osservato che l’applicazione chiamata SSH, utilizzata per accedere ai computer da remoto, sfruttava più potenza di elaborazione del normale.
“La scoperta è infatti dovuta alla necessità del ricercatore di porre rimedio all’eccessiva rumorosità del suo computer”, spiega Dal Checco, “dovuta all’utilizzo della CPU e alle ventole di raffreddamento, probabilmente questo tipo di baco sarebbe rimasto sconosciuto fino a che non si fossero concretamente manifestate le conseguenze delle backdoor che avrebbe potuto instillare nei sistemi.
Ha ricondotto il problema a un insieme di strumenti di compressione dei dati chiamato xz Utils e si è chiesto se fosse collegato ad errori precedenti.
“Quello che è successo è conseguenza di un sistema, peraltro ottimo in diversi altri casi”, sottolinea Dal Checco, “di collaborazione che permette diversi sviluppatori di contribuire a un progetto fino a portarne a termine lo sviluppo in modo che possa diventare utile a tutti coloro che volessero, in futuro, incorporarlo all’interno del loro prodotto, gratuito o commerciale che sia. Questo approccio però presenta dei notevoli limiti, dovuti al fatto che spesso manca un controllo generale sul prodotto, oltre al fatto che uno degli elementi sostanziali di questa collaborazione è la fiducia tra gli sviluppatori”.
I dettagli
Il problema è che il sistema operativo Linux è il software open source che gira sulla stragrande maggioranza dei server del mondo – compresi quelli utilizzati da banche, ospedali, governi e aziende appartenenti a Fortune 500. La sua sicurezza è dunque una questione di cruciale importanza a livello globale.
Freund ha analizzato attentamente il codice sorgente di xz Utils e ha visto indizi che indicano che è stato manomesso intenzionalmente.
In particolare, ha scoperto che qualcuno aveva inserito del codice maligno nelle ultime versioni di xz Utils. Il codice, noto come backdoor, consentirebbe al suo creatore di dirottare la connessione SSH di un utente e di eseguire segretamente il proprio codice sul computer dell’utente.
“Colui che è riuscito a inserire una backdoor all’interno della libreria XZ“, mette in guardia Dal Checco, “aveva conquistato la fiducia degli altri sviluppatori così da poter iniziare a inserire all’interno del codice dei piccoli piccoli elementi che man mano sarebbero diventati sempre più concretamente orientati all’utilizzo malevolo dei sistemi che avrebbero fatto uso della libreria”.
Nel mondo della cyber sicurezza, un ingegnere di database che scopre inavvertitamente una backdoor in una funzione fondamentale di Linux è un po’ come un cercatore di funghi che sente l’odore di tartufo, intuisce che c’è qualcosa che non va e deduce correttamente che qualcuno ha manomesso l’intera fornitura globale di lievito. È il tipo di intuizione che richiede anni di esperienza e un’attenzione ossessiva ai dettagli, oltre a una sana dose di fortuna.
Ma, “contrariamente a quanto inizialmente segnalato, la backdoor non consente solo il bypass dell’autenticazione SSH, bensì l’esecuzione remota di codice arbitrario sul sistema vulnerabile“, aggiunge Paganini.
Forse sventato un devastante cyber attacco
Le sue ricerche hanno permesso di portare alla luce nuove prove, quando, la settimana scorsa, Freund ha inviato le sue scoperte a un gruppo di sviluppatori di software open-source. La notizia ha infiammato il mondo tecnologico tanto da portare in poche ore allo sviluppo di una correzione. Alcuni ricercatori gli hanno attribuito il merito di aver impedito un cyber attacco potenzialmente storico.
“Questa avrebbe potuto essere la backdoor più diffusa ed efficace mai inserita in un prodotto software”, ha dichiarato Alex Stamos, Chief Trust Officer di SentinelOne, una società di ricerca sulla sicurezza informatica.
“Se fosse passata inosservata”, ha aggiunto Stamos, la backdoor avrebbe “dato ai suoi creatori la chiave principale per accedere a qualsiasi delle centinaia di milioni di computer al mondo che utilizzano SSH”. La chiave avrebbe infatti permesso ad attaccanti di rubare informazioni private, installare malware devastanti o causare gravi interruzioni in grado di paralizzare le infrastrutture, senza essere nemmeno scoperti.
Come proteggersi dalla backdoor nella libreria Xz per Linux
Se Andres Freund non si fosse accorto della backdoor, se quest’ultima avesse avuto un impatto inferiore sulle risorse di sistema, così da non alimentare sospetti, la backdoor si sarebbe diffusa nella maggior parte dei sistemi operativi, diffondendosi ovunque in pochi anni. Infatti, si è scoperto anche un forte social engineering da parte di finiti utenti, con background da sviluppatori, per convincere i gestori delle distro di Linux ad immettere nelle loro distribuzioni la versione più aggiornata, contenente il malware, di XZ Utils.
“Altro aspetto che preoccupa è quanto emerso dalle investigazioni, ovvero che l’attore malevolo dietro questa backdoor abbia iniziato a contribuire al progetto XZ quasi due anni fa“, mette in guardia Paganini: “Un’attività pianificata e volta ad acquisire credibilità fino ad ottenere un ruolo di maintainer del progetto stesso. Si tratta di operazioni condotte in un arco temporale lungo, condotte con meticolosa preparazione e sempre prestando massima attenzione agli aspetti di evasione. Questi fattori suggeriscono il coinvolgimento di un attore nation-state“.
Per proteggersi, bisogna dunque correre ai ripari, sanando la falla.
“La soluzione per chi ha in uso software che al loro interno inglobano la libreria compromessa e quella di aggiornare a una versione dell’ambiente che utilizzi una libreria precedente all’attacco o quella che, auspicabilmente, verrà prodotta rimuovendo le tracce della compromissione avvenuta”, avvisa Dal Checco: “La vulnerabilità non colpisce utenti comuni, almeno non direttamente, quindi coloro che devono porre attenzione in questo momento sono in particolare sistemisti e coloro che gestiscono server accessibili da remoto tramite il protocollo SSH“.
Cosa insegna questo caso al mondo open source
Cercando di ragionare sulle possibili soluzioni, “è difficile arrivare a una conclusione netta, su quali potrebbero essere le migliori modalità operative di integrazione dei componenti e all’interno dei progetti”, spiega Dal Checco: “in generale ovviamente è scontato che sarebbe sarebbe opportuno fare delle verifiche approfondite su tutto il materiale che viene utilizzato all’interno dei software, soprattutto se per uso commerciale, ma chiaramente diventa spesso impossibile fare questo tipo di verifica perché potrebbe raggiungere costi simili a quelli necessari alla produzione dei componenti stessi che vengono integrati”.
Effettuare le verifiche su ogni pezzo di software, nell’ambito open source, dunque “renderebbe improduttivo l’utilizzo di tali componenti. L’intero sistema risulterebbe ingessato dal fatto che ogni sviluppatore dovrebbe utilizzare soltanto codice sviluppato da se stesso, trasponendo ovviamente a un team il vincolo di rimanere all’interno del materiale autorprodotto”, avverte Dal Checco.
“Certamente potrebbe essere opportuno eseguire quantomeno delle analisi di massima su tutte le componenti inserite all’interno di un prodotto più ampio“, mette in evidenza l’informatico forense, “eventualmente anche facendo uso di test automatici o analizzando le tempistiche con le quali sono state fatte le modifiche incrementali al codice che si va a utilizzare”.
“È frequente infatti osservare progetti open source nei quali nei tempi recenti sono avvenute modifiche che rendono il progetto interamente poco affidabile, nel caso di specie invece il problema le modifiche sono state applicate armonicamente e distribuendo nel tempo il progetto da parte di un soggetto che era riconosciuto dalla comunità come affidabile”, conclude Dal Checco.
Quale lezione impariamo da quanto successo
Inoltre, questa vicenda ci impartisce una lezione. La falla è stata corretta al volo, dunque occorre aggiornare i sistemi quanto prima, senza perdere tempo prezioso. Ogni update è ormai urgente, ma, in questo caso, il fattore tempo è una priorità.
“Ogni sistema online che usa la libreria in cui è presente la backdoor e che espone SSH su Internet”, infatti, conferma Paganini, “è potenzialmente vulnerabile ad attacchi, peraltro di difficile detection”.
“A questo punto, per le organizzazioni che hanno utilizzato la libreria con la backdoor”, conclude Paganini, “è cruciale utilizzare una versione pulita (antecedente a quelle compromesse), ma soprattutto cercare eventuali indicatori di compromissione relativi a potenziali attacchi verificatisi in passato“.