Des chercheurs en sécurité de Google ont publié des informations concernant une vulnérabilité (CVE-2024-56161) dans les processeurs AMD, affectant le chargeur de microcode et permettant de contourner le mécanisme de vérification de la signature numérique lors des mises à jour de microcode. Le chargement de microcode modifié permet de compromettre le mécanisme AMD SEV (Secure Encrypted Virtualization), utilisé dans les systèmes de virtualisation pour protéger les machines virtuelles des interférences du biais d'hyperviseur ou de l'administrateur du système hôte.
La vulnérabilité est causée par l'utilisation d'une fonction de hachage non sécurisée dans le code qui effectue la vérification de la signature numérique après le chargement du microcode dans le CPU. Pour exécuter l'attaque, des privilèges d'administrateur dans le système local sont nécessaires (capacité d'exécuter du code en mode ring0, sans être dans une machine virtuelle).
Lors de l'attaque, il est possible de s'immiscer dans le fonctionnement des systèmes invités, protégés par des extensions AMD SEV (Secure Encrypted Virtualization) et SEV-SNP (Secure Nested Paging), offrant des garanties d'intégrité de la mémoire machines virtuelles, isolant les registres du processeur et assurant un fonctionnement sécurisé avec des tables de pages mémoire imbriquées. Le mécanisme AMD SEV a été conçu pour empêcher le personnel des centres de données et des fournisseurs de cloud de modifier ou d'analyser le contenu de la mémoire des systèmes invités protégés, ainsi que d'altérer les calculs.
Les chercheurs ont développé un prototype d'exploit permettant de charger un microcode arbitraire dans le CPU, sans signature numérique. Pour démontrer le danger de la vulnérabilité, une mise à jour de microcode a été proposée, modifiant la logique de fonctionnement de l'instruction RDRAND, utilisée comme l'une des sources d'entropie dans les générateurs de nombres pseudo-aléatoires, utilisés lors de la génération de clés, de l'exécution d'opérations cryptographiques et pour la génération d'identifiants aléatoires.
Le changement entraîne le retour à la génération du RDRAND uniquement du nombre 4, au lieu d'une séquence aléatoire. Pour éviter la réalisation d'attaques réelles sur des systèmes de calculs confidentiels, le microcode modifié réinitialise le drapeau CF (carry flag), c'est-à-dire qu'il marque la valeur retournée comme erronée. Des détails supplémentaires et des outils pour générer le microcode modifié devraient être publiés le 5 mars, afin de donner aux utilisateurs le temps d'installer le correctif sur leurs systèmes. Un exemple réussi d'attaque a été démontré pour serveurs les processeurs AMD EPYC 7B13 (Milan) et AMD Ryzen 9 7940HS (Phoenix).
Le rapport de la société AMD indique que la vulnérabilité se manifeste dans les processeurs AMD basés sur les architectures Zen des 1 à 4 générations. La mise à jour du microcode corrigeant la vulnérabilité a été publiée le 13 décembre 2024 pour les processeurs de la série AMD EPYC 7001, 7002 et 7003 (Naples, Rome, Milan et Milan-X), et le 16 décembre pour la série AMD EPYC 9004 (Genoa, Genoa-X et Bergamo/Siena). Pour remédier à la vulnérabilité sur les systèmes utilisant l'attestation SEV-SNP, une mise à jour supplémentaire du firmware AMD SEV (fournie avec les mises à jour du BIOS par les fabricants de matériel) est requise.
De plus, une autre vulnérabilité a été signalée dans les processeurs AMD, permettant une attaque par canaux latéraux pour extraire des informations sur les calculs dans des systèmes invités protégés à l'aide du mécanisme AMD SEV. Le problème concerne les générations de processeurs AMD EPYC 1 à 4 et est lié à la possibilité d'extraire des données du cache processeur qui se déposent lors du fonctionnement de systèmes invités protégés. La méthode Prime+Probe peut être utilisée pour analyser le contenu du cache, impliquant de remplir le cache avec un ensemble de valeurs de référence et de déterminer les changements en mesurant le temps d'accès lors du remplissage répétitif. Il est noté que des méthodes précédemment proposées pour se protéger contre les attaques de type Spectre conviennent pour bloquer cette attaque.
Source : opennet.ru
