OnePlus ha lasciato in atto un'app di test ingegneristico Qualcomm che funge da backdoor per garantire l'accesso root su OnePlus 3, 3T e 5.
Aggiornamento: OnePlus ha rilasciato un risposta ufficiale alla questione. Rimuoveranno la funzione root ADB da EngineerMode in un prossimo aggiornamento.
È passato poco più di un mese da quando è stato scoperto che OnePlus stava raccogliendo informazioni di identificazione personale per l'analisi. L'azienda ha rapidamente invertito la rotta e in un aggiornamento ha promesso di essere più trasparente dando chiaramente agli utenti il opzione per disattivare l'analisi di OxygenOS. Anche se da allora quella debacle si è risolta, stasera ne sta emergendo un'altra brutta testa. Un utente su Twitter che si chiama "Elliot Alderson" (dal nome del personaggio principale della popolare serie televisiva Mr. Robot) ha scoperto che OnePlus ha lasciato accidentalmente sul posto un'applicazione di test diagnostico realizzato da Qualcomm. Dopo aver decompilato questa applicazione, ha scoperto che può esserlo
sfruttato per garantire l'accesso root, agendo effettivamente come una backdoor.L'applicazione si chiama "EngineerMode" ed è essenzialmente un'applicazione di sistema realizzata da Qualcomm e fornito a OEM come OnePlus affinché gli OEM possano testare facilmente tutti i componenti hardware di dispositivo. L'applicazione è preinstallata su tutti i dispositivi OnePlus 3, OnePlus 3T e OnePlus 5 e può essere facilmente accessibile tramite qualsiasi launcher di attività poiché tutte le attività dell'app vengono esportate.
In realtà noi coperto l'esistenza di questa applicazione diversi mesi fa, ma all'epoca non avevamo idea a cosa potesse servire. L'utente Twitter ha decompilato l'applicazione (la sua fonte è stata pubblicata online Qui) e ho trovato un'attività interessante chiamata DiagEnabled. In particolare, all'interno dell'attività si è distinto un metodo: escalatedUp. Questo metodo accetta un valore booleano (vero/falso) e una stringa. La stringa è una password che viene controllata dal metodo prima di impostare le proprietà del sistema persist.sys.adbroot
E oem.selinux.reload_policy
a 1.
La prima proprietà di sistema è particolarmente interessante in quanto consente all'utente di eseguire ADB come root. Ciò apre immediatamente la possibilità di acquisire l'accesso root completo sul telefono, il tutto senza sbloccare il bootloader. Quindi, come si fa esattamente a far sì che l'app EngineerMode imposti queste proprietà di sistema su "1"?
@ fs0c131y doveva trovare la password corretta da inviare nell'intento per passare la logica nel metodo pubblicato sopra. Tuttavia, trovare questa password non è un compito semplice. Ha decompilato la libreria responsabile della generazione della password (chiamata libdoor.so) e ha scoperto dove si trovava l'hash della password: /data/backup/fpwd
. La password viene generata da varie proprietà di build come ro.product.model
E ro.product.brand
e non sarebbe facile decodificare.
Fortunatamente con l'aiuto David Weinstein E Ora sicuro su Twitter, ha scoperto la password necessaria a EngineerMode per escalare ADB ai privilegi di root.
Tutto quello che devi fare è inviare un intento in questo formato:
adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code""angela"
dove com.android.engineeringmode/.qualcomm. DiagEnabled è il nome del componente della DiagEnabled Activity che stiamo sfruttando, e "code" è il nome della stringa e "angela" è il relativo valore della password.
@ fs0c131y afferma che lo farà pubblicare una domanda presto invierà questo intento per elevare ADB ai privilegi di root, applicare una patch all'immagine di avvio per disabilitare dm-verity e installare i binari su. Tieni d'occhio i forum XDA per quando verrà pubblicata questa applicazione root.
Ciò che questo significa per gli utenti finali è che puoi esegui facilmente il root del tuo OnePlus 3, OnePlus 3T e OnePlus 5 senza mai sbloccare il bootloader. Tuttavia, questo exploit non consente a un'app dannosa di concedersi l'accesso root, quindi, a meno che qualcuno non abbia accesso fisico al tuo dispositivo per configurare ADB, sei al sicuro dallo sfruttamento.
Nel caso in cui desideri proteggerti comunque da questo exploit, puoi farlo disinstallare l'app dall'utente corrente che impedirà l'invio dell'intento all'app EngineerMode. Basta usare il seguente comando in ADB:
adbshellpmuninstall-k--user 0 com.android.engineermode
Naturalmente, questo è ancora considerato un exploit e speriamo che OnePlus lo risolva presto. Tutto ciò che avrebbero veramente bisogno di fare è rimuovere questa applicazione dalle build future.
Aggiornamento 1: la password è "angela"
L'utente @fs0c131y ha pubblicato un aggiornamento sulla sua pagina Twitter con la password necessaria per accedere a una shell ADB rootata. Quella password è...Angela. Per quelli di voi che non guardano Mr. Robot, Angela è il nome di uno dei protagonisti. Immagino che ci siano molti fan di Mr. Robot in Qualcomm.
Se inserisci il comando che ho pubblicato sopra in ADB, noterai che ADB si disconnette immediatamente e il server si riavvia. Inserisci nuovamente ADB e noterai che ora è una shell rootata.
Aggiornamento 2: come è stata derivata la password
La società di sicurezza Now Secure ha pubblicato un post sul blog in cui spiega in dettaglio come è stata ricavata la password necessaria affinché si verificasse questo exploit root. Puoi leggere il loro post completo qui.
Aggiornamento 3: più dispositivi interessati
Queste ultime notizie non dovrebbero sorprendere, ma sembrano essere interessati da questo exploit più dispositivi. Questo perché l'app EngineerMode è un'app Qualcomm, quindi è possibile che altri OEM l'abbiano lasciata preinstallata sui propri dispositivi. Finora, gli utenti hanno contattato @fs0c131y su Twitter per confermare che l'applicazione è installata alcuni dispositivi Asus Zenfone e Xiaomi. Puoi facilmente verificare se il tuo dispositivo ha questa applicazione andando in Impostazioni e vedendo quali app sono installate.
Aggiornamento 4: rooting del tuo dispositivo
Utilizzando alcuni comandi tramite la shell ADB rootata, ora è possibile spingi il su binario sul tuo dispositivo. Utilizzandolo, puoi quindi installare un'app di gestione root come SuperSU e quindi concedere liberamente l'accesso root ad altre app. Il tutto senza sbloccare il bootloader!
Aggiornamento 5: OnePlus risponde
OnePlus ha risposto ufficialmente alla situazione. In un post sul blog, l'azienda ribadisce che questo exploit può essere utilizzato solo se un utente malintenzionato ha accesso fisico al dispositivo e ha abilitato il debug USB. Per abilitare il debug USB, l'aggressore ha bisogno anche del pin/password del tuo dispositivo. Pertanto, la backdoor root non è facilmente sfruttabile da nessuna app o persona, ma OnePlus risponderà comunque alle preoccupazioni degli utenti rimuovendo questa funzionalità dall'app EngineerMode.