Informações sobre um novo ataque de execução especulativa, apelidado de GhostRace (listado em CVE-2024-2193), este é um novo método desenvolvido por pesquisadores da Vrije Universiteit Amsterdam e da IBM para explorar o mecanismo de execução especulativa presente em processadores modernos da Intel, AMD, ARM e IBM.
Os pesquisadores mencionam que, GhostRace se concentra na manipulação de condições de corrida especulativas para acessar áreas de memória previamente liberadas, que podem levar à extração de dados confidenciais do kernel Linux, especialmente em ambientes de virtualização onde um invasor em um sistema convidado pode comprometer a segurança do sistema host ou de outros sistemas convidados.
Como funciona o ataque é baseado na execução especulativa de instruções condicionais com primitivas de sincronização threading, como mutex e spinlock.
Se o processador prever incorretamente ramificações no código que trata dessas operações, acessos especulativos poderão ser feitos à memória que já foi liberada. Embora o processador descarte esses acessos após detectar a previsão errada, os rastros de execução permanecem no cache e podem ser recuperados usando técnicas de análise de canal lateral.
GhostRace requer a presença de certas sequências de instruções no kernel, conhecido como aparelhos, que são usados para execução especulativa dependendo das condições externas controladas pelo invasor. Esses gadgets Eles são formados a partir de seções de código onde o estado é verificado em um loop infinito e sai do loop após remover o bloqueio de acesso ao recurso. Isso permite disparar falsamente uma transição e executar instruções protegidas por um bloqueio, mesmo que o recurso permaneça bloqueado.
Durante a análise de vulnerabilidade, o que foi feito no código do kernel Linux 5.15.83, foi revelada a presença de 1283 dispositivos que podem levar a acessos especulativos para a memória já liberada. Este tipo de ataque representa um risco potencial para sistemas de virtualização, qualquer kernel de sistema operacional e programas que utilizam primitivas de sincronização de threads verificadas por instruções condicionais e executados em plataformas que permitem a execução especulativa de operações de ramificação, como x86, ARM, RISC-V, entre outros.
Para testar a vulnerabilidade, os investigadores desenvolveu um protótipo de exploração que demonstra a eficácia De ataque permitindo a extração de dados da memória do kernel Linux com uma taxa de transferência de 12 KB por segundo e um nível de confiabilidade semelhante aos ataques da classe Spectre.
Os Desenvolvedores de kernel Linux e empresas fabricantes de CPU foram informados sobre esse problema no final do 2023. A AMD já publicou um relatório sobre a vulnerabilidade e recomenda o uso de técnicas padrão para proteção contra ataques semelhantes ao Spectre v1. Por outro lado, a Intel e a ARM ainda não responderam a esta notificação.
Embora Os desenvolvedores do kernel Linux não têm planos imediatos para implementar a serialização de primitivos sincronização Devido à perda de desempenho, já incorporaram restrições para proteção contra a técnica de exploração IPI Storming (CVE-2024-26602). Esta técnica de ataque envolve a interrupção de um processo no momento apropriado para fornecer uma janela de tempo para acesso especulativo à memória liberada.
Para mitigar esse tipo de ataque, Se propõe usar a serialização de primitivas sincronização incluindo uma instrução LFENCE após a instrução cmpxchq que verifica o status do bloqueio. Porém, Esta medida de proteção acarreta uma penalidade de desempenho de aproximadamente 5% no benchmark LMBench, porque a instrução LFENCE desativa a execução preemptiva de instruções subsequentes antes de confirmar todas as operações anteriores.
No caso do hipervisor Xen, os desenvolvedores prepararam mudanças para implementar o mecanismo de bloqueio protegido LOCK_HARDEN, semelhante ao método BRANCH_HARDEN usado acima. No entanto, devido a potenciais impactos negativos no desempenho e à falta de evidências de ataques no Xen, o modo LOCK_HARDEN está desabilitado por padrão.
finalmente se você está interessado em saber mais sobre o assunto, você pode verificar os detalhes em o seguinte link.