Novo ataque ARM ‘TIKTAG’ impacta sistemas Google Chrome e Linux

Um novo ataque de execução especulativa chamado “TIKTAG” tem como alvo o Memory Tagging Extension (MTE) da ARM para vazar dados com mais de 95% de chance de sucesso, permitindo que hackers contornem o recurso de segurança.

O artigo, coassinado por uma equipe de pesquisadores coreanos da Samsung, da Universidade Nacional de Seul e do Instituto de Tecnologia da Geórgia, demonstra o ataque contra o Google Chrome e o kernel do Linux.

MTE é um recurso adicionado à arquitetura ARM v8.5-A (e posterior), projetado para detectar e prevenir corrupção de memória.

O sistema usa marcação de baixa sobrecarga, atribuindo tags de 4 bits a blocos de memória de 16 bytes, para proteger contra ataques de corrupção de memória, garantindo que a tag no ponteiro corresponda à região de memória acessada.

O MTE tem três modos operacionais: síncrono, assíncrono e assimétrico, equilibrando segurança e desempenho.

Os pesquisadores descobriram que usando dois gadgets (código), nomeadamente TIKTAG-v1 e TIKTAG-v2, eles podem explorar a execução especulativa para vazar tags de memória MTE com uma alta taxa de sucesso e em um curto espaço de tempo.

Diagrama de vazamento de tag
Diagrama de vazamento de tags
Fonte: arxiv.org

O vazamento dessas tags não expõe diretamente dados sensíveis, como senhas, chaves de criptografia ou informações pessoais. No entanto, pode teoricamente permitir que invasores enfraqueçam as proteções fornecidas pelo MTE, tornando o sistema de segurança ineficaz contra ataques furtivos de corrupção de memória.

Ataques TIKTAG

TIKTAG-v1 explora a redução da especulação na previsão de ramificação e nos comportamentos de pré-busca de dados da CPU para vazar tags MTE.

Código TIKTAG-v1
Código TIKTAG-v1
Fonte: arxiv.org

Os pesquisadores descobriram que esse gadget é eficaz em ataques contra o kernel do Linux, principalmente funções que envolvem acessos especulativos à memória, embora seja necessária alguma manipulação de ponteiros do kernel.

O invasor usa chamadas de sistema para invocar o caminho de execução especulativo e mede os estados do cache para inferir tags de memória.

TIKTAG-v2 explora o comportamento de encaminhamento de armazenamento para carga em execução especulativa, uma sequência em que um valor é armazenado em um endereço de memória e imediatamente carregado a partir do mesmo endereço.

Código TIKTAG-v2
Código TIKTAG-v2
Fonte: arxiv.org

Se as tags corresponderem, o valor será encaminhado e o carregamento será bem-sucedido, influenciando o estado do cache, enquanto no caso de uma incompatibilidade, o encaminhamento será bloqueado e o estado do cache permanecerá inalterado.

Assim, ao investigar o estado do cache após a execução especulativa, o resultado da verificação da tag pode ser inferido.

Os pesquisadores demonstraram a eficácia dos gadgets TIKTAG-v2 contra o navegador Google Chrome, particularmente o mecanismo JavaScript V8, abrindo caminho para a exploração de vulnerabilidades de corrupção de memória no processo de renderização.

Cenários de ataque possíveis por meio do bypass MTE
Cenários de ataque possíveis por meio do bypass MTE
Fonte: arxiv.org

Resposta e mitigações da indústria

Os investigadores relataram as suas descobertas às entidades afetadas entre novembro e dezembro de 2023 e receberam uma resposta geralmente positiva, embora nenhuma correção imediata tenha sido implementada.

artigo técnico  publicado em arxiv.org propõe as seguintes mitigações contra ataques TIKTAG: 

  • Modifique o design do hardware para evitar que a execução especulativa modifique os estados do cache com base nos resultados da verificação de tags.
  • Insira barreiras de especulação (por exemplo, instruções sb ou isb) para evitar a execução especulativa de operações críticas de memória.
  • Adicione instruções de preenchimento para estender a janela de execução entre instruções de ramificação e acessos à memória.
  • Aprimore os mecanismos de sandbox para restringir caminhos especulativos de acesso à memória estritamente dentro de regiões de memória seguras.

Embora a ARM tenha reconhecido a gravidade da situação e publicado um boletim há alguns meses, ela não considera isso um comprometimento do recurso.

“Como não se espera que as tags de alocação sejam um segredo para o software no espaço de endereço, um mecanismo especulativo que revela o valor correto da tag não é considerado um compromisso dos princípios da arquitetura”, diz o boletim ARM.

A equipe de segurança do Chrome reconheceu os problemas, mas decidiu não corrigir as vulnerabilidades porque o sandbox V8 não tem a intenção de garantir a confidencialidade dos dados de memória e das tags MTE.

Além disso, o navegador Chrome não habilita atualmente defesas baseadas em MTE por padrão, o que o torna uma prioridade menor para correções imediatas.

Os oráculos MTE no dispositivo Pixel 8 foram relatados à equipe de segurança do Android mais tarde, em abril de 2024, e foram reconhecidos como uma falha de hardware que qualificava para uma recompensa.