▾ G11 Media: | ChannelCity | ImpresaCity | SecurityOpenLab | Italian Channel Awards | Italian Project Awards | Italian Security Awards | ...

Cybersecurity e open source: cosa ci insegna il caso XZ Utils

Ancora una volta l'affidabilità dell'open source è messa in dubbio. Ma il problema è un altro, e di sistema.

Vulnerabilità

Lo scorso 29 marzo un importante caso di supply chain attack ha colpito tutta la comunità Linux e ha portato ancora una volta in primo piano il tema dell'affidabilità dell'open source. Si è trattato - e si tratta ancora - di un caso particolarmente serio e significativo. Sia per il numero di utenti che potevano essere colpiti, sia per la dinamica con cui, si è poi scoperto, è stato portato l'attacco.

Al centro della vicenda è XZ Utils, un pacchetto di utility per la compressione dati che fa parte di tutte le principali distribuzioni Linux. A causa della dinamica molto articolata delle dipendenze fra i moltissimi componenti di un sistema operativo Linux o derivato da Unix, in molte distribuzioni si crea un collegamento indiretto tra le componenti di XZ Utils e il modulo che implementa OpenSSH, quindi con la base della cifratura di sicurezza delle connessioni di rete.

Grazie a questo collegamento, XZ Utils può modificare il funzionamento di OpenSSH. E il supply chain attack scoperto in questi giorni aveva esattamente questo obiettivo: rendere vulnerabile qualsiasi connessione SSH ad attacchi di remote code execution. Data la diffusione di OpenSSH, praticamente qualsiasi sistema Linux, client o server, sarebbe stato vulnerabile.

Per dare la dimensione della pericolosità potenziale del supply chain attack, il 29 marzo - non appena l'attacco è stato segnalato - Red Hat ha invitato i suoi utenti a bloccare immediatamente l'utilizzo di qualsiasi implementazione di Fedora Rawhide, la distribuzione Fedora sempre aggiornata con le versioni più recenti delle varie librerie. Proprio per la sua frequenza di aggiornamento costante, in Rawhide erano state integrate la versioni più recenti e "ostili" di XZ Utils.

Da "attenzionare" sono stati anche Debian testing, Arch Linux e openSUSE Tumbleweed (in quanto rolling release), Fedora 40 e 41, Kali Linux, macOS (perché XZ Utils è distribuita dai diffusi package manager Homebrew e MacPorts). Ora tutti i possibili sistemi e package manager Unix/Linux/macOS sono stati "ridirezionati" verso le versioni stabili di XZ Utils.

La scoperta

Il rischio di avere sistemi Linux vulnerabili in una delle loro principali componenti di cybersecurity è stato evitato - come nei migliori thriller - solo al metaforico ultimo minuto, grazie all'attenzione quasi maniacale di un ricercatore che ha scoperto il codice malevolo in XZ Utils prima che la libreria venisse integrata nelle versioni stabili delle varie distribuzioni Linux.

Il merito va a Andres Freund, sviluppatore e ricercatore che lavora sulle versioni Microsoft di PostgreSQL. Freund ha trovato strano il rallentamento nelle procedure di login via SSH in un sistema basato su Debian Sid, ha approfondito la questione e ne ha scoperto la causa in un componente di XZ Utils - la libreria liblzma - e per la precisione nel fatto che questa attivava una backdoor nel funzionamento di OpenSSH.

Non si sottolineerà mai abbastanza quanto l'attenzione di Freund per i dettagli sia stata fondamentale. La potenziale violazione di una miriade di sistemi Linux è stata evitata perché Freund ha trovato meritevole di indagini un ritardo di solo mezzo secondo nelle procedure di autenticazione del sistema di test che stava esaminando. Parliamo di mezzo secondo, non di chissà cosa. A Freund è bastato come segnale, molti altri probabilmente lo avrebbero ignorato.

Come spiega lo stesso Freund: "In quel momento stavo eseguendo dei micro-benchmark e dovevo mettere in quiescenza il sistema per ridurre il rumore. Ho visto che i processi sshd utilizzavano una quantità sorprendente di CPU, nonostante fallissero immediatamente... Ho fatto un profilo di sshd, che mostrava un sacco di tempo di CPU in liblzma... Mi sono insospettito. Mi sono ricordato che avevo visto uno strano alert di valgrind nel test automatizzato di postgres, qualche settimana prima, dopo l'aggiornamento del pacchetto. Ci sono volute davvero molte coincidenze". E per fortuna che ci sono state.

