La société Intel mise à jour du microcode corrigeant (CVE-2019-14607), de provoquer des dommages au contenu des cellules de données à travers des manipulations du mécanisme de gestion dynamique de la tension et de la fréquence du CPU, y compris dans les zones utilisées pour les calculs dans des enclaves isolées Intel SGX. L'attaque a été nommée Plundervolt et permet potentiellement à un utilisateur local d'élever ses privilÚges dans le systÚme, de provoquer une panne de service et d'accéder à des données confidentielles.
L'attaque reprĂ©sente un danger uniquement dans le contexte de manipulations des calculs dans les enclaves SGX, car elle nĂ©cessite des droits root dans le systĂšme. Dans le cas le plus simple, un attaquant peut provoquer des distorsions dans les informations traitĂ©es dans l'enclave, mais dans des scĂ©narios plus complexes, il est possible de reconstituer les clĂ©s secrĂštes stockĂ©es dans l'enclave, utilisĂ©es pour le chiffrement avec des algorithmes RSA-CRT et AES-NI. La technique peut Ă©galement ĂȘtre utilisĂ©e pour gĂ©nĂ©rer des erreurs dans des algorithmes d'origine correcte afin de susciter des vulnĂ©rabilitĂ©s liĂ©es Ă la gestion de la mĂ©moire, par exemple en provoquant un accĂšs Ă une zone en dehors du tampon allouĂ©.
Prototype de code pour réaliser l'attaque sur GitHub
Le principe de la méthode consiste à créer des conditions pour provoquer des distorsions imprévues des données lors des calculs dans SGX, contre lesquelles le chiffrement et l'authentification de la mémoire dans l'enclave ne protÚgent pas. Il s'est avéré possible d'utiliser des interfaces de programmation standard pour gérer la fréquence et la tension, généralement utilisées pour réduire la consommation d'énergie pendant l'inactivité du systÚme et activer une performance maximale lors de travaux intensifs. Les caractéristiques de fréquence et de tension couvrent toute la puce, influençant également l'exécution des calculs dans l'enclave isolée.
En modifiant la tension, il est possible de crĂ©er des conditions oĂč la charge est insuffisante pour rĂ©gĂ©nĂ©rer la cellule de mĂ©moire Ă l'intĂ©rieur du CPU, ce qui entraĂźne une modification de sa valeur. La principale diffĂ©rence avec l'attaque RowHammer est une technique qui permet de modifier le contenu de bits individuels dans la mĂ©moire DRAM en lisant de maniĂšre cyclique les donnĂ©es des cellules voisines, tandis que Plundervolt permet de modifier les bits Ă l'intĂ©rieur du CPU une fois que les donnĂ©es ont dĂ©jĂ Ă©tĂ© chargĂ©es depuis la mĂ©moire pour effectuer des calculs. Cette caractĂ©ristique permet de contourner les mĂ©canismes de contrĂŽle d'intĂ©gritĂ© et de cryptage des donnĂ©es en mĂ©moire appliquĂ©s dans SGX, car les valeurs en mĂ©moire restent correctes, mais peuvent ĂȘtre altĂ©rĂ©es lors des opĂ©rations sur celles-ci, avant que le rĂ©sultat ne soit enregistrĂ© en mĂ©moire.
Si cette valeur modifiée est utilisée au cours d'une multiplication dans le processus de cryptage, alors la sortie donnera un texte chiffré incorrect. Ayant la possibilité d'appeler le gestionnaire SGX pour chiffrer ses données, un attaquant peut accumuler des statistiques sur les modifications du texte chiffré à la sortie et, en quelques minutes, retrouver la valeur de la clé stockée dans l'enclave. Le texte d'origine à l'entrée et le texte chiffré correct à la sortie sont connus, la clé ne change pas, et la sortie d'un texte chiffré incorrect indique qu'un bit a été altéré à une valeur opposée.
En analysant les paires de valeurs correctes et altérées des textes chiffrés accumulées lors de différentes pannes, à l'aide de méthodes d'analyse différentielle des pannes (DFA, ) il est possible les clés probables utilisées pour le cryptage symétrique AES, puis, en analysant les intersections des clés dans différents ensembles, de déterminer la clé recherchée.

Le problÚme affecte différents modÚles de processeurs Intel, y compris les CPU Intel Core de la 6e à la 10e génération, ainsi que la 5e et la 6e génération de Xeon E3, la 1Úre et la 2Úme génération de Intel Xeon Scalable, Xeon D,
Xeon W et Xeon E.
Rappelons que la technologie SGX (
Software Guard Extensions) est apparu dans les processeurs Intel Core de sixiĂšme gĂ©nĂ©ration (Skylake) et une sĂ©rie d'instructions permettant d'allouer aux applications au niveau utilisateur des zones de mĂ©moire protĂ©gĂ©es appelĂ©es enclaves, dont le contenu ne peut ĂȘtre lu ou modifiĂ© mĂȘme par le noyau ou le code s'exĂ©cutant en modes ring0, SMM et VMM. Il est impossible de transfĂ©rer le contrĂŽle Ă du code dans une enclave par des fonctions de transition traditionnelles et en manipulant les registres et la pile â pour transfĂ©rer le contrĂŽle dans l'enclave, une nouvelle instruction spĂ©cialement conçue est utilisĂ©e, effectuant une vĂ©rification des autorisations. Dans ce contexte, le code placĂ© dans l'enclave peut utiliser des mĂ©thodes classiques d'appel pour accĂ©der aux fonctions internes de l'enclave et une instruction spĂ©ciale pour appeler des fonctions externes. Pour se protĂ©ger contre les attaques matĂ©rielles, telles que la connexion au module DRAM, un chiffrement de la mĂ©moire de l'enclave est appliquĂ©.
Source : opennet.ru
