A exploração tem como alvo o modo EDL da Qualcomm, afeta alguns Xiaomi, OnePlus, Nokia e outros dispositivos

Os dispositivos Qualcomm têm um modo EDL, que parece ser explorável se você tiver as ferramentas certas lançadas pelos OEMs.

Dispositivos com chipsets Qualcomm possuem um Primário Bforaeuoader (PBL), que normalmente inicializa o sistema Android, mas também abriga um modo de inicialização alternativo conhecido como modo EDL. O modo EDL é da Qualcomm Efusão Dcarregar Mode e permite uma Óoriginal Eequipamento Mfabricante (OEM) para forçar o software flash em um dispositivo. Não pode ser modificado (modo somente leitura) e tem controle total sobre o armazenamento do dispositivo. Muitos OEMs, incluindo OnePlus e Xiaomi, lançaram ferramentas (conhecidas como programadores) que utilizam o modo EDL e um protocolo conhecido como Firehose para desbloquear um dispositivo, enquanto outras ferramentas de empresas como a Nokia vazaram. O Firehose pode utilizar vários comandos para atualizar dispositivos, juntamente com a capacidade de examinar os dados na memória de um dispositivo. Pesquisadores de segurança

Roee Hay (@roeehay) e Noam Hadad de Pesquisa Aleph descobriram vulnerabilidades críticas de dispositivos usando este modo, que efetivamente concede a um invasor acesso total ao dispositivo.

É importante notar que esta exploração requer acesso físico ao dispositivo, mas ainda é incrivelmente perigosa e provavelmente não pode ser corrigida. Os invasores utilizaram o nível de acesso concedido ao modo EDL para contornar a inicialização segura em um Nokia 6, derrotando o cadeia de confiança e obtenção de execução completa de código em todas as partes da sequência de inicialização, incluindo o sistema operacional Android em si. Teoriza-se que funcione da mesma maneira em outros dispositivos, e os pesquisadores também conseguiram desbloquear e fazer root em vários dispositivos Xiaomi sem qualquer perda de dados.

Quais dispositivos são afetados por esta exploração?

Em primeiro lugar, os dispositivos afetados.

Lista de dispositivos afetados.

  • LG G4
  • Nokia 6 (d1c)
  • Nokia 5
  • Nexus 6 (shamu)
  • Nexus 6P (pescador)
  • Moto G4 Plus
  • OnePlus 5 (cheeseburger)
  • OnePlus 3T
  • OnePlus 3
  • OnePlus 2
  • OnePlus X
  • Um mais um
  • ZTE Axônio 7
  • ZUK Z1
  • ZUK Z2
  • Xiaomi Nota 5A (uglite)
  • Xiaomi Nota 5 Prime (ugg)
  • Xiaomi Nota 4 (meio)
  • Xiaomi Nota 3 (jasão)
  • Xiaomi Nota 2 (escorpião)
  • Xiaomi Mix (lítio)
  • Xiaomi Mix 2 (quíron)
  • Xiaomi Mi 6 (sagitado)
  • Xiaomi Mi 5s (capricórnio)
  • Xiaomi Mi 5s Plus (sólido)
  • Xiaomi Mi 5x (tiffany)
  • Xiaomi Mi 5 (gêmeos)
  • Xiaomi Mi 3 (cancro)
  • Xiaomi Mi A1 (tissot)
  • Xiaomi Mi Max2 (oxigênio)
  • Xiaomi Redmi Nota 3 (kenzo)
  • Xiaomi Redmi 5A (riva)
  • Xiaomi Redmi 4A (rosado)

consulte Mais informação

Explorando um telefone Android

A sequência de inicialização de um telefone Qualcomm Android típico

É importante primeiro entender a sequência de inicialização de um dispositivo Android típico antes de explicar como ele pode ser explorado. O Ssoftware Bforaeuoader (SBL) é um bootloader assinado digitalmente cuja autenticidade é verificada antes de ser carregado no imem. imem é uma memória fast-on-chip usada para depuração e DMA (ddireto euEmory aacesso) e é propriedade dos chipsets Qualcomm.

Alguns dispositivos possuem um eXextensível Bforaeuoader (XBL) em vez de um SBL, mas o processo de inicialização é praticamente o mesmo. O SBL ou XBL então inicia o ABOOT, que implementa o fastboot. Depois disso, o TrustZone (segurança baseada em hardware) também é carregado. O TrustZone verifica a autenticidade do ABOOT por meio de um certificado raiz baseado em hardware. O SBL (ou XBL, em alguns casos) foi projetado para rejeitar um ABOOT assinado incorretamente (ou não assinado).

Uma vez autenticado, o ABOOT verifica /boot e /recovery quanto à autenticidade antes de iniciar o kernel Linux. Algumas preparações do sistema são feitas e então a execução do código é transferida para o kernel. ABOOT é comumente conhecido como “Android Bootloader” e quando desbloqueamos o bootloader de um dispositivo, desabilitamos essa verificação de autenticidade no ABOOT.

Sequência de inicialização de um dispositivo Android padrão visualizada. // Fonte: Pesquisa Aleph

Acessando o modo EDL

