SQUIP, um novo ataque que afeta os processadores AMD e leva ao vazamento de dados

um grupo de euPesquisadores da Universidade de Tecnologia de Graz (Áustria), anteriormente conhecida por desenvolver os ataques MDS, NetSpectre, Throwhammer e ZombieLoad, revelou um novo ataque de canal lateral (CVE-2021-46778) na fila do escalonador do processador AMD utilizada para escalonar a execução de instruções em diferentes unidades de execução da CPU.

O ataque, chamado SQUIP, permite determinar os dados usados ​​nos cálculos em outro processo ou máquina virtual ou organizar um canal de comunicação oculto entre processos ou máquinas virtuais que permita a troca de dados sem passar pelos mecanismos de controle de acesso ao sistema.

Os CPUs AMD baseadas na 1ª, 2ª e 3ª microarquiteturas Zen geração (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) São afetados quando a tecnologia Simultaneous Multithreading (SMT) é usada.

CPUs modernas usam um design superescalar, onde várias instruções são executadas simultaneamente para maximizar o desempenho. Essas CPUs processam instruções em um pipeline por meio de vários estágios: (1) buscar, (2) decodificar, (3) programar/executar e (4) buscar.

O ataque é baseado na avaliação do nível de ocorrência de contenção (nível de contenção) em diferentes filas do agendador e é feito através da medição de atrasos ao iniciar as operações de verificação realizadas em outra thread SMT na mesma CPU física. Para analisar o conteúdo, foi utilizado o método Prime+Probe, que consiste em preencher a fila com um conjunto de valores de referência e determinar as alterações medindo o tempo de acesso a eles no momento do recarregamento.

O estágio de programa/execução pode processar instruções fora de ordem para maximizar o paralelismo de nível de instrução. Descrevemos brevemente cada uma dessas etapas:

-Procurar. A CPU procura a próxima instrução a ser executada no cache L1i. 
-Decodificar. Para permitir uma execução eficiente, as instruções obtidas (operações de macro) são decodificadas em uma ou mais microoperações mais simples (µops) e colocadas em uma fila µop. Esses µops são alimentados no backend, onde são agendados e executados.
-Agendar/Executar. O(s) escalonador(es) rastreia quais µops estão prontos para execução (têm entradas disponíveis) e os agenda dinamicamente (fora de ordem) para as unidades de execução disponíveis. Um núcleo de CPU tem várias unidades de execução e pode ter várias unidades aritméticas e lógicas (ALUs), unidades de execução de ramificação (BRUs), unidades de geração de endereços (AGUs).

Durante o experimento, os pesquisadores conseguiram recriar completamente a chave RSA privada de 4096 bits usado para criar assinaturas digitais usando a biblioteca criptográfica mbedTLS 3.0, que usa o algoritmo de Montgomery para elevar um número a um módulo de potência. Foram necessários 50.500 traços para determinar a chave.

O tempo total de ataque levou 38 minutos. Variantes de ataque que fornecem um vazamento entre diferentes processos e máquinas virtuais controladas pelo hipervisor KVM são demonstradas. Também é mostrado que o método pode ser usado para orquestrar a transferência secreta de dados entre máquinas virtuais a uma taxa de 0,89 Mbit/s e entre processos a uma taxa de 2,70 Mbit/s com uma taxa de erro inferior a 0,8%.

O núcleo da CPU é dividido em vários núcleos lógicos, ou threads, executando fluxos de instruções independentes, mas compartilhando recursos como o cache L1i. µops desses encadeamentos também compartilham unidades de execução dinamicamente para permitir maior utilização total. A partição de diferentes partes do kernel.
Isso é feito por meio de troca competitiva. As arquiteturas AMD Zen permitem dois threads
por núcleo. Esses encadeamentos podem ser de um único programa ou de programas diferentes, conforme gerenciados pelo sistema operacional.

Os processadores Intel não são suscetíveis ataque porque eles usam uma única fila de agendamento, enquanto os processadores AMD vulneráveis ​​usam filas separadas para cada unidade de execução.

Como solução para bloquear o vazamento de informações, AMD recomendado que os desenvolvedores usar algoritmos que sempre realizam cálculos matemáticos em tempo constante, independentemente da natureza dos dados que estão sendo processados, e também impedir a bifurcação com base em dados secretos.

Por fim, se estiver interessado em saber mais sobre o assunto, pode consultar os detalhes no seguinte link.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.