Exploit Targets Der EDL-Modus von Qualcomm wirkt sich auf einige Xiaomi, OnePlus, Nokia und andere Geräte aus

Glücklicherweise ist ein physischer Zugriff auf das Gerät erforderlich

Geräte mit Qualcomm-Chipsätzen verfügen über einen P rimary Boot Loader (PBL), der in der Regel das Android-System bootet, aber auch einen alternativen Boot-Modus namens EDL-Modus enthält. Der EDL-Modus ist der E mergency Download-Modus von Qualcomm und ermöglicht einem OEM (Original Equipment Manufacturer), Flash-Software auf einem Gerät zu erzwingen. Dies kann nicht geändert werden (Nur-Lese-Modus) und hat die volle Kontrolle über den Speicher des Geräts. Viele OEMs, darunter OnePlus und Xiaomi, haben Tools (sogenannte Programmierer) herausgebracht, die den EDL-Modus und ein Protokoll namens Firehose verwenden, um ein Gerät zu trennen, während andere Tools von Unternehmen wie Nokia durchgesickert sind. Firehose kann eine Reihe von Befehlen zum Flashen von Geräten verwenden und die Daten im Gerätespeicher untersuchen. Die Sicherheitsforscher Roee Hay (@roeehay) und Noam Hadad von Aleph Research haben mit diesem Modus kritische Geräteschwachstellen entdeckt, die einem Angreifer effektiv vollen Gerätezugriff gewähren .

Es ist wichtig zu beachten, dass dieser Exploit physischen Zugriff auf das Gerät erfordert, aber dennoch unglaublich gefährlich ist und wahrscheinlich nicht gepatcht werden kann . Die Angreifer nutzten die Zugriffsberechtigung für den EDL-Modus, um den sicheren Systemstart auf einem Nokia 6 zu umgehen, die Vertrauenskette zu umgehen und die vollständige Codeausführung für alle Teile der Systemstartsequenz einschließlich des Android-Betriebssystems selbst zu erreichen. Es wird vermutet, dass es auf anderen Geräten genauso funktioniert, und die Forscher haben es auch geschafft, mehrere Xiaomi-Geräte ohne Datenverlust zu entsperren und zu rooten.

Welche Geräte sind von diesem Exploit betroffen?

Erstens die betroffenen Geräte.

Liste der betroffenen Geräte.

  • LG G4
  • Nokia 6 (d1c)
  • Nokia 5
  • Nexus 6 (Shamu)
  • Nexus 6P (Angler)
  • Moto G4 Plus
  • OnePlus 5 (Cheeseburger)
  • OnePlus 3T
  • OnePlus 3
  • OnePlus 2
  • OnePlus X
  • Eins plus eins
  • ZTE Axon 7
  • ZUK Z1
  • ZUK Z2
  • Xiaomi Note 5A (ugglite)
  • Xiaomi Note 5 Prime (ugg)
  • Xiaomi Note 4 (Mitte)
  • Xiaomi Note 3 (Jason)
  • Xiaomi Note 2 (Skorpion)
  • Xiaomi Mix (Lithium)
  • Xiaomi Mix 2 (chiron)
  • Xiaomi Mi 6 (sagit)
  • Xiaomi Mi 5s (Steinbock)
  • Xiaomi Mi 5s Plus (natrium)
  • Xiaomi Mi 5x (Tiffany)
  • Xiaomi Mi 5 (Zwillinge)
  • Xiaomi Mi 3 (Cancro)
  • Xiaomi Mi A1 (Tissot)
  • Xiaomi Mi Max2 (Sauerstoff)
  • Xiaomi Redmi Note 3 (Kenzo)
  • Xiaomi Redmi 5A (Riva)
  • Xiaomi Redmi 4A (rosig)

Ein Android-Handy ausnutzen

Die Startsequenz eines typischen Android-Qualcomm-Telefons

