Existen una serie de problemas de vulnerabilidad que aprovechan la ejecución especulativa de una CPU para poder ejecutar código en principio no permitido. Ahora se repite la misma historia que años atrás. Debido a que se ha encontrado una nueva vulnerabilidad Spectre en los Core 12 de Intel y también en los procesadores ARM. ¿Cuáles son las causas de ello y potenciales soluciones?
Una de las virtudes de los procesadores fuera de orden es la llamada predicción o ejecución especulativa, la cual tiene importantes ventajas en el rendimiento. Sin embargo, abre una ventana para que en ese periodo en el que se ejecutan los potenciales hilos predictivos se puedan utilizar trampas para que la CPU ejecute programas o partes del código que en condiciones normales y por motivos de jerarquía y seguridad no podría.
El descubrimiento de Spectre y Meltdown hace unos años fue un auténtico mazazo para Intel, ya que ponía en peligro la seguridad de los datos sensibles de cientos de millones de usuarios. ¿La solución? Aprovechar que la unidad de control de la CPU es un microcontrolador en sí mismo para actualizarla. ¿Las consecuencias? Una perdida del rendimiento en las CPU ya a la venta y la necesidad de volver a la mesa de diseño para la predicción especulativa en futuros procesadores.
¿Qué es la nueva vulnerabilidad Spectre que afecta a los Core 12?
Intel junto al grupo de investigación para la seguridad VUSec hablaron de una vulnerabilidad del tipo Spectre en los Core 12 llamada branch history Injection o BHI. Su nivel de alcance no solo se limita a la última generación de CPU de Intel, sino también a las anteriores y a una serie de procesadores con ISA ARM. Por lo que se trata de una explotación a una forma en la que ejecución especulativa se ha implementado en estos procesadores. En cuanto a AMD, sus CPU no se ven afectadas por este problema.
El nuevo exploit realiza un bypass a las mitigaciones elBRS en el caso de las CPU de Intel y las CSV2 de ARM. Lo que les permite manipular el kernel del sistema operativo a través de la CPU para que haya fugas de datos. Dicho de manera resumida y que lo puede entender todo el mundo, sirve para conseguir información confidencial, incluyendo claves de acceso privado de los usuarios.
No olvidemos que la ejecución especulativa se basa en aprovechar la alta potencia de las CPU actuales para ejecutar ramas del código que dependen de una condición para activarse sin que esta se dé. Es decir, el procesador se adelanta a ellas y las ejecuta en modo privado de antemano, cuando la condición se cumple el resto de ramas del código no confirmadas se descartan. La brecha de seguridad consiste en inyectar código en la caché de datos o instrucciones para poder robar datos, ya que los sistemas de seguridad del procesador no funcionan en esos periodos.
¿Cuáles son los procesadores afectados por esta vulnerabilidad?
Si hablamos de Intel, se ven afectados todo lo que han lanzado desde 2013 en adelante y estad seguros, que los Core 13 con Raptor Lake y los Core 14 con Meteor Lake también se verán afectados al estar su diseño ya terminado y en fabricación. En cuanto a los de ARM son los Cortex A15, A57, A72 y los núcleos Neoverse V1, N1 y N2. Se desconoce si los de Apple y Qualcomm se ven afectados por ello al ser diseños a medida.
Por lo que tanto Intel como ARM deberán lanzar parches para el problema, pero no sabemos hasta qué punto veremos de nuevo recortado el rendimiento de las CPU de nuestros dispositivos. Sin duda Spectre en Core 12 y ARM es una de las peores noticias que hemos dado en mucho tiempo.