Les appareils Qualcomm disposent d'un mode EDL, qui s'avère exploitable si vous disposez des bons outils publiés par les OEM.
Les appareils équipés de chipsets Qualcomm ont un P.rimaire Bootjeoader (PBL) qui démarre généralement le système Android, mais héberge également un mode de démarrage alternatif appelé mode EDL. Le mode EDL est celui de Qualcomm Eurgence Dproprecharge M.ode et permet un Ôoriginal Eéquipement M.fabricant (OEM) pour forcer le logiciel Flash sur un appareil. Celui-ci ne peut pas être modifié (mode lecture seule) et a un contrôle total sur le stockage de l'appareil. De nombreux constructeurs OEM, dont OnePlus et Xiaomi, ont publié des outils (appelés programmeurs) qui utilisent le mode EDL et un protocole connu sous le nom de Firehose pour débloquer un appareil, tandis que d'autres outils de sociétés telles que Nokia ont fuité. Firehose peut utiliser un certain nombre de commandes pour flasher des appareils, ainsi que la possibilité d'examiner les données contenues dans la mémoire d'un appareil. Chercheurs en sécurité
Foin de Roee (@roeehay) et Noam Hadad depuis Recherche Aleph ont découvert des vulnérabilités critiques de l'appareil en utilisant ce mode, qui permet effectivement à un attaquant accès complet à l'appareil.Il est important de noter que cet exploit nécessite un accès physique à l'appareil, mais il reste incroyablement dangereux et ne peut probablement pas être corrigé.. Les attaquants ont utilisé le niveau d'accès accordé au mode EDL pour contourner le démarrage sécurisé sur un Nokia 6, battant ainsi le système. chaîne de confiance et obtenir l'exécution complète du code dans chaque partie de la séquence de démarrage, y compris le système d'exploitation Android lui-même. Il est théorisé qu'il fonctionne de la même manière sur d'autres appareils, et les chercheurs ont également réussi à déverrouiller et rooter plusieurs appareils Xiaomi sans aucune perte de données.
Quels appareils sont concernés par cet exploit?
Premièrement, les appareils concernés.
Liste des appareils concernés.
- LG G4
- Nokia6 (d1c)
- Nokia5
- Nexus 6 (shamu)
- Nexus 6P (pêcheur)
- Moto G4 Plus
- OnePlus 5 (cheeseburger)
- OnePlus 3T
- OnePlus3
- OnePlus2
- OnePlus X
- Un plus un
- ZTE Axone 7
- ZUK Z1
- ZUK Z2
- Xiaomi Note 5A (ugglite)
- Xiaomi Note 5 Prime (ugg)
- Xiaomi Note 4 (milieu)
- Xiaomi Note 3 (Jason)
- Xiaomi Note 2 (scorpion)
- Xiaomi Mix (lithium)
- Xiaomi Mix 2 (chiron)
- Xiaomi Mi 6 (sagittaire)
- Xiaomi Mi 5s (capricorne)
- Xiaomi Mi 5s Plus (natrium)
- Xiaomi Mi 5x (tiffany)
- Xiaomi Mi 5 (gémeaux)
- Xiaomi Mi 3 (cancro)
- Xiaomi Mi A1 (tissot)
- Xiaomi Mi Max2 (oxygène)
- Xiaomi Redmi Note 3 (kenzo)
- Xiaomi Redmi 5A (riva)
- Xiaomi Redmi 4A (rose)
En savoir plus
Exploiter un téléphone Android
La séquence de démarrage d'un téléphone Android Qualcomm typique
Il est important de comprendre d’abord la séquence de démarrage d’un appareil Android typique avant d’expliquer comment il peut être exploité. Le Slogiciel Bootjeoader (SBL) est un chargeur de démarrage signé numériquement dont l'authenticité est vérifiée avant d'être chargé dans imem. imem est une mémoire rapide sur puce utilisée pour le débogage et le DMA (ddirectement memory unccess) transactions et est propriétaire des chipsets Qualcomm.
Certains appareils ont un eXtendu Bootjeoader (XBL) au lieu d'un SBL, mais le processus de démarrage est à peu près le même. Le SBL ou XBL lance ensuite ABOOT, qui implémente fastboot. Ensuite, TrustZone (sécurité matérielle) est également chargé. TrustZone vérifie l'authenticité d'ABOOT au moyen d'un certificat racine matériel. Le SBL (ou XBL, dans certains cas) est conçu pour rejeter un ABOOT mal signé (ou non signé).
Une fois authentifié, ABOOT vérifie ensuite l'authenticité de /boot et /recovery avant de lancer le noyau Linux. Certaines préparations du système sont effectuées, puis l'exécution du code est transférée au noyau. ABOOT est communément appelé « Android Bootloader » et lorsque nous déverrouillons le chargeur de démarrage d'un appareil, nous désactivons cette vérification d'authenticité dans ABOOT.
Accéder au mode EDL
Alors que certains appareils ont une simple combinaison matérielle (ou pire, une simple commande propriétaire fastboot présente dans de nombreux appareils Xiaomi), d'autres, comme les appareils Nokia, doivent court-circuiter les broches appelées « points de test » présentes sur le câble principal de l'appareil. conseil. Il était également possible, avant le correctif de sécurité de décembre 2017, d'exécuter simplement "adb reboot edl" sur de nombreux appareils (y compris les Nexus 6 et 6P) et de passer en mode EDL. Cela a depuis été corrigé.
D'autres appareils peuvent également utiliser ce que l'on appelle un câble "deep flash", qui est un câble spécial avec certaines broches court-circuitées pour indiquer au système de démarrer en mode EDL. Les anciens appareils Xiaomi peuvent utiliser cette méthode, ainsi que les Nokia 5 et Nokia 6. D'autres appareils démarreront également en mode EDL s'ils ne parviennent pas à vérifier le SBL.
Utiliser le mode EDL pour obtenir un accès complet sur un OnePlus 3/3T
Le mode EDL peut être utilisé de plusieurs manières sur un appareil, principalement pour débloquer des appareils en les faisant clignoter de force. Comme expliqué ci-dessus, tout le monde devrait théoriquement pouvoir accéder à ce mode en toute sécurité, car dans le pire des cas, ABOOT rejettera les logiciels qui ne sont pas officiellement signés par le fabricant. Bien que cela soit vrai, il est en fait possible d'obtenir un contrôle total sur un OnePlus 3 ou 3T et ses fichiers grâce à une preuve de concept démontrée par les chercheurs.
Cela se fera via deux commandes très dangereuses que OnePlus laissait accessibles dans une ancienne version d'ABOOT (l'Android bootloader), afin de déverrouiller le bootloader de l'appareil (sans qu'un avertissement ne soit affiché à l'utilisateur au démarrage) et de désactiver dm_verity. dm_verity est également connu sous le nom de démarrage vérifié et fait partie d'une séquence de démarrage sécurisée sur un appareil Android. Les deux commandes sont les suivantes.
fastboot oem disable_dm_verity
fastboot oem 4F500301/2
Observez le processus simple en 4 étapes ci-dessous qui utilise le protocole Firehose.
- Tout d’abord, démarrez l’appareil en mode EDL. Cela peut être fait via adb sur OxygenOS 5.0 ou version antérieure, ou en utilisant une simple combinaison de touches matérielles.
- Téléchargez une ancienne image système ci-dessous OxygenOS 4.0.2.
- Flashez aboot.bin via Firehose (rappelez-vous qu'aboot.bin implémente fastboot, comme nous l'avons mentionné plus tôt)
- Vous pourrez désormais désactiver le démarrage sécurisé et déverrouiller le chargeur de démarrage sans essuyer l'appareil simplement en utilisant les deux commandes fastboot ci-dessus.
Si vous vous en souvenez, OnePlus avait déjà laissé deux commandes de démarrage rapide dangereuses il y a près d'un an, une qui déverrouillait le chargeur de démarrage et une qui désactivait le démarrage sécurisé. S'il est vrai qu'un attaquant impossible d'installer des logiciels malveillants sur l'appareil, ils peuvent rétrograder l'appareil avoir plus ancien, vulnérable aux logiciels d’attaque. En exécutant simplement les commandes fastboot ci-dessus, un attaquant peut avoir accès total à l'appareil.
Et voilà, le bootloader est déverrouillé, le démarrage sécurisé est désactivé et il n'y a absolument aucune perte de données. Si un attaquant souhaitait aller plus loin, il pourrait flasher un noyau personnalisé malveillant qui permet un accès root au périphérique dont l'utilisateur n'aurait jamais connaissance.
Firehose fonctionne via le protocole Qualcomm Sahara, qui accepte un programmeur signé par un OEM et constitue la manière dont l'attaque ci-dessus serait menée. Lorsqu'il est connecté à un appareil, il agit comme un SBL sur USB. La plupart des programmeurs utilisent Lance d'incendie pour communiquer avec un téléphone en mode EDL, ce que les chercheurs ont exploité pour obtenir un contrôle total de l'appareil. Les chercheurs l'ont également utilisé pour déverrouiller un appareil Xiaomi simplement en flashant une image modifiée qui a déverrouillé le chargeur de démarrage. Ils ont ensuite flashé un noyau personnalisé qui donnait un accès root et lancé SELinux en mode permissif et ont également extrait l'image de données utilisateur cryptée de l'appareil.
Conclusion
On ne sait pas pourquoi les OEM publient ces programmeurs de Qualcomm. Les programmeurs de Nokia, LG, Motorola et Google ont fuité plutôt que d'être publiés, mais les chercheurs ont réussi à briser toute la chaîne de confiance sur le Nokia 6 et obtenir un accès complet à l'appareil grâce à des méthodes similaires de exploitation. Ils sont convaincus que l’attaque peut être portée sur n’importe quel appareil prenant en charge ces programmeurs. Si possible, les OEM doivent utiliser des qFuses matériels qui empêchent les restaurations de logiciels, en explosant lorsque le matériel de l'appareil est restauré et peuvent avertir un utilisateur que cela a eu lieu. Les personnes intéressées peuvent consulter le document de recherche complet ci-dessous et lire également l’exploitation complète de Nokia.
Source: Recherche Aleph