La backdoor XZ su Linux e l'importanza del software open source
Codice liberamente visibile e un occhio vigile hanno fermato un incidente di sicurezza globale
Che cosa è successo?
Sedetevi e allacciate le cinture, perché questa storia è pazzesca.
Nel marzo del 2024, Andreas Freund, un dipendente Microsoft, stava esaminando alcuni problemi di prestazioni di Debian-sid. Notò che generava un gran numero di connessioni SSH che consumavano una quantità anormale di risorse della CPU. Dopo un’ulteriore verifica, ha segnalato il problema al progetto OpenWall, che è stato poi ripreso da diversi fornitori di software per ulteriori controlli.
Il signor Freund ha scoperto un pezzo di codice nascosto che è stato inserito nelle ultime versioni 5.6.0 e 5.6.1 di XZ dal collaboratore di lunga data Jian Tan.
Le modifiche incluse in queste versioni compromettono la sicurezza del sistema operativo, consentendo a un utente malintenzionato un accesso amministrativo completo.
Freund ha descritto la scoperta di questo importante attacco alla catena di approvvigionamento, simile a quello di SolarWinds, come una “coincidenza molto forte” e che “mi sembra che siamo stati molto, molto fortunati”.
Cosa fa il codice della backdoor XZ
Il codice maligno aggiunto furtivamente al progetto XZ Utils ha come obiettivo sshd, un file eseguibile utilizzato per effettuare connessioni SSH da remoto. Se un aggressore ha accesso alla chiave di crittografia corretta, sarà in grado di aggiungerla ai certificati di accesso SSH, di inviarli ed eseguirli attraverso i dispositivi bloccati.
Il collegamento tra il software di compressione XZ e SSH è dovuto a una patch di Debian, tra le altre distro, che crea un collegamento tra SSH e systemd. Systemd a sua volta è collegato alla libreria LZMA di XZ, che crea il percorso dalla backdoor di XZ fino all’accesso a SSH.
Thomas Roccia ha realizzato un’infografica dettagliata che spiega le fasi esatte del processo:
L’aspetto particolarmente sorprendente di questa backdoor è la sua sofisticatezza e i passi compiuti dall’aggressore per inserirsi nel progetto XZ nel corso di anni, al fine di ottenere un accesso sufficiente per tentare di eseguire l’attacco. All’indomani di questa scoperta, gli occhi dei ricercatori di minacce si sono concentrati su un collaboratore principale che utilizza lo pseudonimo di Jian Tan.
Chi è Jian Tan?
Al momento non si conosce la vera identità dell’utente che opera sotto il nome di Jian Tan. Ma i ricercatori hanno scoperto alcuni indizi. Jian Tan, che opera con il nome utente JiaT75, ha lavorato per la prima volta sul codice XZ Utils nel 2021. Questo non è un motivo di allarme, poiché XZ è un progetto open source e chiunque può offrire il proprio aiuto per migliorarlo o eliminare i bug. Nel corso degli anni, Tan ha continuato a dare piccoli contributi al progetto che hanno aumentato la sua reputazione e la fiducia nella comunità costruita intorno al progetto.
Nel maggio del 2022, un utente sconosciuto che utilizzava lo pseudonimo Dennis Ens iniziò a lamentarsi di un recente aggiornamento, seguito da un’altra figura sconosciuta che utilizzava il nome di Jigar Kumar, per spingere lo sviluppatore principale di XZ Utils ad aggiungere un nuovo manutentore (qualcuno che costruisce e organizza il codice sorgente per i progetti open source) in modo che lo sviluppo potesse procedere più velocemente. Questa pressione ha portato all’aggiunta di Jian Tan come manutentore del progetto.
A metà del 2023 Tan ha richiesto la disattivazione di un controllore di vulnerabilità pubblico, che avrebbe reso possibile l’introduzione del codice backdoor.
Schermata della richiesta di Tan su GitHub di disabilitare ifunc.
Dopo aver continuato a lavorare sul progetto, nel febbraio del 2024 Tan ha effettuato i commit della versione finale di XZ Utils 5.6.0 e 5.6.1, che contengono la backdoor dannosa.
Questo attacco di ingegneria sociale a lungo termine ha guadagnato la fiducia di una comunità open source che ha dato a Tan l’accesso necessario per tentare di portare a termine l’attacco. La quantità di tempo investita e l’elevato livello tecnico della backdoor stessa inducono alcuni ricercatori di sicurezza a ritenere che dietro ci sia un attore sponsorizzato dallo Stato.
Qual è il prossimo passo di XZ?
Il sito web di XZ Utils è completamente sotto il controllo del suo sviluppatore principale Lasse Collin e Jian Tan è stato completamente rimosso dal progetto. La pagina GitHub del progetto è di nuovo online e Collin ha riferito che sta attualmente esaminando il repository e che, una volta terminato, intende pubblicare un articolo sull’incidente.
Al momento della scoperta, è stato confermato che le seguenti distribuzioni Linux sono state colpite dalla backdoor:
- Arch Linux
- Debian testing, versioni instabili e sperimentali da 5.5.1alpha-01 a 5.6.1-1
- Fedora 40 Beta, Fedora 41 e Fedora Rawhide
- Kali Linux
- openSUSE Tumbleweed e openSUSE MicroOS.
Homebrew, il gestore di pacchetti per MacOS, utilizzava la versione 5.6.x, ma è tornato alla versione 5.4.6 di XZ Utils.
Se si desidera verificare se sul proprio dispositivo è presente una versione di XZ Utils non aggiornata, è possibile eseguire “xz —version” nel terminale. Se è installata la versione 5.6.0 o 5.6.1, si raccomanda di ritornare alla versione 5.4.x.
L’open source è l’unico modo per fornire software sicuro
Siamo stati estremamente fortunati. Se il progetto XZ Utils fosse stato gestito privatamente e Freund fosse stato costretto a inviare un ticket di supporto, oggi ci troveremmo in una posizione molto diversa. L’incidente della backdoor di XZ è un esempio perfetto del perché la pubblicazione di software open source offre grandi vantaggi in termini di sicurezza. Solo consentendo a tutti l’accesso alla revisione del codice sorgente, diamo ai ricercatori di sicurezza la possibilità di scoprire questo tipo di attacchi prima che le cose vadano terribilmente male.
Il software open source aumenta la sicurezza di tutti:
- Permettere la revisione pubblica del codice di sicurezza porta critiche costruttive da parte di esperti di ogni competenza e provenienza.
- Una comunità può individuare bug e vulnerabilità più velocemente di un team di sviluppo closed source.
- Aumentando la fiducia attraverso la trasparenza, gli utenti finali sanno che possono fidarsi dei prodotti che scelgono per proteggere se stessi e i propri dati.
Il software open source è un aspetto cruciale di tutta la sicurezza digitale. Il progetto XZ Utils è utilizzato da prodotti aziendali e, senza la possibilità di un controllo da parte della comunità, questo attacco interno potrebbe essere passato inosservato. Con il software closed source, solo persone selezionate hanno il privilegio di visionare il codice sorgente, il che rende più probabile la possibilità di trascurare modifiche come queste.
Anche se le grandi aziende tecnologiche hanno molti sviluppatori nei loro team che visionano il codice, non c’è mai la garanzia che un dipendente sia proprio come Jian Tan, che cerca di introdurre codice maligno. L’open source assicura che più occhi siano puntati sul codice, il che significa che, oltre a protocolli di sicurezza forti e revisioni ripetute del codice, più occhi possono individuare più problemi. Secondo la legge di Linus: Con un numero sufficiente di occhi, tutti i bug sono superficiali.
Noi di Tuta rilasciamo l’intero protocollo di crittografia e il codice del client open source per garantire ai nostri utenti che possano fidarsi delle promesse di sicurezza che facciamo. Non solo la nostra crittografia viene sviluppata e testata da esperti di crittografia, ma viene anche messa a disposizione di tutti i ricercatori di sicurezza per essere testata e rivista. La fiducia si guadagna, e pubblicando il nostro codice completamente open source stiamo dimostrando che Tuta offre la migliore sicurezza e-mail disponibile.
Rimanete al sicuro e buona crittografia.