Ataque ‘TIKTAG’ da ARM atinge Google Chrome e Linux

Recentemente, uma equipe de pesquisadores sul-coreanos da Samsung, da Universidade Nacional de Seul e do Instituto de Tecnologia da Geórgia conduziu um estudo detalhado sobre um novo ataque de execução especulativa denominado TIKTAG. Este ataque foi especialmente projetado para visar a Extensão de Marcação de Memória (Memory Tagging Extension – MTE) da ARM, revelando uma taxa de sucesso superior a 95% no vazamento de dados. As implicações desse achado são significativas, pois permitem que os hackers contornem os principais mecanismos de proteção contra corrupção de memória.

Compreendendo a Extensão de Marcação de Memória da ARM

O MTE foi integrado como uma opção básica no ARM v8, mais especificamente na arquitetura 5-A. Ele foi desenvolvido como um aprimoramento para lidar com o problema da corrupção de memória, que é uma das maiores preocupações em termos de segurança. O MTE utiliza marcação de sobrecarga inferior, com tags de quatro bits alocados para blocos de memória de 16 bytes. Esse mecanismo auxilia na verificação se o ponteiro anexado a uma tag corresponde à tag da região de memória sendo acessada, reduzindo assim a ocorrência de acessos não autorizados e abusos de memória.

O MTE é classificado em três categorias: síncrono, assíncrono e assimétrico, cada um oferecendo um equilíbrio entre segurança e desempenho. No entanto, o ataque TIKTAG revela vulnerabilidades no sistema, demonstrando que até mesmo proteções de alto nível podem ser contornadas.

O ataque ‘TIKTAG’ da ARM afeta os sistemas Google Chrome e Linux
Crédito da imagem: arxiv.org

Os pesquisadores identificaram dois programas principais com alto desempenho e eficácia, o TIKTAG-v1 e o TIKTAG-v2, projetados para explorar a execução especulativa e vazar as tags de memória MTE.

TIKTAG-v1: Previsão de Ramificação e Pré-Busca de Dados

O TIKTAG-v1 utiliza recursos como a redução da especulação na previsão de ramificação e a pré-busca de dados da CPU. Esse mecanismo conseguiu contornar o kernel Linux, especialmente em funções que envolvem especulações de memória. O código malicioso manipula os ponteiros do kernel e utiliza canais laterais de cache por meio de chamadas de sistema; assim, acessam e analisam o estado do cache para obter as tags de memória.

marca de seleção 1marca de seleção 1
Crédito da imagem: arxiv.org

TIKTAG-v2: Encaminhamento de Armazenamento para Carga

O TIKTAG-v2 se concentra no encaminhamento de armazenamento para carga na especulação do processador. O processo envolve armazenar um valor em um endereço de memória e carregá-lo simultaneamente do mesmo endereço. Esse valor é então passado para a próxima tag, modificando com sucesso o estado do cache compartilhado. Caso haja uma incompatibilidade, o encaminhamento é impedido e o estado do cache permanece o mesmo. Ao examinarem o estado do cache após a execução especulativa, os invasores podem deduzir o resultado da verificação da tag.


O TIKTAG-v2 se mostrou eficaz contra o alvo vulnerável, o navegador Google Chrome, focando nas partes que envolvem o mecanismo JavaScript V8 e explorando vulnerabilidades de corrupção de memória no processo de renderização.

marca de seleção 2marca de seleção 2
Crédito da imagem: arxiv.org

Implicações e Respostas da Indústria

O vazamento de tags MTE pode não estar diretamente ligado ao vazamento de senhas ou chaves de criptografia, mas enfraquece efetivamente a segurança proposta pelo MTE. Isso possibilita ataques de corrupção de memória de forma sutil. O estudo foi concluído em novembro e dezembro de 2023, com os pesquisadores apresentando os resultados às partes interessadas. Embora a recepção geral dos resultados tenha sido positiva, ainda não houve a aplicação imediata de correções rápidas.

Em um artigo técnico disponibilizado no repositório arxiv.org, os pesquisadores propuseram diversas estratégias de mitigação para combater os ataques TIKTAG. A primeira sugere impedir a modificação dos estados do cache pela especulação após a verificação da tag. A segunda envolve a incorporação de barreiras de especulação (por meio de instruções ‘sb’ ou ‘isb’) para evitar a execução de operações confidenciais de memória. A terceira estratégia propõe preencher o tempo entre instruções de ramificação e acessos à memória com instruções de preenchimento. Por fim, aprimorar as estratégias de sandboxing para limitar proativamente a construtividade dos ataques de Memória de Acesso Aleatório (AMAs) em espaços de memória sensíveis da maneira mais segura possível.

bypass mtebypass mte
Crédito da imagem: arxiv.org

Respostas do ARM e do Chrome

A ARM reconheceu a gravidade do ataque TIKTAG e esclareceu que ainda é seguro divulgar as tags para alocação de nível de arquitetura usando métodos especulativos. Eles afirmaram que as tags de alocação não são ocultas no espaço de endereçamento.

Por outro lado, a equipe de segurança do Google Chrome levantou essas questões, porém optou por não corrigi-las, explicando que o sandbox V8 não mantém em segredo os dados de memória e as tags MTE. Além disso, no momento, o Chrome não implementou defesas baseadas em MTE, portanto, corrigir as falhas não é considerado urgente.

No entanto, o mecanismo de oráculos MTE do dispositivo Pixel 8 foi posteriormente revelado à equipe de segurança do Google Android em abril de 2024 e confirmado como um problema grave de hardware qualificado para uma recompensa. Os ataques não seriam possíveis sem a exploração das imagens de inicialização e recuperação do dispositivo Pixel 8.

Adicionar aos favoritos o Link permanente.