Es ist wichtig, zuerst die Startsequenz eines typischen Android-Geräts zu verstehen, bevor erläutert wird, wie es genutzt werden kann. Der Software-Bootloader (SBL) ist ein digital signierter Bootloader, der vor dem Laden in imem auf Echtheit überprüft wird. imem ist ein Fast-On-Chip-Speicher, der zum Debuggen und für DMA-Transaktionen (Direct Memory Access) verwendet wird. Er ist Eigentum von Qualcomm-Chipsätzen.

Einige Geräte verfügen über einen X- Tensible-Boot-Loader (XBL) anstelle einer SBL, der Boot-Vorgang ist jedoch nahezu identisch. Das SBL oder XBL startet dann ABOOT, das Fastboot implementiert. Anschließend wird auch TrustZone (hardwarebasierte Sicherheit) geladen. TrustZone überprüft die Authentizität von ABOOT über ein hardwarebasiertes Root-Zertifikat. Die SBL (oder in einigen Fällen die XBL) ist so konzipiert, dass ein falsch signierter (oder nicht signierter) ABOOT abgelehnt wird.

Nach der Authentifizierung überprüft ABOOT / boot und / recovery auf Authentizität, bevor der Linux-Kernel gestartet wird. Einige Systemvorbereitungen sind abgeschlossen, und die Codeausführung wird auf den Kernel übertragen. ABOOT ist allgemein als "Android-Bootloader" bekannt. Wenn wir den Bootloader eines Geräts entsperren, deaktivieren wir diese Echtheitsprüfung in ABOOT.

Bootsequenz eines Standard Android Gerätes visualisiert. // Quelle: Aleph Research

Zugriff auf den EDL-Modus

Während bei einigen Geräten eine einfache Hardwarekombination (oder schlimmer noch ein einfacher proprietärer Fastboot-Befehl, der bei vielen Xiaomi-Geräten vorhanden ist) vorhanden ist, müssen bei anderen Geräten, z. B. bei Nokia-Geräten, die so genannten Testpunkte auf der Hauptplatine des Geräts kurzgeschlossen werden. Vor dem Sicherheitspatch vom Dezember 2017 war es auch möglich, auf vielen Geräten (einschließlich Nexus 6 und 6P) einfach „adb reboot edl“ auszuführen und in den EDL-Modus zu wechseln. Dies wurde seitdem behoben.

Testpunkte werden in einem gelben Kästchen am unteren Rand des Mainboards des Geräts angezeigt. // Quelle: Aleph Research

Andere Geräte können auch ein sogenanntes Deep Flash-Kabel verwenden. Hierbei handelt es sich um ein spezielles Kabel mit bestimmten Pins, die kurzgeschlossen sind, um das System anzuweisen, stattdessen in den EDL-Modus zu booten. Alte Xiaomi-Geräte können diese Methode zusammen mit Nokia 5 und Nokia 6 verwenden. Andere Geräte werden ebenfalls im EDL-Modus gestartet, wenn sie die SBL nicht überprüfen können.

Ein tiefes Blitzkabel

Verwenden des EDL-Modus, um auf einem OnePlus 3 / 3T vollen Zugriff zu erhalten

Der EDL-Modus kann auf einem Gerät auf verschiedene Arten verwendet werden, vor allem, um Geräte durch erzwungenes Flashen zu entfernen. Wie oben erläutert, sollte der Zugriff auf diesen Modus theoretisch für jeden sicher sein, da ABOOT im schlimmsten Fall Software ablehnt, die nicht vom Hersteller offiziell signiert wurde. Während dies zutrifft, ist es tatsächlich möglich, die vollständige Kontrolle über OnePlus 3 oder 3T und seine Dateien in einem von den Forschern gezeigten Proof-of-Concept-Exploit zu erlangen.

