La investigación sobre las vulnerabilidades de los procesadores de hardware vinculadas a la ejecución especulativa de instrucciones ha estado en curso durante más de cinco años. Estas vulnerabilidades permiten que, de alguna forma, la CPU lea datos a los que un usuario normalmente no debería tener acceso.
Mecanismo Básico de Ataque: Ejecución Especulativa
En esencia, los ataques propuestos explotan la forma en que la CPU maneja las instrucciones. Imagina un escenario donde un programa malintencionado no tiene acceso a una clave de cifrado. Si se le indica a la CPU que lea esta clave, en teoría, la primera instrucción debería verificar los derechos de acceso antes de permitir la ejecución de la siguiente instrucción que lee la información sensible. Sin embargo, debido a la ejecución especulativa, la CPU puede ejecutar esta segunda instrucción antes de que la verificación de permisos se complete. En este punto, la CPU tiene acceso a los datos, aunque el usuario aún no.
En el caso de vulnerabilidades como Spectre, los datos se cargan temporalmente en la memoria caché de la CPU. Aunque estos datos no son directamente legibles, pueden ser inferidos a través de canales laterales. Un ejemplo de canal lateral es medir el tiempo de procesamiento de una instrucción que varía según los datos presentes en la caché.
Aunque esta descripción simplificada pueda sonar compleja, el nuevo artículo introduce un mecanismo aún más desconcertante, centrándose en un canal lateral temporal de ejecución transitoria.

El Rol del Registro EFLAGS y el Ataque Temporal
El registro EFLAGS en los procesadores Intel almacena el estado operativo de la CPU, incluyendo resultados de cálculos como la bandera cero (ZF). En un nuevo tipo de ataque, se realizan numerosos cálculos de forma especulativa con datos sensibles. El resultado de estos cálculos se escribe en la bandera ZF.
Aunque no se puede saber directamente el estado de la bandera ZF, se ejecuta una instrucción condicional (JCC, específicamente JZ: "saltar si es cero"). Esta instrucción tarda un poco más en ejecutarse si la condición (en este caso, ZF) se cumple. Este retraso temporal es la clave para inferir el resultado de los cálculos especulativos.
Un aspecto crucial de este ataque es que no funciona de forma aislada. Para garantizar la ejecución especulativa necesaria, los atacantes deben explotar previamente otra vulnerabilidad.
Canales Laterales y la Fuga de Datos
Las ejecuciones especulativas, si la predicción resulta incorrecta, se cancelan pero pueden dejar rastros en la memoria caché. Estos rastros pueden ser medidos y analizados por un atacante para interceptar el flujo de control de los procesos y extraer información sensible, como claves de cifrado, contraseñas o datos del sistema operativo, sin necesidad de privilegios elevados.
Spectre v2 (Branch Target Injection)
En el caso particular de Spectre v2, también conocido como Branch Target Injection (BTI), el atacante engaña al procesador para que salte especulativamente hacia código específico que filtra datos. Esta variante es especialmente relevante en entornos compartidos como la nube y la virtualización, ya que puede ejecutar procesos entre diferentes sistemas operativos o contenedores.

Mitigaciones y Respuestas de la Industria
Los fabricantes han lanzado parches de seguridad tanto a nivel de hardware como de software. En el momento de su divulgación, estos parches se incluían en versiones actualizadas de sistemas operativos como iOS, GNU/Linux, macOS, Windows y Windows 10 Mobile. Esto ha impactado a servidores, servicios en la nube y potencialmente a una amplia gama de dispositivos inteligentes y sistemas embebidos que utilizan procesadores con arquitectura ARM.
Es fundamental seguir los protocolos de seguridad, como el uso de contraseñas seguras, para protegerse contra estas vulnerabilidades.
Mecanismos de Seguridad y Cómo se Explotan
Las vulnerabilidades a menudo se dan entre los accesos a la memoria y la comprobación de privilegios durante el procesamiento de instrucciones. En combinación con ataques de canal lateral a la caché de la CPU, estas vulnerabilidades permiten que un proceso se salte las comprobaciones de nivel de privilegio habituales, que normalmente aislarían al proceso malicioso e impedirían el acceso a datos del sistema operativo y otros procesos concurrentes.
La vulnerabilidad permite que un proceso no autorizado lea información de cualquier dirección mapeada al espacio de memoria del proceso actual. Dado que la segmentación de instrucciones reside en los procesadores afectados, la información de una dirección no autorizada casi siempre se cargará temporalmente en la caché de la CPU durante la ejecución fuera de orden, pudiendo posteriormente leerse desde la caché. Este fallo es viable en cualquier sistema operativo donde la información privilegiada se mapee a memoria virtual para procesos no privilegiados.
Historial de Investigaciones y Publicaciones
- El 10 de agosto de 2016, Moritz Lipp y otros miembros de la Universidad Tecnológica de Graz publicaron "ARMagedón: Ataques a la caché en dispositivos móviles".
- El 27 de diciembre de 2016, Clémentine Maurice y Moritz Lipp presentaron su charla "¿Qué podría salir mal al usar
?".
ARM aseguró que la mayoría de sus procesadores no son vulnerables, y publicó una lista de los procesadores afectados.
Tecnologías Clave Afectadas y Conceptos Relevantes
Arquitectura de la CPU Moderna
Las CPU modernas emplean diversas técnicas para lograr altos niveles de eficiencia:
- Memoria Virtual (Paginada): Se utiliza para hacer más eficientes los accesos a la memoria y controlar qué procesos pueden acceder a ciertas áreas. Cada proceso cree que tiene acceso completo a la memoria física, pero en realidad se le asigna una porción.
- Dominios de Protección (Anillos de Protección): Permiten al sistema operativo controlar qué procesos pueden leer áreas específicas de la memoria virtual.
- Segmentación de Instrucciones y Ejecución Especulativa: Permiten que las instrucciones se ejecuten de la manera más eficiente posible, incluso fuera de orden o en paralelo, siempre que el resultado final sea correcto. Los procesadores modernos tienen múltiples unidades de ejecución y un planificador que optimiza la ejecución. Las instrucciones condicionales pueden llevar a dos resultados posibles; en lugar de esperar, la CPU puede continuar con la ejecución especulativa, prediciendo o ejecutando ambas rutas. Si la ruta elegida es incorrecta, se descartan los efectos de la suposición errónea.
- Caché de la CPU: Una pequeña cantidad de memoria de alta velocidad alojada en la CPU para acelerar los accesos a memoria. Cuando se accede a información de la memoria física, una copia se guarda en la caché.

El Mecanismo de Explotación: Ignorando Controles de Privilegios
Los mecanismos de seguridad descritos se consideran generalmente seguros. Sin embargo, un proceso malintencionado puede explotarlos ignorando los controles de privilegios. El proceso accede a un espacio de direcciones virtual, y por razones de eficiencia, este espacio puede contener información de otros procesos, incluyendo el sistema operativo.
Aunque toda esta información se mapea a la memoria de cada proceso, se considera seguro porque los controles de privilegios de la CPU impiden el abuso. Un intento de acceder a memoria no autorizada debería generar una excepción. En teoría, la unidad de ejecución, el controlador de memoria y la comprobación de privilegios funcionan correctamente, cancelando la instrucción a medio camino y descartando los datos procesados.
El problema surge cuando, en las etapas iniciales de la ejecución de una instrucción, la unidad de ejecución solicita información mientras espera que se complete la comprobación de privilegios. Normalmente, esto no tiene efecto, ya que la información leída no se pone a disposición de otros procesos hasta que la comprobación de privilegios finaliza. Sin embargo, la caché de la CPU, aunque no sea directamente legible, puede ser sondada mediante ataques de canal lateral.
Ataques Coordinados a la Caché
Un proceso malintencionado puede determinar si la información de una dirección específica se encuentra en la caché de la CPU midiendo el tiempo de acceso. Si la información está en la caché, el acceso será más rápido que si se debe leer de la memoria principal.
Consideremos una instrucción que lee memoria indirectamente: "Lee el valor de memoria en la dirección dada por (5000 + el valor de la memoria en la dirección 2000)". Si la dirección 2000 contiene un valor que resulta en un acceso a una dirección (por ejemplo, 5004) que ha sido accedida recientemente, el ataque de caché puede detectar esta diferencia temporal. Esto indica que la dirección 2000 fue leída y su contenido utilizado para calcular la dirección 5004, aunque la lectura final de 5004 fuera abandonada.
Además, cuando el controlador de memoria accede a la dirección 5004, coloca una copia en la caché de la CPU en previsión de futuras lecturas. Esta copia en la caché persiste y puede ser detectada.
55CNSMM | "Ataque de canal lateral en el esquema RSA".
Mitigación y Vulnerabilidad en Procesadores Intel
CPU Vulnerables
Muchas CPU modernas, fabricadas desde finales de la década de 1990 hasta principios de 2018, poseen el diseño vulnerable necesario para estas brechas de seguridad. Una CPU que pudiera detectar y prevenir accesos no autorizados a memoria, o que no fuera susceptible a ataques de caché, estaría menos expuesta.
Sistemas Operativos y Máquinas Virtuales
La mayoría de los sistemas operativos de propósito general emplean niveles de privilegios y mapeo de memoria virtual. Un sistema operativo podría mitigar el impacto mediante software, asegurando que los intentos de sondeo no revelen información útil. En máquinas virtualizadas, el espacio de usuario invitado sigue siendo legible desde el núcleo del invitado, pero no desde el núcleo del sistema anfitrión.
Ataques a la Tensión y SGX: Plundervolt
La optimización de la CPU para el rendimiento y la eficiencia a menudo implica ajustar la frecuencia y la tensión. Mediante procedimientos como el "undervolting" u "overvolting" a través de interfaces de software privilegiadas, los sistemas modernos pueden funcionar en condiciones específicas. Procesadores como la serie Intel Core cuentan con esta tecnología.
Científicos, con el apoyo de proyectos como FutureTPM y SOPHIA, han demostrado que estas interfaces de software pueden ser explotadas para comprometer la seguridad del sistema. El ataque Plundervolt abusa de la interfaz de escalamiento de voltaje de Intel para vulnerar la integridad de los cálculos en enclaves Intel SGX (Software Guard Extensions), que están diseñados para proteger cálculos sensibles.
Plundervolt controla la tensión del procesador durante un cálculo del enclave, provocando fallos predecibles. Intel ha respondido con una actualización de microcódigo para mitigar los efectos de Plundervolt. Se cree que esta debilidad afecta principalmente a la seguridad de los enclaves SGX.

La Vulnerabilidad "Downfall" en Procesadores Intel
La vulnerabilidad "Downfall" ha comprometido varios procesadores Intel, con graves consecuencias para la seguridad. Las medidas de mitigación probablemente afectarán al rendimiento.
Los procesadores del lado del cliente de las arquitecturas Skylake, Tiger Lake e Ice Lake son los principales objetivos de Downfall. Esta vulnerabilidad permite a los hackers acceder a datos críticos, incluyendo claves AES y datos arbitrarios del kernel. También puede llevar a vulnerabilidades de autenticación al permitir a los atacantes eludir mecanismos de inicio de sesión seguros.
Miles de millones de procesadores Intel utilizados en ordenadores personales y en la nube son vulnerables a este fallo. Varias empresas han publicado avisos de seguridad para abordar el problema.
Impacto y Respuesta de Empresas
HP, Lenovo y otras empresas han reaccionado publicando actualizaciones de software y firmware para solucionar la vulnerabilidad en sus dispositivos. La mitigación de la vulnerabilidad requiere un enfoque multifacético, y muchos atacantes no podrían explotarla directamente a través de una red.
Intel ha reconocido la existencia de esta vulnerabilidad, que permite obtener indebidamente datos sensibles. La compañía asegura que el error no es exclusivo de sus chips y está presente en componentes de otros fabricantes, como AMD y ARM Holdings, con los que está colaborando en el desarrollo de soluciones a nivel sectorial.
Intel ha emitido actualizaciones de software y firmware, y planea lanzar más correcciones. La compañía desmiente que estas actualizaciones perjudiquen significativamente el rendimiento, afirmando que el efecto será dependiente de la carga de trabajo y no significativo para el usuario medio.
55CNSMM | "Ataque de canal lateral en el esquema RSA".
tags: #vulnerabilidad #en #chipse #intel