
Investigadores de tres universidades europeas han
revelado los detalles del primer ataque conocido contra
SGX .
El conjunto de instrucciones SGX (Software Guard eXtensions) permite a la aplicación crear enclaves, áreas en el espacio de direcciones virtuales que están protegidas de la lectura y escritura desde fuera de esta área por otros procesos, incluido el núcleo del sistema operativo. Los enclaves están aislados a nivel de hardware y software: esta memoria se separa físicamente del resto de la memoria del procesador y se cifra.
El ataque
Plundervolt (CVE-2019-11157) utiliza la interfaz del sistema operativo para controlar el voltaje y la frecuencia del procesador Intel, la misma interfaz que se utiliza para overclockear la CPU durante el overclocking. Al cambiar el voltaje de la CPU, extrae datos del enclave en unos minutos, incluidas las claves de cifrado.
Código de explotación de demostración
publicado en GitHub . Procesadores vulnerables:
- Intel Core 6, 7, 8, 9 y 10 generaciones
- Intel Xeon E3 v5 y v6
- Intel Xeon E-2100 y E-2200
Los investigadores lograron combinar los conceptos de dos ataques bien conocidos:
- Rowhammer : cambie el valor de bit de una celda DRAM de 1 a 0 y viceversa escribiendo datos en celdas vecinas.
- Procesador CLKSCREW Manipulación de potencia Escala dinámica de voltaje y frecuencia (DVFS).
Plundervolt combina los principios subyacentes a estos dos ataques. A través de DVFS, cambia el voltaje en las celdas de memoria SGX, lo que conduce a cambios de datos no deseados en el enclave.
El trabajo se basa en la ingeniería inversa previa de los procesadores Intel. Reveló qué registros MSR (ModelSpecific Register) son responsables del cambio dinámico en el voltaje de la CPU después de un comando de programa. Dichos registros se encuentran en todos los procesadores Intel.
Esquema de registro MSR no documentado con dirección 0x150Al final resultó que, en los procesadores vulnerables se produce un cambio de bits predecible. Por ejemplo, en el procesador Core i3-7100U, con una caída de voltaje de 118 mV, la operación
0x80D36 * 0x21 = 0x109b3f6
proporciona un valor predeciblemente defectuoso de
0xffffffffe109b417
a una frecuencia de 2 GHz.
Otros ejemplos de multiplicaciones fallidas en el Core i3-7100U a 2 GHz:
Estos pequeños cambios no violan la privacidad de SGX. En cambio, introducen errores en las operaciones de procesamiento de datos SGX. En otras palabras, Plundervolt no descifra SGX, pero cambia el resultado: "La subtensión induce un cambio en los bits en las instrucciones del procesador, como la multiplicación o las rondas de cifrado AES (AES-NI)", explica David Oswald, académico de la Universidad de Birmingham, uno de los autores del artículo científico. trabajo "Dado que SGX solo cifra los datos cuando se leen y escriben en la memoria (pero no dentro del procesador), la protección de la memoria SGX no evita estos errores (ya que los valores defectuosos se escriben en la memoria").
Plundervolt le permite ver mensajes cifrados que salen del enclave SGX y luego restaurar la clave secreta que se utilizó originalmente para cifrar datos.


Los investigadores han demostrado la efectividad del ataque al introducir errores en la implementación de Intel RSA-CRT y AES-NI, trabajando en el enclave SGX. Pudieron recuperar claves criptográficas completas con poco esfuerzo computacional.
Código para probar el ataque (repositorio en GitHub)El ataque descrito no requiere un aumento radical en el voltaje, por lo que no amenaza la seguridad física del chip. De hecho, esta propiedad de Plundervolt hace que un ataque sea aún más peligroso. Otra propiedad peligrosa es que es mucho más rápido que la mayoría de los otros ataques a los procesadores Intel, como Spectre, Meltdown, Zombieload, RIDL y otros. La tabla muestra el número de iteraciones hasta que se
0xAE0000 * 0x18
un error de multiplicación (
0xAE0000 * 0x18
) a diferentes valores de subtensión en el I3-7100U a 2 GHz:
Cambiar bits en las multiplicaciones AES es muy rápido. Por ejemplo, recuperar una clave AES lleva varios minutos, incluido el cálculo necesario para obtener la clave del texto cifrado fallido, dice Oswald.
Desafortunadamente para los atacantes, el ataque Plundervolt es difícil de realizar de forma remota. No puede atraer a un usuario a un sitio web y ejecutar JavaScript. El voltaje de la CPU por este método no cambia. Para funcionar, Plundervolt requiere que una víctima en la computadora sea root o admin. Esto requiere ingeniería social y el uso de exploits adicionales.
Plundervolt
no funciona en entornos virtualizados , como máquinas virtuales y servicios de computación en la nube, donde el sistema operativo invitado no tiene acceso a la interfaz que controla el voltaje del procesador.
Sin embargo, Plundervolt es un problema grave. El equipo de investigación notificó a Intel sobre la vulnerabilidad en junio de 2019, y el fabricante de la CPU ha estado trabajando en parches desde entonces. Las actualizaciones de firmware y BIOS se lanzaron el 10 de diciembre de 2019 como parte de las recomendaciones de seguridad
INTEL-SA-00289 . Después de instalar los parches en el BIOS, puede deshabilitar la interfaz para administrar el voltaje y la frecuencia del reloj.
Para obtener una descripción técnica del ataque, consulte el
artículo científico (pdf) , que se publicará en las
Actas del 41º Simposio IEEE sobre la colección de
Seguridad y Privacidad .