Dies geschieht über zwei sehr gefährliche Befehle, auf die OnePlus in einer älteren Version von ABOOT (dem Android-Bootloader) Zugriff gelassen hat, um den Bootloader des Geräts zu entsperren (ohne dass dem Benutzer beim Booten eine Warnung angezeigt wird) und dm_verity zu deaktivieren. dm_verity wird auch als verifizierter Start bezeichnet und ist Teil einer sicheren Startsequenz auf einem Android-Gerät. Die beiden Befehle lauten wie folgt.

 fastboot oem disable_dm_verity 
 fastboot oem 4F500301/2 

Beachten Sie den folgenden einfachen Vorgang in vier Schritten, bei dem das Firehose-Protokoll verwendet wird.

  1. Starten Sie zuerst das Gerät im EDL-Modus. Dies kann entweder über adb unter OxygenOS 5.0 oder niedriger oder mithilfe einer einfachen Hardware-Tastenkombination erfolgen.
  2. Laden Sie ein altes System-Image von OxygenOS 4.0.2 herunter.
  3. Flash aboot.bin durch firehose (denken Sie daran, dass aboot.bin wie bereits erwähnt fastboot implementiert)
  4. Sie können jetzt den sicheren Start deaktivieren und den Bootloader entsperren, ohne das Gerät mit den beiden oben genannten Fastboot-Befehlen zu löschen.

Wenn Sie sich erinnern, hat OnePlus vor fast einem Jahr zwei gefährliche Fastboot-Befehle hinterlassen, einen, der den Bootloader entsperrt hat, und einen, der den sicheren Start deaktiviert hat. Ein Angreifer kann zwar keine schädliche Software auf dem Gerät installieren, aber er kann das Gerät auf ältere, anfällige Software zurückstufen . Ein Angreifer kann durch Ausführen der obigen Fastboot-Befehle uneingeschränkten Zugriff auf das Gerät haben.

Und das war's, der Bootloader ist entsperrt, der Secure Boot ist ausgeschaltet und es gibt absolut keinen Datenverlust. Wenn ein Angreifer noch einen Schritt weiter gehen möchte, könnte er einen böswilligen benutzerdefinierten Kernel flashen, der den Root-Zugriff auf das Gerät ermöglicht, von dem der Benutzer nie erfahren würde.

Firehose arbeitet mit dem Qualcomm Sahara-Protokoll, das von einem OEM signierte Programmierer akzeptiert und wie der obige Angriff ausgeführt würde. Bei Anschluss an ein Gerät fungiert es als SBL über USB. Die meisten Programmierer verwenden Firehose, um mit einem Telefon im EDL-Modus zu kommunizieren. Dies nutzten die Forscher, um die vollständige Gerätekontrolle zu erlangen. Die Forscher nutzten dies auch, um ein Xiaomi-Gerät zu entsperren, indem sie einfach ein modifiziertes Image flashen, das den Bootloader entsperrte. Anschließend haben sie einen benutzerdefinierten Kernel geflasht, der Root-Zugriff gewährt, SELinux in permissive gestartet und auch das verschlüsselte Benutzerdaten-Image vom Gerät extrahiert.

Fazit

Es ist nicht bekannt, warum OEMs diese Programmierer von Qualcomm freigeben. Nokia-, LG-, Motorola- und Google-Programmierer sind durchgesickert, anstatt veröffentlicht zu werden, und dennoch ist es den Forschern gelungen, die gesamte Vertrauenskette für das Nokia 6 zu durchbrechen und durch ähnliche Ausnutzungsmethoden vollen Gerätezugriff zu erlangen. Sie sind zuversichtlich, dass der Angriff auf jedes Gerät portiert werden kann, das diese Programmierer unterstützt. Wenn möglich, sollten OEMs Hardware-qSicherungen verwenden, die Software-Rollbacks verhindern, indem sie beim Zurücksetzen der Gerätehardware durchbrennen und einen Benutzer warnen können, dass dies geschehen ist. Interessenten können sich das vollständige Forschungspapier unten ansehen und auch die vollständige Nokia-Nutzung nachlesen.


Quelle: Aleph Research