
Les chercheurs ont découvert une nouvelle et puissante attaque d’exécution transitoire appelée « Inception » qui peut divulguer des secrets et des données privilégiés à l’aide de processus non privilégiés sur tous les processeurs AMD Zen, y compris les derniers modèles.
Les attaques d’exécution transitoire exploitent une fonctionnalité présente sur tous les processeurs modernes appelée exécution spéculative, qui augmente considérablement les performances des processeurs en devinant ce qui sera exécuté ensuite avant une opération plus lente si elle est terminée.
Si l’estimation est correcte, le processeur a augmenté les performances en n’attendant pas la fin d’une opération, et s’il a mal deviné, il annule simplement la modification et continue l’opération en utilisant le nouveau résultat.
Le problème avec l’exécution spéculative est qu’elle peut laisser des traces que les attaquants peuvent observer ou analyser pour récupérer des données précieuses qui devraient autrement être protégées.
Des chercheurs de l’ETH Zurich ont maintenant combiné une technique plus ancienne appelée « Spéculation fantôme » (CVE-2022-23825) avec une nouvelle attaque d’exécution transitoire appelée « Training in Transient Execution » (TTE) pour créer une attaque « Inception » encore plus puissante.
La spéculation fantôme permet aux attaquants de déclencher des prédictions erronées sans avoir besoin d’aucune branche à la source de prédiction erronée, c’est-à-dire de créer une période d’exécution spéculative (« fenêtre transitoire ») à des instructions XOR arbitraires.
TTE est la manipulation des futures erreurs de prédiction en injectant de nouvelles prédictions dans le prédicteur de branche pour créer des exécutions spéculatives exploitables.
L’attaque Inception, identifiée comme CVE-2023-20569, est une nouvelle attaque qui combine les concepts décrits ci-dessus, permettant à un attaquant de faire croire au CPU qu’une instruction XOR (opération binaire simple) est une instruction d’appel récursive.
Cela l’amène à déborder le tampon de pile de retour avec une adresse cible contrôlée par l’attaquant, lui permettant de divulguer des données arbitraires à partir de processus non privilégiés s’exécutant sur n’importe quel processeur AMD Zen.

La fuite est possible même si toutes les atténuations des attaques d’exécution spéculative connues comme Spectre ou des détournements de flux de contrôle transitoires, comme Automatic IBRS, ont déjà été appliquées.
De plus, le taux de fuite de données obtenu grâce à Inception est de 39 octets/s, ce qui prendrait environ une demi-seconde pour voler un mot de passe à 16 caractères et 6,5 secondes pour une clé RSA.
L’équipe de l’ETH Zurich a publié des articles techniques distincts pour Inception et Phantom pour ceux qui souhaitent approfondir les spécificités des attaques.
Empêcher les attaques Inception
Les chercheurs affirment que tous les processeurs Ryzen et EPYC basés sur AMD Zen, de Zen 1 à Zen 4, sont vulnérables à Phantom et Inception.
Des variantes TTE spécifiques ont potentiellement un impact sur les processeurs Intel, mais Phantom est difficile à exploiter sur Intel grâce aux atténuations eIBRS.

Bien que la preuve de concept créée par l’équipe de l’ETH Zurich soit destinée à être exécutée sur Linux, les attaques devraient fonctionner sur n’importe quel système d’exploitation utilisant des processeurs AMD vulnérables, car il s’agit d’un défaut matériel et non logiciel.
Une stratégie pour atténuer le problème consisterait à vider complètement l’état du prédicteur de branche lors du basculement entre des contextes méfiants ; cependant, cela introduit une surcharge de performances comprise entre 93,1 % et 216,9 % sur les anciens processeurs Zen 1(+) et Zen 2.
Pour les processeurs Zen 3 et Zen 4, la prise en charge matérielle adéquate de cette stratégie d’atténuation était initialement absente, mais AMD a depuis publié des mises à jour du microcode pour activer cette fonctionnalité.
Il est recommandé aux propriétaires de processeurs AMD basés sur Zen d’installer les dernières mises à jour du microcode, qui peuvent également arriver dans le cadre des mises à jour de sécurité du fournisseur d’ordinateurs et/ou du système d’exploitation.
Un correctif pour la faille Phantom, CVE-2022-23825, a été publié dans la mise à jour Windows de juillet 2022.
Breachtrace a contacté AMD pour en savoir plus sur les calendriers de publication du microcode pour les architectures de puces concernées, mais nous n’avons pas encore eu de réponse au moment de la publication.