Exploat vizează modul EDL al Qualcomm, afectează unele dispozitive Xiaomi, OnePlus, Nokia și alte dispozitive

Dispozitivele Qualcomm au un mod EDL, care, după cum se dovedește, pare a fi exploatat dacă aveți instrumentele potrivite lansate de OEM.

Dispozitivele cu chipset-uri Qualcomm au un Primară Bootloader (PBL) care pornește de obicei sistemul Android, dar găzduiește și un mod de pornire alternativ cunoscut sub numele de modul EDL. Modul EDL este al lui Qualcomm Eurgență Dpropria sarcina Modă și permite an Original Eechipament Manufacturer (OEM) pentru a forța software-ul flash pe un dispozitiv. Acesta nu poate fi modificat (modul doar citire) și are control deplin asupra stocării dispozitivului. Mulți producători OEM, inclusiv OnePlus și Xiaomi, au lansat instrumente (cunoscute sub numele de programatori) care utilizează modul EDL și un protocol cunoscut sub numele de Firehose pentru a debloca un dispozitiv, în timp ce alte instrumente de la companii precum Nokia s-au scurs. Firehose poate utiliza o serie de comenzi pentru a flash dispozitive, împreună cu capacitatea de a examina datele din memoria unui dispozitiv. Cercetători de securitate

Roee Hay (@roeehay) și Noam Hadad din Cercetare Aleph au descoperit vulnerabilități critice ale dispozitivului folosind acest mod, care acordă efectiv un atacator acces complet la dispozitiv.

Este important să rețineți că acest exploit necesită acces fizic la dispozitiv, dar este încă incredibil de periculos și probabil că nu poate fi corectat. Atacatorii au folosit nivelul de acces acordat modului EDL pentru a ocoli pornirea securizată pe un Nokia 6, învingând lanț de încredere și obținerea execuției complete a codului în fiecare parte a secvenței de pornire, inclusiv sistemul de operare Android în sine. Se teoretizează că funcționează în același mod pe alte dispozitive, iar cercetătorii au reușit, de asemenea, să deblocheze și să rooteze mai multe dispozitive Xiaomi fără nicio pierdere de date.

Ce dispozitive sunt afectate de acest exploit?

În primul rând, dispozitivele care sunt afectate.

Lista dispozitivelor afectate.

  • LG G4
  • Nokia 6 (d1c)
  • Nokia 5
  • Nexus 6 (shamu)
  • Nexus 6P (peșcător)
  • Moto G4 Plus
  • OnePlus 5 (cheeseburger)
  • OnePlus 3T
  • OnePlus 3
  • OnePlus 2
  • OnePlus X
  • Unu plus unu
  • ZTE Axon 7
  • ZUK Z1
  • ZUK Z2
  • Xiaomi Note 5A (ugglite)
  • Xiaomi Note 5 Prime (ugg)
  • Xiaomi Note 4 (mido)
  • Xiaomi Note 3 (jason)
  • Xiaomi Note 2 (scorpion)
  • Xiaomi Mix (litiu)
  • Xiaomi Mix 2 (chiron)
  • Xiaomi Mi 6 (sagit)
  • Xiaomi Mi 5s (capricorn)
  • Xiaomi Mi 5s Plus (natriu)
  • Xiaomi Mi 5x (tiffany)
  • Xiaomi Mi 5 (gemeni)
  • Xiaomi Mi 3 (cancro)
  • Xiaomi Mi A1 (tissot)
  • Xiaomi Mi Max2 (oxigen)
  • Xiaomi Redmi Note 3 (kenzo)
  • Xiaomi Redmi 5A (riva)
  • Xiaomi Redmi 4A (roz)

citeşte mai mult

Exploatarea unui telefon Android

Secvența de pornire a unui telefon tipic Android Qualcomm

Este important să înțelegeți mai întâi secvența de pornire a unui dispozitiv Android tipic înainte de a explica cum poate fi exploatat. The Ssoftware-ul Bootloader (SBL) este un bootloader semnat digital care este verificat pentru autenticitate înainte de a fi încărcat în imem. imem este o memorie fast-on-chip folosită pentru depanare și DMA (direct memoție Access) tranzacții și este proprietatea chipset-urilor Qualcomm.

Unele dispozitive au un eXtensionabile Bootloader (XBL) în loc de un SBL, dar procesul de pornire este aproape același. SBL sau XBL lansează apoi ABOOT, care implementează fastboot. După aceasta, se încarcă și TrustZone (securitate bazată pe hardware). TrustZone verifică autenticitatea ABOOT prin intermediul unui certificat rădăcină bazat pe hardware. SBL (sau XBL, în unele cazuri) este conceput pentru a respinge un ABOOT semnat incorect (sau nesemnat).

Odată autentificat, ABOOT verifică apoi /boot și /recovery pentru autenticitate înainte de a lansa nucleul Linux. Unele pregătiri ale sistemului sunt făcute și apoi execuția codului este transferată în nucleu. ABOOT este cunoscut în mod obișnuit ca „Android Bootloader”, iar când deblochăm bootloader-ul unui dispozitiv, dezactivăm această verificare a autenticității în ABOOT.

Secvența de pornire a unui dispozitiv Android standard vizualizată. // Sursă: Cercetare Aleph

Accesarea modului EDL

