Retbleed : une nouvelle attaque d'exécution spéculative frappant Intel et AMD

La nouvelle a récemment éclaté quee un groupe de chercheurs de l'ETH Zurich a identifié une nouvelle attaque au mécanisme d'exécution spéculative des sauts indirects dans le CPU, qui permet d'extraire des informations de la mémoire du noyau ou d'organiser une attaque sur le système hôte à partir de machines virtuelles.

Les vulnérabilités portaient le nom de code Retbleed (déjà catalogué sous CVE-2022-29900, CVE-2022-29901) et sont de nature similaire aux attaques Spectre-v2.

La différence se résume à organiser l'exécution spéculative de code arbitraire en traitant l'instruction "ret" (retour), qui récupère l'adresse à sauter de la pile, plutôt que de sauter indirectement à l'aide de l'instruction "jmp", en chargeant l'adresse depuis la mémoire ou un registre CPU.

À propos de la nouvelle attaque, il est mentionné que un attaquant peut créer des conditions pour une prédiction fork incorrect et organiser un saut spéculatif intentionnel vers un bloc de code qui n'est pas prévu par la logique d'exécution du programme.

En fin de compte, le processeur déterminera que la prédiction de branchement n'était pas justifiée et annulera l'opération à son état d'origine, mais les données traitées Pendant l'exécution spéculative ils vont s'asseoir dans la cache et tampons microarchitecturaux. Si un bloc exécuté par erreur effectue un accès mémoire, alors son exécution spéculative conduira à l'installation dans le cache général et à la lecture de données en mémoire.

Pour déterminer les données restant dans le cache après l'exécution spéculative des opérations, l'attaquant peut utiliser des méthodes pour déterminer les données résiduelles via des canaux tiers, par exemple, en analysant les modifications du temps d'accès aux données en cache et non en cache.

Pour l'extraction intentionnelle d'informations à partir de zones à un niveau de privilège différent (par exemple, à partir de la mémoire du noyau), des «périphériques» sont utilisés: scripts présents dans le noyau, adaptés à la lecture spéculative de données à partir de la mémoire, en fonction des conditions externes, il peut être influencé par un attaquant.

Pour se protéger contre les attaques de classe Spectre classiques, qui utilisent des instructions de branche indirectes et conditionnelles, la plupart des systèmes d'exploitation utilisent la technique "retpoline", qui est basée sur le remplacement des opérations de branche indirecte par l'instruction "ret", pour laquelle une prédiction d'état de pile séparée est requise. unité est utilisée dans les processeurs, n'utilise pas de bloc de prédiction de branche.

Lors de l'introduction de retpoline en 2018, la manipulation d'adresse de type Spectre était considérée comme peu pratique pour le forking spéculatif avec l'instruction "ret".

Les chercheurs qui ont développé la méthode d'attaque Rebleed a démontré la possibilité de créer des conditions microarchitecturales pour lancer une transition spéculative à l'aide de l'instruction "ret" et a publié une boîte à outils prête à l'emploi pour identifier les séquences d'instructions appropriées (gadgets) pour exploiter la vulnérabilité du noyau Linux dans laquelle de telles conditions apparaissent.

Au cours de l'étude, un exploit de travail a été préparé qui permet, sur les systèmes équipés de processeurs Intel, à partir d'un processus non privilégié dans l'espace utilisateur, d'extraire des données arbitraires de la mémoire du noyau à un taux de 219 octets par seconde et avec une précision de 98 %.

En les processeurs AMD, l'efficacité de l'exploit est beaucoup plus élevée, puisque le taux de fuite est de 3,9 Ko par seconde. Comme exemple pratique, il est montré comment utiliser l'exploit proposé pour déterminer le contenu du fichier /etc/shadow. Sur les systèmes équipés de processeurs Intel, une attaque visant à déterminer le hachage du mot de passe root a été effectuée en 28 minutes, et sur les systèmes équipés de processeurs AMD, en 6 minutes.

L'attaque a été confirmée pour 6 à 8 générations de processeurs Intel sortis avant le troisième trimestre 2019 (y compris Skylake) et les processeurs AMD basés sur les microarchitectures Zen 1, Zen 1+ et Zen 2 sortis avant le deuxième trimestre 2021. Sur les nouveaux modèles de processeur, comme AMD Zen3 et Intel Alder Lake, ainsi que des processeurs ARM, le problème est bloqué par les mécanismes de protection existants. Par exemple, l'utilisation des instructions IBRS (Indirect Branch Restricted Speculation) permet de se protéger contre une attaque.

Préparation d'un ensemble de changements pour le noyau Linux et l'hyperviseur Xen, qui bloquent le problème par programmation sur les processeurs plus anciens. Le correctif proposé pour le noyau Linux modifie 68 fichiers, ajoute 1783 lignes et supprime 387 lignes.

Malheureusement, la protection entraîne des frais généraux importants : dans les textes réalisés sur les processeurs AMD et Intel, la dégradation des performances est estimée entre 14 % et 39 %. Il est préférable d'utiliser une protection basée sur les instructions IBRS, disponible dans les nouvelles générations de processeurs Intel et prise en charge depuis le noyau Linux 4.19.

Enfin, si vous souhaitez en savoir plus, vous pouvez consulter le détails dans le lien suivant.


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.