AEPIC Leak, un ataque que filtra claves Intel SGX y afecta a 10ª, 11ª y 12ª generacion
Hace poco se dio a conocer información sobre un nuevo ataque a los procesadores Intel, llamado «AEPIC Leak» (ya catalogado bajo CVE-2022-21233), este nuevo ataque conduce a la fuga de datos confidenciales de enclaves aislados de Intel SGX (Software Guard eXtensions).
A diferencia de los ataques de la clase Spectre, una fuga en AEPIC Leak ocurre sin el uso de métodos de recuperación de terceros, ya que la información sobre datos confidenciales se transmite directamente al obtener el contenido de los registros reflejados en la página de memoria MMIO (E/S mapeada en memoria).
En general, el ataque permite determinar los datos transferidos entre los cachés del segundo y último nivel, incluidos los contenidos de los registros y los resultados de las operaciones de lectura de la memoria, que previamente se procesaron en el mismo núcleo de la CPU.
El escaneo de la dirección de E/S en las CPU Intel basadas en la microarquitectura Sunny Cove reveló que los registros asignados en memoria del controlador local de interrupción programable avanzado (APIC) no son
correctamente inicializados. Como resultado, la lectura arquitectónica de estos registros devuelven datos obsoletos de la microarquitectura, por lo que ningún dato transferido entre L2 y el caché de último nivel pueden ser leído a través de estos registros.
Como el espacio de direcciones de E/S solo es accesible para usuarios privilegiados, ÆPIC Leak apunta a TEE de Intel, SGX. ÆPIC puede filtrar datos de enclaves SGX que se ejecutan en el mismo núcleo físico. Si bien ÆPIC Leak representaría una inmensa amenaza en entornos virtualizados, los hipervisores suelen hacer que no expongan los registros APIC locales a las máquinas virtuales, eliminando la amenaza en escenarios basados en la nube.
Similar al anterior ataque de ejecución transitoria dirigidos a SGX, ÆPIC Leak es más efectivo cuando se ejecuta en paralelo al enclave en el hiperproceso hermano. Sin embargo, la fuga de ÆPIC no requiere hiperprocesamiento y también puede filtrar enclave datos si el Hyperthreading no está disponible o está deshabilitado.
Presentamos dos nuevas técnicas para filtrar datos en uso, es decir, valores de registros de enclave y datos en reposo, es decir, datos almacenados en la memoria del enclave. Con Cache Line Freezing, presentamos una técnica que ejerce presión específica sobre la jerarquía de caché sin sobrescribir datos obsoletos…
Estas líneas de caché todavía parecen viajar a través de la jerarquía de caché, pero no sobrescriben los datos obsoletos. Con este objetivo registramos fugas de valores de las líneas de caché en el área de estado seguro (SSA).La segunda técnica, Enclave Shaking, explota la capacidad de que el sistema operativo pueda intercambiar páginas de enclave de forma segura. Intercambiando alternativamente las páginas del enclave hacia afuera y hacia adentro, en las páginas almacenadas los datos se fuerzan a través de la jerarquía de caché, lo que permite que ÆPIC pueda filtrar los valores sin siquiera continuar la ejecución del enclave. Explotamos ÆPIC Leak en combinación con
Cache Line Freezing y Enclave Shaking para extraer claves AES-NIy claves RSA de la biblioteca IPP de Intel e Intel SGX. Nuestro ataque pierde memoria de enclaves con 334,8 B/s y una tasa de acierto del 92,2 %.
Dado que el ataque requiere acceso a las páginas físicas de APIC MMIO, es decir, se requieren privilegios de administrador, el método se limita a atacar enclaves SGX a los que el administrador no tiene acceso directo.
Los investigadores han desarrollado un conjunto de herramientas que permite, en pocos segundos, determinar las claves AES-NI y RSA almacenadas en SGX, así como las claves de atestación de Intel SGX y los parámetros del generador de números pseudoaleatorios. El código del ataque está publicado en GitHub.
Intel anunció que está preparando una solución en forma de una actualización de microcódigo que agrega soporte para el lavado de búfer y agrega medidas adicionales para proteger los datos del enclave.
También se ha preparado una nueva versión del SDK para Intel SGX con cambios para evitar fugas de datos. Se alienta a los desarrolladores de sistemas operativos e hipervisores a usar el modo x2APIC en lugar del modo xAPIC heredado, que usa registros MSR en lugar de MMIO para acceder a los registros APIC.
El problema afecta a las CPU Intel de 10.ª, 11.ª y 12.ª generación (incluidas las nuevas series Ice Lake y Alder Lake) y se debe a una falla arquitectónica que permite el acceso a datos no inicializados que quedan en los registros APIC (Advanced Programmable Interrupt Controller) de operaciones anteriores.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.