Qualcomm-enheder har en EDL-tilstand, som, som det viser sig, ser ud til at kunne udnyttes, hvis du har de rigtige værktøjer udgivet af OEM'erne.
Enheder med Qualcomm-chipsæt har en Primary Bootloader (PBL), som typisk starter Android-systemet, men også rummer en alternativ opstartstilstand kendt som EDL-tilstand. EDL-tilstand er Qualcomms Enødhjælp Degenlast Mode og tillader en Original Eudstyr Mfabrikant (OEM) til at tvinge flash-software på en enhed. Dette kan ikke ændres (skrivebeskyttet tilstand) og har fuld kontrol over enhedens lager. Mange OEM'er, inklusive OnePlus og Xiaomi har udgivet værktøjer (kendt som programmører), som bruger EDL-tilstand og en protokol kendt som Firehose til at frigøre en enhed, mens andre værktøjer fra firmaer som Nokia er lækket. Firehose kan bruge en række kommandoer til at flashe enheder, sammen med evnen til at undersøge dataene i en enheds hukommelse. Sikkerhedsforskere Roe Hay (@roeehay) og Noam Hadad fra Aleph Research har opdaget kritiske enhedssårbarheder ved hjælp af denne tilstand, som effektivt giver en angriber fuld enhedsadgang.
Det er vigtigt at bemærke det denne udnyttelse kræver fysisk adgang til enheden, men den er stadig utrolig farlig og kan sandsynligvis ikke lappes. Angriberne brugte adgangsniveauet til EDL-tilstanden til at omgå sikker opstart på en Nokia 6 og besejrede kæde af tillid og opnå fuld kodeudførelse på tværs af alle dele af opstartssekvensen inklusive Android OS sig selv. Det er teorien, at det fungerer på samme måde på andre enheder, og forskerne formåede også at låse op og roote flere Xiaomi-enheder uden tab af data.
Hvilke enheder påvirkes af denne udnyttelse?
For det første de enheder, der er berørt.
Liste over berørte enheder.
- LG G4
- Nokia 6 (d1c)
- Nokia 5
- Nexus 6 (shamu)
- Nexus 6P (fisker)
- Moto G4 Plus
- OnePlus 5 (cheeseburger)
- OnePlus 3T
- OnePlus 3
- OnePlus 2
- OnePlus X
- OnePlus One
- 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 (lithium)
- Xiaomi Mix 2 (chiron)
- Xiaomi Mi 6 (sagit)
- Xiaomi Mi 5s (stenbukken)
- Xiaomi Mi 5s Plus (natrium)
- Xiaomi Mi 5x (tiffany)
- Xiaomi Mi 5 (gemini)
- Xiaomi Mi 3 (cancro)
- Xiaomi Mi A1 (tissot)
- Xiaomi Mi Max2 (ilt)
- Xiaomi Redmi Note 3 (kenzo)
- Xiaomi Redmi 5A (riva)
- Xiaomi Redmi 4A (rosarød)
Læs mere
Udnyttelse af en Android-telefon
Opstartssekvensen for en typisk Android Qualcomm-telefon
Det er vigtigt først at forstå opstartssekvensen for en typisk Android-enhed, før du forklarer, hvordan den kan udnyttes. Det Softe Bootloader (SBL) er en digitalt signeret bootloader, som kontrolleres for ægthed, før den indlæses i imem. imem er en fast-on-chip hukommelse, der bruges til fejlretning og DMA (ddirekte mhukommelse -enccess) transaktioner og er proprietær til Qualcomm-chipsæt.
Nogle enheder har et exstrækbar Bootloader (XBL) i stedet for en SBL, men opstartsprocessen er stort set den samme. SBL eller XBL starter derefter ABOOT, som implementerer fastboot. Herefter indlæses TrustZone (hardwarebaseret sikkerhed). TrustZone kontrollerer ægtheden af ABOOT ved hjælp af et hardwarebaseret rodcertifikat. SBL (eller XBL, i nogle tilfælde) er designet til at afvise en forkert underskrevet (eller usigneret) ABOOT.
Når den er godkendt, tjekker ABOOT derefter /boot og /recovery for ægthed, før Linux-kernen startes. Nogle systemforberedelser udføres, og derefter overføres kodekørsel til kernen. ABOOT er almindeligvis kendt som "Android Bootloader", og når vi låser en enheds bootloader op, deaktiverer vi dette ægthedstjek i ABOOT.
Adgang til EDL-tilstand
Mens nogle enheder har en simpel hardwarekombination (eller værre, en simpel proprietær fastboot-kommando, der findes i mange Xiaomi-enheder), andre, såsom Nokia-enheder, skal kortslutte stifter kendt som "testpunkter", der findes på enhedens hoved bestyrelse. Det plejede også at være muligt, før sikkerhedsopdateringen fra december 2017, blot at køre "adb reboot edl" på mange enheder (inklusive Nexus 6 og 6P) og gå ind i EDL-tilstand. Dette er siden blevet rettet.
Andre enheder kan også bruge det, der er kendt som et "deep flash"-kabel, som er et specielt kabel med visse stifter kortsluttede for at fortælle systemet i stedet at starte op i EDL-tilstand. Gamle Xiaomi-enheder kan bruge denne metode sammen med Nokia 5 og Nokia 6. Andre enheder vil også starte op i EDL-tilstand, når de ikke kan bekræfte SBL.
Brug af EDL-tilstand til at få fuld adgang på en OnePlus 3/3T
EDL-tilstand kan bruges på en række måder på en enhed, for det meste til at fjerne mursten af enheder ved at tvinge dem. Som forklaret ovenfor burde det teoretisk set være sikkert for enhver at få adgang til denne tilstand, da det værre tilfælde er, at ABOOT vil afvise software, der ikke er officielt underskrevet af producenten. Selvom dette er sandt, er det faktisk muligt at få fuldstændig kontrol over en OnePlus 3 eller 3T og dens filer i en proof of concept-udnyttelse vist af forskerne.
Dette vil blive gjort gennem to meget farlige kommandoer, som OnePlus efterlod tilgængelige i en ældre version af ABOOT (Android bootloader), for at låse enhedens bootloader op (uden at der vises en advarsel til brugeren ved opstart) og deaktivere dm_verity. dm_verity er også kendt som verificeret opstart og er en del af en sikker opstartssekvens på en Android-enhed. De to kommandoer er som følger.
fastboot oem disable_dm_verity
fastboot oem 4F500301/2
Overhold den enkle 4-trins-proces nedenfor, som bruger Firehose-protokollen.
- Start først enheden i EDL-tilstand. Dette kan enten gøres gennem adb på OxygenOS 5.0 eller lavere eller ved at bruge en simpel hardwaretastkombination.
- Download et gammelt systembillede af OxygenOS 4.0.2 nedenfor.
- Flash aboot.bin gennem firehose (husk at aboot.bin implementerer fastboot, som vi nævnte tidligere)
- Du vil nu være i stand til at deaktivere sikker opstart og låse opstartsindlæseren op uden at tørre enheden af blot ved at bruge de to fastboot-kommandoer ovenfor.
Hvis du husker, viste OnePlus sig tidligere at have efterladt to farlige fastboot-kommandoer for næsten et år siden, en der låste opstartsindlæseren op og en som deaktiverede sikker opstart. Mens det er rigtigt, at en angriber kan ikke installere skadelig software på enheden, de kan nedgradere enheden at have ældre, sårbare over for angrebssoftware. Simpelthen ved at køre ovenstående fastboot-kommandoer, kan en angriber have fuld adgang til enheden.
Og det er det, bootloaderen er låst op, sikker opstart er slået fra, og der er absolut intet datatab. Hvis en angriber ønskede at tage dette et skridt videre, kunne de flashe en ondsindet tilpasset kerne, som muliggør root-adgang til enheden, som brugeren aldrig ville vide om.
Firehose arbejder gennem Qualcomm Sahara-protokollen, som accepterer en OEM-signeret programmør og er, hvordan ovenstående angreb ville blive udført. Når den er tilsluttet en enhed, fungerer den som en SBL over USB. De fleste programmører bruger Brandslange at kommunikere med en telefon i EDL-tilstand, hvilket er, hvad forskerne udnyttede til at få fuld enhedskontrol. Det brugte forskerne også til låse op for en Xiaomi-enhed ved blot at blinke et ændret billede som låste bootloaderen op. De flashede derefter en brugerdefineret kerne, som gav root-adgang og lancerede SELinux i permissive og udtrak også det krypterede brugerdatabillede fra enheden.
Konklusion
Det er ukendt, hvorfor OEM'er frigiver disse programmører fra Qualcomm. Nokia, LG, Motorola og Google programmører lækkede i stedet for at blive frigivet, men alligevel lykkedes det forskerne bryde hele tillidskæden på Nokia 6 og få fuld enhedsadgang gennem lignende metoder udnyttelse. De er sikre på, at angrebet kan porteres til enhver enhed, der understøtter disse programmører. Hvis det er muligt, bør OEM'er gøre brug af hardware qFuses, som forhindrer software rollbacks, ved at sprænge, når enhedens hardware rulles tilbage og kan advare en bruger om, at det har fundet sted. De interesserede kan tage et kig på hele forskningspapiret nedenfor og kan også læse hele Nokia-udnyttelsen.
Kilde: Aleph Research