GhostRace

20.03.2024

GhostRace: vulnerabilidad que te afecta tanto si tienes Intel como AMD… o ARM

Hoy os voy a hablar de GhostRace, una nueva forma de explotar sistemas uniendo los ataques de Spectre y las vulnerabilidades de Use-After-Free que son tan comunes en muchos exploits como hemos visto en el pasado. Es un artículo académico muy interesante, y de muy bajo nivel, pero merece la pena que entiendas qué es lo que hace, y qué es lo que significa así que vamos a repasar un poco estas dos vulnerabilidades y cómo las utiliza GhostRace.

Una de las mayores preocupaciones que tienen tanto los proveedores como los usuarios son las vulnerabilidades que tienen los componentes, las cuales pueden afectar de una forma muy amplia a toda una gama de piezas de nuestro ordenador. En este caso, ha vuelto a saltar la alarma de un problema que ya conocíamos, una vulnerabilidad relacionada con el procesador conocida como GhostRace, un nuevo tipo de ataque mediante ejecución especulativa que afecta a todas las arquitecturas modernas.

La ejecución especulativa es una función de los procesadores modernos que permite a los hilos de la CPU compartir recursos de forma más eficaz, pero al igual que muchos de los avances realizados a nivel de software, un atacante no autenticado puede utilizar una vulnerabilidad para revelar datos arbitrarios de la CPU. Este nuevo exploit denominado como GhostRace utiliza el mismo sistema que el detectado en 2016 Spectre V1, y algunos proveedores están seguros de que las medidas realizadas para frenar este exploit, también pueden utilizarse con el nuevo.

GhostRace, un exploit que afecta a todas las arquitecturas modernas

El problema que genera GhostRace se forma a partir de la ejecución especulativa, que como bien hemos explicado antes no es un proceso maligno, sino que más bien es necesario para ofrecer una velocidad superior a la hora de compartir recursos. El problema reside, en que esto puede dar lugar a una situación que se ha denominado como «condiciones de carrera», en la que los subprocesos independientes que intentan acceder a los recursos compartidos crean diversas series de vulnerabilidades de seguridad por hacerlo de forma poco sincronizada, siendo este el principal motivo por el que se le ha dado dicho nombre a la vulnerabilidad.

Esta información pude conocerla de mano de los investigadores de VUSec e IBM el día 12 de marzo, día en el que notificaron de una nueva forma de ataque de ejecución especulativa, indicando además el documento en el que se recoge toda la información sobre dicho exploit. Esta vulnerabilidad reconocida como CVE-2024-2193 se trata, como bien hemos indicado al principio, de un tipo de exploit que tiene relación con la exfiltración de datos, haciendo que la información de los afectados se pueda ver comprometida.

La respuesta de los proveedores frente a la vulnerabilidad de un procesador

En términos generales, los proveedores están preocupados por este problema, aunque está claro que unos más que otros, y es que mientras que los desarrolladores de Linux han comenzado a preparar contramedidas, AMD ha indicado que las mitigaciones existentes del exploit Spectre v1 de 2016, deberían seguir aplicándose a los posibles exploits similares, incluido obviamente GhostRace, ya que al final se trata de una vulnerabilidad que ataca la misma función, y prácticamente lo hace de la misma forma.

Es por ello, que desde la compañía creadora de los Ryzen han reconocido que se trata de un problema, indicando que como los fabricantes ya han tenido que hacer frente a este problema una vez, tan solo es cuestión de tiempo que se corrija esta vulnerabilidad. Por otra parte, los desarrolladores de Linux han probado una mitigación que se encontraba en el documento original para tratar de evitar este problema, aunque implica una sobrecarga de rendimiento de aproximadamente el 5%.

GhostRace, la vulnerabilidad de la que nadie escapa en el sector: ni hardware, ni software

El método usado ya es conocido, así que iremos a la novedad y lo realmente interesante, que no es más que el cómo aprovecha el hueco que dejan las CPU para lograr la información. Para acceder, el atacante usa las llamadas SRC (Speculative Race Conditions), las cuales usan las primitivas de sincronización de subprocesos que utilizan las ramas de adjudicación condicionales para realizar algo no visto hasta ahora: omitir microelectrónicamente las rutas especulativas usando una vulnerabilidad anterior.

Y sí, esta vulnerabilidad es Spectre V1. Haciéndolo fácil, se puede decir que es una vulnerabilidad que ataca a través de otra vulnerabilidad que ya ha sido parcheada anteriormente, saltándose totalmente, o parcialmente, dicho parche mediante el Sistema Operativo o firmware (microcódigo).

Explotando Spectre V1 mediante GhostRace los atacantes comprueban los límites de acceso a la memoria mediante una rama mal especulada por el procesador, y ahí logran acceder a la información sensible. Los investigadores lo explican así: