Cadeia de ataque da 'Operation Triangulation'
- Envia um anexo malicioso do iMessage para ser processado por um aplicativo sem o conhecimento do usuário.
- Esse anexo explora a vulnerabilidade de execução remota de código CVE-2023-41990 em um comando de fonte ADJUST TrueType não documentado e exclusivo da Apple.
- Usa múltiplos estágios escritos com programação orientada a retorno/salto e a linguagem de consulta NSExpression/NSPredicate para aplicar patches no ambiente da biblioteca JavaScriptCore e executar um exploit de escalonamento de privilégios escrito em JavaScript.
- O exploit em JavaScript é ofuscado de forma a ficar completamente ilegível e minimizar seu tamanho. Cerca de 11.000 linhas de código são dedicadas principalmente à análise e manipulação da memória do JavaScriptCore e do kernel.
- Usa o recurso de depuração DollarVM($vm) do JavaScriptCore para obter, a partir do script, a capacidade de manipular a memória do JavaScriptCore e executar funções nativas de API.
- Foi projetado para dar suporte tanto a iPhones antigos quanto novos, incluindo um bypass de Pointer Authentication Code (PAC) para explorar vulnerabilidades nos modelos mais recentes.
- Explora a vulnerabilidade de estouro de inteiro CVE-2023-32434 nas chamadas de sistema de mapeamento de memória do XNU (
mach_make_memory_entry e vm_map) para obter acesso de leitura/escrita, em nível de usuário, a toda a memória física do dispositivo.
- Usa registradores de memory-mapped I/O (MMIO) de hardware para contornar a Page Protection Layer (PPL). Isso foi mitigado no CVE-2023-38606.
- Após explorar todas as vulnerabilidades, o exploit em JavaScript pode realizar as ações desejadas no dispositivo e, em vez de executar spyware, inicia o processo IMAgent e injeta um payload que apaga os rastros do exploit no dispositivo, ou executa o processo do Safari em modo invisível para encaminhar à próxima etapa por meio de uma página web.
- A página web contém um script que identifica a vítima e, se ela passar na verificação, recebe a próxima etapa, um exploit do Safari.
- O exploit do Safari usa o CVE-2023-32435 para executar shellcode.
- O shellcode executa outro exploit de kernel no formato de arquivo objeto Mach. Ele usa as mesmas vulnerabilidades CVE-2023-32434 e CVE-2023-38606. É enorme em tamanho e funcionalidade, mas completamente diferente do exploit de kernel escrito em JavaScript. As partes relevantes são compartilhadas entre os dois exploits, mas a maior parte do código é dedicada à análise e manipulação da memória do kernel. Inclui vários utilitários de pós-invasão, mas a maioria não é usada.
- O exploit obtém privilégios de root e executa outra etapa que carrega o spyware.
O mistério e a vulnerabilidade CVE-2023-38606
- Modelos mais recentes de iPhone têm recursos adicionais de proteção de segurança baseados em hardware para áreas sensíveis da memória do kernel.
- Essa proteção impede que invasores assumam controle total do dispositivo mesmo que consigam ler e escrever na memória do kernel.
- Os invasores contornaram essa proteção de segurança baseada em hardware usando outro recurso de hardware do SoC projetado pela Apple.
- Os invasores contornaram a proteção de memória baseada em hardware escrevendo dados, o endereço de destino e o hash dos dados em registradores de hardware desconhecidos de um chip que não é usado pelo firmware.
- Presume-se que esse recurso de hardware desconhecido tenha sido incluído por engano ou tenha sido destinado ao uso por engenheiros da Apple ou pela fábrica para fins de depuração ou testes.
Detalhes técnicos
- Vários periféricos no SoC fornecem registradores de hardware especiais que a CPU pode usar para operar esses dispositivos.
- Esses registradores de hardware são mapeados na memória acessível pela CPU e são conhecidos como "memory-mapped I/O (MMIO)".
- As faixas de endereços MMIO de periféricos em produtos da Apple (iPhone, Mac etc.) são armazenadas em um formato de arquivo especial chamado DeviceTree.
- A maior parte do MMIO usado no ataque não pertence a nenhuma faixa de MMIO definida no DeviceTree.
- Não está claro como os invasores descobriram MMIOs não usados pelo firmware, nem a quais periféricos esses endereços MMIO pertencem.
- Foi identificado que esses registradores MMIO pertencem ao coprocessador da GPU.
- Os invasores usaram esses registradores MMIO para contornar a Page Protection Layer (PPL) e para aplicar patches nas entradas da tabela de páginas.
- O método de cálculo do hash faz com que o recurso de hardware usado no ataque execute uma operação de acesso direto à memória (DMA) para gravar os dados diretamente no local solicitado.
Opinião do GN⁺
- Esta pesquisa revela uma cadeia de ataque extremamente sofisticada contra iPhones. Trata-se de uma descoberta muito importante para pesquisadores de segurança e pode contribuir para fortalecer a segurança dos produtos da Apple.
- Como os invasores descobriram recursos de hardware não usados pelo firmware ainda continua sendo um mistério. Isso destaca a importância da pesquisa em segurança de hardware.
- Este texto oferece conteúdo muito interessante para quem se interessa por segurança de software e hardware. Os métodos de ataque altamente complexos e o processo de análise mostram a profundidade e a necessidade da pesquisa em segurança.
1 comentários
Comentários no Hacker News
O que há de surpreendente no abuso de MMIO
Resumo no Twitter de Steve Weis
Explicação sobre o Coresight
Especulação sobre a possibilidade de descobrir registradores MMIO
Dúvida sobre o uso de hash nos dados em recursos de depuração do chip
Observação sobre as características do algoritmo de hash
Admiração pelo esforço dos atacantes
Explicação sobre o recurso explorado pelos atacantes
Importância das vulnerabilidades recém-descobertas