Qualcomm-enheter har en EDL-modus, som som det viser seg ser ut til å kunne utnyttes hvis du har de riktige verktøyene utgitt av OEM-ene.
Enheter med Qualcomm-brikkesett har en Primær Bootloader (PBL) som vanligvis starter opp Android-systemet, men som også inneholder en alternativ oppstartsmodus kjent som EDL-modus. EDL-modus er Qualcomms Emergency Degenlast Mode og tillater en Original Eutstyr Mprodusenten (OEM) for å tvinge flash-programvare på en enhet. Dette kan ikke endres (skrivebeskyttet modus) og har full kontroll over enhetens lagring. Mange OEM-er inkludert OnePlus og Xiaomi har gitt ut verktøy (kjent som programmerere) som bruker EDL-modus og en protokoll kjent som Firehose for å løse opp en enhet, mens andre verktøy fra selskaper som Nokia har lekket. Firehose kan bruke en rekke kommandoer for å flashe enheter, sammen med muligheten til å undersøke dataene i en enhets minne. Sikkerhetsforskere Roee Hay (@roeehay) og Noam Hadad fra Aleph Research har oppdaget kritiske enhetssårbarheter ved å bruke denne modusen, som effektivt gir en angriper full enhetstilgang.
Det er viktig å merke seg det denne utnyttelsen krever fysisk tilgang til enheten, men den er fortsatt utrolig farlig og kan sannsynligvis ikke lappes. Angriperne brukte tilgangsnivået som ble gitt til EDL-modus for å omgå sikker oppstart på en Nokia 6, og beseiret kjede av tillit og få full kodekjøring på tvers av alle deler av oppstartssekvensen, inkludert Android OS seg selv. Det er teoretisert å fungere på samme måte på andre enheter, og forskerne klarte også å låse opp og rote flere Xiaomi-enheter uten tap av data.
Hvilke enheter påvirkes av denne utnyttelsen?
For det første enhetene som er berørt.
Liste over enheter som er berørt.
- LG G4
- Nokia 6 (d1c)
- Nokia 5
- Nexus 6 (shamu)
- Nexus 6P (fisker)
- Moto G4 Plus
- OnePlus 5 (ostburger)
- OnePlus 3T
- OnePlus 3
- OnePlus 2
- OnePlus X
- En pluss en
- 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 (skorpion)
- Xiaomi Mix (litium)
- Xiaomi Mix 2 (chiron)
- Xiaomi Mi 6 (sagit)
- Xiaomi Mi 5s (steinbukken)
- Xiaomi Mi 5s Plus (natrium)
- Xiaomi Mi 5x (tiffany)
- Xiaomi Mi 5 (tvilling)
- Xiaomi Mi 3 (cancro)
- Xiaomi Mi A1 (tissot)
- Xiaomi Mi Max2 (oksygen)
- Xiaomi Redmi Note 3 (kenzo)
- Xiaomi Redmi 5A (riva)
- Xiaomi Redmi 4A (rosa)
Les mer
Utnytte en Android-telefon
Oppstartssekvensen til en typisk Android Qualcomm-telefon
Det er viktig å først forstå oppstartssekvensen til en typisk Android-enhet før du forklarer hvordan den kan utnyttes. De Softe Bootloader (SBL) er en digitalt signert bootloader som kontrolleres for autentisitet før den lastes inn i imem. imem er et hurtig-på-brikke minne som brukes til feilsøking og DMA (ddirekte mminne enccess) transaksjoner og er proprietær til Qualcomm-brikkesett.
Noen enheter har en eXstrekkbar Bootloader (XBL) i stedet for en SBL, men oppstartsprosessen er stort sett den samme. SBL eller XBL starter deretter ABOOT, som implementerer fastboot. Etter dette lastes også TrustZone (maskinvarebasert sikkerhet). TrustZone sjekker autentisiteten til ABOOT ved hjelp av et maskinvarebasert rotsertifikat. SBL (eller XBL, i noen tilfeller) er utformet for å avvise en feil signert (eller usignert) ABOOT.
Når det er autentisert, sjekker ABOOT deretter /boot og /recovery for autentisitet før Linux-kjernen startes. Noen systemforberedelser er gjort, og deretter overføres kodekjøring til kjernen. ABOOT er vanligvis kjent som "Android Bootloader", og når vi låser opp bootloaderen til en enhet, deaktiverer vi denne autentisitetskontrollen i ABOOT.
Tilgang til EDL-modus
Mens noen enheter har en enkel maskinvarekombinasjon (eller enda verre, en enkel proprietær fastboot-kommando som finnes i mange Xiaomi-enheter), andre, for eksempel Nokia-enheter, må kortslutte pinner kjent som "testpunkter" på enhetens hoved borde. Før sikkerhetsoppdateringen fra desember 2017 var det også mulig å kjøre «adb reboot edl» på mange enheter (inkludert Nexus 6 og 6P) og gå inn i EDL-modus. Dette har siden blitt fikset.
Andre enheter kan også bruke det som er kjent som en "deep flash"-kabel, som er en spesiell kabel med visse pinner kortsluttet for å fortelle systemet i stedet å starte opp i EDL-modus. Gamle Xiaomi-enheter kan bruke denne metoden, sammen med Nokia 5 og Nokia 6. Andre enheter vil også starte opp i EDL-modus når de ikke klarer å bekrefte SBL.
Bruker EDL-modus for å få full tilgang på en OnePlus 3/3T
EDL-modus kan brukes på en rekke måter på en enhet, mest for å løsne enheter ved å tvinge dem. Som forklart ovenfor, bør det teoretisk være trygt for alle å få tilgang til denne modusen, ettersom det verre tilfellet er at ABOOT vil avvise programvare som ikke er offisielt signert av produsenten. Selv om dette er sant, er det faktisk mulig å få full kontroll over en OnePlus 3 eller 3T og filene i en proof of concept-utnyttelse vist av forskerne.
Dette vil bli gjort gjennom to svært farlige kommandoer som OnePlus lot være tilgjengelige i en eldre versjon av ABOOT (Android bootloader), for å låse opp enhetens bootloader (uten at en advarsel vises til brukeren ved oppstart) og deaktivere dm_verity. dm_verity er også kjent som verifisert oppstart og er en del av en sikker oppstartssekvens på en Android-enhet. De to kommandoene er som følger.
fastboot oem disable_dm_verity
fastboot oem 4F500301/2
Følg den enkle 4-trinns prosessen nedenfor som bruker Firehose-protokollen.
- Start først enheten i EDL-modus. Dette kan enten gjøres gjennom adb på OxygenOS 5.0 eller lavere eller ved å bruke en enkel maskinvaretastkombinasjon.
- Last ned et gammelt systembilde av OxygenOS 4.0.2 nedenfor.
- Flash aboot.bin gjennom firehose (husk at aboot.bin implementerer fastboot, som vi nevnte tidligere)
- Du vil nå kunne deaktivere sikker oppstart og låse opp bootloaderen uten å tørke av enheten ganske enkelt ved å bruke de to fastboot-kommandoene ovenfor.
Hvis du husker, ble OnePlus tidligere funnet å ha lagt igjen to farlige fastboot-kommandoer for nesten et år siden, en som låste opp bootloaderen og en som deaktiverte sikker oppstart. Mens det er sant at en angriper kan ikke installere skadelig programvare på enheten, de kan nedgradere enheten å ha eldre, sårbare for angrepsprogramvare. Bare ved å kjøre de ovennevnte fastboot-kommandoene, kan en angriper ha full tilgang til enheten.
Og det er det, oppstartslasteren er låst opp, sikker oppstart er slått av og det er absolutt ingen tap av data. Hvis en angriper ønsket å ta dette et skritt videre, kunne de flashe en ondsinnet tilpasset kjerne som muliggjør root-tilgang til enheten som brukeren aldri ville vite om.
Firehose fungerer gjennom Qualcomm Sahara-protokollen, som godtar en OEM-signert programmerer og er hvordan angrepet ovenfor vil bli utført. Når den er koblet til en enhet, fungerer den som en SBL over USB. De fleste programmerere bruker Brannslange å kommunisere med en telefon i EDL-modus, som er det forskerne utnyttet for å få full enhetskontroll. Dette brukte forskerne også til Lås opp en Xiaomi-enhet ved å blinke et modifisert bilde som låste opp bootloaderen. De flashet deretter en tilpasset kjerne som ga root-tilgang og lanserte SELinux i permissive og ekstraherte også det krypterte brukerdatabildet fra enheten.
Konklusjon
Det er ukjent hvorfor OEM-er slipper disse programmererne fra Qualcomm. Nokia, LG, Motorola og Google-programmerere lekket i stedet for å bli utgitt, men forskerne klarte det bryte hele tillitskjeden på Nokia 6 og få full enhetstilgang gjennom lignende metoder for utnyttelse. De er sikre på at angrepet kan porteres til alle enheter som støtter disse programmererne. Hvis det er mulig, bør OEM-er bruke hardware qFuses som forhindrer tilbakerulling av programvare, ved å blåse når enhetens maskinvare rulles tilbake og kan advare en bruker om at det har funnet sted. De som er interessert kan ta en titt på hele forskningsartikkelen nedenfor og kan også lese hele Nokia-utnyttelsen.
Kilde: Aleph Research