Certains processeurs EPYC d’AMD sont victimes d’une importante faille de sécurité. Elle se nomme CacheWrap et elle est identifiée sous la référence CVE-2023-20592.
Des chercheurs de l’Université de technologie de Graz et du Centre Helmholtz pour la sécurité de l’information ont publié un article à son sujet. Elle concerne certaines références EPYC d’anciennes générations. Cela va des EPYC Naples de première génération(SEV et SEV-ES) aux EPYC Milan de troisième génération (SEV, SEV-ES, SEV-SNP) en passant par les EPYC Rome de deuxième génération (SEV et SEV-ES) .
CacheWarp exploite un problème dans la technologie Secure Encrypted Virtualization (SEV) de certaines puces AMD. Elle cible en particulier les versions SEV-ES (Encrypted State) et SEV-SNP (Secure Nested Paging) au travers d’une attaque logicielle qui manipule la mémoire cache de la machine virtuelle. L’objectif est de contourner les contrôles d’intégrité présents afin d’injecter des failles sans être détecté.
Cachewarpattack – SEV
Le Secure Encrypted Virtualization (SEV) est une extension de processeur permettant une séparation plus sécurisée entre les machines virtuelles (VM) et l’hyperviseur sous-jacent. AMD SEV permet aux développeurs de déployer des machines virtuelles dans un environnement d’hyperviseur non approuvé en toute sécurité. En d’autres termes, cela signifie que les calculs dans le cloud peuvent être effectués sur des données confidentielles, même si le fournisseur de cloud n’est pas fiable ou compromis.
AMD SEV atteint ce niveau de protection en chiffrant les données de la machine virtuelle. Le chiffrement s’applique à la mémoire de la machine virtuelle ainsi qu’à son état de registre lors des changements de contexte. La variante la plus récente et la plus sécurisée de SEV, à savoir AMD SEV-SNP, empêche en outre les fournisseurs de cloud de modifier les données stockées dans la machine virtuelle.
CacheWarp, une faille dangereuse et déjà colmatée
Cette faille est dangereuse en raison de sa polyvalence. CacheWarp profite des faiblesses architecturales de SEV et non d’une vulnérabilité spécifique d’une machine virtuelle. Du coup elle est une menace généralisée pour tous les systèmes qui dépendent de SEV pour la sécurité. Maitrisée elle permet de contourner des mesures de sécurité robustes telles que la virtualisation chiffrée, ce qui représente un risque important pour la confidentialité et l’intégrité des données dans les environnements informatiques soit disant sécurisés.
AMD a déjà publié une mise à jour pour ses puces EPYC Milan au travers d”un correctif de microcode téléchargeable à chaud ainsi qu’une mise à jour de l’image du micrologiciel. Il est promis une action sans aucune dégradation des performances. La firme explique que CVE-2023-20592 est
un comportement incorrect ou inattendu de l’instruction INVD dans certains processeurs AMD permettant à un attaquant doté d’un hyperviseur malveillant d’affecter le comportement d’écriture différée de la ligne de cache du processeur, ce qui entraîne une perte potentielle de l’intégrité de la mémoire de la machine virtuelle invitée.
Enfin pour les puces EPYC de première ou deux deuxième génération (« Zen 1 », anciennement nom de code « Naples », « Zen 2 », anciennement nom de code « Rome ») AMD explique qu’il n’y a pas de correctif car
les fonctionnalités SEV et SEV-ES ne sont pas conçues pour protéger l’intégrité de la mémoire des machines virtuelles invitées et le SEV-SNP n’est pas disponible.