Plundervolt é un novo método de ataque aos procesadores Intel que afecta á tecnoloxía SGX

Intel liberado actualización de microcódigo que corrixe vulnerabilidade (CVE-2019-14607) permitindo mediante a manipulación do mecanismo de control dinámico de tensión e frecuencia na CPU, inicie danos no contido das celas de datos, incluso en áreas utilizadas para cálculos en enclaves Intel SGX illados. O ataque chámase Plundervolt e, potencialmente, permite a un usuario local aumentar os seus privilexios no sistema, provocar unha denegación de servizo e acceder a datos confidenciais.

O ataque é perigoso só no contexto de manipulacións con cálculos en enclaves SGX, xa que require dereitos de root no sistema para levar a cabo. No caso máis sinxelo, un atacante pode lograr a distorsión da información procesada no enclave, pero en escenarios máis complexos, a posibilidade de recrear as claves privadas almacenadas no enclave empregadas para o cifrado mediante os algoritmos RSA-CRT e AES-NI non é posible. excluídos. A técnica tamén se pode usar para xerar erros en algoritmos inicialmente correctos para provocar vulnerabilidades ao traballar coa memoria, por exemplo, para organizar o acceso a unha área fóra do límite do búfer asignado.
Código prototipo para realizar un ataque publicado en github

A esencia do método é crear condicións para a aparición de corrupcións de datos inesperadas durante os cálculos en SGX, das que non protexe o uso de cifrado e autenticación de memoria no enclave. Para introducir a distorsión, resultou que era posible usar interfaces de software estándar para controlar a frecuencia e a tensión, normalmente utilizadas para reducir o consumo de enerxía durante o tempo de inactividade do sistema e activar o máximo rendemento durante o traballo intensivo. As características de frecuencia e tensión abarcan todo o chip, incluíndo o impacto da computación nun enclave illado.

Ao cambiar a tensión, podes crear condicións nas que a carga non é suficiente para rexenerar unha célula de memoria dentro da CPU e o seu valor cambia. Diferenza fundamental do ataque RowHammer é que RowHammer permítelle cambiar o contido de bits individuais na memoria DRAM lendo cíclicamente os datos das células veciñas, mentres que Plundervolt permítelle cambiar os bits dentro da CPU cando os datos xa foron cargados da memoria para o seu cálculo. Esta característica permítelle ignorar os mecanismos de control de integridade e cifrado utilizados en SGX para os datos na memoria, xa que os valores na memoria seguen sendo correctos, pero poden ser distorsionados durante as operacións con eles antes de que o resultado se escriba na memoria.

Se este valor modificado se usa no proceso de multiplicación do proceso de cifrado, a saída rexéitase cun texto cifrado incorrecto. Ao ter a capacidade de contactar cun manejador en SGX para cifrar os seus datos, un atacante pode, causando fallos, acumular estatísticas sobre os cambios no texto cifrado de saída e, en poucos minutos, restaurar o valor da clave almacenada no enclave. Coñécense o texto de entrada orixinal e o texto cifrado de saída correcto, a clave non cambia e a saída dun texto cifrado incorrecto indica que algún bit foi distorsionado ata o valor oposto.

Analizados os pares de valores de textos cifrados correctos e corruptos acumulados durante varios fallos, utilizando métodos de análise diferencial de fallos (DFA, Análise diferencial de avarías) Pode prever claves probables utilizadas para o cifrado simétrico AES e, a continuación, analizando as interseccións de claves en diferentes conxuntos, determine a clave desexada.

Varios modelos de procesadores Intel vense afectados polo problema, incluíndo CPU Intel Core con 6
10ª xeración, así como a quinta e sexta xeración de Xeon E3, a primeira e a segunda xeración de Intel Xeon Scalable, Xeon D,
Xeon W e Xeon E.

Lembrámosche que a tecnoloxía SGX (Extensións de garda de software) apareceu nos procesadores Intel Core de sexta xeración (Skylake) e ofertas unha serie de instrucións que permiten que as aplicacións de nivel de usuario asignen áreas de memoria pechadas - enclaves, cuxos contidos non poden ser lidos nin modificados nin sequera polo núcleo e polo código que se executa nos modos ring0, SMM e VMM. É imposible transferir o control ao código no enclave usando funcións de salto e manipulacións tradicionais con rexistros e a pila; para transferir o control ao enclave, utilízase unha nova instrución especialmente creada que realiza unha comprobación de autoridade. Neste caso, o código colocado no enclave pode usar métodos de chamada clásicos para acceder a funcións dentro do enclave e instrucións especiais para chamar funcións externas. O cifrado da memoria Enclave úsase para protexerse contra ataques de hardware, como a conexión a un módulo DRAM.

Fonte: opennet.ru

Engadir un comentario