Investigadores han encontrado una forma de evadir las mitigaciones recientes para los ataques de canal lateral por ejecución especulativa de Spectre v2 y han desarrollado un exploit capaz de filtrar secretos de sistemas Linux. El método funciona contra las defensas de Spectre v2 en procesadores AMD e Intel que se basan en la sanitización o aislamiento de los predictores de ramas, mitigaciones que los investigadores denominan genéricamente como basadas en neutralización.
Spectre v2, también conocido como Inyección de Objetivo de Rama (Branch Target Injection, BTI), es una variante de la clase de vulnerabilidades Spectre. Explota el predictor de ramas indirectas del procesador y hace que prediga incorrectamente el objetivo de una rama indirecta, lo que conduce a una ejecución especulativa a lo largo de una ruta de código influenciada por el atacante. Los procesadores modernos utilizan la predicción de ramas para adivinar la ruta de ejecución más probable y la ejecución especulativa para ejecutar instrucciones a lo largo de esa ruta prevista antes de que se conozca el resultado de la rama. Spectre v2 permite a un atacante manipular el predictor de ramas indirectas de la CPU para que el procesador ejecute especulativamente instrucciones en una ubicación elegida por el atacante, lo que podría exponer datos sensibles.
Con las mitigaciones basadas en neutralización (eIBRS en Intel y Safe RET en AMD), existe una brecha entre el momento en que se aísla el predictor de ramas y el momento en que la rama víctima lo utiliza. Las mitigaciones activas de Spectre v2 asumen que un atacante no puede aprovechar el tiempo entre la limpieza del estado del predictor de ramas y su uso. Sin embargo, los investigadores introdujeron un primitivo que permite re-envenenar el estado de la CPU después de la limpieza pero antes de que se utilice.
Daniël Trujillo, estudiante de doctorado, y la profesora asociada Mengjia Yan del Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL) del MIT descubrieron una técnica para explotar esta ventana de tiempo de neutralización a tiempo de uso (TONTOU) para extraer datos sensibles. 'Un atacante sin ningún acceso especial puede leer memoria arbitraria del sistema, incluyendo datos sensibles como contraseñas con hash', dijo Trujillo a BleepingComputer.
Los investigadores desarrollaron un ataque de Inyección de Interrupciones, donde 'los programas de usuario sin privilegios pueden programar interrupciones de temporizador para que ocurran durante la ejecución del kernel'. 'Por lo tanto, podemos forzar al kernel a ser redirigido al manejador de interrupciones y usar este manejador para envenenar los estados microarquitectónicos dentro de la ventana posterior a la neutralización', explican los investigadores. Descubrieron que las interrupciones que ocurren durante la ventana posterior a la neutralización pueden usarse para envenenar el predictor de ramas indirectas del procesador, lo que permite ataques contra todos los tipos de ramas indirectas.
Mengjia y Trujillo probaron el ataque asumiendo que un atacante puede ejecutar código arbitrario sin privilegios en una máquina Linux para filtrar datos del kernel. En un host AMD Zen 2 con las últimas mitigaciones de Spectre v2, los dos investigadores ejecutaron con éxito todas las etapas de un ataque TONTOU: neutralización, redirección, envenenamiento y uso de los predictores de ramas envenenados. Explotar con éxito el problema requiere superar varios obstáculos, incluida la redirección del flujo de control del kernel, la alineación precisa de las interrupciones con la ventana posterior a la neutralización y el uso del manejador de interrupciones para envenenar la entrada del predictor de ramas asociada con la rama indirecta objetivo.
Los investigadores abordan estos desafíos instalando 'temporizadores' para activar interrupciones de hardware, inyección frecuente de interrupciones y mediante métodos de envenenamiento activo y pasivo. El ataque se probó tanto en procesadores Intel como AMD. En un sistema AMD Zen 2 con Linux versión 6.14.0-37-generic y 16 GB de RAM, los investigadores demostraron que podían filtrar memoria arbitraria del kernel a una velocidad de 5.47 bytes por segundo y con una precisión del 91.97%, incluido el contenido de /etc/shadow, que almacena hashes de contraseñas. En 10 ejecuciones de prueba, el ataque localizó y extrajo el archivo en cinco casos, con cada intento tomando un promedio de 18 minutos.
Aunque el ataque también es posible en máquinas Intel, notaron que los requisitos de software adicionales hacen que la tarea sea más compleja. Los investigadores señalan que la inyección de interrupciones permite el envenenamiento controlado por el atacante del Búfer de Pila de Retorno (Return Stack Buffer, RSB), lo que provoca predicciones especulativas incorrectas de los objetivos de retorno. Debido a que la contaminación pasiva del RSB es menos confiable, combinaron la inyección de interrupciones con Inception, un ataque divulgado anteriormente que Daniël Trujillo ayudó a desarrollar.
AMD ha publicado un aviso hoy señalando que el problema de inyección de interrupciones 'parece estar asociado' con la implementación en Linux de la mitigación Safe RET contra posibles ataques de divulgación de información. Daniël Trujillo y Mengjia Yan presentaron sus hallazgos hoy en la conferencia de seguridad Black Hat USA. También compartirán los detalles en USENIX Security 2026, que se celebrará del 27 al 29 de octubre.



















Deja una respuesta