La falla de Spectre amenaza nuevamente a los chips Intel y ARM
hace 3 años
Aunque menos 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.
Las mitigaciones de hardware introducidas en los últimos años en los procesadores Intel y ARM para corregir la infame falla de Spectre no son tan sólidas como se pensaba anteriormente. Los investigadores han desarrollado un método de ataque capaz de eludir las defensas, pero explotarlo no es tan fácil como con la falla original. Descubierto por investigadores del grupo de Seguridad de Sistemas y Redes de la Universidad de Ámsterdam (VUSec), este ataque se denomina Spectre-BHI, por Branch History Injection, o Spectre-BHB, por Branch History Buffer, Intel y ARM le dan diferentes nombres. Según el equipo de investigación, es una extensión del ataque Spectre versión 2 de 2017, también conocido como Spectre-BTI (Branch Target Injection) y, al igual que Spectre v2, puede filtrar información confidencial de la memoria privilegiada del kernel.
El exploit de prueba de concepto creado por los investigadores de VUSec filtra el hash de la contraseña raíz del archivo /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 de administrador raíz. Esencialmente, el exploit obliga al kernel a cargar el archivo en la memoria, donde normalmente estaría protegido contra el acceso de procesos sin privilegios, pero luego aprovecha el ataque Spectre-BHI para acceder y filtrar su contenido. . Esta es una violación importante del límite de seguridad fundamental de los sistemas operativos modernos que separa las aplicaciones en modo usuario y el espacio de memoria del espacio de memoria del núcleo privilegiado.
Explotando la Grieta del Espectro
Spectre se refiere a una clase de vulnerabilidades de seguridad, reveladas originalmente en enero de 2017, que se derivan de una característica relacionada con el rendimiento de los procesadores modernos llamada ejecución especulativa, en la que el procesador intenta predecir de antemano la ruta que tomará un programa cuando alcance un estado condicional. rama y ejecutar instrucciones en ese camino antes de tiempo. Si la predicción, que se basa en algoritmos internos, no es buena, se rechazan los resultados almacenados en las cachés temporales de la CPU. Los ataques de ejecución especulativa como Spectre, y muchos otros ataques posteriores, engañan a este mecanismo para filtrar información de cachés temporales que actúan como canales secundarios. “Cuando se descubrió Spectre, era fácil explotar Branch Target Injection (BTI o Spectre-v2), la variante más peligrosa de Spectre, en todos los niveles de privilegio”, explicaron los autores. investigadores de VUSec. “Por ejemplo, un atacante del espacio de usuario sin privilegios podría introducir cualquier objetivo de rama en el predictor de rama indirecta del espacio de usuario y engañar al kernel para que salte especulativamente a la ubicación del código objetivo inyectado y ejecute el código allí”.
Para mitigar el riesgo, los proveedores de software como Google y los desarrolladores del kernel de Linux han ofrecido soluciones de software como retpoline. Si estas soluciones fueron efectivas, dieron como resultado una caída significativa en el rendimiento. Por eso, los proveedores de procesadores han desarrollado defensas de hardware como eIBRS de Intel y CSV2 de ARM. "Estas soluciones son complejas, el artículo en inglés, explica el BHI en detalle, pero lo principal es que el predictor de alguna manera realiza un seguimiento del nivel de privilegio (usuario/núcleo) en el que se ejecuta un objetivo", explican además los investigadores de VUSec. "Y, como era de esperar, si el objetivo tiene un nivel de privilegio más bajo, el tiempo de ejecución del kernel no lo usará (es decir, no habrá más ubicaciones de código arbitrario proporcionadas por el atacante para secuestrar especulativamente el flujo de control del kernel )”.
Mitigación de vulnerabilidad de Spectre-BHI
Sin embargo, el problema es que el predictor de la CPU se basa en el historial global para seleccionar especulativamente las entradas de destino para ejecutar y, como han demostrado los investigadores de VUSec, este historial global puede verse comprometido. En otras palabras, mientras que la versión original de Spectre v2 permitía a los atacantes inyectar ubicaciones de código de destino y engañar al kernel para que ejecutara ese código, el ataque Spectre-BHI/BHB solo puede forzar al kernel a cometer errores y ejecutar trucos geniales o fragmentos de código que ya existen en el historial y se han ejecutado en el pasado, pero podrían provocar una fuga de datos. "Lo que es como decir que el eIBRS de Intel y el CSV2 de ARM están dañados", dijeron los investigadores. “Entonces, las mitigaciones están funcionando como se esperaba, pero la superficie de ataque residual es mucho mayor de lo que supusieron originalmente los proveedores. [...] Sin embargo, es más difícil que antes encontrar fuentes explotables ya que el atacante no puede inyectar directamente objetivos predictivos a través de los límites de privilegios”.
Intel rastrea la vulnerabilidad Spectre-BHI como CVE-2022-0001, para la variante de privilegio cruzado y CVE-2022-0002 para la misma variante de privilegio. ARM lo archiva como CVE-2022-23960 para ambas variantes. Según Intel, la mayoría de sus procesadores se ven afectados, a excepción de los de la familia Atom. Para ARM, las arquitecturas de CPU vulnerables 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 y Neoverse V1. Ambas compañías han publicado avisos y pondrán a disposición software de mitigación en este momento. ARM ofrece cinco mitigaciones diferentes según el sistema. Para su explotación de Linux, los investigadores de VUSec usaron eBPF, una tecnología disponible desde el kernel 4.4 que permite que los programas de espacio aislado se ejecuten dentro del kernel de un sistema operativo. Aunque el eBPF no está involucrado en el problema subyacente y uno puede encontrar otros trucos de código para filtrar datos, la presencia de un eBPF sin privilegios "hace que la ejecución especulativa sea mucho más fácil (y otros) ataques", dijeron los investigadores. Es por eso que recomiendan deshabilitar y algunas distribuciones de Linux han comenzado a desactivarlo de forma predeterminada.
Si quieres conocer otros artículos parecidos a La falla de Spectre amenaza nuevamente a los chips Intel y ARM puedes visitar la categoría Otros.
Otras noticias que te pueden interesar