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