Novo ataque GoFetch em CPUs da Apple pode roubar chaves criptográficas
25 de Março de 2024

Um novo ataque do tipo side-channel chamado "GoFetch" afeta os processadores Apple M1, M2 e M3 e pode ser usado para roubar chaves criptográficas secretas dos dados no cache da CPU.

O ataque visa implementações criptográficas de tempo constante usando prefetchers dependentes de memória de dados (DMPs) encontrados em CPUs modernas da Apple.

Isso permite recriar as chaves criptográficas privadas para vários algoritmos, incluindo OpenSSL Diffie-Hellman, Go RSA, CRYSTALS Kyber e Dilithium do cache da CPU.

GoFetch foi desenvolvido por uma equipe de sete pesquisadores de várias universidades nos EUA, que relataram suas descobertas à Apple em 5 de dezembro de 2023.

No entanto, como isso é uma vulnerabilidade baseada em hardware, não há como corrigi-la nas CPUs afetadas.

Embora seja possível mitigar as falhas usando correções de software, isso causaria uma queda no desempenho das funções criptográficas dessas CPUs.

O ataque GoFetch tem como alvo os prefetchers dependentes de memória de dados, um recurso de CPU projetado para melhorar o desempenho do computador ao executar códigos.

Um prefetcher é treinado por acessos anteriores à memória ao recuperar dados, permitindo prever quais dados o computador precisará a seguir.

Esses dados são então buscados antecipadamente de partes mais lentas da memória para regiões de memória mais rápidas, como o cache da CPU.

Se a previsão for precisa, os dados agora estão disponíveis rapidamente, aumentando o desempenho do computador.

Se o palpite estiver errado, a CPU simplesmente solicita os dados corretos como de costume.

O ataque GoFetch se concentra em um prefetcher mais novo chamado prefetcher dependente de memória de dados (DMP).

Este prefetcher também pode ser treinado em acesso de memória anterior, mas também pode examinar valores de dados na memória para determinar o que deve ser buscado no cache.

DMP está disponível em chips de silício da Apple e nos CPUs Intel de 13ª geração Raptor Lake.

No entanto, os pesquisadores afirmam que a implementação da Intel é mais restritiva e impede o ataque.

O ataque se concentra em implementações criptográficas que levam o mesmo tempo para serem executadas, independentemente da entrada (tempo constante), que é uma medida de segurança para evitar vazamento de dados sensíveis.

Especificamente, os pesquisadores encontraram uma falha na implementação do sistema DMP da Apple que viola as boas práticas de tempo constante.

"Nós fizemos a engenharia reversa dos DMPs nas CPUs da série m da Apple e descobrimos que o DMP ativa (e tenta desreferenciar) dados carregados da memória que 'parecem' um ponteiro", lê-se no resumo do ataque.

"Isto viola explicitamente um requisito do paradigma de programação de tempo constante, que proíbe a mistura de dados e padrões de acesso à memória."

Os invasores podem criar entradas especiais que fazem o prefetcher desreferenciar dados, que aparecerão como ponteiros se determinados bits da chave secreta forem corretamente adivinhados.

Em seguida, eles observam se o DMP é ativado ou não, deduzindo gradualmente os bits da chave secreta.

Com repetições suficientes do processo, a chave criptográfica secreta inteira pode ser reconstruída.

Os pesquisadores confirmaram que os processadores M1 são suscetíveis a este esquema, e considerando que o M2 e M3 têm um comportamento de prefetching semelhante, eles provavelmente também são vulneráveis.

Mais detalhes sobre o ataque GoFetch podem ser encontrados no artigo técnico publicado pelos pesquisadores, e um exploit de prova de conceito será divulgado em uma data posterior.

Infelizmente, como a fraqueza faz parte da implementação do prefetcher dependente de memória de dados construído diretamente nas CPUs da Apple, não há como mitigar o ataque com uma correção de hardware.

Os pesquisadores dizem que é possível desativar o DMP em algumas CPUs, como o M3, removendo o comportamento de prefetching que o GoFetch depende.

No entanto, isso não é possível nos M1 e M2.

Outras medidas de defesa para desenvolvedores incluem "blinding" de entrada e mascaramento de ativação DMP, que obscurecem os resultados da entrada do invasor no nível do DMP.

Embora a Apple possa introduzir mitigações no macOS como um patch de software, isso causaria quedas de desempenho, como vimos em correções de software anteriores para ataques do tipo side-channel.

Como usuário da Apple, não há muito o que você possa fazer além de praticar hábitos de computação seguros.

Isso significa atualizar regularmente seu sistema operacional e software e instalar software apenas de canais oficiais e fontes confiáveis para evitar infecções por malware.

O ataque GoFetch não requer acesso físico para exploração, portanto, se o invasor puder executar código na máquina alvo, por exemplo, através de infecção por malware, ele poderá ser executado remotamente.

Publicidade

Já viu o Cyberpunk Guide?

Imagine voltar ao tempo dos e-zines e poder desfrutar de uma boa revista contendo as últimas novidades, mas na pegada hacking old school.
Acesse gratuitamente o Cyberpunk Guide e fique por dentro dos mais modernos dispositivos usados pelos hackers. Saiba mais...