În timp ce unele dispozitive au o combinație hardware simplă (sau mai rău, o comandă simplă de pornire rapidă proprietară prezentă în multe Dispozitivele Xiaomi), altele, cum ar fi dispozitivele Nokia, trebuie să scurteze pini cunoscute sub numele de „puncte de testare” prezente pe principalul dispozitiv. bord. De asemenea, înainte de patch-ul de securitate din decembrie 2017, era posibil să rulați pur și simplu „adb reboot edl” pe multe dispozitive (inclusiv Nexus 6 și 6P) și să intrați în modul EDL. Acest lucru a fost remediat de atunci.

Punctele de testare sunt afișate într-o casetă galbenă desenată în partea de jos a plăcii de bază a dispozitivului. // Sursă: Cercetare Aleph

Alte dispozitive pot folosi, de asemenea, ceea ce este cunoscut sub numele de cablu „deep flash”, care este un cablu special cu anumiți pini scurtați pentru a spune sistemului să pornească în schimb în modul EDL. Dispozitivele vechi Xiaomi pot utiliza această metodă, împreună cu Nokia 5 și Nokia 6. Alte dispozitive vor porni și în modul EDL atunci când nu reușesc să verifice SBL.

Un cablu bliț adânc

Utilizarea modului EDL pentru a obține acces complet pe un OnePlus 3/3T

Modul EDL poate fi utilizat în mai multe moduri pe un dispozitiv, mai ales pentru deblocarea dispozitivelor prin forțarea lor. După cum sa explicat mai sus, teoretic ar trebui să fie sigur pentru oricine să acceseze acest mod, deoarece scenariul cel mai rău este că ABOOT va respinge software-ul care nu este semnat oficial de producător. Deși acest lucru este adevărat, este de fapt posibil să obțineți control complet asupra unui OnePlus 3 sau 3T și a fișierelor sale într-o exploatare demonstrată de către cercetători.

Acest lucru se va face prin două comenzi foarte periculoase pe care OnePlus le-a lăsat accesibile într-o versiune mai veche de ABOOT (Android bootloader), pentru a debloca bootloader-ul dispozitivului (fără a fi afișat un avertisment utilizatorului la pornire) și a dezactiva dm_verity. dm_verity este cunoscut și ca pornire verificată și face parte dintr-o secvență de pornire sigură pe un dispozitiv Android. Cele două comenzi sunt după cum urmează.

fastboot oem disable_dm_verity
fastboot oem 4F500301/2

Observați procesul simplu, în 4 pași de mai jos, care utilizează protocolul Firehose.

  1. Mai întâi, porniți dispozitivul în modul EDL. Acest lucru se poate face fie prin adb pe OxygenOS 5.0 sau o versiune anterioară, fie prin utilizarea unei simple combinații de taste hardware.
  2. Descărcați o imagine veche a sistemului de mai jos OxygenOS 4.0.2.
  3. Afișați aboot.bin prin firehose (rețineți că aboot.bin implementează fastboot, așa cum am menționat mai devreme)
  4. Acum veți putea să dezactivați boot-ul securizat și să deblocați bootloader-ul fără a șterge dispozitivul pur și simplu folosind cele două comenzi fastboot de mai sus.

Dacă vă amintiți, s-a descoperit anterior că OnePlus a lăsat două comenzi fastboot periculoase în urmă cu aproape un an, una care debloca încărcătorul de pornire și una care dezactiva încărcarea securizată. Deși este adevărat că un atacator nu se poate instala software rău intenționat pe dispozitiv, ei pot downgrade a dispozitivului a avea mai vechi, vulnerabil la software-ul de atac. Pur și simplu rulând comenzile fastboot de mai sus, un atacator poate avea acces complet la dispozitiv.

Și gata, bootloader-ul este deblocat, boot-ul securizat este dezactivat și nu există absolut nicio pierdere de date. Dacă un atacator ar dori să facă acest lucru un pas mai departe, ar putea să flash un nucleu personalizat rău intenționat care să permită accesul root la dispozitiv despre care utilizatorul nu ar ști niciodată.

Firehose funcționează prin protocolul Qualcomm Sahara, care acceptă un programator semnat de OEM și este modul în care ar fi efectuat atacul de mai sus. Când este conectat la un dispozitiv, acesta acționează ca un SBL prin USB. Majoritatea programatorilor folosesc Furtun de incendiu pentru a comunica cu un telefon în modul EDL, ceea ce cercetătorii au exploatat pentru a obține controlul deplin al dispozitivului. Cercetătorii au folosit și acest lucru deblocați un dispozitiv Xiaomi pur și simplu prin afișarea intermitentă a unei imagini modificate care a deblocat bootloader-ul. Apoi au afișat un nucleu personalizat care a oferit acces root și a lansat SELinux în mod permisiv și, de asemenea, au extras imaginea criptată a datelor utilizatorului de pe dispozitiv.

Concluzie

Nu se știe de ce OEM-urile eliberează acești programatori de la Qualcomm. Programatorii Nokia, LG, Motorola și Google s-au scurs în loc să fie eliberați, dar cercetătorii au reușit rupe întregul lanț de încredere pe Nokia 6 și obține acces complet la dispozitiv prin metode similare de exploatare. Ei sunt încrezători că atacul poate fi portat pe orice dispozitiv care acceptă acești programatori. Dacă este posibil, producătorii de echipamente originale ar trebui să utilizeze siguranțele q hardware care împiedică derularea software-ului, explodând atunci când hardware-ul dispozitivului este derulat înapoi și pot avertiza utilizatorul că a avut loc. Cei interesați pot arunca o privire la documentul de cercetare complet de mai jos și pot citi și exploatarea completă a Nokia.


Sursa: Aleph Research