Tecnología

Si hay un nuevo ataque de Spectre, Intel y AMD están buscando nuevamente una solución

Filas de componentes de computadora de hermosos colores.

Desde 2018, una serie casi interminable de ataques comúnmente conocida como Spectre ha llevado a Intel y AMD a desarrollar defensas para mitigar vulnerabilidades que permiten que el malware extraiga contraseñas y otra información confidencial directamente del silicio. Ahora, los investigadores dicen que han desarrollado un nuevo ataque que destruye la mayoría, si no todas, de estas defensas en el chip.

Spectre obtuvo su nombre por el 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 en la ruta incorrecta, Spectre puede extraer datos confidenciales a los que se habría accedido si la CPU hubiera continuado por la ruta incorrecta. Estos exploits se conocen como ejecuciones temporales.

«Consecuencias peligrosas»

Desde que se describió Spectre por primera vez en 2018, han aparecido nuevas variantes casi todos los meses. En muchos casos, los fabricantes de chips tuvieron que desarrollar mecanismos de defensa nuevos o reforzados para las nuevas variantes con el fin de debilitar los ataques.

Por ejemplo, una protección clave de Intel llamada LFENCE evita que se envíen instrucciones más nuevas para su ejecución antes que las anteriores. Otras soluciones basadas en hardware y software, comúnmente conocidas como «vallas», construyen vallas digitales alrededor de los datos clasificados para protegerlos contra ataques de ejecución temporal que permitirían el acceso no autorizado.

Investigadores de la Universidad de Virginia anunciaron la semana pasada que habían encontrado una nueva versión de la ejecución temporal que elimina prácticamente todas las defensas en chip que Intel y AMD han implementado hasta la fecha. La nueva tecnología tiene como objetivo un búfer en chip que almacena temporalmente «microoperaciones». Estos son comandos simplificados que se derivan de instrucciones complejas. Al permitir que la CPU obtenga las instrucciones 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 fueron los primeros en utilizar el caché de microoperaciones como canal lateral o medio para realizar observaciones sobre los datos confidenciales almacenados en 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 inferir datos que de otro modo no estarían permitidos.

«La memoria caché de microoperaciones como canal lateral tiene varios efectos peligrosos», escribieron los investigadores en un artículo científico. “Primero, se omiten todas las técnicas que reducen las 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 está al frente de la tubería mucho antes de la ejecución, ciertas defensas que debilitan a 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 documento continúa:

La mayoría de las soluciones especulativas invisibles y basadas en cercas que existen se enfocan en ocultar los efectos secundarios de ejecución especulativa vulnerable involuntaria que ocurren en el back-end de la tubería del procesador, en lugar de inhibir la fuente de especulación en el front-end. Esto los hace vulnerables al ataque que describimos, en el que los secretos llamados especulativamente se exponen a través de un canal lateral del front-end antes de que un comando transitorio tenga la oportunidad de ser enviado para su ejecución. Esto elude una serie de mecanismos de defensa existentes. Además, debido al tamaño relativamente pequeño de la caché de microoperaciones, nuestro ataque es considerablemente más rápido que las variantes de Spectre existentes, que requieren la preparación y verificación de múltiples conjuntos de caché para la transmisión de información secreta, y es considerablemente más encubierto porque se utiliza el caché de micro-op. La única primitiva de divulgación, la caché de operaciones, introduce menos accesos a la caché de datos / instrucciones, y mucho menos fallas.

Votos en contra

Ha habido algunos contratiempos desde que los investigadores publicaron su trabajo. Intel no estuvo de acuerdo en que la nueva tecnología rompería las defensas existentes para proteger contra la ejecución temporal. En un comunicado, los funcionarios de la empresa escribieron:

Intel revisó el informe e informó a los investigadores que las soluciones alternativas existentes no se pasaron por alto y que este escenario se aborda en nuestra guía para la codificación segura. El software que sigue nuestras instrucciones ya está protegido de canales aleatorios, incluido el canal aleatorio en la caché de UOP. No se requieren nuevas medidas correctivas u orientación.

La ejecución transitoria utiliza código malicioso para explotar la ejecución especulativa. Los exploits, a su vez, eluden los controles fronterizos, los controles de autorización y otras medidas de seguridad integradas en las aplicaciones. El software que cumple con las Pautas de codificación segura de Intel es resistente a tales ataques, incluido el presentado 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 secreto e independiente. La técnica que los investigadores introdujeron la semana pasada usa código que incrusta secretos en los predictores para las ramas de la CPU, por lo que no sigue las recomendaciones de Intel, dijo una portavoz de la compañía en segundo plano.

AMD no respondió a tiempo para ser incluido en esta publicación.

Otro rechazo se produjo en una publicación de blog de Jon Masters, un investigador independiente en arquitectura de computadoras. Dijo que el documento, en particular el ataque entre dominios descrito en él, era «interesante de leer» y un «problema potencial», pero que hay formas de solucionar las vulnerabilidades, posiblemente invalidando el caché de microoperaciones cuando la barrera de privilegios es excedido.

«La industria tenía un gran problema con Spectre y, como resultado directo, se hicieron grandes esfuerzos para segregar privilegios, aislar cargas de trabajo y usar diferentes contextos», escribió Masters. «Dado este último documento, es posible que se necesite una limpieza, pero existen medidas correctivas disponibles, aunque con un costo de rendimiento».

No tan fácil

Ashish Venkat, profesor del Departamento de Ciencias de la Computación de la Universidad de Virginia y coautor del artículo de la semana pasada, estuvo de acuerdo en que la programación constante en el tiempo es una forma efectiva de escribir aplicaciones que son invulnerables a los ataques de canal lateral, incluidos los descritos. por el periódico la semana pasada. Sin embargo, dijo que la vulnerabilidad que se explota radica 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 utiliza programación constante en el tiempo y no hay indicios de cuándo cambiará esto. También reiteró la observación de Masters de que el enfoque del código ralentiza las aplicaciones.

La programación constante, me dijo, “no solo es extremadamente difícil en términos de esfuerzo de programación real, sino que también crea importantes desafíos de implementación asociados con el parcheo de todo el software sensible que se haya escrito. Debido a su rendimiento, generalmente solo se usa para pequeñas rutinas de seguridad especializadas. «

Según Venkat, la nueva tecnología es efectiva contra todos los chips Intel que se han desarrollado desde 2011. Me dijo que las CPU de AMD no solo son susceptibles al mismo exploit entre dominios, sino que también son susceptibles a un ataque por separado. Aprovecha el diseño de subprocesos múltiples simultáneos, ya que la memoria caché microoperativa en los procesadores AMD se comparte de manera competitiva. Como resultado, los atacantes pueden crear un canal de subprocesos cruzados encubierto 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 temporal conlleva graves riesgos, pero en la actualidad es principalmente teórica, ya que rara vez o nunca se utiliza de forma activa. Los desarrolladores de software, por otro lado, tienen muchos más motivos de preocupación, y esta nueva tecnología solo debería aumentar sus preocupaciones.

Más populares

To Top