Intel Software Guard Extensions ( SGX ) es un conjunto de códigos de instrucciones que implementan un entorno de ejecución confiable que están integrados en algunas unidades centrales de procesamiento (CPU) de Intel . Permiten que el código de nivel de usuario y del sistema operativo defina regiones privadas protegidas de la memoria, llamadas enclaves . [1] [2] SGX está diseñado para ser útil para implementar computación remota segura, navegación web segura y administración de derechos digitales (DRM). [3] Otras aplicaciones incluyen la ocultación de algoritmos propietarios y de claves de cifrado . [4]
SGX implica el cifrado por parte de la CPU de una parte de la memoria (el enclave ). Los datos y el código que se originan en el enclave se descifran sobre la marcha dentro de la CPU, [4] lo que los protege de ser examinados o leídos por otro código, [4] incluido el código que se ejecuta en niveles de privilegio más altos , como el sistema operativo y cualquier hipervisor subyacente . [1] [4] [2] Si bien esto puede mitigar muchos tipos de ataques, no protege contra los ataques de canal lateral . [5]
Un cambio de rumbo de Intel en 2021 resultó en la descontinuación de SGX de los procesadores Intel Core de 11.ª y 12.ª generación , pero el desarrollo continúa en Intel Xeon para uso empresarial y en la nube. [6] [7]
SGX se introdujo por primera vez en 2015 con los microprocesadores Intel Core de sexta generación basados en la microarquitectura Skylake .
La compatibilidad con SGX en la CPU se indica en el bit 02 de EBX del CPUID "Structured Extended feature Leaf", [8] pero su disponibilidad para las aplicaciones requiere compatibilidad con BIOS / UEFI y habilitación opcional, lo que no se refleja en los bits del CPUID. Esto complica la lógica de detección de características para las aplicaciones. [9]
En 2014 , se agregó la emulación de SGX a una versión experimental del emulador del sistema QEMU . [10] En 2015, los investigadores del Instituto de Tecnología de Georgia lanzaron un simulador de código abierto llamado "OpenSGX". [11]
Un ejemplo de SGX utilizado en seguridad fue una aplicación de demostración de wolfSSL [12] que lo utilizó para algoritmos de criptografía.
La microarquitectura Intel Goldmont Plus (Gemini Lake) también contiene soporte para Intel SGX. [13]
Tanto en la 11.ª como en la 12.ª generación de procesadores Intel Core, SGX aparece como "obsoleto" y, por lo tanto, no es compatible con procesadores de "plataforma cliente". [6] [14] [15] Esto eliminó la compatibilidad con la reproducción de discos Blu-ray Ultra HD en software con licencia oficial, como PowerDVD . [16] [17] [18]
El 27 de marzo de 2017, investigadores de la Universidad Tecnológica de Graz en Austria desarrollaron una prueba de concepto que puede obtener claves RSA de enclaves SGX que se ejecutan en el mismo sistema en cinco minutos utilizando ciertas instrucciones de CPU en lugar de un temporizador de grano fino para explotar los canales laterales de la memoria caché DRAM . [19] [20] Daniel Gruss et al. presentaron y publicaron una contramedida para este tipo de ataque en el Simposio de Seguridad USENIX en 2017. [21] Entre otras contramedidas publicadas, una contramedida para este tipo de ataque se publicó el 28 de septiembre de 2017, una herramienta basada en compilador, DR.SGX, [22] que afirma tener un rendimiento superior con la eliminación de la complejidad de implementación de otras soluciones propuestas.
El grupo LSDS del Imperial College de Londres mostró una prueba de concepto de que la vulnerabilidad de seguridad de ejecución especulativa de Spectre se puede adaptar para atacar el enclave seguro. [23] El ataque Foreshadow , divulgado en agosto de 2018, combina la ejecución especulativa y el desbordamiento del búfer para eludir el SGX. [24] Un aviso de seguridad y mitigación para este ataque, también llamado L1 Terminal Fault, se emitió originalmente el 14 de agosto de 2018 y se actualizó el 11 de mayo de 2021. [25]
El 8 de febrero de 2019, investigadores de la Universidad Tecnológica de Graz ( Austria ) publicaron hallazgos que mostraban que en algunos casos es posible ejecutar código malicioso desde el propio enclave. [26] El exploit implica escanear la memoria del proceso para reconstruir una carga útil, que luego puede ejecutar código en el sistema. El documento afirma que debido a la naturaleza confidencial y protegida del enclave, es imposible que el software antivirus detecte y elimine el malware que reside en él. Intel emitió un comunicado en el que afirmaba que este ataque estaba fuera del modelo de amenaza de SGX, que no pueden garantizar que el código ejecutado por el usuario provenga de fuentes confiables e instó a los consumidores a ejecutar solo código confiable. [27]
Existe una proliferación de ataques de canal lateral que plagan las arquitecturas informáticas modernas. Muchos de estos ataques miden variaciones leves y no deterministas en la ejecución del código, por lo que el atacante necesita muchas mediciones (posiblemente decenas de miles) para descubrir los secretos. Sin embargo, el ataque MicroScope permite que un sistema operativo malicioso reproduzca el código una cantidad arbitraria de veces independientemente de la estructura real del programa, lo que permite docenas de ataques de canal lateral. [28] En julio de 2022, Intel presentó un parche de Linux llamado AEX-Notify para permitir que el programador del enclave SGX escriba un controlador para este tipo de eventos. [29]
Los investigadores de seguridad pudieron inyectar fallas específicas de tiempo en la ejecución dentro del enclave, lo que resultó en una fuga de información. El ataque se puede ejecutar de forma remota, pero requiere acceso al control privilegiado del voltaje y la frecuencia del procesador. [30] El 14 de agosto de 2018 se emitió originalmente un aviso de seguridad y una mitigación para este ataque, que se actualizó el 20 de marzo de 2020. [31]
La inyección de valor de carga [32] [33] inyecta datos en un programa con el objetivo de reemplazar el valor cargado desde la memoria, que luego se utiliza durante un breve período antes de que se detecte el error y se revierta, durante el cual LVI controla los datos y el flujo de control. El 10 de marzo de 2020 se emitió originalmente un aviso de seguridad y una mitigación para este ataque y se actualizó el 11 de mayo de 2021. [34]
SGAxe, [35] una vulnerabilidad de SGX publicada en 2020, extiende un ataque de ejecución especulativa en la memoria caché, [36] filtrando el contenido del enclave. Esto permite a un atacante acceder a las claves privadas de la CPU utilizadas para la certificación remota. [37] En otras palabras, un actor de amenazas puede eludir las contramedidas de Intel para violar la confidencialidad de los enclaves de SGX. El ataque SGAxe se lleva a cabo extrayendo claves de certificación del enclave de citas privadas de SGX que están firmadas por Intel. El atacante puede hacerse pasar por máquinas Intel legítimas firmando citas de certificación SGX arbitrarias. [38] Un aviso de seguridad y mitigación para este ataque, también llamado Fuga de datos del procesador o Desalojo de caché, se emitió originalmente el 27 de enero de 2020 y se actualizó el 11 de mayo de 2021. [39]
En 2022, los investigadores de seguridad descubrieron una vulnerabilidad en el controlador de interrupciones programable avanzado (APIC) que permite a un atacante con privilegios de administrador/root obtener acceso a claves de cifrado a través del APIC inspeccionando las transferencias de datos de la caché L1 y L2 . [40] Esta vulnerabilidad es el primer ataque arquitectónico descubierto en CPU x86 . Esto se diferencia de Spectre y Meltdown, que utilizan un canal lateral ruidoso . Este exploit afecta actualmente a los microprocesadores Intel Core de décima, undécima y duodécima generación y Xeon Ice Lake. [41] [42]
La firma del código se genera con una clave privada que se encuentra únicamente en el enclave. La clave privada se codifica mediante elementos “fuse” en el chip. En el proceso, se queman bits, lo que les otorga el valor binario 0. Esta clave privada no se puede extraer porque está codificada en el hardware. Mark Ermolov, Maxim Goryachy y Dmitry Sklyarov refutaron la afirmación de fiabilidad del concepto SGX en https://github.com/chip-red-pill/glm-ucode#.
Se ha debatido durante mucho tiempo si SGX permite la creación de malware superior. En octubre de 2022, investigadores de la Universidad de Oxford publicaron un artículo [43] en el que se analizan las posibles ventajas y desventajas de los atacantes al abusar de SGX para el desarrollo de malware. Los investigadores concluyen que, si bien puede haber vulnerabilidades temporales de día cero que se puedan abusar en el ecosistema SGX, los principios básicos y las características de diseño de los entornos de ejecución confiables (TEE) hacen que el malware sea más débil que un malware en estado salvaje; de lo contrario, los TEE no hacen contribuciones importantes al malware.
{{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace )