Ataque TSA, resultando em vazamento de informações de estruturas microarquitetônicas da CPU AMD.

A empresa AMD revelou informações sobre uma nova classe de ataques de microarquitetura em seus processadores — 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, por exemplo, identificar informações processadas no nível do kernel a partir do espaço do usuário, ou descobrir dados utilizados em outra máquina virtual a partir de uma máquina virtual.

As vulnerabilidades foram identificadas durante o desenvolvimento de uma ferramenta criada por pesquisadores da Microsoft e da ETH Zurich para testar a microarquitetura de isolamento entre diferentes zonas de controle de acesso, como o núcleo, máquinas virtuais e processos.

O método de ataque é baseado na dependência do tempo de execução de algumas instruções quanto ao estado das estruturas microarquitetônicas. Quando o processador aguarda a conclusão rápida de uma instrução de leitura de dados da memória (por exemplo, assumindo que os dados estão no cache L1), mas não consegue obter os dados com sucesso, ocorre um estado de ‘falsa conclusão’ da instrução (false completion). Nesse caso, o processador pode já planejar a execução especulativa de outras operações que dependem do resultado da instrução de carregamento da memória, antes mesmo de determinar esse estado.

Como o carregamento não foi concluído, os dados associados a ele são considerados inválidos pelo processador, e a operação de carregamento é repetida posteriormente. As operações dependentes também são reexecutadas após a disponibilidade dos dados corretos. Nesse caso, o despejo de pipeline após a execução da instrução, para a qual o estado de ‘falsa conclusão’ foi registrado, não é realizado, e dados incorretos podem ser direcionados para operações dependentes.

A execução de tais operações não altera o estado do cache e do TLB (Translation Lookaside Buffer), ou seja, os dados não podem ser recuperados por métodos tradicionais de determinação do estado do cache. No entanto, esses dados influenciam o tempo de execução de outras instruções. A análise do tempo de execução pode ser utilizada como uma fonte de vazamento de informações das estruturas microarquitetônicas, que permanecem após a execução especulativa de outras operações.

Dependendo da fonte de extração dos dados residuais, foram identificadas duas vulnerabilidades:

  • CVE-2024-36350 (TSA-SQ — TSA Store Queue) — vazamento do buffer de armazenamento temporário de operações de gravação (Store Queue), permitindo determinar o resultado da execução das instruções de gravação na memória.
  • CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — vazamento através do cache L1D.

As vulnerabilidades se manifestam na família de processadores AMD (Fam19h) baseados 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, AMD Ryzen Embedded 5000/7000/V3000.

As alterações necessárias para bloquear as vulnerabilidades estão incluídas na atualização de microcódigo de dezembro e nos firmware de PI (Platform Initialization) enviados aos fabricantes OEM. Os patches para proteção contra a vulnerabilidade foram enviados para inclusão no kernel do Linux (para desativar a proteção que impacta negativamente o desempenho, há uma opção de linha de comando do kernel ‘tsa=off’). A correção também foi adicionada ao hipervisor Xen. Para bloquear a vulnerabilidade, tanto a atualização de microcódigo quanto a ativação do modo de proteção no nível do kernel ou do hipervisor são necessárias.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster