I dispositivi Qualcomm hanno una modalità EDL, che a quanto pare sembra essere sfruttabile se si dispone degli strumenti giusti rilasciati dagli OEM.
I dispositivi con chipset Qualcomm hanno un Primario Bootloader (PBL) che in genere avvia il sistema Android, ma ospita anche una modalità di avvio alternativa nota come modalità EDL. La modalità EDL è di Qualcomm Efusione Dcarico proprio Mode e consente un Ooriginale Eattrezzatura Mproduttore (OEM) per forzare il software flash su un dispositivo. Questo non può essere modificato (modalità di sola lettura) e ha il pieno controllo sulla memoria del dispositivo. Molti OEM, tra cui OnePlus e Xiaomi, hanno rilasciato strumenti (noti come programmatori) che utilizzano la modalità EDL e un protocollo noto come Firehose per sbloccare un dispositivo, mentre altri strumenti di aziende come Nokia sono trapelati. Firehose può utilizzare una serie di comandi per eseguire il flashing dei dispositivi, oltre alla possibilità di esaminare i dati all'interno della memoria di un dispositivo. Ricercatori sulla sicurezza
Roee Hay (@roeehay) E Noam Hadad da Ricerca Aleph hanno scoperto vulnerabilità critiche del dispositivo utilizzando questa modalità, che garantisce effettivamente un attacco a un utente malintenzionato accesso completo al dispositivo.È importante notarlo questo exploit richiede l'accesso fisico al dispositivo, ma è comunque incredibilmente pericoloso e probabilmente non può essere riparato. Gli aggressori hanno utilizzato il livello di accesso concesso alla modalità EDL per bypassare il secure boot su un Nokia 6, sconfiggendo catena di fiducia e ottenere l'esecuzione completa del codice in ogni parte della sequenza di avvio, incluso il sistema operativo Android si. Si teorizza che funzioni allo stesso modo su altri dispositivi e i ricercatori sono anche riusciti a sbloccare e rootare più dispositivi Xiaomi senza alcuna perdita di dati.
Quali dispositivi sono interessati da questo exploit?
Innanzitutto i dispositivi interessati.
Elenco dei dispositivi interessati.
- LG G4
- Nokia 6 (d1c)
- Nokia5
- Nexus 6 (Shamu)
- Nexus 6P (pescatore)
- Moto G4 Plus
- OnePlus 5 (cheeseburger)
- OnePlus 3T
- OnePlus 3
- OnePlus2
- OnePlusX
- Uno più uno
- ZTE Axon 7
- ZUK Z1
- ZUK Z2
- Xiaomi Nota 5A (ugglite)
- Xiaomi Nota 5 Prime (ugg)
- Xiaomi Nota 4 (medio)
- Xiaomi Nota 3 (Jason)
- Xiaomi Note 2 (scorpione)
- Xiaomi Mix (litio)
- Xiaomi Mix 2 (chirone)
- Xiaomi Mi 6 (sagittale)
- Xiaomi Mi 5s (Capricorno)
- Xiaomi Mi 5s Plus (sodio)
- Xiaomi Mi 5x (Tiffany)
- Xiaomi Mi 5 (gemelli)
- Xiaomi Mi 3 (cancro)
- Xiaomi Mi A1 (tisso)
- Xiaomi Mi Max2 (ossigeno)
- Xiaomi Redmi Nota 3 (Kenzo)
- Xiaomi Redmi 5A (riva)
- Xiaomi Redmi 4A (rosato)
Per saperne di più
Sfruttare un telefono Android
La sequenza di avvio di un tipico telefono Android Qualcomm
È importante comprendere innanzitutto la sequenza di avvio di un tipico dispositivo Android prima di spiegare come può essere sfruttato. IL Ssoftware Bootloader (SBL) è un bootloader firmato digitalmente di cui viene verificata l'autenticità prima di essere caricato in imem. imem è una memoria fast-on-chip utilizzata per il debug e il DMA (Ddiretto Mmemoria UNccess) transazioni ed è proprietario dei chipset Qualcomm.
Alcuni dispositivi hanno un eXtensibile Bootloader (XBL) invece di un SBL, ma il processo di avvio è praticamente lo stesso. SBL o XBL avvia quindi ABOOT, che implementa l'avvio rapido. Successivamente viene caricata anche TrustZone (sicurezza basata su hardware). TrustZone verifica l'autenticità di ABOOT tramite un certificato root basato su hardware. L'SBL (o XBL, in alcuni casi) è progettato per rifiutare un ABOOT firmato (o non firmato) in modo errato.
Una volta autenticato, ABOOT controlla l'autenticità di /boot e /recovery prima di avviare il kernel Linux. Vengono eseguite alcune preparazioni del sistema e quindi l'esecuzione del codice viene trasferita al kernel. ABOOT è comunemente noto come "Bootloader Android" e quando sblocchiamo il bootloader di un dispositivo, disabilitiamo questo controllo di autenticità in ABOOT.
Accesso alla modalità EDL
Mentre alcuni dispositivi hanno una semplice combinazione hardware (o peggio, un semplice comando fastboot proprietario presente in molti dispositivi Xiaomi), altri, come i dispositivi Nokia, necessitano di cortocircuitare i pin detti "test points" presenti sulla scheda principale del dispositivo asse. Prima della patch di sicurezza di dicembre 2017 era anche possibile eseguire semplicemente "adb reboot edl" su molti dispositivi (inclusi Nexus 6 e 6P) ed accedere alla modalità EDL. Da allora questo è stato risolto.
Altri dispositivi possono anche utilizzare il cosiddetto cavo "deep flash", che è un cavo speciale con alcuni pin cortocircuitati per indicare al sistema di avviarsi invece in modalità EDL. I vecchi dispositivi Xiaomi possono utilizzare questo metodo, insieme al Nokia 5 e al Nokia 6. Anche altri dispositivi si avvieranno in modalità EDL quando non riescono a verificare l'SBL.
Utilizzo della modalità EDL per ottenere l'accesso completo su OnePlus 3/3T
La modalità EDL può essere utilizzata in diversi modi su un dispositivo, principalmente per sbloccare i dispositivi forzandone il flashing. Come spiegato sopra, in teoria dovrebbe essere sicuro per chiunque accedere a questa modalità, poiché lo scenario peggiore è che ABOOT rifiuterà il software che non è ufficialmente firmato dal produttore. Anche se questo è vero, in realtà è possibile ottenere il controllo completo su OnePlus 3 o 3T e sui suoi file in un exploit dimostrativo mostrato dai ricercatori.
Ciò avverrà attraverso due comandi molto pericolosi che OnePlus ha lasciato accessibili in una versione precedente di ABOOT (Android bootloader), per sbloccare il bootloader del dispositivo (senza che venga mostrato un avviso all'utente all'avvio) e disabilitare dm_verity. dm_verity è noto anche come avvio verificato e fa parte di una sequenza di avvio sicuro su un dispositivo Android. I due comandi sono i seguenti.
fastboot oem disable_dm_verity
fastboot oem 4F500301/2
Osserva il semplice processo in 4 passaggi riportato di seguito che utilizza il protocollo Firehose.
- Innanzitutto, avvia il dispositivo in modalità EDL. Questo può essere fatto tramite adb su OxygenOS 5.0 o versioni precedenti oppure utilizzando una semplice combinazione di tasti hardware.
- Scarica una vecchia immagine di sistema di seguito OxygenOS 4.0.2.
- Flash aboot.bin tramite firehose (ricorda che aboot.bin implementa l'avvio rapido, come accennato in precedenza)
- Ora sarai in grado di disabilitare l'avvio sicuro e sbloccare il bootloader senza pulire il dispositivo semplicemente utilizzando i due comandi fastboot sopra.
Se ricordi, in precedenza si era scoperto che OnePlus aveva lasciato due pericolosi comandi di avvio rapido quasi un anno fa, uno che sbloccava il bootloader e uno che disabilitava l'avvio sicuro. Mentre è vero che un aggressore non è possibile installare software dannoso sul dispositivo, loro possono eseguire il downgrade del dispositivo avere software più vecchio e vulnerabile agli attacchi. Semplicemente eseguendo i comandi fastboot di cui sopra, un utente malintenzionato può avere accesso completo al dispositivo.
E questo è tutto, il bootloader è sbloccato, l'avvio sicuro è disattivato e non vi è assolutamente alcuna perdita di dati. Se un utente malintenzionato desiderasse fare un ulteriore passo avanti, potrebbe eseguire il flashing di un kernel personalizzato dannoso che consente l'accesso root al dispositivo di cui l'utente non verrebbe mai a conoscenza.
Firehose funziona tramite il protocollo Qualcomm Sahara, che accetta un programmatore firmato OEM ed è il modo in cui verrebbe eseguito l'attacco di cui sopra. Quando è collegato a un dispositivo, funge da SBL tramite USB. La maggior parte dei programmatori usa Manichetta antincendio per comunicare con un telefono in modalità EDL, che è ciò che i ricercatori hanno sfruttato per ottenere il pieno controllo del dispositivo. I ricercatori lo hanno utilizzato anche per sbloccare un dispositivo Xiaomi semplicemente facendo lampeggiare un'immagine modificata che ha sbloccato il bootloader. Hanno quindi installato un kernel personalizzato che ha fornito l'accesso root e lanciato SELinux in modalità permissiva e hanno anche estratto l'immagine crittografata dei dati utente dal dispositivo.
Conclusione
Non è noto il motivo per cui gli OEM rilasciano questi programmatori da Qualcomm. I programmatori Nokia, LG, Motorola e Google sono trapelati invece di essere rilasciati, ma i ricercatori sono riusciti a farlo rompi l'intera catena di fiducia sul Nokia 6 e ottieni l'accesso completo al dispositivo attraverso metodi simili di sfruttamento. Sono fiduciosi che l'attacco possa essere portato su qualsiasi dispositivo che supporti questi programmatori. Se possibile, gli OEM dovrebbero utilizzare qFuse hardware che impediscono i rollback del software, attivandosi quando viene eseguito il rollback dell'hardware del dispositivo e possono avvisare un utente dell'avvenuto rollback. Chi è interessato può dare un'occhiata al documento di ricerca completo di seguito e può anche leggere l'intero sfruttamento di Nokia.
Fonte: Ricerca Aleph