_ scritto il 10.04.2024 alle ore 10:00 _
267 letture
Recentemente è stata scoperta una
backdoor all'interno di una libreria open source per Linux denominata XZ e responsabile della compressione dei dati. Si tratta di una falla molto critica che avrebbe permesso di fatto l'esecuzione di codice arbitrario sui server di mezzo mondo, compresi sistemi aziendali, governativi e infrastrutturali (anche critici).
Ma andiamo con ordine.
La backdoor è stata scoperta grazie ad uno sviluppatore Microsoft che nel suo tempo libero ha notato un ritardo anomalo nel processo di autenticazione SSH su Linux. Parliamo di un ritardo probabilmente nell'ordine del mezzo secondo o poco meno, ma fortunatamente sufficiente a indispettire l'informatico che ha indagato in modo approfondito. La falla era inserita all'interno di una liberira di compressione diffusissima e comunemente utilizzata nei principali sistemi Linux come Debian, Ubuntu e Red Hat. Il suo utilizzo all'interno delle funzioni che si occupano dell'autenticazione SSH era tuttavia non convenzionale ed è proprio questo che ha spinto il developer ad andare a fondo della questione.
La vicenda ha nuovamente sottolineato le problematiche relative alla gestione della sicurezza nel software open source. La backdoor è stata infatti inserita attraverso una complessa serie di operazioni di social engineering applicate al sistema collaborativo di gestione dello sviluppo software GitHub. Quello della libreria XZ è il classico caso di un progetto iniziato per passione da un singolo sviluppatore che è poi risultato talmente utile e ben fatto da essere incluso in tutte le distribuzioni ufficiali. Negli anni lo sviluppatore ha quindi ricevuto una mole di pull request e richieste di modifiche sempre crescente, ed è normale a quel punto decidere di accettare aiuto da altri sviluppatori che te lo propongono. Uno in particolare sembrava molto attivo e disponibile, e dal 2021 ha collaborato con lo sviluppatore per gestire la libreria. Nel corso di questi 3 anni questo "buon samaritano" ha conquistato la sua fiducia, ma in realtà si trattava proprio di quella che credo fosse una vera organizzazione criminale. Con continue pressioni e manipolazioni il gruppo è riuscito a nascondere il codice malevolo camuffandolo all'interno dei file binari comunemente presenti nelle cartelle di unit test dell'applicativo, l'unico luogo in cui non avrebbero destato sospetti a meno di analisi approfondite (che però non erano state contemplate vista la credibilità acquisita dall'utente). Infine, grazie alle dipendenze che questa libreria aveva all'interno di varie distribuzioni Linux, la backdoor si sarebbe propagata automaticamente come aggiornamento a tutti i server che ne facevano uso. Per fortuna è stata scoperta appena in tempo.
L'evento mette in luce una delle maggiori problematiche nella gestione della sicurezza del software open source: molte piccole componenti sviluppate e gestite per passione da singoli utenti sono talmente importanti che una loro compromissione può avere effetti devastanti su scala globale e la trasparenza del codice non garantisce da sola la sicurezza necessaria. Servono vigilanza e collaborazione costanti lungo tutto il processo di sviluppo e aggiornamento di un progetto software, ma anche un maggiore livello di consapevolezza dei contesti open source e sicurezza informatica tra gli sviluppatori.
Altri interventi che potrebbero essere utili, a mio avviso:
- Implementare procedure di sicurezza che richiedano una revisione sistematica del codice sorgente e dei binari, specialmente per i file inclusi in contesti sensibili come quello trattato in questo post.
- Monitorare le modifiche ai file di configurazione per assicurarsi che non vengano alterati per includere operazioni non autorizzate o sospette.
- Utilizzare strumenti di profilazione per rilevare comportamenti anomali del software.