SPOILER: un nuevo ataque de ejecución especulativa en procesadores Intel
Un grupo de investigadores del Instituto Politécnico de Worcester (EE. UU.) y la Universidad de Lübeck (Alemania) revelaron los detalles del nuevo ataque “SPOILER” al mecanismo de las operaciones especulativas en los procesadores.
El ataque es específico de los procesadores Intel y no se manifiesta en las CPU AMD y ARM. La técnica de ataque propuesta permite determinar el reflejo de las direcciones virtuales en la memoria física, lo que permite aumentar significativamente la efectividad de la realización de ataques conocidos de bajo nivel que manipulan el diseño de las páginas en la memoria física.
¿En qué consiste SPOILER?
Como el búfer de escritura puede afectar los datos cargados en el búfer de lectura (por ejemplo, cuando una operación de escritura incompleta puede afectar los datos de lectura especulativa), antes de confirmar la operación de lectura, se analiza la dependencia de las operaciones de escritura anteriores.
En el caso de las intersecciones, la operación de lectura especulativa se descarta y los contenidos de la celda del búfer se actualizan con los datos relevantes.
El problema es que es posible evaluar completamente la dependencia de la operación de escritura solo después de recibir información sobre la dirección física completa, por lo que en el momento de la lectura anticipada solo se realiza una verificación parcial basada en información incompleta sobre la dirección.
Una manipulación de este tipo provoca un retraso en el caso de un conflicto de acceso a direcciones físicas, cuya apariencia puede rastrearse.
Usando las instrucciones rdtscp y mfence, puede asegurarse de que el búfer de escritura esté lleno de direcciones con el mismo desplazamiento, pero en diferentes páginas de memoria virtual.
Además, al analizar los retrasos en el acceso a las áreas de memoria con las mismas compensaciones pero en diferentes páginas de memoria, un atacante puede detectar fallas en la determinación de dependencias en el búfer de acceso a la memoria ordenada y determinar el diseño de las páginas de memoria física.
SPOILER también beneficia a otros ataques
Según los investigadores, la técnica SPOILER permite que el ataque Prime + Probe acelere un ataque para determinar el contenido de la memoria mediante el análisis del estado de la memoria caché del procesador 4096 veces.
El método también es aplicable para determinar las páginas de memoria asignadas una tras otra, lo que permite aumentar la efectividad del ataque RowHammer, utilizado para cambiar selectivamente el contenido de la memoria de otros procesos, al 100%.
Esto incluye la posibilidad de implementar tales ataques desde máquinas virtuales, por ejemplo, utilizando el código JavaScript que se ejecuta en el navegador, a pesar de las medidas tomadas anteriormente en los navegadores para limitar la precisión del temporizador.
Las medidas de protección desarrolladas para Spectre no bloquean el ataque de SPOILER. Los ataques de clase Specter manipulan la ejecución especulativa de instrucciones individuales, cuyos resultados son descartados por el procesador después de determinar una predicción fallida, pero los rastros de ejecución se depositan en el caché común.
La técnica SPOILER implica el mecanismo de precarga del contenido de la memoria en los registros del procesador.
Para interactuar con la memoria en el procesador, el búfer es un acceso de memoria ordenado (MOB, Memory Order Buffer), que implementa dos búferes cíclicos, uno para escribir datos de los registros a la memoria y el otro para leer de la memoria a los registros.
El búfer de escritura siempre se analiza en el orden de las instrucciones, y el búfer de lectura permite la carga proactiva de datos en el caché, sin esperar la sincronización con el búfer de escritura y solo comprobando parcialmente la dependencia.
El problema ha sido evidente desde la primera generación de procesadores Intel Core.
Los procesadores AMD y ARM utilizan una lógica diferente para procesar el búfer de acceso ordenado a la memoria, por lo que el problema no los afecta.
Intel fue notificada de la vulnerabilidad hace 3 meses, pero aún no se han propuesto soluciones.
Fuente: arxiv.org
El artículo SPOILER: un nuevo ataque de ejecución especulativa en procesadores Intel ha sido originalmente publicado en Linux Adictos.