A partire da ottobre 2022 le principali distribuzioni Linux hanno rilasciato le patch di sicurezza per risolvere una serie di vulnerabilità nell’implementazione dello stack WiFi. Le correzioni sono comparse sia nel kernel Linux 5.1 che nella più recente versione 6.1, in questo caso integrate da Linus Torvalds in persona.
Tre delle cinque lacune di sicurezza (CVE-2022-41674, CVE-2022-42719, CVE-2022-42720, CVE-2022-42721 e CVE-2022-42722) riportano l’etichetta RCE (Remote Code Execution) a sottolineare che un aggressore può sfruttarle a distanza per disporre il caricamento e l’esecuzione di codice arbitrario sui dispositivi altrui.
Il problema è rilevante perché se è vero che gli aggiornamenti di sicurezza sono stati distribuiti mesi fa, non tutti gli utenti li hanno correttamente installati. Inoltre, prodotti che sono stati sviluppati a partire dal kernel Linux – come lo stesso Android – risultano essi stessi potenzialmente vulnerabili.
A confermarlo a un magazine tedesco è Sönke Huster, autore della scoperta, docente e ricercatore presso Secure Mobile Networking Lab (SEEMOO) dell’Università tecnica di Darmstadt (Germania).
Huster conferma che, potenzialmente, i bug di sicurezza da lui scoperti nell’implementazione Linux dello stack WiFi possono determinare l’esecuzione di codice dannoso sui dispositivi vulnerabili. Diversamente da quanto avviene ad esempio con il phishing o con altri tipi di attacco che presuppongono il download e il caricamento di programmi malevoli da parte della vittima, nel caso di specie il codice malevolo può essere eseguito sul device altrui senza alcuna “collaborazione” da parte dell’utente. È sufficiente che questi abbia attivato il modulo WiFi sul sistema vulnerabile basato su Linux.
Nonostante i bug siano stati indicati come di tipo RCE, Huster ha comunque voluto sottolineare che l’esecuzione del codice in modalità remota resta ancora qualcosa più di teorico che di pratico. Il rischio esiste, comunque, ed è concreto anche perché dalla notizia della scoperta del problema, i criminali informatici non sono stati a guardare. “Tre delle vulnerabilità interessano Android e gli utenti Android sono numerosi. La maggior parte degli utenti di solito ha il Wi-Fi attivo sui propri smartphone“, aggiunge Huster. “È sufficiente aver attivato la WiFi e che il dispositivo cerchi reti nell’area. Ciò accade relativamente spesso in background per determinare la posizione” dell’utente o per andare alla ricerca delle reti nelle vicinanze.
Huster ha anche chiarito come ha fatto a individuare le vulnerabilità nell’implementazione del WiFi in Linux: nello specifico il ricercatore ha fatto leva su una tecnica chiamata “Coverage Guided Fuzzing with Mutation“.
Come abbiamo visto a suo tempo nel caso delle memorie DDR, il fuzzing è una tecnica che “inonda” il bersaglio di un volume di dati che non si aspetta.
Si sa da tempo che input casuali possono ingenerare comportamenti anomali da parte di applicazioni e dispositivi hardware. Huster ha perfezionato il processo utilizzando input più vicini a ciò che si aspetta l’obiettivo oggetto di studio.
Trasmettendo al sistema basato su kernel Linux migliaia di pacchetti WLAN al secondo contenenti piccole anomalie, è stato possibile osservare e documentare quali di essi hanno causato problemi e comportamenti imprevisti.
Huster spiega che il kernel del sistema operativo riserva un certo quantitativo di memoria per l’esecuzione di programmi e processi: “se, ad esempio, vengono forniti 128 byte in un punto della memoria per un processo specifico, questo non dovrebbe scrivere oltre i 128 byte ad esso destinati“.
Alcuni input del fuzzer hanno messo in evidenza come, nell’elaborazione dei pacchetti WLAN, si ingenerasse un errore di buffer overflow ovvero la scrittura di dati oltre la porzione di memoria riservata.
Uno dei primi ad accorgersi della pericolosità degli errori di buffer overflow è stato, sin dall’inizio degli anni ’90, Peiter Zatko, recentemente balzato agli onori delle cronache per le feroci critiche nei confronti di Twitter.
Per arrivare a un RCE, aggiunge Huster, si dovrebbe anche scoprire dove vengono elaborati i pacchetti WLAN che provocano l’errore di buffer overflow. Non è cosa propriamente semplice perché meccanismi come Kernel Address Space Layout Randomization assicurano che il codice venga sempre eseguito in posizioni diverse nella memoria.
Il velo, tuttavia, è stato sollevato e Huster non esclude che altre vulnerabilità, combinate con quelle di recente scoperta, possano portare all’esecuzione di codice arbitrario.
Amministratori IT, professionisti e utenti finali dovrebbero quindi aggiornare prima possibile i propri dispositivi basati su Linux.
A gennaio 2023 Google ha confermato di aver introdotto in Android le correzioni a livello di kernel Linux. Cercando gli identificativi delle varie falle di sicurezza nel Bollettino sulla sicurezza di Android: gennaio 2023, si può verificare come Google le abbia fatte proprie e inserite nel progetto AOSP (Android Open Source Project).
Un’ulteriore conferma di come sia importante tenere Android aggiornato (e raramente i produttori sono solerti nel distribuire le patch di sicurezza…): in un altro articolo vediamo per quanto tempo è sicuro usare un dispositivo Android.