El nuevo ataque Spectre una vez más envía a Intel y AMD a luchar por una solución

Filas de componentes de computadora de hermosos colores.

Desde 2018, una serie casi interminable de ataques ampliamente conocidos como Spectre ha mantenido a Intel y AMD luchando por desarrollar defensas para mitigar las vulnerabilidades que permiten al malware extraer contraseñas y otra información confidencial directamente del silicio. Ahora, los investigadores dicen que han ideado un nuevo ataque que rompe la mayoría, si no todas, de esas defensas en el chip.

Spectre obtuvo su nombre por su abuso de la ejecución especulativa, una característica en prácticamente todas las CPU modernas que predice las instrucciones futuras que las CPU podrían recibir y luego sigue un camino que es probable que sigan las instrucciones. Mediante el uso de código que obliga a una CPU a ejecutar instrucciones a lo largo de la ruta incorrecta, Spectre puede extraer datos confidenciales a los que se habría accedido si la CPU hubiera continuado por esa ruta incorrecta. Estos exploits se conocen como ejecuciones transitorias.

“Implicaciones peligrosas”

Desde que se describió Spectre por primera vez en 2018, han aparecido nuevas variantes casi todos los meses. En muchos casos, las nuevas variantes han requerido que los fabricantes de chips desarrollen defensas nuevas o aumentadas para mitigar los ataques.

Una protección clave de Intel conocida como LFENCE, por ejemplo, evita que las instrucciones más recientes se envíen a la ejecución antes que las anteriores. Otras soluciones basadas en hardware y software, ampliamente conocidas como “vallas”, construyen vallas digitales alrededor de los datos secretos para protegerlos contra ataques de ejecución transitorios que permitirían el acceso no autorizado.

Investigadores de la Universidad de Virginia dijeron la semana pasada que encontraron una nueva variante de ejecución transitoria que rompe prácticamente todas las defensas en el chip que Intel y AMD han implementado hasta la fecha. La nueva técnica funciona al apuntar a un búfer en el chip que almacena en caché las “microoperaciones”, que son comandos simplificados que se derivan de instrucciones complejas. Al permitir que la CPU recupere los comandos de forma rápida y temprana en el proceso de ejecución especulativa, las memorias caché micro-op mejoran la velocidad del procesador.

Los investigadores son los primeros en explotar el caché de microoperaciones como un canal lateral, o como un medio para realizar observaciones sobre los datos confidenciales almacenados dentro de un sistema informático vulnerable. Al medir el tiempo, el consumo de energía u otras propiedades físicas de un sistema objetivo, un atacante puede usar un canal lateral para deducir datos que de otra manera estarían fuera de los límites.

“El caché de microoperaciones como canal lateral tiene varias implicaciones peligrosas”, escribieron los investigadores en un artículo académico. “Primero, pasa por alto todas las técnicas que mitigan los cachés como canales laterales. En segundo lugar, estos ataques no son detectados por ningún ataque o perfil de malware existente. En tercer lugar, debido a que el caché de microoperaciones se encuentra al frente de la tubería, mucho antes de la ejecución, ciertas defensas que mitigan Spectre y otros ataques de ejecución transitoria al restringir las actualizaciones de caché especulativas siguen siendo vulnerables a los ataques de caché de microoperaciones “.

El artículo continúa:

La mayoría de las soluciones de especulación invisible y basadas en cercas existentes se enfocan en ocultar los efectos secundarios vulnerables involuntarios de la ejecución especulativa que ocurren en el backend de la tubería del procesador, en lugar de inhibir la fuente de especulación en el front-end. Eso los hace vulnerables al ataque que describimos, que revela secretos a los que se accede especulativamente a través de un canal lateral de front-end, antes de que una instrucción transitoria tenga la oportunidad de enviarse para su ejecución. Esto elude todo un conjunto de defensas existentes. Además, debido al tamaño relativamente pequeño de la caché de microoperaciones, nuestro ataque es significativamente más rápido que las variantes de Spectre existentes que se basan en cebar y sondear varios conjuntos de caché para transmitir información secreta, y es considerablemente más sigiloso, ya que utiliza el micro- op cache como su única primitiva de divulgación, introduciendo menos accesos a la caché de datos / instrucciones, y mucho menos fallas.

