La backdoor di zx Utils: ecco come un volontario ha scongiurato una catastrofe informatica

La backdoor di zx Utils: ecco come un volontario ha scongiurato una catastrofe informatica

Una vulnerabilità presente in uno strumento di compressione per Linux è stata scoperta quasi per caso da un singolo sviluppatore e neutralizzata per tempo: gli esiti sarebbero stati simili a quanto accaduto con Log4shell

di pubblicata il , alle 15:01 nel canale Sicurezza
 

Durante il weekend pasquale si è consumato un attacco informatico ai danni del sistema operativo Linux che, solamente grazie all'intervento tempestivo di un "volontario", è stato fortunatamente neutralizzato evitando conseguenze potenzialmente catastrofiche.  Si è trattato in particolare di una backdoor (CVE-2024-3094) inserita in una recente versione del formato di compressione xz Utils, pressoché sconosciuto al di fuori dell'ambiente Linux, ma utilizzato in quasi tutte le distribuzioni del pinguino per comprimere file di grosse dimensioni, allo scopo di facilitarne il trasferimento.

La scoperta della backdoor risale alla mattina del 29 marzo: Andres Freund, sviluppatore Microsoft di base a San Francisco, ha pubblicato un intervento su Mastodon inviando poi un messaggio e-mail alla mailing list di sicurezza di OpenWall titolata "backdoor in upstream xz/liblzma leading to ssh server compromise". Freund è un manutentore volontario del sistema di gestione database PostgreSQL. La sua scoperta prende il via dopo aver osservato comportamenti non consueti durante l'esecuzione di alcuni test su Linux: in particolare con un anomalo carico della CPU nel corso degli accessi crittografati a liblzma, parte della libreria di compressione xz.

Approfondendo questi comportamenti, Freund è riuscito ad individuare che il problema era sorto a seguito di un aggiornamento a xz Utils, scoprendo che nel repository xz e negli archivi tar xz era stata impiantata una backdoor. Il codice dannoso è stato riscontrato nelle versioni 5.6.0 e 5.6.1 degli strumenti e delle librerie xz che al momento, ha osservato Freund, non sono state ampiamente integrate nelle varie distribuzioni Linux ma sono per lo più presenti in versioni pre-release.

Dopo la pubblicazione delle scoperte di Freund, Red Hat ha inviato un avviso di sicurezza di emergenza agli utenti di Fedora Rawhide e Fedora Linux 40, dal momento che la versione beta di Fedora Linux 40 conteneva due versioni delle librerie xz interessate e probabilmente anche in Fedora Rawhide erano presenti le versioni vulnerabili di xz.  Anche Debian ha reagito tempestivamente alla notizia, comunicando agli utenti nella serata di venerdì che nessuna versione stabile di Debian era interessata dal problema, anche se risulta che i pacchetti compromessi siano presenti in una versione beta.

Ma com'è finito il codice dannoso all'interno di xz Utils? La vicenda assume in questo caso toni grotteschi, poiché dopo la segnalazione di Freund, numerosi ricercatori di sicurezza hanno avviato le proprie analisi ed indagini che hanno portato ad identificare in "JiaT75", o Jia Tan, la persona che materialmente ha aggiunto la backdoor all'utility di compressione, e si tratta di uno dei due principali sviluppatori di xz Utils. E secondo le analisi dei ricercatori di sicurezza, pare che il lavoro di inoculazione della backdoor sia iniziato molto tempo fa, indicando una strategia di social engineering di lungo periodo.

JiaT75 appare infatti per la prima volta nel 2021, contribuendo con una modifica al progetto open source libarchive, sostituendo la funzione safe_print con una variante nota per essere meno sicura. Allora, però, la modifica passò inosservata o non destò particolari sospetti. Nel corso del 2022 JiaT75 ha inviato una patch sulla maling list di xz Utils e in maniera pressoché contemporanea è apparso un altro "personaggio", di nome Jigar Kumar, che ha iniziato a criticare il manutentore di lungo corso di xz Utils, Lasse Collin, per gli aggiornamenti poco frequenti. Kumar è stato rapidamente sostenuto in questa battaglia da altri utenti mai manifestatisi prima di allora, facendo pressioni su Collin perché accettasse di essere affiancato da un altro sviluppatore che aiutasse nel mantenimento del progetto.

