SQUIP - ataque aos processadores AMD, levando ao vazamento de dados por meio de canais de terceiros

Um grupo de pesquisadores da Graz University of Technology (Áustria), anteriormente conhecido por desenvolver os ataques MDS, NetSpectre, Throwhammer e ZombieLoad, divulgou detalhes de um novo ataque de canal lateral (CVE-2021-46778) na fila do agendador do processador AMD , usado para agendar a execução de instruções em diferentes unidades de execução da CPU. O ataque, denominado SQUIP, permite determinar os dados utilizados em cálculos em outro processo ou máquina virtual ou organizar um canal de comunicação oculto entre processos ou máquinas virtuais que permite a troca de dados contornando os mecanismos de controle de acesso do sistema.

As CPUs AMD baseadas em microarquiteturas Zen de 2000ª, 5000ª e 3000ª geração (AMD Ryzen XNUMX-XNUMX, AMD Ryzen Threadripper, AMD Athlon XNUMX, AMD EPYC) são afetadas ao usar a Simultaneous Multithreading Technology (SMT). Os processadores Intel não são suscetíveis a ataques, pois usam uma única fila de agendamento, enquanto os processadores AMD vulneráveis ​​usam filas separadas para cada unidade de execução. Como solução alternativa para bloquear o vazamento de informações, a AMD recomendou que os desenvolvedores usassem algoritmos que sempre realizassem cálculos matemáticos em tempo constante, independentemente da natureza dos dados sendo processados, e também evitassem ramificações com base em dados secretos.

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

Durante o experimento, os pesquisadores conseguiram recriar completamente a chave RSA privada de 4096 bits usada 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 50500 traços para determinar a chave. O tempo total de ataque levou 38 minutos. São demonstradas variantes de ataque que fornecem um vazamento entre diferentes processos e máquinas virtuais controladas pelo hipervisor KVM. Também é mostrado que o método pode ser usado para organizar 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%.

Fonte: opennet.ru

Adicionar um comentário