Un ataque a la TSA filtra información de las estructuras microarquitectónicas de las CPU de AMD

AMD ha revelado una nueva clase de ataques microarquitectónicos a sus procesadores, denominados TSA (Ataque de Programador Transitorio). Este ataque permite a un atacante eludir los mecanismos de aislamiento de la CPU y obtener datos procesados ​​en otros contextos, como desde el espacio de usuario para determinar la información procesada a nivel de kernel, o desde un invitado para obtener datos utilizados en otro invitado.

Las vulnerabilidades fueron descubiertas durante el desarrollo de un kit de herramientas creado por investigadores de Microsoft y ETH Zurich para probar el aislamiento microarquitectónico entre diferentes zonas de seguridad, como el kernel, las máquinas virtuales y los procesos.

El método de ataque se basa en la dependencia del tiempo de ejecución de algunas instrucciones con el estado de las estructuras microarquitectónicas. Cuando el procesador espera una finalización rápida de la instrucción para leer datos de la memoria (por ejemplo, suponiendo que los datos están en la caché L1), pero no logra obtenerlos, se produce un estado de "falsa finalización" de la instrucción. En este caso, incluso antes de determinar este estado, el procesador puede programar la ejecución especulativa de otras operaciones que dependen del resultado de ejecutar la instrucción para cargar desde la memoria.

Dado que la carga no se completó, el procesador invalida los datos asociados y la operación de carga se repite posteriormente. Las operaciones dependientes también se vuelven a ejecutar cuando los datos correctos están disponibles. Sin embargo, el vaciado de la canalización no se realiza después de la ejecución de la instrucción para la que se corrigió la condición de "falsa finalización", y los datos incorrectos pueden redirigirse a las operaciones dependientes.

La ejecución de estas operaciones no modifica el estado de la caché ni del TLB (Translation Lookaside Buffer); es decir, los datos no pueden restaurarse mediante los métodos tradicionales para determinar el estado de la caché. Sin embargo, estos datos afectan el tiempo de ejecución de otras instrucciones. El análisis del tiempo de ejecución puede utilizarse como fuente de fugas de información de las estructuras microarquitectónicas que quedan tras la ejecución especulativa de otras operaciones.

Dependiendo de la fuente de extracción de datos residuales, se identifican dos vulnerabilidades:

  • CVE-2024-36350 (TSA-SQ — TSA Store Queue): una fuga del buffer de almacenamiento temporal de operaciones de escritura (Store Queue), que permite determinar el resultado de escribir instrucciones en la memoria.
  • CVE-2024-36357 (TSA-L1 — Caché de datos TSA L1): fuga a través de la caché L1D.

Las vulnerabilidades aparecen en la familia de procesadores AMD (Fam19h) basada en las microarquitecturas Zen 3 y Zen 4. Por ejemplo, el problema está presente en las series de CPU AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4 y AMD Ryzen Embedded 5000/7000/V3000.

Los cambios necesarios para bloquear la vulnerabilidad se incluyen en la actualización de firmware de diciembre y el firmware PI (Inicialización de Plataforma) enviado a los fabricantes de equipos originales (OEM). Se han enviado parches de protección contra la vulnerabilidad para su inclusión en el kernel de Linux (se proporciona la opción "tsa=off" en la línea de comandos del kernel para desactivar la protección que afecta negativamente al rendimiento). La corrección también se ha añadido al hipervisor Xen. Para bloquear la vulnerabilidad se requiere una actualización de firmware y la activación del modo de protección a nivel de kernel o hipervisor.

Fuente: opennet.ru

avatar del autor
ProHoster Consultor, Especialista Técnico
Un especialista técnico en ProHoster Con más de seis años de experiencia en administración de servidores, soluciones VPN y seguridad de redes, gestiono la configuración y el soporte de la infraestructura, superviso la estabilidad del servicio e implemento soluciones para proteger los datos de los clientes. También contribuyo a la optimización del rendimiento y al cumplimiento de los requisitos modernos de seguridad y privacidad.

Añadir un comentario