Downfall, una vulnerabilidad que afecta procesadores Intel y permite acceder a tu información tus robar datos
Nuevamente, se ha descubierto una vulnerabilidad en el sistema de ejecución de instrucciones especulativas de los procesadores Intel, y esta vez un investigador de Google, dio a conocer que identifico una nueva vulnerabilidad (ya catalogada bajo CVE-2022-40982), denominada como «Downfall»
Downfall, es una vulnerabilidad que permite determinar el contenido de los XMM, YMM y Registros vectoriales ZMM, utilizados anteriormente en otros procesos al ejecutar instrucciones AVX en el mismo núcleo de la CPU.
Sobre Downfall
Sobre la vulnerabilidad, se menciona que un atacante sin privilegios con la capacidad de ejecutar su propio código en el sistema, podría usar la vulnerabilidad para filtrar datos de otros procesos de usuario, el kernel del sistema, enclaves Intel SGX aislados y máquinas virtuales.
Los registros de vectores filtrables se utilizan mucho en el cifrado, en las funciones de copia de memoria y en el procesamiento de cadenas, por ejemplo, estos registros se usan en la biblioteca Glibc en las funciones memcpy, strcmp y strlen, entre otras cosas. Desde un punto de vista práctico, la vulnerabilidad podría explotarse para determinar los datos que se procesan en instrucciones AES-NI o REP-MOVS (utilizadas en la función memcpy) en otros procesos, lo que podría filtrar claves de cifrado, datos confidenciales y contraseñas de usuario.
La vulnerabilidad se manifiesta en los procesadores Intel que admiten conjuntos de instrucciones extendidos AVX2 y AVX-512 (es decir que afecta a procesadores de la 6.ª a la 11 va generación), mientras que los procesadores Intel basados en las microarquitecturas Alder Lake, Raptor Lake y Sapphire Rapids no se ven afectados.
Al igual que con la vulnerabilidad Zenbleed, descubierta recientemente que afecta a los procesadores AMD Zen2, en Downfall, el motivo de la vulnerabilidad es la fuga de datos de los archivos de registro, que se utilizan para compartir el contenido de los registros en todas las tareas en el mismo núcleo de CPU.
La fuga se debe a una transferencia de datos especulativa al ejecutar la instrucción GATHER, disponible en las extensiones AVX2 y AVX-512, y diseñado para brindar acceso rápido a datos dispares en la memoria. Durante la ejecución de la instrucción GATHER, los datos antiguos del archivo de registro se utilizan en la ejecución especulativa de instrucciones dependientes. Estos datos no se reflejan directamente en los registros del software, pero se pueden determinar mediante técnicas de ataque de canal lateral diseñadas para los ataques Meltdown, como analizar los datos sobrantes en la memoria caché de la CPU.
Para explotar Downfall, se desarrollo una técnica de ataque se ha denominado Gather Data Sampling (GDS) y de la cual se han publicado prototipos de exploits para extraer claves criptográficas del proceso de otro usuario, filtrar datos después de que la función memcpy los copió en el kernel de Linux e interceptar caracteres impresos que quedan en registros vectoriales después de que otros procesos funcionan. Por ejemplo, muestra la capacidad de definir claves AES que se utilizan para cifrar datos en el proceso de otro usuario mediante la biblioteca OpenSSL.
El método mostró una alta eficiencia: al realizar un experimento con 100 claves diferentes, se determinaron el 100% de las claves AES-128 y el 86% de las claves AES-256 con la duración de cada intento para determinar no más de 10 segundos. En los sistemas en la nube, se puede utilizar un ataque para determinar los datos que se procesan en otras máquinas virtuales. Es posible que la vulnerabilidad se aproveche ejecutando código JavaScript en un navegador web.
Cabe mencionar que Intel se enteró del problema el año pasado (precisamente en el mes de agosto) y que la vulnerabilidad se hizo pública hasta apenas este año en la conferencia BlackHat USA y las correcciones para protegerse contra la vulnerabilidad ya se incluyen en las diversas actualizaciones del kernel de Linux que van desde la versión 6.4.9 6.1.44 hasta la 4.14.321.
Ademas de ello, entre las posibles medidas para evitar el impacto negativo de la protección contra la vulnerabilidad Downfall en el rendimiento se menciona realizar cambios en los compiladores para deshabilitar el uso de la instrucción GATHER o agregar la instrucción inmediatamente después de GATHER LFENCE, lo que deshabilita la ejecución preventiva de las siguientes instrucciones antes de que se hayan completado todas las confirmaciones anteriores.
Para los sistemas donde las correcciones de firmware no están disponibles, se ha deshabilitado la compatibilidad con todas las extensiones AVX, mientras que por la parte de la actualización del microcódigo de Intel, este también brinda la capacidad de usar la interfaz MSR para deshabilitar selectivamente la protección en el contexto de procesos individuales.
Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.