Voces disidentes

Ha habido cierto retroceso desde que los investigadores publicaron su artículo. Intel no estuvo de acuerdo con que la nueva técnica rompa las defensas ya implementadas para proteger contra la ejecución transitoria. En un comunicado, los funcionarios de la empresa escribieron:

Intel revisó el informe e informó a los investigadores que no se estaban eludiendo las mitigaciones existentes y que este escenario se aborda en nuestra guía de codificación segura. El software que sigue nuestra guía ya tiene protecciones contra canales incidentales, incluido el canal incidental de caché uop. No se necesitan nuevas mitigaciones u orientación.

La ejecución transitoria utiliza código malicioso para explotar la ejecución especulativa. Los exploits, a su vez, evitan las comprobaciones de límites, las comprobaciones de autorización y otras medidas de seguridad integradas en las aplicaciones. El software que sigue las pautas de codificación segura de Intel es resistente a tales ataques, incluida la variante presentada la semana pasada.

La clave de la guía de Intel es el uso de programación en tiempo constante, un enfoque en el que el código se escribe para ser independiente de los secretos. La técnica que los investigadores introdujeron la semana pasada usa código que incrusta secretos en los predictores de la rama de la CPU y, como tal, no sigue las recomendaciones de Intel, dijo una portavoz de la compañía en el trasfondo.

AMD no proporcionó una respuesta a tiempo para ser incluido en esta publicación.

Otro rechazo ha llegado en un entrada en el blog escrito por Jon Masters, investigador independiente en arquitectura de computadoras. Dijo que el documento, en particular el ataque entre dominios que describe, es una “lectura interesante” y una “preocupación potencial”, pero que hay formas de solucionar las vulnerabilidades, posiblemente invalidando el caché de microoperaciones al cruzar la barrera de privilegios.

“La industria tenía un gran problema en sus manos con Spectre y, como consecuencia directa, se invirtió una gran cantidad de esfuerzo en separar los privilegios, aislar las cargas de trabajo y utilizar diferentes contextos”, escribió Masters. “Es posible que se necesite algo de limpieza a la luz de este último documento, pero hay mitigaciones disponibles, aunque siempre con algún costo de rendimiento”.

No es tan simple

Ashish Venkat, profesor del departamento de informática de la Universidad de Virginia y coautor del artículo de la semana pasada, estuvo de acuerdo en que la programación en tiempo constante es un medio eficaz para escribir aplicaciones que son invulnerables a los ataques de canal lateral, incluidos los descritos. por el periódico de la semana pasada. Pero dijo que la vulnerabilidad que se está explotando reside en la CPU y, por lo tanto, debería recibir un parche de microcódigo.

También dijo que gran parte del software actual sigue siendo vulnerable porque no usa programación en tiempo constante, y no hay indicios de cuándo cambiará eso. También se hizo eco de la observación de Masters de que el enfoque del código ralentiza las aplicaciones.

La programación en tiempo constante, me dijo, “no solo es extremadamente difícil en términos del esfuerzo real del programador, sino que también implica importantes desafíos de implementación relacionados con el parcheo de todo el software sensible que se haya escrito. Por lo general, también se utiliza exclusivamente para pequeñas rutinas de seguridad especializadas debido a la sobrecarga de rendimiento “.

Venkat dijo que la nueva técnica es efectiva contra todos los chips de Intel diseñados desde 2011. Me dijo que además de ser vulnerables al mismo exploit entre dominios, las CPU de AMD también son susceptibles a un ataque por separado. Aprovecha el diseño de subprocesos múltiples simultáneos porque el caché de microoperaciones en los procesadores AMD se comparte de manera competitiva. Como resultado, los atacantes pueden crear un canal encubierto entre subprocesos que puede transmitir secretos con un ancho de banda de 250 Kbps y una tasa de error del 5,6 por ciento.

La ejecución transitoria presenta serios riesgos, pero por el momento, son en su mayoría teóricos porque rara vez o nunca se explotan activamente. Los ingenieros de software, por otro lado, tienen muchas más razones para preocuparse, y esta nueva técnica solo debería aumentar sus preocupaciones.

Leave a Reply

Your email address will not be published. Required fields are marked *