Pesquisadores descobriram uma vulnerabilidade nos processadores Apple Silicon, apelidado de GoFetch. Ele permite que invasores extraiam chaves secretas de computadores Mac enquanto realizam operações criptográficas generalizadas. Notavelmente, é praticamente impossível corrigir a falha, pois ela decorre da microarquitetura do processador.
Vulnerabilidade do Apple Silicon permite que hackers extraiam chaves de criptografia
Pesquisadores descobri uma vulnerabilidade nos processadores da série M fabricados pela própria Apple. Sob certas condições, esta vulnerabilidade permite informações criptográficas a serem roubadas do cache do processador. Dispositivos de computação modernos usam uma otimização de hardware chamada DMP (pré-busca dependente de memória de dados). Reduz a latência entre a memória principal e a CPU, prevendo endereços de memória e carregando seu conteúdo no cache da CPU antes que sejam necessários. Explorando o mecanismo falho de manipulação de operações de criptografia, os invasores podem recuperar chaves de criptografia privadas peça por peça.
Diferente vulnerabilidades mais comuns, os desenvolvedores não podem corrigir essa falha diretamente com um patch de software. Esta questão em questão está ligada ao projeto da microarquitetura do próprio silício. A única maneira de mitigar esta vulnerabilidade é construir defesas em software criptográfico de terceiros. No entanto, esta solução alternativa pode ter um sério impacto no desempenho, com chips M1 e M2 mais antigos sofrendo as piores perdas.
Compreendendo o ataque GoFetch
Vamos dar uma olhada mais de perto em como esse ataque funciona. O ataque é chamado GoFetch, e depende de algoritmos de criptografia clássicos e resistentes a quantum. Como mencionado, explora uma vulnerabilidade nos processadores Apple relacionado ao DMP (pré-busca dependente de memória de dados). Este pré-buscador de próxima geração é usado apenas em processadores Apple e Intel Raptor Lake, carregando o conteúdo da memória no cache antes que seja necessário. Então, GoFetch pode ser explorado se a operação criptográfica alvo for um aplicativo malicioso com privilégios de usuário padrão. Por falar nisso, esses privilégios estão disponíveis para a maioria dos aplicativos executados no mesmo cluster de CPU.
A vulnerabilidade decorre da capacidade do pré-buscador de carregar dados no cache da CPU com um ponteiro para carregar outros dados. DMP às vezes confunde o conteúdo da memória e carrega os dados errados no cache da CPU. O problema é que a vulnerabilidade neutraliza completamente o efeito da proteção em tempo constante. Isso deve, por design, proteger contra ataques de CPU relacionados ao canal lateral e ao cache.. Esta proteção garante que todas as operações levem o mesmo tempo, independentemente de seus operandos. No entanto, devido à vulnerabilidade, aplicativos que exploram GoFetch podem colocar dados confidenciais no cache, e um aplicativo malicioso pode roubá-lo.
Quão perigoso isso realmente é?
Quando executado no mesmo cluster principal (eficiente ou desempenho) com operações criptográficas, GoFetch atinge seu pico de eficiência. Tanto quanto a análise mostra, ele pode efetivamente hackear técnicas de criptografia atuais e de última geração.
Quanto aos números exatos, GoFetch leva menos de uma hora para extrair uma chave RSA de 2.048 bits e pouco mais de duas horas para extrair uma chave Diffie-Hellman de 2.048 bits. Um ataque para extrair o material necessário para montar uma chave Kyber-512 leva 54 minutos. A chave Dilithium-2 exigiria cerca de 10 horas, sem contar o tempo necessário para processar os dados brutos offline.
Vulnerabilidade incorrigível
O principal problema é que corrigir esta vulnerabilidade remendando é impossível. Esta falha está na arquitetura do chip Apple Silicon. A única saída é através de proteções de software e incorporação de patches em software criptográfico de terceiros, que evita usar o mecanismo vulnerável. No entanto, como eu disse, isso desacelerará as operações de criptografia em M1 e M2 e prejudicará o trabalho dos desenvolvedores.
Além de soluções alternativas puramente de software, é teoricamente possível executar processos criptográficos em núcleos de eficiência, que não possuem DMP. Embora isso também afete o desempenho, já que os E-cores nunca foram feitos para serem rápidos, e o próprio mecanismo defeituoso trouxe um pouco de aceleração. Especialistas enfatizam que a queda no desempenho será sentida se o software afetado realizar apenas determinadas operações criptográficas. Ao mesmo tempo, ao trabalhar em navegadores e muitos outros tipos de aplicativos, os usuários nunca notarão mudanças.
É importante notar que a arquitetura Intel Raptor Lake (que inclui processadores de 13ª e 14ª geração) não tem essa vulnerabilidade apesar de usar o mesmo mecanismo de pré-busca dos processadores da série M da Apple. O processador M3 é menos suscetível, como tem um especial “trocar” que os desenvolvedores podem usar para desativar o DMP. No entanto, ainda não está claro quanta degradação de desempenho ocorrerá quando esta funcionalidade for desativada.