Giù nelle profondità di Android, quasi a livello Linux, si annida un bug: è una faccenda apparentemente di poco conto, solo una “leggerezza” di chi ha impostato la struttura e i meccanismi di auto-protezione del sistema operativo, ma che sfruttata nel modo giusto potrebbe costringere lo sfortunato malcapitato a ricorrere alle cure della garanzia per il proprio smartphone. L’hanno scovato quattro ricercatori italiani, che hanno pubblicato al riguardo un paper tecnico che illustra il problema.
I quattro ( Alessandro Armando della Fondazione Bruno Kessler di Trento; Alessio Merlo della Università Telematica E-Campus; Mauro Migliardi dell’Università di Padova; e Luca Verderame dell’Università di Genova) hanno individuato la vulnerabilità e proposto una soluzione al Security Team di Android: le verifiche fatte a Mountain View paiono aver dato esito positivo, e dunque alla prima occasione utile una patch sarà applicata alle prossime release dell’OS. La faccenda, per altro, riguarda in pratica ogni versione in circolazione: ivi compresa la più recente Ice Cream Sandwich .
Nel dettaglio, il meccanismo su cui si basa l’exploit scovato dai quattro italiani è relativo alla comunicazione tra il sistema operativo e le applicazioni : Android ovviamente provvede in automatico a evitare ad esempio che un’app possa generare processi-figli con poteri maggiori dei padri, o limita il moltiplicarsi incontrollato di processi per evitare l’esaurimento della memoria disponibile. Sfortunatamente, il framework non analizza completamente l’origine della richiesta: è dunque possibile avviare molteplici e potenzialmente infinite istanze dello stesso processo a livello Linux, dunque almeno due strati al di sotto dell’ambiente a cui operano le applicazioni che interagiscono con l’utente, causando un progressivo rallentamento del dispositivo.
In altre parole, il bug scovato è in grado di creare uno stuolo sconfinato di processi che si agitano ai livelli più bassi del sistema operativo, consumando memoria e cicli di processore . Poiché è possibile avviare un malware progettato per sfruttare la vulnerabilità direttamente in fase di accensione del device, o per attivarsi periodicamente, l’utente potrebbe ritrovarsi con un cellulare praticamente inutilizzabile: i processi-fantoccio consumerebbero tutte le risorse disponibili, rimuoverli è complicato (a meno di non passare per la shell dell’OS, scovando a mano il nome del processo cattivo), l’unica soluzione possibile per la stragrande maggioranza degli utenti (tranne quelli abituati a smanettare con ADB Shell e simili) sarebbe rivolgersi all’assistenza del produttore.
Il tutto, senza bisogno alcuno di chiedere permessi particolari in fase di installazione: visto il livello a cui si muoverebbe un malware di questo tipo, e vista la natura dei processi, il sistema non ravviserebbe comportamenti sospetti e non sarebbero necessari privilegi particolari per avviare l’attacco “fork bomb” (una specie di attacco DoS: in questo caso il moltiplicarsi di processi concorrenti che saturano le capacità del telefono). Si tratta, in un certo senso, di una insicurezza by design che necessita di essere sanata: lo stesso team che l’ha scovata ha anche elaborato un paio di contromisure efficaci (aumentando essenzialmente i controlli del sistema operativo sull’origine di certe richieste nel software e isolando il meccanismo che genera il moltiplicarsi dei processi), che sono state testate su dispositivi fisici o emulati e con diverse versioni di Android e che verranno incorporate nel codice dell’OS di BigG.
Non tutti i dettagli sulla vulnerabilità sono stati divulgati, in attesa che Open Handset Alliance stili un termine preciso per il rilascio delle patch. I quattro ricercatori italiani hanno comunque divulgato gli estremi di quanto scoperto, e il loro lavoro sarà allegato agli atti del 27simo IFIP SEC 2012 in programma il prossimo giugno a Creta. Parte del lavoro dei ricercatori è stato finanziato dal fondo SPACIOS dell’Unione Europea .
Luca Annunziata