Si arriva quindi a gennaio del 2023, quando JiaT75 ha effettuato il suo primo commit per xz Utils. Nei mesi successivi la presenza di Jia Tan è andata via via crescendo: le sue informazioni di contatto sono state sostituite a quelle di Collins sul progetto oss-fuzz, che analizza il software open source alla ricerca di vulnerabilità sfruttabli. Successivamente Jia Tan ha richiesto che oss-fuzz disabiliti la funzione ifunc durante il test: questa modifica ha impedito il successivo rilevamento delle modifiche dannose che sarebbero presto state inserite in xz Utils.

Le versioni 5.6.0 e 5.6.1 di xz Utils, contenenti quindi la backdoor, sono state rilasciate a febbraio dello scorso anno con Tan che ha esortato, con l'aiuto di altri complici, gli sviluppatori di Ubuntu, Red Hat e Debian perché inserissero gli aggiornamenti nelle distribuzioni dei loro sistemi operativi. E solamente poche settimane fa Tan ha rilasciato il codice capace di estrarre ed innescare la backdoor, occultandolo all'interno di due file "di test" per verificare il funzionamento di xz Utils. La backdoor avrebbe consentito, se opportunamente sfruttata, di eseguire potenzialmente qualsiasi tipo di codice sulla macchina compromessa. Ovviamente al momento poco si conosce di Jia Tan, anche se è lecito immaginare che si possa trattare non di una persona reale ma di uno pseudonimo dietro al quale si cela il lavoro di un gruppo preparato e motivato.

L'intervento di Freund ha scongiurato il verificarsi di una sciagura simile a quella di Heartbleed o Log4Shell: anche la backdoor di xz Utils avrebbe interessato un numero sterminato di sistemi, che sarebbero risultato vulnerabili e con grossa probabilità all'insaputa dei loro gestori. Una situazione che avrebbe creato un terreno fertile ad episodi di "supply-chain attack", ovvero quella strategia in cui un bersaglio (magari una grande azienda, con risorse e strumenti adatti a rispondere efficacemente ad attacchi e minacce informatiche) viene preso di mira cercando di sfruttare come punti di ingresso gli anelli più deboli della sua catena di fornitori (tra i quali vi possono essere realtà di più piccole dimensioni e non necessariamente dotate di un adeguato approccio alla sicurezza informatica). 

Questa vicenda richiama ancora una volta l'attenzione su uno dei paradossi di Internet: la rete che rappresenta un elemento fondamentale del modo in cui la società vive e lavora oggi si basa su progetti open source gestiti su base volontaria e che molto spesso sono nati come strumenti personali ma in seguito largamente utilizzati anche da realtà commerciali senza che vi sia un'adeguata partecipazione né in termini finanziari, né in termini di impegni di mantenimento e sviluppo. Venerdì un singolo volontario è riuscito a sventare una minaccia con potenziali ripercussioni gravi a livello mondiale: ma la prossima volta?