Embora alguns dispositivos tenham uma combinação simples de hardware (ou pior, um simples comando fastboot proprietário presente em muitos Dispositivos Xiaomi), outros, como dispositivos Nokia, precisam de pinos curtos conhecidos como "pontos de teste" presentes na placa principal do dispositivo quadro. Também era possível, antes do patch de segurança de dezembro de 2017, simplesmente executar "adb reboot edl" em muitos dispositivos (incluindo o Nexus 6 e 6P) e entrar no modo EDL. Isso já foi corrigido.

Os pontos de teste são mostrados em uma caixa amarela desenhada na parte inferior da placa principal do dispositivo. // Fonte: Pesquisa Aleph

Outros dispositivos também podem usar o que é conhecido como cabo “deep flash”, que é um cabo especial com certos pinos em curto para informar ao sistema para inicializar no modo EDL. Dispositivos Xiaomi antigos podem utilizar este método, juntamente com o Nokia 5 e o Nokia 6. Outros dispositivos também inicializarão no modo EDL quando não conseguirem verificar o SBL.

Um cabo flash profundo

Utilizando o modo EDL para obter acesso total em um OnePlus 3/3T

O modo EDL pode ser utilizado de várias maneiras em um dispositivo, principalmente para destravar dispositivos forçando-os a piscar. Conforme explicado acima, teoricamente deveria ser seguro para qualquer pessoa acessar este modo, já que o pior cenário é que o ABOOT rejeitará software que não seja oficialmente assinado pelo fabricante. Embora isso seja verdade, é realmente possível obter controle completo sobre um OnePlus 3 ou 3T e seus arquivos em uma exploração de prova de conceito mostrada pelos pesquisadores.

Isso será feito através de dois comandos muito perigosos que o OnePlus deixou acessíveis em uma versão mais antiga do ABOOT (o Android bootloader), para desbloquear o bootloader do dispositivo (sem que um aviso seja mostrado ao usuário na inicialização) e desabilitar dm_veridade. dm_verity também é conhecido como inicialização verificada e faz parte de uma sequência de inicialização segura em um dispositivo Android. Os dois comandos são os seguintes.

fastboot oem disable_dm_verity
fastboot oem 4F500301/2

Observe o processo simples de 4 etapas abaixo, que utiliza o protocolo Firehose.

  1. Primeiro, inicialize o dispositivo no modo EDL. Isso pode ser feito através do adb no OxygenOS 5.0 ou inferior ou usando uma simples combinação de teclas de hardware.
  2. Baixe uma imagem antiga do sistema abaixo do OxygenOS 4.0.2.
  3. Atualize aboot.bin através do firehose (lembre-se de que aboot.bin implementa fastboot, como mencionamos anteriormente)
  4. Agora você poderá desativar a inicialização segura e desbloquear o bootloader sem limpar o dispositivo simplesmente usando os dois comandos fastboot acima.

Se você se lembra, descobriu-se que o OnePlus deixou dois comandos fastboot perigosos há quase um ano, um que desbloqueou o bootloader e outro que desativou a inicialização segura. Embora seja verdade que um invasor não é possível instalar software malicioso no dispositivo, eles podem fazer downgrade do dispositivo Ter mais antigo, vulnerável a software de ataque. Simplesmente executando os comandos fastboot acima, um invasor pode ter acesso total para o dispositivo.

E é isso, o bootloader está desbloqueado, a inicialização segura está desativada e não há absolutamente nenhuma perda de dados. Se um invasor quisesse dar um passo adiante, ele poderia atualizar um kernel personalizado malicioso que permite acesso root ao dispositivo que o usuário nunca conheceria.

Firehose funciona por meio do protocolo Qualcomm Sahara, que aceita um programador assinado por OEM e é como o ataque acima seria realizado. Quando conectado a um dispositivo, ele atua como um SBL via USB. A maioria dos programadores usa Mangueira de incêndio para se comunicar com um telefone no modo EDL, que é o que os pesquisadores exploraram para obter controle total do dispositivo. Os pesquisadores também usaram isso para desbloquear um dispositivo Xiaomi simplesmente exibindo uma imagem modificada que desbloqueou o bootloader. Eles então atualizaram um kernel personalizado que deu acesso root e lançou o SELinux de forma permissiva e também extraiu a imagem criptografada dos dados do usuário do dispositivo.

Conclusão

Não se sabe por que os OEMs liberam esses programadores da Qualcomm. Os programadores da Nokia, LG, Motorola e Google vazaram em vez de serem divulgados, mas os pesquisadores conseguiram quebrar toda a cadeia de confiança no Nokia 6 e obter acesso total ao dispositivo por meio de métodos semelhantes de exploração. Eles estão confiantes de que o ataque pode ser transferido para qualquer dispositivo que suporte esses programadores. Se possível, os OEMs devem fazer uso de qFuses de hardware que evitam reversões de software, soprando quando o hardware do dispositivo é revertido e podem avisar o usuário de que isso ocorreu. Os interessados ​​​​podem dar uma olhada no artigo de pesquisa completo abaixo e também ler a exploração completa da Nokia.


Fonte: Pesquisa Aleph