Técnica

El nuevo ataque pasa por alto los mecanismos de defensa del hardware contra el agujero de Spectre en los procesadores Intel y ARM

El nuevo ataque pasa por alto los mecanismos de defensa del hardware contra el agujero de Spectre en los procesadores Intel y ARM

 

Si bien no es fácil de explotar, esta prueba de concepto muestra que algunos procesadores Intel y ARM aún son vulnerables a los ataques de canal lateral.


Agujero de espectro

 

Las contramedidas de hardware que se han implementado en los procesadores Intel y ARM en los últimos años para eliminar una falla importante llamada Spectre no son tan sólidas como se pensaba. Los científicos han desarrollado un nuevo método de ataque que puede superar los mecanismos de defensa, pero su uso no es tan fácil como el agujero de gusano original.

El nuevo ataque, descubierto por investigadores de Systems and Network Security Group en VU Amsterdam (VUSec), se llama Specter-BHI (Branch History Injection) o Specter-BHB (Branch History Store) porque Intel y ARM le han dado nombres diferentes. Según el equipo de investigación, esta es una extensión del ataque Spectre v2 de 2017, también conocido como Spectre-BTI (Branch Target Injection), y al igual que Spectre v2, puede filtrar información confidencial del espacio de memoria privilegiado del kernel.

Compruebe también:

Un exploit de prueba de concepto por parte de los investigadores de VUSec es filtrar hashes de contraseña raíz de /etc/shadow utilizando una cuenta sin privilegios. El archivo /etc/shadow es un archivo de sistema en Linux al que solo puede acceder la cuenta raíz administrativa. Esencialmente, el exploit obliga al kernel a cargar un archivo en la memoria donde normalmente estaría protegido contra el acceso de procesos sin privilegios, pero luego usa un ataque Spectre-BHI para acceder y filtrar su contenido. Esta es una violación grave del límite de seguridad básico en los sistemas operativos modernos que separa las aplicaciones en modo usuario y el espacio de memoria del espacio de memoria privilegiado del núcleo.

¿Qué es Espectro?

Spectre es una clase de vulnerabilidades, reveladas originalmente en enero de 2017, que surgen de una característica de rendimiento de la CPU moderna llamada ejecución especulativa, en la que la CPU intenta predecir de antemano la ruta que tomará un programa cuando acceda a una rama condicional y ejecute instrucciones a lo largo. esta pista temprano. Si las predicciones, basadas en algoritmos internos, resultan incorrectas, los resultados almacenados en la memoria caché del procesador se descartarán. Los ataques de ejecución especulativa como Spectre y muchos otros que le han seguido utilizan este mecanismo para filtrar información de cachés temporales que actúan como canales secundarios.

«En el momento en que se descubrió Spectre, Branch Target Injection (BTI o Spectre-v2), el tipo más peligroso de Spectre, era fácil de usar en todos los niveles de permiso», explican los investigadores de VUSec. «Por ejemplo, un atacante sin privilegios en el espacio del usuario podría pasar cualquier objetivo secundario a un predictor de rama del espacio del usuario intermedio y obligar al kernel a saltar especulativamente al objetivo del código inyectado y ejecutar cualquier código que esté allí».

Para reducir el riesgo, los proveedores de software como Google y los fabricantes de kernel de Linux han desarrollado soluciones de software como retpoline. Aunque fue efectivo, provocó una disminución significativa en el rendimiento, por lo que los fabricantes de procesadores posteriores desarrollaron seguridad de hardware. La solución de Intel se llama EIBRS y ARM es CSV2.

«Estas soluciones son complejas, el artículo de investigación original está disponible en este enlace, pero la esencia es que el predictor ‘de alguna manera’ rastrea el nivel de permiso (usuario/núcleo) en el que se ejecuta el objetivo», explican los investigadores de VUSec. «Y como era de esperar, si el objetivo pertenece a un nivel de privilegio más bajo, entonces el kernel no lo usará (es decir, no habrá más ubicaciones de código proporcionadas por el atacante al azar que puedan aprovecharse especulativamente para el flujo de control del kernel). «

Sin embargo, el problema es que el predictor de la CPU se basa en el historial global para seleccionar las entradas de destino para la ejecución especulativa y, como han demostrado los investigadores de VUSec, este historial global puede corromperse. En otras palabras, mientras que el Spectre v2 original permitía a los atacantes inyectar físicamente la ubicación del código objetivo y luego ejecutar sigilosamente ese código mediante el kernel, el nuevo ataque Spectre-BHI/BHB podría obligar al kernel a predecir erróneamente y ejecutar algo interesante. Gadgets o fragmentos de código que ya existen. Está en la historia y se hizo en el pasado, pero puede provocar una fuga de datos.

«¿Intel eIBRS y Arm CSV2 se corrompieron? Como si. Esto significa que las medidas de seguridad están funcionando según lo previsto, pero la superficie de ataque restante es más importante de lo que los fabricantes supusieron originalmente. […] Sin embargo, encontrar herramientas que se puedan usar es cada vez más cada vez más importante». Más difícil que antes porque un atacante no puede inyectar objetivos directamente a través de los límites de permiso».

Mitigar el nuevo error Spectre-BHI

Intel identificó el nuevo Spectre-BHI como CVE-2022-0001 para la variante con múltiples privilegios y CVE-2022-0002 para la variante con múltiples privilegios. ARM lo describe como CVE-2022-23960 para ambas variantes.

Según Intel, la mayoría de los procesadores de la compañía están afectados, a excepción de los de la familia Atom. Para ARM, las CPU débiles son Cortex-A15, Cortex-A57, Cortex-A72, Cortex-A73, Cortex-A75, Cortex-A76, Cortex-A76AE, Cortex-A77, Cortex-A78, Cortex-A78AE, Cortex – A78C Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1.

Ambas compañías han hecho recomendaciones y están ofreciendo contramedidas de software en este momento. ARM tiene cinco soluciones de mitigación diferentes según el sistema.

En su explotación de Linux, los investigadores de VUSec utilizaron eBPF, una tecnología disponible desde la versión 4.4 del kernel que permite que los programas se aíslen en el kernel del sistema operativo. Si bien eBPF no es parte del problema subyacente y se pueden encontrar otras herramientas de código que pueden filtrar datos, la presencia de un eBPF no privilegiado «facilita en gran medida los ataques especulativos (y otros)», dijeron los investigadores. Por eso recomiendan desactivarlo, y algunas distribuciones de Linux han comenzado a desactivarlo por defecto.

Fuente: OSC

Mira también

.

Publicaciones relacionadas

Botón volver arriba