Un groupe d’universitaires a révélé une nouvelle « attaque par faute logicielle » sur la virtualisation sécurisée cryptée d’AMD (SEV) technologie qui pourrait être potentiellement exploitée par des acteurs malveillants pour infiltrer des machines virtuelles (VM) chiffrées et même effectuer une élévation de privilèges.
L’attaque porte le nom de code CacheWarp (CVE-2023-20592) par des chercheurs du CISPA Helmholtz Center for Information Security. Cela affecte les processeurs AMD prenant en charge toutes les variantes de SEV.
« Pour cette recherche, nous avons spécifiquement examiné le dernier TEE d’AMD, AMD SEV-SNP, en nous appuyant sur l’expérience des attaques précédentes contre le TEE d’Intel », a déclaré le chercheur en sécurité Ruiyi Zhang à The Hacker News. « Nous avons trouvé l’instruction ‘INVD’ [flush a processor’s cache contents] pourrait être abusé dans le cadre du modèle de menace d’AMD SEV.
SEV, un extension à l’architecture AMD-V et introduit en 2016, est conçu pour isoler les machines virtuelles de l’hyperviseur en chiffrant le contenu de la mémoire de la machine virtuelle avec une clé unique.
L’idée, en un mot, est de protéger la machine virtuelle contre la possibilité que l’hyperviseur (c’est-à-dire le moniteur de la machine virtuelle) soit malveillant et ne puisse donc pas être fiable par défaut.
SEV-SNP, qui intègre Secure Nested Paging (SNP), ajoute « une forte protection de l’intégrité de la mémoire pour aider à prévenir les attaques malveillantes basées sur un hyperviseur telles que la relecture de données, le remappage de la mémoire, etc. afin de créer un environnement d’exécution isolé ». selon à AMD.
Mais CacheWarp, selon Zhang, permet de contourner les protections d’intégrité et de réaliser une élévation de privilèges et l’exécution de code à distance dans la machine virtuelle ciblée –
L’instruction `INVD` supprime tout le contenu modifié dans le cache sans les réécrire dans la mémoire. Par conséquent, l’attaquant peut abandonner toutes les écritures des machines virtuelles invitées et la machine virtuelle continue avec des données architecturalement obsolètes. Dans cet article, nous démontrons cela via deux primitives, « timewarp » et « dropforge ».
Pour le timewarp, nous pouvons réinitialiser ce que l’ordinateur a mémorisé à l’étape suivante. Cela oblige l’ordinateur à exécuter le code qu’il a exécuté auparavant, car il lit une adresse de retour obsolète dans la mémoire. L’ordinateur voyage ainsi dans le temps. Cependant, l’ancien code est exécuté avec de nouvelles données (la valeur de retour d’une autre fonction), ce qui entraîne des effets inattendus. Nous utilisons cette méthode pour contourner l’authentification OpenSSH, en nous connectant sans connaître le mot de passe.
Une autre méthode, appelée « Dropforge », permet à l’attaquant de réinitialiser les modifications apportées aux données par les machines virtuelles invitées. Avec une ou plusieurs suppressions, l’attaquant peut manipuler le flux logique d’exécution de l’invité de manière exploitable. Prenons l’exemple du binaire `sudo`, une valeur de retour est stockée dans la mémoire (pile) afin que l’attaquant puisse la réinitialiser à une valeur initiale. Cependant, la valeur initiale « 0 » nous donne le privilège d’administrateur même lorsque nous ne l’avons pas.
Avec cette combinaison, nous avons un accès illimité à la machine virtuelle.
Une exploitation réussie du bug architectural pourrait permettre à un attaquant de détourner le flux de contrôle d’un programme en revenant à un état antérieur et de prendre le contrôle de la VM. AMD a depuis a publié une mise à jour du microcode pour corriger « l’utilisation abusive des instructions ».
« Une équipe de Google Project Zero et de sécurité Google Cloud a vérifié la dernière version du TEE d’AMD (SEV-SNP) l’année dernière », a noté Zhang. « AMD affirme également que SEV-SNP empêche toutes les attaques contre l’intégrité. Cependant, notre attaque en brise l’intégrité. »
Plus tôt en août, les chercheurs du CISPA ont également révélé une attaque logicielle par canal latéral d’alimentation ciblant les processeurs Intel, AMD et Arm, baptisée Collide+Power (CVE-2023-20583), qui pourrait être utilisée pour divulguer des données sensibles en brisant les protections d’isolement.