È inevitabile che in un software siano presenti dei difetti, ed alcuni di questi possono riguardare la sicurezza. Alcuni problemi vengono risolti prima, altri dopo; per quanto riguarda la sicurezza, Android ha molti difetti noti da tempo che non sono stati sistemati, ma con Android 4.4.3 Google ha risolto moltissimi problemi – tra cui anche uno particolarmente interessante.

La vulnerabilità riguarda il modo in cui Android tratta il montaggio dei volumi virtuali (e non). In particolare, il problema risiede nel modo in cui il Volume Management Daemon (VOLD) gestisce il montaggio delle partizioni.

Nei sistemi UNIX-like come Android, le partizioni ed i volumi (virtuali e non) vengono montati su specifici percorsi: ad esempio, la memoria interna viene montata sulla cartella /sdcard, ma il suo percorso reale è un altro. In questo modo è possibile far sì che, ad esempio, volumi virtuali, immagini di disco o dispositivi fisici vengano visti dal sistema e dalle applicazioni non come sono in realtà, ma come cartelle qualunque. Questo sistema è largamente impiegato in Linux per avere la cartella /home con i dati degli utenti su una partizione differente, in maniera tale da tenerla fisicamente isolata dal resto del sistema (ad esempio per ragioni di backup).

Il VOLD si occupa proprio di montare la memoria interna su /sdcard, ma non solo: tra i suoi compiti rientra anche la creazione ed il montaggio dei file ASEC (Android Secure External Caches), che sono filesystem virtuali cifrati che possono essere impiegati dalle applicazioni per utilizzare dati sicuri su volumi non sicuri.

La vulnerabilità del VOLD sta nel comando usato per montare i file ASEC: non c’è alcun controllo su quale percorso viene passato al programma, quindi qualunque file o percorso è valido. Questo porta ad un grosso problema di sicurezza, poiché è possibile montare anche percorsi già esistenti ed ottenere i permessi di scrittura: anche se ci sono numerose limitazioni, va da sé che sia possibile montare anche porzioni del filesystem cui normalmente è limitato l’accesso agli utenti normali.

Con Android 4.4.3 è stata integrata una patch che fa verificare al VOLD che non sia utilizzato un percorso che include simboli (come “..” o “/”) utilizzati per ridirigere l’indirizzo verso una locazione differente da quella normalmente utilizzata per il montaggio dei file ASEC.

Questa vulnerabilità permette di ottenere, in alcuni casi, una sorta di root temporaneo: assomiglia molto al tethered jailbreak di iOS, che richiede che il dispositivo sia connesso ad un computer e che svanisce quando si spegne o riavvia il dispositivo. Per questo motivo è stato soprannominato tethered root. La sicurezza del sistema non è totalmente compromessa, perché non è possibile montare la cartella /system con permessi di scrittura, ma indubbiamente si tratta di un grave problema che è stato finalmente risolto con Android 4.4.3.

Al momento il metodo funziona solo sui dispositivi Motorola con versioni inferiori ad Android 4.4.3 e non è detto che arrivi anche su smartphone e tablet di altri produttori. HTC, LG e Samsung hanno già inserito la patch all’interno degli ultimi aggiornamenti per i loro top di gamma.

C’è la possibilità che questa vulnerabilità di Android sia già stata sfruttata all’insaputa della comunità di sviluppatori ed esperti, ma sembra difficile che una simile eventualità si sia realizzata. Il problema maggiore sono i dispositivi che non riceveranno più aggiornamenti, ma ci si può sempre rifare alle custom ROM per aggiornare i dispositivi all’ultima versione disponibile.

Via