SQUIP: ataque a los procesadores AMD, lo que provoca la fuga de datos a través de canales de terceros

Un grupo de investigadores de la Universidad Tecnológica de Graz (Austria), anteriormente conocido por desarrollar los ataques MDS, NetSpectre, Throwhammer y ZombieLoad, reveló detalles de un nuevo ataque de canal lateral (CVE-2021-46778) en la cola del programador del procesador AMD , utilizado para programar la ejecución de instrucciones en diferentes unidades de ejecución de la CPU. El ataque, llamado SQUIP, le permite determinar los datos utilizados en los cálculos en otro proceso o máquina virtual u organizar un canal de comunicación oculto entre procesos o máquinas virtuales que le permite intercambiar datos sin pasar por los mecanismos de control de acceso al sistema.

Las CPU de AMD basadas en microarquitecturas Zen de 2000.ª, 5000.ª y 3000.ª generación (AMD Ryzen XNUMX-XNUMX, AMD Ryzen Threadripper, AMD Athlon XNUMX, AMD EPYC) se ven afectadas cuando se utiliza la tecnología Simultaneous Multithreading (SMT). Los procesadores Intel no son susceptibles a ataques, ya que utilizan una única cola de programador, mientras que los procesadores AMD vulnerables utilizan colas separadas para cada unidad de ejecución. Como solución para bloquear la fuga de información, AMD recomendó que los desarrolladores utilicen algoritmos que siempre realicen cálculos matemáticos en tiempo constante, independientemente de la naturaleza de los datos que se procesen, y que también eviten la bifurcación basada en datos secretos.

El ataque se basa en una evaluación del nivel de ocurrencia de contención (contention level) en diferentes colas del programador y se lleva a cabo a través de la medición de retrasos al iniciar operaciones de verificación realizadas en otro subproceso SMT en la misma CPU física. Para analizar el contenido se utilizó el método Prime+Probe, que implica llenar la cola con un conjunto de valores de referencia y determinar los cambios midiendo el tiempo de acceso a los mismos al momento de la recarga.

Durante el experimento, los investigadores pudieron recrear por completo la clave RSA privada de 4096 bits utilizada para crear firmas digitales utilizando la biblioteca criptográfica mbedTLS 3.0, que utiliza el algoritmo de Montgomery para elevar un número a un módulo de potencia. Se necesitaron 50500 rastros para determinar la clave. El tiempo total de ataque tomó 38 minutos. Se demuestran variantes de ataque que proporcionan una fuga entre diferentes procesos y máquinas virtuales controladas por el hipervisor KVM. También se muestra que el método se puede utilizar para organizar la transferencia de datos encubierta entre máquinas virtuales a una velocidad de 0.89 Mbit/s y entre procesos a una velocidad de 2.70 Mbit/s con una tasa de error inferior al 0.8 %.

Fuente: opennet.ru

Añadir un comentario