La backdoor xz
Le cronache informatiche sono state dominate negli ultimi giorni dalla falla su xz, un piccolo software Linux che è stato infetto da un malware molto subdolo.
Questa backdoor è significativa per vari motivi:
- demolisce l’idea – non veritiera – che esistano sistemi sicuri al 100%, o che le falle interessino solo Apple e Microsoft;
- se avesse funzionato avrebbe colpito indiscriminatamente milioni di computer che lavorano su Linux;
- era, come se non bastasse, “asintomatica“, per cui non ci si accorgeva della sua presenza se non con appositi strumenti di monitoraggio.
La backdoor (porta d’ingresso da cui attaccanti informatici possono prendere il controllo della macchina) è stata inserita in un tool di compressione relativamente poco noto che si chiama xz, che è tuttavia presente in quasi tutte le distribuzioni del sistema operativo Linux.
È quella che viene chiamata dipendenza, in gergo: un software che serve ad altri prodotti per funzionare, su cui – spesso e volentieri – si poggiano intere infrastrutture (incluse quelle commerciali, in alcuni casi).
Linux è un sistema operativo molto diffuso che fa funzionare gran parte delle infrastrutture tecnologiche mondiali, incluse quelle ufficiali e/o governative. Se la backdoor si fosse diffusa su larga scala un numero incalcolabile di computer ne sarebbe stata affetta, senza saperne nulla e con il rischio di essere controllata lato amministratore da un utente ignoto.
Alla base di questa vulnerabilità c’è anche il fatto che è stata inserita nella supply chain o catena produttiva del software open source OpenSSH, attivandosi su SSH (il login da terminale remoto), e sfruttando una diabolica strategia di crittografia per nascondersi da eventuali scansioni pubbliche (che sono tipiche di antivirus e firewall). Ma questa non è una storia di sola informatica, bensì – come spesso accade in questi casi – di perfida manipolazione.
Manipolazione digitale
Tutto nasce un giorno del 2024 in cui Andres Freund, sviluppatore Microsoft, invia una email su una newsletter di sicurezza informatica (questa): avvisa la comunità della presenza di una backdoor nel software xz/liblzma, che ha scoperto personalmente e che consente una compromissione di qualsiasi sistema da terminale remoto. Ha trovato la falla praticamente per caso: durante un’attività di manutenzione ha notato che lz è leggermente più lenta del solito (500ms di latenza in più), e che – grazie ad un’analisi specifica – sta facendo uso anomalo di risorse della CPU ben oltre la media.
xz è un progetto open source sviluppato e gestito da tempo immemore. Lasse Collin è il suo mantainer ufficiale: si occupa di coordinare il lavoro degli sviluppatori, e – come spesso accade in questi scenari -lo fa senza essere retribuito. Tipico dei progetti open source, piaccia o meno. Gli aggiornamenti sono caricati su un server GIT da parte di chi ha tempo e modo per farlo, spesso senza una vera e propria regolarità.
Esplorando lo storico del GIT in cui sono stati effettuati gli ultimi aggiornamenti del software, si scopre che l’utente JiaT75 ha comunicato attivamente con Collin, per poi caricare alcune patch corrotte. Qualche tempo prima, peraltro, altri due utenti (Jigar e Dennis) hanno segnalato dei bug su xz, e non avendo avuto risposta celere lamentano la lentezza negli aggiornamenti (la discussione pubblica è qui). In realtà si tratta di un tentativo per logoramento di farsi accreditare come mantainer a propria volta.
Analizzato a posteriori, è un vero e proprio attacco di ingegneria sociale, nel quale due soggetti fake creati per l’occasione mettono pressione sul bersaglio e lo accusano implicitamente di non prendersi abbastanza cura del progetto, facendo leva sul senso di colpa. Nel mentre un terzo complice si sta per offrire di dare una mano a risolvere il problema, facendo lui stesso il lavoro richiesto.
È significativo notare la sincerità esibita da Collin, che afferma testualmente di soffrire di problematiche di salute che gli impediscono, di fatto, di lavorare serenamente alla questione:
Non ho perso interesse, ma la mia capacità di prendermi cura [del progetto] è stata piuttosto limitata a causa dei miei problemi di salute mentale a lungo termine[…]
I due aggressori, a questo punto, rincarano la dose:
“Mi dispiace per i tuoi problemi di salute, ma è importante essere consapevoli dei propri limiti. Capisco che questo è un progetto hobby per tutti i contributori, ma la community vuole di più“
mentre l’altro è ancora più lapidario:
“Non ci saranno progressi finché non ci sarà un nuovo manutentore“.
Passa un altro po’ di tempo, nel mentre Collin fa notare che il progetto software xz viene gestito praticamente per hobby, ma i due utenti perseverano nella propria pressione psicologica. Alla fine il mantainer si decide a inserire l’utente “volontario” JiaT75, ed è qui che il gruppo (di identità ignota, ma si tratta quasi certamente di un gruppo organizzato) riesce ad ottenere ciò che desiderava. Hanno il controllo del progetto e possono, finalmente, infettarlo.
L’attacco è partito usando tecniche di ingegneria sociale ed è culminato, ben quattro anni dopo, nell’inserimento di una versione aggiornata del software che conteneva un file binario (quindi eseguibile) senza codice sorgente per non dare indizi, che per nostra fortuna è stato rilevato con altri mezzi da Andres Freund. In molti, tra gli esperti del settore, si sono chiesti quanti altri progetti open source potrebbero aver subito trattamenti del genere, e sembra improbabile che non sia già capitato altre volte.
La scoperta della backdoor nel software xz/liblzma potrebbe essere vista quale manifestazione delle dinamiche tecnocratiche all’interno di una comunità di sviluppatori. La backdoor è stata inserita da individui che hanno saputo manipolare il mantainer del progetto sfruttando le sue vulnerabilità personali e psicologiche, mostrandosi anche particolarmente privi di scrupoli. L’utilizzo di tecniche di ingegneria sociale per influenzare le decisioni di Collin rivela una forma di controllo e manipolazione da parte degli aggressori studiata nel dettaglio. La manipolazione ha avuto, in definitiva, quasi un ruolo più profondo di quanto abbiano esibito le conoscenze tecniche. Esclusivamente con mezzi tecnici, d’altro canto, l’attacco sarebbe difficilmente andato in porto.
Andres Freund, con la propria pignoleria sincera e spassionata, è il simbolo della più profonda resilienza hacker, è quasi l’espressione di un fato che fa il proprio corso, è uno Stanislav Petrov in piccolo con microprocessore integrato, con una segnalazione per cui non è stato retribuito da nessuno che ha cambiato questa storia in meglio. Quella latenza di 500 ms ci ha salvati da una delle più profonde e significative falle informatiche mai rilevate, la quale – forse – sarebbe stata rilevata lo stesso, prima o poi, ma Freund se n’è accorto prima che andasse in produzione, prima che diventasse definitiva dentro il sistema Linux che usiamo tutti senza saperlo.
E questo probabilmente dimostra, contrariamente alla narrazione iperliberista, il tempo perso non è mai perso.
(fonte: TheVerge)
Ingegnere per passione, consulente per necessità; ho creato Lipercubo.it. – Mastodon