Así es GhostRace, la vulnerabilidad que afecta a todas las CPU o Sistemas Operativos y les hará perder un 5% del rendimiento

Parece que no hay mes que no se detecten vulnerabilidades, además, en los últimos tiempos, la mayoría están siendo de gravedad. Diseñar un procesador totalmente seguro es imposible, todos lo sabemos, pero aunque las vulnerabilidades son un problema que normalmente tiene solución, dicha respuesta para terminar con la inseguridad normalmente tiene una penalización de rendimiento. GhostRace no parece ser la excepción, y el problema es que afecta a toda CPU y Sistema Operativo, ya que ataca a la llamada Condiciones de Carrera Especulativa (SRC).

Aunque en el VU de la vulnerabilidad se dice que ataca a las CPU modernas que admiten ejecución especulativa, esto a día de hoy representa un grandísimo número de ellas, por no decir que son prácticamente todas, exceptuando los PC muy antiguo, realmente viejos.

Otra vez la ejecución especulativa en el punto de mira de la seguridad en CPU

iLeakage Apple vulnerabilidad Spectre

La vulnerabilidad ha sido descubierta por el grupo VUSec en la VU de Amsterdam e IBM, mediante Hany Ragab, Cristiano Giuffrida, Andrea Mambretti y Anil Kurmus. Una vez más, otra vulnerabilidad ataca a la llamada ejecución especulativa, y ya tenemos experiencia por todas las que han salido, siendo la más popular probablemente Spectre V1.

La ejecución especulativa, para los que estén despistados, es una técnica de implementación basada en hardware dentro de las CPU que optimiza un movimiento realmente curioso dentro del procesador: prevenir y optimizar el rendimiento al proporcionar concurrencia adicional cuando haya recursos disponibles de forma adicional.

En otras palabras y simplificando, intenta "predecir" mediante especulación qué parte de la CPU va a tener recursos disponibles para mover la información a trabajar hacia ellos. El problema es que esto deja rastro en registros, como accesos a la memoria o la caché, así como en los branch predictors, y ahí es precisamente donde atacan las vulnerabilidades, a esos datos en concreto.

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

GhostRace-1

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í:

GhostRace-CPU-atacada

Hardware: Hemos confirmado que todos los principales proveedores de hardware se ven afectados por los SRC ya que, independientemente de la implementación particular de la instrucción de comparación e intercambio, la rama condicional que sigue está sujeta a (mala) predicción de la rama. En otras palabras, todas las microarquitecturas afectadas por Spectre-v1 también se ven afectadas por los SRC.

Software: cualquier objetivo que dependa de ramas condicionales para determinar si debe ingresar a regiones críticas (un patrón de diseño común que se extiende mucho más allá de Linux) es vulnerable a los SRC.

En resumen, 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 permite la ejecución especulativa de sucursales condicionales, es vulnerable a los SRC. Como ocurre con otros ataques de ejecución especulativa, esto permite filtrar datos del software objetivo.

AMD ya ha confirmado que está afectada, el resto, de momento, calla

GhostRace-pérdida-rendimiento-CPU-Intel-y-AMD

AMD fue la primera que confirmó que está afectada, Linux Foundation y Red Hat también han declarado que tienen que parchear su hardware y software. En cambio, Amazon, Arm, Dell, Google, IBM, Intel, Linux Kernel y Xen todavía no se han pronunciado.

El porqué es simple: parchear GhostRace va a tener un impacto en el rendimiento, y todos quieren pronunciarse cuando tengan datos en la mano así como las actualizaciones de Microcódigo con Linux y Microsoft. El problema es que a todos, AMD incluida, les ha pillado un poco con el pie cambiado, porque reconocer el problema no implica tener una solución, aunque los rojos ponen algo de calma:

AMD recomienda seguir las pautas publicadas anteriormente con respecto a los ataques de tipo Spectre:

https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/software-techniques-for-managing-speculation.pdf

AMD cree que la guía anterior sigue siendo aplicable para mitigar esta vulnerabilidad.

Dicho esto, ¿cuánto nos va a costar a todos esta nueva vulnerabilidad en términos de rendimiento? Pues las primeras estimaciones en Linux afirman que está sobre el 5% aproximadamente, sin importar si la CPU es Intel, AMD o Arm. Por lo tanto, ya tenemos el primer dato clave, el cual ahora tiene que ser cotejado y probado en sistemas de Microsoft, porque normalmente en Windows el número incrementa un poco.

Se espera que los parches lleguen en breve mediante Linux Kernel y Windows Update, así como actualizaciones de BIOS con nuevo microcódigo, pero no hay fechas de momento.