Un adversario podría utilizar una vulnerabilidad recién descubierta que afecta a los procesadores Intel para obtener acceso a información confidencial almacenada en enclaves e incluso ejecutar código arbitrario en sistemas vulnerables.
La vulnerabilidad (CVE-2021-0186, puntuación CVSS: 8,2) fue descubierta a principios de mayo de 2021 por un grupo de científicos de ETH Zurich, la Universidad Nacional de Singapur y la Universidad Nacional de Tecnología de Defensa de China y la utilizó para investigar un ataque contra la divulgación de datos confidenciales denominados «SmashEx», que pueden corromper los datos privados en el enclave y violar su integridad.
SGX (abreviatura de Software Guard eXtensions) se introdujo con los procesadores Skylake de Intel y permite a los desarrolladores ejecutar módulos de aplicación seleccionados en un área de almacenamiento segura completamente aislada llamada Enclave o Trusted Execution Environment (TEE), que está protegida de procesos en niveles de autorización más altos. el sistema operativo se ejecutará. SGX garantiza que los datos estén seguros incluso si el sistema operativo de una computadora ha sido manipulado o atacado.
«Para un funcionamiento normal, el diseño del SGX permite que el sistema operativo interrumpa la ejecución del enclave en cualquier momento mediante excepciones de hardware configurables», destacan los investigadores. “Esta característica permite que los tiempos de ejecución de enclave (por ejemplo, Intel SGX SDK y Microsoft Open Enclave) admitan excepciones en enclave o manejo de señales, pero también abre enclaves para errores de reentrada. SmashEx es un ataque que explota los SDK de enclave que no manejan con cuidado la reentrada en su manejo excepcional «.
Vale la pena señalar que un enclave también puede tener llamadas externas u OCALLS que permiten que las funciones de enclave llamen a la aplicación que no es de confianza y luego regresen al enclave. Sin embargo, si el enclave también maneja excepciones en el enclave (por ejemplo, interrupción del temporizador o división por cero), la vulnerabilidad proporciona una breve ventana para que un atacante local se apropie del flujo de control de la ejecución siguiendo inmediatamente las inserciones de excepción asincrónica del enclave.
Armado con esta capacidad, el atacante puede dañar el almacenamiento en el enclave para revelar datos confidenciales como claves privadas RSA o ejecutar código malicioso.
Debido a que SmashEx afecta los tiempos de ejecución que ayudan al manejo de excepciones en el enclave, los investigadores determinaron que «un flujo de retorno de OCALL y un flujo de manejo de excepciones de este tipo deben escribirse con cuidado para garantizar que se aniden de forma segura» y que «cuando el flujo de retorno de OCALL se interrumpe, el enclave debe estar en un estado consistente para que el flujo de manejo de excepciones proceda correctamente, y cuando el flujo de manejo de excepciones esté completo, el estado del enclave también debe estar listo para que el enclave se reanude «.
Desde entonces, Intel ha lanzado actualizaciones de software para mitigar esta vulnerabilidad con las versiones 2.13 y 2.14 del SGX SDK para Windows y Linux, respectivamente. Por su parte, Microsoft ha corregido el problema (CVE-2021-33767) en sus actualizaciones de Patch Tuesday de julio de 2021 con Open Enclave versión 0.17.1 del SDK. Se espera que los resultados del equipo de investigación se presenten el próximo mes en la Conferencia de seguridad informática y de comunicaciones de ACM.
«El manejo asincrónico de excepciones es ahora una funcionalidad estándar para aplicaciones del mundo real que utilizan cada vez más enclaves», dijeron los investigadores, y agregaron que la investigación «destaca la importancia de proporcionar garantías de atomicidad en la interfaz del sistema operativo-enclave para tales excepciones».