La storia dell'attacco

Come ha fatto una libreria diffusissima e apprezzata come XZ Utils a diventare un vettore di attacco? La vicenda ricorda in qualche modo quella di Log4j e lancia lo stesso messaggio: applicazioni e sistemi che nelle aziende fanno (o fanno risparmiare) anche molto denaro si basano spesso su qualche componente software open source sviluppato e manutenuto da piccoli team, o anche singoli sviluppatori, che ne hanno un ritorno minimo. A volte anche nullo.

Pretendere dal loro ciclo di sviluppo software i controlli di sicurezza che spesso nemmeno le grandi imprese e le grandi software house fanno, sfiora l'inverosimile. I piccoli sviluppatori indipendenti raramente riescono a realizzare un modello di business sostenibile ma da loro si pretende molto, spesso troppo. E il caso XZ Utils dimostra che questa dinamica malsana diventa anche una vulnerabilità per tutti. Perché per XZ Utils è stata esplicitamente - ora lo sappiamo - cavalcata per anni.

XZ Utils è il frutto del lavoro di un singolo sviluppatore, Lasse Collin, ma il rilascio delle versioni "malevole" è ad opera di Jia Tan, che inizia a partecipare al progetto a gennaio 2023 e ne prende sostanzialmente il controllo a inizio 2024.

Tan affianca sempre di più Collin quando questi viene criticato e pressato da altri utenti di XZ Utils, tra cui frequentemente un tale Jigar Kumar, per la sua poca capacità di portare avanti lo sviluppo della libreria. Ormai vicino al burnout, Collin accetta volentieri l'aiuto dell'unico che si propone di supportarlo: proprio Jia Tan. Man mano che questi aumenta la sua attività di sviluppo per XZ Utils e per altri progetti open source, poi, diversi altri utenti spingono perché le sue modifiche vengano rapidamente recepite. Le ultime sono proprio le versioni malevole di XZ Utils.

Ora sappiamo che Jia Tan, Jigar Kumar e i vari utenti "sostenitori" di Tan sono tutte false identità create ad arte per prima conquistare il controllo del progetto XZ Utils, poi trasformarlo in una backdoor e infine spingere la sua integrazione nelle distribuzioni Linux. Un piano ben architettato e messo in atto sin dal 2021, quando viene creata su GitHub l'identità di Jia Tan, e portato avanti creando altre identità ad arte e coordinando le loro attività online.

La morale

Oggi le community dell'open source e della cybersecurity si stanno concentrando su due punti importanti. Il primo è rimettere adeguatamente in piedi il progetto XZ Utils, aiutando Lasse Collin non solo a mettere in sicurezza il suo software ma anche - e soprattutto - a portarlo avanti in maniera sostenibile. A parte lo sforzo della community c'è però poco da essere ottimisti: basta vedere ad esempio che GitHub ha sospeso l'account di Collin e bannato il progetto XZ Utils, complicando la vita a chi cerca di ricostruire oggi gli avvenimenti e le modifiche al codice.

Collin risponde (stancamente) alle critiche del fantomatico Kumar, che sta aprendo la strada a Jia Tan

L'altro filone di ricerca è cercare di identificare chi c'è dietro il fantomatico Jia Tan. L'ipotesi al momento più plausibile è che si tratti di qualcuno attivo nell'Est Europa, almeno a giudicare dal profilo temporale delle attività degli account di Tan e delle altre identità digitali false.

Resta poi l'impressione che qualche anno dopo il caso Log4j siamo ancora davanti agli stessi problemi. Le questioni sulla presunta pericolosità dell'open source vengono affrontate come un tema tecnico e non di sistema, senza considerare la vera dinamica dei progetti open source e senza riconoscere davvero quanto le moderne architetture IT si poggino su basi "commerciali" estremamente fragili e persino sconosciute a chi le deve gestire. Sfruttare gratuitamente il lavoro di altri ormai è un'abitudine, insomma, ma spesso è anche un gioco pericoloso. E i "cattivi" lo sanno benissimo.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con le notizie di SecurityOpenLab.it iscriviti alla nostra Newsletter gratuita.
Rimani sempre aggiornato, seguici su Google News! Seguici

Notizie correlate

Iscriviti alla nostra newsletter

Soluzioni B2B per il Mercato delle Imprese e per la Pubblica Amministrazione

Iscriviti alla newsletter