Nove ricercatori della UC Santa Barbara hanno scoperto sei vulnerabilità , relative ai bootloader per il sistema operativo Android, rilasciati da diverse società produttrici.
I ricercatori hanno pubblicato le loro scoperte nel paper ” BootStomp: On the Security of Bootloaders in Mobile Devices “, presentato allo USENIX Security Symposium, tenutosi a Vancouver tra il 16 ed il 18 agosto. Tra loro figurano ben quattro italiani, i dottorandi Nilo Redini e Yanick Fratantonio, l’assistente di ricerca Antonio Bianchi ed il professor Giovanni Vigna.
BootStomp, menzionato nel titolo del paper , è un software realizzato dai ricercatori – il cui codice è disponibile pubblicamente – che integra tecniche di analisi statica e di esecuzione simbolica con vincoli , al fine di effettuare una taint analysis in grado di identificare la presenza di vulnerabilità note e non.
Il documento inizialmente descrive le specifiche delle modalità Trusted Boot di ARM e Verified Boot di Google, per poi mettere a confronto i bootloader dei quattro principali produttori, Qualcomm, HiSilicon, NVIDIA, e Mediatek: mentre tutti integrano la funzionalità Fastboot , il bootloader di HiSilicon si occupa anche dell’inizializzazione delle periferiche, perciò viene eseguito in modalità Secure Monitor (EL3) , mentre gli altri tre vengono eseguiti in modalità kernel (EL1) , la stessa del kernel che poi andranno ad eseguire in memoria.
Successivamente vengono descritte le conseguenze che le vulnerabilità trovate possono comportare: esecuzione di codice in exception level elevati, brick o sblocco non autorizzato del dispositivo, per poi passare alla descrizione dell’architettura e del funzionamento di BootStomp, con la trattazione, sotto forma di casi di studio, delle vulnerabilità riscontrate, per poi descrivere le procedure di mitigation effettuabili per le stesse.
Cinque bootloader dei produttori già menzionati sono stati testati con BootStomp: nel caso di Qualcomm, sono state prese in considerazione sia la vecchia versione del bootloader LK che la nuova, in modo da verificare che BootStomp fosse in grado di rilevare la nota vulnerabilità che affligge la vecchia versione del bootloader (CVE-2014-9798) .
BootStomp è stato in grado di scoprire sei bug, cinque dei quali affliggono il bootloader di HiSilicon , il quale è peraltro penalizzato dall’esecuzione ad un exception level elevato; l’altro bug riguarda il bootloader di NVIDIA . Il bootloader di Mediatek non è stato analizzato correttamente, a causa di una serie di bug del framework angr utilizzato per l’analisi dei binari.
NVIDIA sta collaborando con i ricercatori ad una soluzione per la vulnerabilità a suo carico, mentre Huawei , società che controlla HiSilicon, ha confermato l’esistenza di quattro dei cinque bug rilevati da BootStomp.
Elia Tufarolo