AndroidMasterKeyFix

Master Key Attack: in arrivo il fix di Google?

Roberto Orgiu

Quello che vediamo nell’immagine di testa è una parte di un commit correntemente in stato di revisione inerente il codice sorgente di Android; come questo ce ne sono diversi, ma cos’ha di speciale?

In realtà possiamo ridurre (a grandi linee) il nucleo di questo cambiamento al primo elemento della lista, che ha le carte in regola per fixare quel bug vecchio di 4 anni di cui abbiamo parlato sulle nostre pagine:

Duplicate zip entry names are now disallowed. Files with such entries will fail to parse.

Quello che lo sviluppatore intende è che è stato finalmente programmato il controllo sui file duplicati all’interno degli archivi ZIP (e quindi anche sugli APK delle app), in modo tale che, in caso di Master Key Attack, la verifica della firma fallisca, il contenuto dell’archivio non venga estratto e le intenzioni malevole del software vengano sventate. Le modifiche del commit non si fermano qui, ma ruotano tutte intorno a questa patch che attendevamo da mesi: vediamo quindi per quale motivo è importante l’inserimento di questo controllo.

Come abbiamo già spiegato, Android 4.4 ha rivoluzionato diverse cose nei protocolli di sicurezza del sistema operativo, arrivando a renderlo decisamente più sicuro delle versioni precedenti, senza però ledere l’efficacia del Master Key Attack, che si basa sul fatto che lo standard ZIP non preveda un controllo dei duplicati, ma deleghi alle applicazioni (come WinZip o 7zip) la possibilità di fare questo check. Grazie a questa peculiarità è quindi possibile, per un malintenzionato, inserire nell’APK doppioni opportunamente modificati di alcuni file che, durante l’installazione dell’applicazione, andranno a sovrascrivere i file originali, infettando il nostro dispositivo.

Inserendo quindi il controllo dei file duplicati nella libreria che gestisce gli archivi ZIP all’interno di Android, questo attacco è virtualmente reso inefficace, ma dobbiamo comunque vedere quanto sarà efficace il controllo, quanto (e se) impatterà sulle prestazioni e quando sarà disponibile su tutti i dispositivi.

Fonte: Android Source Code