La nueva variante de Spectre roba datos protegidos por SGX de Intel

Los datos confidenciales protegidos por Intel SGX podrían estar abiertos a un nuevo ataque de side-channel. De acuerdo con los expertos en seguridad cibernética, una nueva variante del ataque de Spectre en los dispositivos que usan Intel puede usarse para abrir los enclaves seguros de Intel para ver su memoria.

El ataque side-channel de SgxPectre afecta a los programas con componentes sensibles, protegidos por los enclaves SGX (Extensiones de Guardia de Software) de Intel.

Intel-SGX

SGX está disponible en los nuevos chips Intel Core y permite a los desarrolladores aislar selectivamente códigos e información de aplicaciones para que se ejecuten en su propio entorno de ejecución.

Este enclave es creado por la CPU y permite que partes sensibles de una aplicación se ejecuten en su propia región de memoria dentro del enclave donde está protegido del software del sistema, incluidos los hipervisores y el sistema operativo. Microsoft también recientemente comenzó a apoyar a SGX en Azure, lo que permite a los desarrolladores proteger los datos de la amenaza del personal deshonesto en sus centros de datos.

Como explican los investigadores de seguridad cibernética de la Universidad Estatal de Ohio en un reporte sobre SgxPectre, los ataques Meltdown y Spectre en las CPU genera dudad sobre la resistencia de SGX y es que resulta que no es resistente y es realmente difícil de arreglar. Un atacante que use SgxPectre puede comprometer la confidencialidad de los enclaves SGX y conocer el contenido de la memoria del enclave.

Los investigadores de seguridad de datos explican que el ataque “explota la condición de race entre las referencias de memoria inyectadas y ejecutadas, que conducen a datos de caché observables de side-channel y la latencia de branch resolution”. El ataque se centra en dos características de hardware de las CPU de Intel que están diseñadas para mejorar el rendimiento de un chip a través de la ejecución especulativa.

Estos incluyen la predicción de branch del código del enclave, que puede ser manipulado por código fuera del enclave, y el almacenamiento en caché implícito de la memoria causado por instrucciones ejecutadas especulativamente.

“Las unidades de predicción de branch utilizadas en el modo enclave para predecir los objetivos no se limpian a fondo al entrar al enclave. Por lo tanto, el código fuera del enclave objetivo puede manipular los objetivos de la predicción de branch dentro del enclave objetivo”, explican los investigadores.

“El almacenamiento en memoria caché implícito causado por instrucciones ejecutadas especulativamente no se revierte adecuadamente después de descartar estas instrucciones, lo que significa que las instrucciones ejecutadas de forma especulativa, aunque nunca se hayan confirmado en la memoria, pueden conducir a cambios en el estado de la memoria caché observables por el adversario”.

Para explotar esta vulnerabilidad, el código del enclave necesita mostrar ciertos patrones de código. No obstante, estos patrones de código están presentes en el kit de desarrollo de software (SDK) de Intel para crear programas SGX. Rust-SGX y Graphene-SGX son vulnerables por la misma razón. Los profesionales de seguridad de datos dijeron que cualquier código creado con SDK se verá afectado.

El ataque puede mitigarse con la Indirect Branch Restricted Speculation  (IBRS), una de las soluciones que Intel envió en sus actualizaciones de micro código para la variante Spectre 2. Sin embargo, dado que las actualizaciones de micro código pueden revertirse, los desarrolladores que dependen de SGX en la nube necesitarán verificar el número de versión de seguridad de la CPU durante la atestación remota.

Los investigadores de seguridad cibernética han lanzado una herramienta de exploración de vulnerabilidades para encontrar patrones de códigos vulnerables en programas de enclave, y planean explotar SgxPectre de código abierto más adelante. Los problemas se informaron a Intel antes de que se publicara el documento.