A vulnerabilidade se deve aos recursos de otimização de memória nos processadores Intel.
novamente, uma vulnerabilidade foi descoberta no sistema de execução de instruções especulativas dos processadores Intel, e desta vez um pesquisador do Google, anunciou que identificou uma nova vulnerabilidade (já catalogada em CVE-2022-40982), chamado «Queda»
Downfall, é uma vulnerabilidade que permite determinar o conteúdo do XMM, YMM e registradores vetoriais ZMM, usados anteriormente por outros processos ao executar instruções AVX no mesmo núcleo da CPU.
Sobre a Queda
Em relação à vulnerabilidade, é mencionado que um atacante sem privilégios com a capacidade de executar seu próprio código no sistema, poderia usar a vulnerabilidade para vazar dados de outros processos do usuário, o kernel do sistema, enclaves Intel SGX isolados e máquinas virtuais.
Registros vetoriais filtráveis são amplamente usados em criptografia, funções de cópia de memória e processamento de strings, por exemplo, esses registros são usados na biblioteca Glibc nas funções memcpy, strcmp e strlen, entre outras coisas. Do ponto de vista prático, a vulnerabilidade pode ser explorada para determinar os dados que estão sendo processados em instruções AES-NI ou REP-MOVS (usadas na função memcpy) em outros processos, que podem vazar chaves de criptografia, dados confidenciais e senhas de usuários.
Vulnerabilidade se manifesta nos processadores Intel que suportam conjuntos de instruções estendidos AVX2 e AVX-512 (o que significa que afeta os processadores de 6ª a 11ª geração), enquanto os processadores Intel baseados nas microarquiteturas Alder Lake, Raptor Lake e Sapphire Rapids não parecem afetados.
Assim como a vulnerabilidade recentemente descoberta do Zenbleed que afeta os processadores AMD Zen2, em Downfall, o motivo da vulnerabilidade é o vazamento de dados dos arquivos de log, que são usados para compartilhar o conteúdo do log entre todos os aplicativos e tarefas no mesmo núcleo da CPU.
O vazamento ocorre devido a uma transferência de dados especulativa ao executar a instrução GATHER, disponível nas extensões AVX2 e AVX-512 e projetado para fornecer acesso rápido a dados diferentes na memória. Durante a execução da instrução GATHER, os dados antigos no arquivo registrador são usados na execução especulativa de instruções dependentes. Esses dados não são refletidos diretamente nos logs de software, mas podem ser determinados usando técnicas de ataque de canal lateral projetadas para ataques Meltdown, como a análise de dados restantes no cache da CPU.
Para explorar a Queda, uma técnica de ataque foi desenvolvida chamada Gather Data Sampling (GDS) e para o qual foram publicados protótipos de exploração para extrair chaves criptográficas do processo de outro usuário, vazar dados após serem copiados para o kernel do Linux pela função memcpy e interceptar caracteres impressos deixados em registros vetoriais após o trabalho de outros processos. Por exemplo, ele demonstra a capacidade de definir chaves AES que são usadas para criptografar dados no processo de outro usuário usando a biblioteca OpenSSL.
O método mostrou alta eficiência: conduzindo um experimento com 100 chaves diferentes, 100% das chaves AES-128 e 86% das chaves AES-256 foram determinadas com a duração de cada tentativa para determinar não mais que 10 segundos. Em sistemas em nuvem, um ataque pode ser usado para determinar quais dados estão sendo processados em outras máquinas virtuais. É possível que a vulnerabilidade seja explorada pela execução do código JavaScript em um navegador da web.
Deve ser mencionado que euA ntel descobriu o problema no ano passado (precisamente no mês de agosto) e que a vulnerabilidade só foi divulgada este ano na conferência BlackHat USA. e correções para proteção contra a vulnerabilidade já estão incluídas nas várias atualizações do kernel do Linux, desde a versão 6.4.9 6.1.44 até 4.14.321.
Além disso, entre as medidas possíveis para evitar o impacto negativo da proteção contra a vulnerabilidade Downfall no desempenho, cita-se fazer alterações nos compiladores para desabilitar o uso da instrução GATHER ou adicionar a instrução imediatamente após o GATHER LFENCE, que desativa a execução preventiva de instruções subsequentes antes que todos os commits anteriores sejam concluídos.
Para sistemas onde as correções de firmware não estão disponíveis, o suporte para todas as extensões AVX foi desabilitado, enquanto para a parte de atualização do microcódigo Intel, ele também fornece a capacidade de usar a interface MSR para desabilitar seletivamente a proteção do firmware no contexto de processos individuais.
Finalmente, se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir