Accueil Astuces et Informations SQUIP, un nuevo ataque qu’afecta a procesadores AMD y conduce a la...

SQUIP, un nuevo ataque qu’afecta a procesadores AMD y conduce a la fuga de datos

10
0
SQUIP, un nuevo ataque qu'afecta a procesadores AMD y conduce a la fuga de datos

Un groupe de moiInvestigadores de la Universidad Tecnológica de Graz (Autriche), avant d’avoir découvert les attaques MDS, NetSpectre, Throwhammer et ZombieLoad, ha revelado un nuevo ataque de canal lateral (CVE-2021-46778) dans le code du programmeur du processeur AMD utilisé pour programmer l’exécution d’instructions dans différentes unités d’exécution de la CPU.

El ataque, llamado SQUIP, permite determinar los datos utilizados en los cálculos en otro proceso o máquina virtual u organisar un canal de communication oculto entre procesos o máquinas virtuales que permite intercambiar datos sin pasar por los mecanismos de control de acceso al sistema.

Las CPU de AMD basadas en microarchitectures Zen de 1.ª, 2.ª et 3.ª génération (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) sept afectadas vous pouvez utiliser la technologie Simultaneous Multithreading (SMT).

Las CPU modernas utilizan un diseño superescalar, donde se ejecutan múltiples instrucciones simultáneamente para maximizar la actuación. Estas CPU procesan instrucciones en una canalización a través de varias etapas: (1) buscar, (2) decodificar, (3) programar/ejecutar y (4) retirar.

El ataque se basa en evaluar el nivel de ocurrencia de contención (niveau de contention) en diferentes colas del planificador y se realiza a través de la medición de retrasos al iniciar operaciones de verificación realizadas en otro hilo SMT en la misma CPU física. Pour analyser le contenu se utilizó el método Prime + Probe, qu’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.

La etapa de programar/ejecutar puede procesar instrucciones desordenadas para maximizar la instrucción paralelismo de niveles. Description brève cada una de estas etapas :

-Buscar. La CPU busca la suivante instrucción un ejecutar de la caché L1i.
-Décoder. Para permitir una ejecución eficiente, las instrucciones obtenidas (operaciones macro) se decodifican en una o varias microoperaciones más simples (µops) y se colocan en una cola µop. Estos µops son alimentados en el backend, donde se programan y ejecutan.
-Programmer/Éjecter. El(los) programador(es) rastrea(n) qué µops estan listos para su ejecución (tener entradas disponibles) y dinámicamente los programa (de manera desordenada) a las unidades de ejecución disponibles. Un núcleo de CPU tiene múltiples unidades de ejecución y puede tener múltiples unidades aritméticas y lógicas (ALU), ramas de unidades de ejecución (BRU), unidades de generación de direcciones (AGU).

Durant l’expérience, los investigateurs pudieron recrear por completeo 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 un módulo de potencia. Se necesitaron 50.500 rastros para determinar la clave.

El tiempo total de ataque tomó 38 minutes. Se demuestran variantes de ataque que proporcionan una fuga entre diferentes procesos y máquinas virtuales controladas por el hipervisor KVM. Aussi, se muestra que el método se puede utilizar para organizar la transferencia de datos encubierta entre máquinas virtuales a une velocidad de 0,89 Mbit/sy entre procesos a unea velocidad de 2,70 Mbit/s con una tasa de error lower al 0, 8 %.

Le núcleo de la CPU se divise en múltiples núcleos lógicos o subprocesos, ejecutando flujos de instrucciones independientes pero compartiendo recursos como el caché L1i. µops de estos hilos tambien comparten las unidades de ejecución dinámicamente para permitir un mayor total utilización. La partición de diferentes partes del núcleo.
se realiza mediante el intercambio competitivo. Les architectures AMD Zen autorisent les hilos
par noyau. Estos hilos pueden ser de un solo programa o de diferentes programas, según lo gestionado por el sistema operativo.

Les processeurs Intel ne sont pas susceptibles a ataques, ya que utilizan una única cola de programación, mientras que los procesadores AMD vulnérabilités utilizan colas independientes para cada unidad de ejecución.

Comme solution pour bloquer la fuite d’informations, AMD recommandé que los desarrolladores utilicen algoritmos que siempre realicen cálculos matemáticos en tiempo constanteindépendamment de la naturaleza de los datos que se procesen, y que también eviten la bifurcación basada en datos secretos.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.