Vulnérabilité dans le CPU AMD permettant de contourner le mécanisme de protection SEV (Virtualisation Chiffrée Sécurisée)

Les chercheurs du Centre Helmholtz de sécurité de l'information (CISPA) ont publié une nouvelle méthode d'attaque, CacheWarp, qui permet de compromettre le mécanisme de protection AMD SEV (Virtualisation Sécurisée Chiffrée), utilisé dans les systèmes de virtualisation pour protéger les machines virtuelles contre les interventions du côté de l'hyperviseur ou de l'administrateur de l'hôte. La méthode proposée permet à un attaquant ayant accès à l'hyperviseur d'exécuter du code à distance et d'élever ses privilèges dans une machine virtuelle protégée par AMD SEV.

L'attaque repose sur l'exploitation d'une vulnérabilité (CVE-2023-20592), causée par un fonctionnement incorrect avec le cache lors de l'exécution de l'instruction processeur INVD, qui peut entraîner une désynchronisation des données dans la mémoire et le cache, en contournant les mécanismes de maintien de l'intégrité de la mémoire des machines virtuelles mis en œuvre via les extensions SEV-ES et SEV-SNP. La vulnérabilité concerne les processeurs AMD EPYC des première à troisième générations.

Pour les processeurs AMD EPYC de troisième génération (Zen 3), le problème a été corrigé dans la mise à jour du microcode de novembre, publiée hier par AMD (la correction n'entraîne pas de perte de performance). Pour les première et deuxième générations d'AMD EPYC (Zen 1 et Zen 2), aucune protection n'est prévue, car ces CPU ne prennent pas en charge l'extension SEV-SNP qui assure le contrôle de l'intégrité. machines virtuellesLes processeurs AMD EPYC de quatrième génération « Genoa », basés sur l'architecture « Zen 4 », ne sont pas vulnérables.

La technologie AMD SEV est utilisée pour isoler les machines virtuelles par des fournisseurs de cloud tels qu'Amazon Web Services (AWS), Google Cloud, Microsoft Azure et Oracle Compute Infrastructure (OCI). La protection AMD SEV est mise en œuvre via le chiffrement au niveau matériel de la mémoire des machines virtuelles. De plus, l'extension SEV-ES (État Chiffré) protège également les registres du CPU. Seul le système d'exploitation invité actuel a accès aux données déchiffrées, tandis que les autres machines virtuelles et l'hyperviseur, lors de toute tentative d'accès à cette mémoire, reçoivent un ensemble de données chiffrées.

La troisième génération de processeurs AMD EPYC a introduit une extension supplémentaire appelée SEV-SNP (Secure Nested Paging), qui garantit un fonctionnement sécurisé avec des tables de pages mémoire imbriquées. En plus du chiffrement global de la mémoire et de l'isolation des registres, SEV-SNP comprend des moyens supplémentaires pour protéger l'intégrité de la mémoire, empêchant les modifications dans la VM par l'hyperviseur. La gestion des clés de chiffrement est effectuée par un processeur de sécurité intégré au chip, le PSP (Platform Security Processor), basé sur l'architecture ARM.

L'essence de la méthode d'attaque proposée repose sur l'utilisation de l'instruction INVD pour annuler des blocs (lignes) dans le cache des pages modifiées (dirty) sans vider les données accumulées dans le cache vers la mémoire (write-back). Ainsi, cette méthode permet d'évacuer les données modifiées du cache, sans changer l'état de la mémoire. Pour réaliser l'attaque, il est proposé d'utiliser des exceptions logicielles (fault injection) pour interrompre le fonctionnement de la machine virtuelle à deux endroits : au premier endroit, l'attaquant appelle l'instruction "wbnoinvd" pour vider toutes les opérations d'écriture accumulées vers la mémoire, et au second endroit, il appelle l'instruction "invd" pour ramener les opérations d'écriture non répercutées en mémoire à leur ancien état.

Pour vérifier la vulnérabilité de leurs systèmes, un prototype d'exploit a été publié, permettant d'effectuer une injection d'exception dans une machine virtuelle protégée par AMD SEV, et de restaurer les modifications non répercutées en mémoire dans la VM à leur ancien état. Le retour à l'ancien état peut être utilisé pour modifier le déroulement de l'exécution du programme en restaurant l'ancien adresse de retour dans la pile ou pour être utilisé lors de l'entrée des paramètres d'anciennes sessions, pour lesquelles une authentification avait précédemment été réalisée, en rétablissant la valeur du drapeau d'authentification.

Par exemple, des chercheurs ont démontré la possibilité d'appliquer la méthode CacheWarp pour réaliser une attaque Bellcore sur l'implémentation de l'algorithme RSA-CRT dans la bibliothèque ipp-crypto, permettant ainsi de restaurer la clé privée en introduisant des erreurs lors du calcul de la signature numérique. Il a également été montré comment il est possible de falsifier les paramètres de vérification de session à OpenSSH lors d'une connexion distante à un système invité, puis de modifier l'état de vérification lors de l'exécution de l'utilitaire sudo pour obtenir des droits root sous Ubuntu 20.04. Le fonctionnement de l'exploit a été vérifié sur des systèmes avec des processeurs AMD EPYC 7252, 7313P et 7443.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster