A AMD divulgou uma nova classe de ataques microarquitetônicos em seus processadores, chamada TSA (Transient Scheduler Attack). O ataque permite que um invasor contorne os mecanismos de isolamento da CPU e determine dados processados em outros contextos, como do espaço do usuário para determinar informações processadas no nível do kernel, ou de um convidado para aprender dados usados em outro convidado.
As vulnerabilidades foram descobertas durante o desenvolvimento de um kit de ferramentas criado por pesquisadores da Microsoft e da ETH Zurich para testar o isolamento da microarquitetura entre diferentes zonas de segurança, como o kernel, máquinas virtuais e processos.
O método de ataque baseia-se na dependência do tempo de execução de algumas instruções em relação ao estado das estruturas microarquitetônicas. Quando o processador espera uma conclusão rápida da instrução para ler dados da memória (por exemplo, assumindo que os dados estão no cache L1), mas não consegue obtê-los com sucesso, ocorre um estado de "conclusão falsa" da instrução. Nesse caso, mesmo antes de determinar esse estado, o processador pode agendar a execução especulativa de outras operações que dependem do resultado da execução da instrução para carregar da memória.
Como o carregamento não foi concluído, os dados associados a ele são invalidados pelo processador e a operação de carregamento é repetida posteriormente. As operações dependentes também são reexecutadas quando os dados corretos estão prontos. No entanto, a limpeza do pipeline não é realizada após a execução da instrução para a qual a condição de "conclusão falsa" foi corrigida, e os dados incorretos podem ser redirecionados para operações dependentes.
A execução dessas operações não altera o estado do cache e do TLB (Translation Lookaside Buffer), ou seja, os dados não podem ser restaurados usando métodos tradicionais de determinação do estado do cache. No entanto, esses dados afetam o tempo de execução de outras instruções. A análise do tempo de execução pode ser usada como fonte de vazamento de informações de estruturas microarquitetônicas remanescentes após a execução especulativa de outras operações.
Dependendo da fonte de extração de dados residuais, duas vulnerabilidades são identificadas:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — um vazamento do buffer de armazenamento temporário de operações de gravação (Store Queue), permitindo determinar o resultado da gravação de instruções na memória.
- CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — vazamento através do cache L1D.
As vulnerabilidades aparecem na família de processadores AMD (Fam19h) com base nas microarquiteturas Zen 3 e Zen 4. Por exemplo, o problema está presente nas séries de CPU AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4 e AMD Ryzen Embedded 5000/7000/V3000.
As alterações necessárias para bloquear a vulnerabilidade foram incluídas na atualização de microcódigo de dezembro e no firmware de Inicialização da Plataforma (PI) disponibilizado aos fabricantes de equipamentos originais (OEMs). Correções para proteger contra a vulnerabilidade foram submetidas para inclusão no kernel. Linux (A opção de linha de comando do kernel "tsa=off" é fornecida para desativar a proteção que afeta negativamente o desempenho.) Uma correção também foi adicionada ao hipervisor Xen. O bloqueio da vulnerabilidade requer uma atualização do microcódigo e a ativação do modo de proteção no nível do kernel ou do hipervisor.
Fonte: opennet.ru
