Plundervolt es un nuevo método de ataque a procesadores Intel que afecta a la tecnología SGX

Intel lanzado actualización de microcódigo que corrige vulnerabilidad (CVE-2019-14607), permitiendo mediante la manipulación del mecanismo de control dinámico de voltaje y frecuencia en la CPU, inicia daños al contenido de las celdas de datos, incluso en áreas utilizadas para cálculos en enclaves Intel SGX aislados. El ataque se llama Plundervolt y potencialmente permite que un usuario local aumente sus privilegios en el sistema, provoque una denegación de servicio y obtenga acceso a datos confidenciales.

El ataque sólo es peligroso en el contexto de manipulaciones con cálculos en enclaves SGX, ya que para su ejecución se requieren derechos de root en el sistema. En el caso más simple, un atacante puede lograr distorsionar la información procesada en el enclave, pero en escenarios más complejos, no existe la posibilidad de recrear las claves privadas almacenadas en el enclave utilizadas para el cifrado utilizando los algoritmos RSA-CRT y AES-NI. excluido. La técnica también se puede utilizar para generar errores en algoritmos inicialmente correctos y provocar vulnerabilidades al trabajar con la memoria, por ejemplo, para organizar el acceso a un área fuera del límite del búfer asignado.
Código prototipo para realizar un ataque. publicado en GitHub

La esencia del método es crear condiciones para la aparición de daños inesperados en los datos durante los cálculos en SGX, de los cuales el uso de cifrado y autenticación de memoria en el enclave no protege. Para introducir distorsión, resultó que era posible utilizar interfaces de software estándar para controlar la frecuencia y el voltaje, que generalmente se utilizan para reducir el consumo de energía durante el tiempo de inactividad del sistema y activar el máximo rendimiento durante el trabajo intensivo. Las características de frecuencia y voltaje abarcan todo el chip, incluido el impacto de la informática en un enclave aislado.

Al cambiar el voltaje, se pueden crear condiciones en las que la carga no es suficiente para regenerar una celda de memoria dentro de la CPU y su valor cambia. Diferencia clave del ataque filamartillo es que RowHammer le permite cambiar el contenido de bits individuales en la memoria DRAM leyendo cíclicamente datos de celdas vecinas, mientras que Plundervolt le permite cambiar bits dentro de la CPU cuando los datos ya se han cargado desde la memoria para su cálculo. Esta característica le permite omitir los mecanismos de control de integridad y cifrado utilizados en SGX para los datos en la memoria, ya que los valores en la memoria permanecen correctos, pero pueden distorsionarse durante las operaciones con ellos antes de que el resultado se escriba en la memoria.

Si este valor modificado se utiliza en el proceso de multiplicación del proceso de cifrado, la salida se rechaza con un texto cifrado incorrecto. Al tener la capacidad de contactar a un controlador en SGX para cifrar sus datos, un atacante puede, provocando fallas, acumular estadísticas sobre cambios en el texto cifrado de salida y, en unos minutos, restaurar el valor de la clave almacenada en el enclave. Se conocen el texto de entrada original y el texto cifrado de salida correcto, la clave no cambia y la salida de un texto cifrado incorrecto indica que algún bit se ha distorsionado al valor opuesto.

Habiendo analizado los pares de valores de textos cifrados correctos y corruptos acumulados durante varias fallas, utilizando métodos de análisis diferencial de fallas (DFA, Análisis de fallas diferenciales) pueden predecir claves probables utilizadas para el cifrado simétrico AES y luego, analizando las intersecciones de claves en diferentes conjuntos, determine la clave deseada.

Varios modelos de procesadores Intel se ven afectados por el problema, incluidas las CPU Intel Core con 6
Décima generación, así como la quinta y sexta generación de Xeon E10, la primera y segunda generación de Intel Xeon Scalable, Xeon D,
Xeon W y Xeon E.

Te recordamos que la tecnología SGX (Extensiones de protección de software) apareció en los procesadores Intel Core de sexta generación (Skylake) y ofertas una serie de instrucciones que permiten a las aplicaciones a nivel de usuario asignar áreas de memoria cerradas: enclaves, cuyo contenido no puede ser leído ni modificado ni siquiera por el kernel y el código que se ejecuta en los modos ring0, SMM y VMM. Es imposible transferir el control al código en el enclave utilizando funciones de salto tradicionales y manipulaciones con registros y la pila; para transferir el control al enclave, se utiliza una nueva instrucción especialmente creada que realiza una verificación de autoridad. En este caso, el código colocado en el enclave puede utilizar métodos de llamada clásicos para acceder a funciones dentro del enclave e instrucciones especiales para llamar a funciones externas. El cifrado de memoria Enclave se utiliza para proteger contra ataques de hardware, como la conexión a un módulo DRAM.

Fuente: opennet.ru

Añadir un comentario