Exploit apunta al modo EDL de Qualcomm y afecta a algunos dispositivos Xiaomi, OnePlus, Nokia y otros

Los dispositivos Qualcomm tienen un modo EDL, que parece ser explotable si se cuentan con las herramientas adecuadas lanzadas por los OEM.

Los dispositivos con chipsets Qualcomm tienen un PAGrimario Bfuerayooader (PBL) que normalmente inicia el sistema Android, pero también alberga un modo de inicio alternativo conocido como modo EDL. El modo EDL es el de Qualcomm. mifusión Dcarga propia METROoda y permite una ohoriginal miequipo METROfabricante (OEM) para forzar el software flash en un dispositivo. Este no se puede modificar (modo de solo lectura) y tiene control total sobre el almacenamiento del dispositivo. Muchos fabricantes de equipos originales, incluidos OnePlus y Xiaomi, han lanzado herramientas (conocidas como programadores) que utilizan el modo EDL y un protocolo conocido como Firehose para desbloquear un dispositivo, mientras que se han filtrado otras herramientas de compañías como Nokia. Firehose puede utilizar una serie de comandos para flashear dispositivos, junto con la capacidad de examinar los datos dentro de la memoria de un dispositivo. Investigadores de seguridad

Hay Roe (@roeehay) y Noam Hadad de Investigación Aleph han descubierto vulnerabilidades críticas en los dispositivos usando este modo, lo que efectivamente otorga a un atacante acceso completo al dispositivo.

Es importante tener en cuenta que Este exploit requiere acceso físico al dispositivo, pero sigue siendo increíblemente peligroso y probablemente no pueda parchearse.. Los atacantes utilizaron el nivel de acceso otorgado al modo EDL para evitar el arranque seguro en un Nokia 6, derrotando al cadena de confianza y obtención de ejecución completa del código en cada parte de la secuencia de inicio, incluido el sistema operativo Android sí mismo. Se teoriza que funciona de la misma manera en otros dispositivos, y los investigadores también lograron desbloquear y rootear múltiples dispositivos Xiaomi sin pérdida de datos.

¿Qué dispositivos se ven afectados por este exploit?

En primer lugar, los dispositivos afectados.

Lista de dispositivos afectados.

  • LG G4
  • Nokia 6 (d1c)
  • nokia 5
  • Nexus 6 (shamu)
  • Nexus 6P (pescador)
  • Moto G4 Plus
  • OnePlus 5 (hamburguesa con queso)
  • OnePlus 3T
  • OnePlus 3
  • OnePlus 2
  • OnePlus X
  • Uno más uno
  • ZTE Axón 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 (escorpión)
  • Mezcla Xiaomi (litio)
  • Xiaomi Mix 2 (quirón)
  • Xiaomi Mi 6 (sagitario)
  • Xiaomi Mi 5s (capricornio)
  • Xiaomi Mi 5s Plus (natrio)
  • Xiaomi Mi 5x (Tiffany)
  • Xiaomi Mi 5 (géminis)
  • Xiaomi Mi 3 (cancro)
  • Xiaomi Mi A1 (tissot)
  • Xiaomi Mi Max2 (oxígeno)
  • Xiaomi Redmi Note 3 (kenzo)
  • Xiaomi Redmi 5A (riva)
  • Xiaomi Redmi 4A (rosado)

leer más

Explotar un teléfono Android

La secuencia de arranque de un teléfono Qualcomm con Android típico

Es importante comprender primero la secuencia de inicio de un dispositivo Android típico antes de explicar cómo se puede explotar. El Ssoftware Bfuerayooader (SBL) es un gestor de arranque firmado digitalmente cuya autenticidad se verifica antes de cargarse en imem. imem es una memoria rápida en chip que se utiliza para depuración y DMA (ddirecto metroemory access) transacciones y es propiedad de los conjuntos de chips Qualcomm.

Algunos dispositivos tienen una eXtenso Bfuerayooader (XBL) en lugar de SBL, pero el proceso de arranque es prácticamente el mismo. Luego, SBL o XBL inicia ABOOT, que implementa fastboot. A continuación, también se carga TrustZone (seguridad basada en hardware). TrustZone comprueba la autenticidad de ABOOT mediante un certificado raíz basado en hardware. El SBL (o XBL, en algunos casos) está diseñado para rechazar un ABOOT incorrectamente firmado (o sin firmar).

Una vez autenticado, ABOOT verifica la autenticidad de /boot y /recovery antes de iniciar el kernel de Linux. Se realizan algunos preparativos del sistema y luego la ejecución del código se transfiere al kernel. ABOOT se conoce comúnmente como "Android Bootloader" y cuando desbloqueamos el gestor de arranque de un dispositivo, deshabilitamos esta verificación de autenticidad en ABOOT.

Se visualiza la secuencia de arranque de un dispositivo Android estándar. // Fuente: Investigación Aleph

Accediendo al modo EDL

Si bien algunos dispositivos tienen una combinación de hardware simple (o peor aún, un comando fastboot propietario simple presente en muchos dispositivos Xiaomi), otros, como los dispositivos Nokia, necesitan acortar los pines conocidos como "puntos de prueba" presentes en la placa principal del dispositivo. junta. También era posible, antes del parche de seguridad de diciembre de 2017, simplemente ejecutar "adb reboot edl" en muchos dispositivos (incluidos Nexus 6 y 6P) e ingresar al modo EDL. Desde entonces esto se ha solucionado.

Los puntos de prueba se muestran en un cuadro amarillo dibujado en la parte inferior de la placa base del dispositivo. // Fuente: Investigación Aleph

Otros dispositivos también pueden usar lo que se conoce como cable "deep flash", que es un cable especial con ciertos pines en cortocircuito para indicarle al sistema que arranque en modo EDL. Los dispositivos Xiaomi antiguos pueden utilizar este método, junto con el Nokia 5 y el Nokia 6. Otros dispositivos también se iniciarán en modo EDL cuando no puedan verificar el SBL.

Un cable de flash profundo

Utilizando el modo EDL para obtener acceso completo en un OnePlus 3/3T

El modo EDL se puede utilizar de varias maneras en un dispositivo, principalmente para desbloquear dispositivos forzándolos a parpadear. Como se explicó anteriormente, en teoría debería ser seguro para cualquiera acceder a este modo, ya que en el peor de los casos, ABOOT rechazará el software que no esté firmado oficialmente por el fabricante. Si bien esto es cierto, en realidad es posible obtener control total sobre un OnePlus 3 o 3T y sus archivos en una prueba de concepto mostrada por los investigadores.

Esto se hará mediante dos comandos muy peligrosos que OnePlus dejó accesibles en una versión anterior de ABOOT (el Android gestor de arranque), para desbloquear el gestor de arranque del dispositivo (sin que se muestre una advertencia al usuario en el arranque) y desactivar dm_verity. dm_verity también se conoce como arranque verificado y es parte de una secuencia de arranque segura en un dispositivo Android. Los dos comandos son los siguientes.

fastboot oem disable_dm_verity
fastboot oem 4F500301/2

Observe el proceso simple de 4 pasos a continuación que utiliza el protocolo Firehose.

  1. Primero, inicie el dispositivo en modo EDL. Esto se puede hacer a través de adb en OxygenOS 5.0 o inferior o mediante una simple combinación de teclas de hardware.
  2. Descargue una imagen antigua del sistema de OxygenOS 4.0.2.
  3. Actualice aboot.bin a través de firehose (recuerde que aboot.bin implementa fastboot, como mencionamos anteriormente)
  4. Ahora podrá desactivar el arranque seguro y desbloquear el gestor de arranque. sin limpiar el dispositivo simplemente usando los dos comandos fastboot anteriores.

Si recuerda, se descubrió anteriormente que OnePlus había dejado dos comandos fastboot peligrosos hace casi un año, uno que desbloqueaba el gestor de arranque y otro que deshabilitaba el arranque seguro. Si bien es cierto que un atacante no se puede instalar software malicioso en el dispositivo, ellos pueden degradar el dispositivo tener software más antiguo y vulnerable a ataques. Simplemente ejecutando los comandos fastboot anteriores, un atacante puede tener Acceso completo al dispositivo.

Y listo, el gestor de arranque se desbloquea, el arranque seguro se desactiva y no se pierde absolutamente ningún dato. Si un atacante quisiera ir un paso más allá, podría mostrar un kernel personalizado malicioso que permita el acceso raíz al dispositivo, algo que el usuario nunca sabría.

Firehose funciona a través del protocolo Qualcomm Sahara, que acepta un programador firmado por OEM y es cómo se llevaría a cabo el ataque anterior. Cuando se conecta a un dispositivo, actúa como un SBL a través de USB. La mayoría de los programadores utilizan Manguera para comunicarse con un teléfono en modo EDL, que es lo que los investigadores aprovecharon para obtener el control total del dispositivo. Los investigadores también utilizaron esto para desbloquear un dispositivo Xiaomi simplemente mostrando una imagen modificada que desbloqueó el gestor de arranque. Luego actualizaron un kernel personalizado que dio acceso de root e iniciaron SELinux de forma permisiva y también extrajeron la imagen de datos de usuario cifrada del dispositivo.

Conclusión

Se desconoce por qué los OEM liberan a estos programadores de Qualcomm. Los programadores de Nokia, LG, Motorola y Google filtraron en lugar de publicarse, pero los investigadores lograron rompa toda la cadena de confianza en el Nokia 6 y obtenga acceso completo al dispositivo a través de métodos similares de explotación. Confían en que el ataque pueda trasladarse a cualquier dispositivo que admita estos programadores. Si es posible, los OEM deberían utilizar qFuses de hardware que eviten las reversiones del software, al activarse cuando el hardware del dispositivo se revierte y puedan advertir al usuario que se ha producido. Aquellos interesados ​​pueden echar un vistazo al trabajo de investigación completo a continuación y también leer la explotación completa de Nokia.


Fuente: Investigación Aleph