Un grupo de investigadores ha descubierto un nuevo ataque de fuga de datos que afecta a las arquitecturas de CPU modernas que admiten la ejecución especulativa.
Apodado carrera fantasma (CVE-2024-2193), es una variación de la vulnerabilidad de CPU de ejecución transitoria conocida como Spectre v1 (CVE-2017-5753). El enfoque combina ejecución especulativa y condiciones de carrera.
«Todas las primitivas de sincronización comunes implementadas usando ramas condicionales pueden ser ignoradas microarquitectónicamente en caminos especulativos usando un ataque de predicción errónea de rama, convirtiendo todas las regiones críticas arquitectónicamente libres de raza en Condiciones de Carrera Especulativas (SRC), permitiendo a los atacantes filtrar información del objetivo», dice el investigadores dicho.
Los hallazgos del Grupo de Investigación de Seguridad de Sistemas de IBM Research Europe y VUSec, el último de los cuales reveló otro ataque de canal lateral llamado GOLPE dirigido a procesadores modernos en diciembre de 2023.
Espectro se refiere a un clase de ataques de canal lateral que explotan la predicción de ramas y la ejecución especulativa en CPU modernas para leer datos privilegiados en la memoria, evitando las protecciones de aislamiento entre aplicaciones.
Si bien la ejecución especulativa es una técnica de optimización del rendimiento utilizada por la mayoría de las CPU, los ataques Spectre aprovechan el hecho de que las predicciones erróneas dejan rastros de accesos a la memoria o cálculos en las cachés del procesador.
«Los ataques Spectre inducen a una víctima a realizar operaciones especulativas que no ocurrirían durante el procesamiento en orden estrictamente serializado de las instrucciones del programa, y que filtran información confidencial de la víctima a través de un canal encubierto al adversario», dijeron los investigadores detrás del ataque Spectre. anotado en enero de 2018.
Lo que hace que GhostRace sea notable es que permite a un atacante no autenticado extraer datos arbitrarios del procesador utilizando condiciones de carrera para acceder a las rutas de código ejecutable especulativas aprovechando lo que se llama un ataque de uso concurrente especulativo después de la liberación (SCUAF).
Una condición de carrera es una situación indeseable que ocurre cuando dos o más procesos intentan acceder al mismo recurso compartido sin una sincronización adecuada, lo que genera resultados inconsistentes y abre una ventana de oportunidad para que un atacante realice acciones maliciosas.
«En términos de características y estrategia de explotación, una vulnerabilidad SRC es similar a una condición de carrera clásica», afirma el Centro de Coordinación del CERT (CERT/CC) explicado en un aviso.
«Sin embargo, es diferente en que el atacante explota dicha condición de carrera en una ruta ejecutada transitoriamente que se origina en una rama mal especulada (similar a Spectre v1), apuntando a un fragmento de código picante o dispositivo que finalmente revela información al atacante».
El resultado neto es que permite a un atacante con acceso a los recursos de la CPU acceder a datos confidenciales arbitrarios desde la memoria del host.
«Cualquier software, por ejemplo, sistema operativo, hipervisor, etc., que implemente primitivas de sincronización a través de ramas condicionales sin ninguna instrucción de serialización en esa ruta y que se ejecute en cualquier microarquitectura (por ejemplo, x86, ARM, RISC-V, etc.), que permita condiciones condicionales. sucursales para ser ejecutadas especulativamente, es vulnerable a los SRC», VUSec dicho.
Tras una divulgación responsable, AMD dicho su guía existente para Spectre «sigue siendo aplicable para mitigar esta vulnerabilidad». Los encargados del mantenimiento del hipervisor de código abierto Xen reconocieron que todas las versiones se ven afectadas, aunque dijeron que es poco probable que represente una amenaza grave a la seguridad.
«Por precaución, el equipo de seguridad de Xen ha proporcionado parches de refuerzo que incluyen la adición de un nuevo mecanismo LOCK_HARDEN en x86 similar al BRANCH_HARDEN existente», dijo Xen. dicho.
«LOCK_HARDEN está desactivado de forma predeterminada, debido a la incertidumbre de que exista una vulnerabilidad en Xen y a la incertidumbre sobre el impacto en el rendimiento. Sin embargo, esperamos que se realicen más investigaciones en esta área y creemos que es prudente implementar una mitigación. «