16 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
marcram03 Aprile 2024, 15:35 #1
Ecco perché Bruce Perens ha proposto recentemente di far pagare una commissione a tutte le realtà multimilionarie che utilizzano (spesso "sfruttano" software opensource gratuitamente...

Link ad immagine (click per visualizzarla)
(Fonte XKCD)
Opteranium03 Aprile 2024, 15:46 #2
vicenda decisamente inquietante, per fortuna a lieto fine e che conferma quanto di buono ci sia nel software open.
Adesso mi chiedo: ci sarà una denuncia per questa "entità" (persona o gruppo che sia) autore del codice malevolo?
SpyroTSK03 Aprile 2024, 15:53 #3
Originariamente inviato da: marcram
Ecco perché Bruce Perens ha proposto recentemente di far pagare una commissione a tutte le realtà multimilionarie che utilizzano (spesso "sfruttano" software opensource gratuitamente...

Link ad immagine (click per visualizzarla)
(Fonte XKCD)


Quindi una LGPL con limiti di fatturato...
marcram03 Aprile 2024, 16:14 #4
Originariamente inviato da: SpyroTSK
Quindi una LGPL con limiti di fatturato...

Non me ne intendo tanto di licenze...

Dovrebbe essere: tu, azienda multimilionaria, paghi una commissione in percentuale ai ricavi, e in compenso puoi usare tutti i software con licenza Post-Open (così la chiama) che vuoi.
La commissione viene poi suddivisa tra gli sviluppatori dei software utilizzati.

https://www.thestack.technology/ope...-for-post-open/
SpyroTSK03 Aprile 2024, 16:26 #5
Originariamente inviato da: Opteranium
vicenda decisamente inquietante, per fortuna a lieto fine e che conferma quanto di buono ci sia nel software open.
Adesso mi chiedo: ci sarà una denuncia per questa "entità" (persona o gruppo che sia) autore del codice malevolo?


Sì, ma non è un comune tentativo di hacking fatto da un pivello, sicuramente dietro a quell'account c'è qualche gruppo bello grosso, quasi sicuramente info stealer.
fabius2103 Aprile 2024, 16:29 #6
Da come ho letto, erano compromessi solo i binari, infatti non capivo perchè gentoo non facesse il downgrade
marcram03 Aprile 2024, 16:33 #7
Originariamente inviato da: fabius21
Da come ho letto, erano compromessi solo i binari, infatti non capivo perchè gentoo non facesse il downgrade

No, non nei binari. Nei tarball dei sorgenti.
Il problema è che molti utilizzatori, invece di scaricare i sorgenti direttamente dal Git, si scaricano i tarball già impacchettati...
fabius2103 Aprile 2024, 16:46 #8
Originariamente inviato da: marcram
No, non nei binari. Nei tarball dei sorgenti.
Il problema è che molti utilizzatori, invece di scaricare i sorgenti direttamente dal Git, si scaricano i tarball già impacchettati...


grazie per il chiarimento
SpyroTSK03 Aprile 2024, 17:00 #9
Originariamente inviato da: marcram
Non me ne intendo tanto di licenze...

Dovrebbe essere: tu, azienda multimilionaria, paghi una commissione in percentuale ai ricavi, e in compenso puoi usare tutti i software con licenza Post-Open (così la chiama) che vuoi.
La commissione viene poi suddivisa tra gli sviluppatori dei software utilizzati.

https://www.thestack.technology/ope...-for-post-open/


Allora, la differenza sostanziale tra GPL e LGPL è che su GPL tu sei obbligato a rilasciare sempre l'interno codice sorgente del tuo software anche se hai utilizzato 1 sola riga di codice protetta da GPL (che sia a pagamento o meno). Mentra la LGPL ti dice che tu puoi usare il codice protetto da LGPL all'interno (o esterno, come libreria) del tuo software senza nessun problema e se qualcuno volesse i tuoi codici sorgenti tu sei obbligato a lasciarli solamente la parte coperta da LGPL e non tutto il tuo pezzettone di software.

Inoltre, nessuna delle due licenze vieta agli sviluppatori di vendere il software e il relativo codice sorgente, ma consente ai propri acquirenti il lusso di regalare e/o pubblicare il codice protetto da GPL o LGPL.

Pertanto, quello che vuoi fare tu è una LGPL senza eccezzione del dynamic linking, ma se hai un fatturato più alto di 2.000.000€, paghi a prescinedere un tot di €

edit: NB che entrambe le licenze non consentono NESSUNA MODIFICA alla parte del codice protetto dalle due licenze, pertanto se prendi un pezzo di codice di un software con licenza gpl o lgpl e ci inserisci un carattere sei obbligato a rilasciarlo.
marcram03 Aprile 2024, 17:19 #10
Originariamente inviato da: SpyroTSK
Allora, la differenza sostanziale tra GPL e LGPL è che su GPL tu sei obbligato a rilasciare sempre l'interno codice sorgente del tuo software anche se hai utilizzato 1 sola riga di codice protetta da GPL (che sia a pagamento o meno). Mentra la LGPL ti dice che tu puoi usare il codice protetto da LGPL all'interno (o esterno, come libreria) del tuo software senza nessun problema e se qualcuno volesse i tuoi codici sorgenti tu sei obbligato a lasciarli solamente la parte coperta da LGPL e non tutto il tuo pezzettone di software.

Inoltre, nessuna delle due licenze vieta agli sviluppatori di vendere il software e il relativo codice sorgente, ma consente ai propri acquirenti il lusso di regalare e/o pubblicare il codice protetto da GPL o LGPL.

Probabilmente, se la cosa dovesse andare in porto, nascerebbero comunque delle sotto-licenze con le stesse differenze, quindi questa Post-Open non andrebbe paragonata strettamente ad una LGPL, ma ad un suo sovrainsieme...
Pertanto, quello che vuoi fare tu è una LGPL senza eccezzione del dynamic linking, ma se hai un fatturato più alto di 2.000.000€, paghi a prescinedere un tot di €

No, non io...

Ne esiste già una bozza
https://perens.com/2024/03/08/post-...se-first-draft/

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^