Las CPUs Intel vuelven a no ser seguras, ni desactivar HT te salvará

Si hay algo que ha hecho mella en el consumidor medio ha sido la seguridad de los procesadores Intel. Aunque la compañía ha puesto toda la carne en el asador, los retrasos de sus nuevas arquitecturas y el consecuente arrastre de Skylake como pilar central ha hecho que corregirlas o paliarlas sea un problema. Hoy conocemos una nueva vulnerabilidad que eleva a otro nivel las conocidas que explotan la CPU mediante ejecución especulativa. Se hace llamar CrossTalk y en esta ocasión ni desactivar el HT te va a proteger de ella.

La ventaja que ha tenido en rendimiento Intel durante muchos años, en parte, se está volviendo contra ella. Uno de los puntos clave para ganar la batalla a AMD se basó en las llamadas predicciones de rama especulativa, la cual predice las rutas y ramificaciones que seguirá la información mediante algoritmos muy precisos y prepara los datos para su ejecución.

Esto ayuda al procesador a no gastar ciclos y recursos en esta tarea, por lo que se gana rendimiento general, el problema, es que como mostraron vulnerabilidades anteriores, es extremadamente propensa a los ataques.

CrossTalk, una vulnerabilidad de un nivel superior

Hasta ahora, todas las vulnerabilidades de las que hemos hablado y visto se basaban en una misma premisa: el atacante y la víctima tenían que compartir el mismo núcleo para extraer la información sensible por parte del primero. Pero esto ha cambiado radicalmente con CrossTalk, ya que este nuevo ataque permite que el código controlado por el atacante que se ejecuta en un núcleo filtre datos confidenciales del software de la víctima que se ejecuta en otro núcleo diferente.

Crosstalk-1

De ahí que desactivar HT para lograr una mitigación fácil y simple ya no sirva para nada con esta nueva vulnerabilidad. Con CrossTalk se puede inspeccionar el comportamiento de instrucciones complejas a través de un búfer de almacenamiento que contiene datos confidenciales y que comparten todos los núcleos de la CPU.

crosstalk-2

Esto permite burlar el sistema Intel Software Guard Extension o SGX, permitiendo filtrar claves privadas completas desde este enclave seguro y después de una firma digital. El atacante lo único que tiene que hacer con CrossTalk es obligar a que la información de otros núcleos se transfiera a un recurso más básico como un búfer LFB y luego utiliza la técnica RIDL para inspeccionar el contenido.

Un fallo en los accesos offcore permite la intrusión

Crosstalk-4

Aunque la información está micro codificada, algunas instrucciones complejas realizan accesos offcore a un búfer de la micro arquitectura, uno de tantos que comparten los núcleos y que se denominan como Staging Buffer o búfers de ensayo. Por el tipo de arquitectura de Intel, estos búfers tienen datos tan sensibles como los números aleatorios devueltos por el DRNG, los hashes del bootguard y datos confidenciales como claves de acceso codificadas y más.

crosstalk-3

CrossTalk entra de lleno en dicho búfer y puede leer toda la información sin que nadie se dé cuenta y de forma transparente para el procesador. Esto abre una nueva era de posibles vulnerabilidades de ejecución especulativa como ya lo hicieron Meltdown y Spectre, pioneras en su segmento, así que no es descartable próximas fugas en este sentido.

Mitigaciones

Crosstalk-architectures

Intel ya tiene su mitigación disponible y se comenzó a lanzar ayer 9 de junio de 2020, pero, aunque dicha mitigación bloquea todo el bus de memoria antes de actualizar el búfer provisional y solo lo desbloquea después de borrar su contenido, esto solo garantiza que no se exponga información a las solicitudes externas emitidas desde otros núcleos de la CPU.

Debido a la considerable sobrecarga de rendimiento de dicho bloqueo de todo el bus de memoria del sistema, Intel solo aplicó la mitigación para fortalecer una pequeña cantidad de instrucciones críticas de seguridad, específicamente RDRAND, RDSEED y EGETKEY (necesarias para generar números aleatorios para claves criptográficas). Esto significa que la salida de cualquier otra instrucción que emite solicitudes offcore todavía se puede filtrar a través de los núcleos de la CPU.

En otras palabras, la mitigación solo logra paliar el acceso a unas instrucciones concretas, pero hay otras que todavía son vulnerables. Por lo que es de esperar que más tarde llegue un nuevo micro código que termine por solventar el problema. Como buenos descubridores, Intel recompensó a todos aquellos involucrados en el proyecto mediante el programa para tal fin denominado como Intel Bug Bounty y les atribuyó la divulgación, donde la compañía fue avisada del descubrimiento en septiembre de 2018 y tras una extensión del tiempo del NDA para corregir dicha vulnerabilidad por su dificultad, en la noche de ayer se hizo pública.

Las arquitecturas afectadas son: Skylake, Broadwell, Kaby Lake, Coffee Lake y Coffe Lake R, Whiskey Lake y Cascade Lake. En cambio, Intel asegura que los procesadores Atom, Intel Xeon e Intel Core de 10 generación no se ven afectados, por lo que Comet Lake implementa ya las correcciones por hardware, algo que no sabíamos hasta ahora.