Une nouvelle attaque par canal latéral affectant plusieurs générations de processeurs Intel a été découverte, permettant la fuite de données via le registre EFLAGS.

La nouvelle attaque a été découverte par des chercheurs de l’Université Tsinghua, de l’Université du Maryland et d’un laboratoire informatique (BUPT) géré par le ministère chinois de l’Éducation et est différente de la plupart des autres attaques par canal latéral.

Au lieu de s’appuyer sur le système de cache comme de nombreuses autres attaques par canal latéral, cette nouvelle attaque exploite une faille dans l’exécution transitoire qui permet d’extraire des données secrètes de l’espace mémoire de l’utilisateur grâce à une analyse temporelle.

L’attaque fonctionne comme un canal secondaire pour Meltdown, une faille de sécurité critique découverte en 2018, affectant de nombreux microprocesseurs x86.

Meltdown exploite une fonction d’optimisation des performances appelée « exécution spéculative » pour permettre aux attaquants de contourner les mécanismes d’isolation de la mémoire pour accéder aux secrets stockés dans la mémoire du noyau, tels que les mots de passe, les clés de chiffrement et d’autres données privées.

Meltdown a été largement atténué par des correctifs logiciels, des mises à jour de microcode et des refontes matérielles; cependant, aucune solution n’a résolu le problème à 100 %, et la dernière méthode d’attaque peut fonctionner même dans des systèmes entièrement corrigés en fonction des configurations matérielles, logicielles et des correctifs.

Attaque temporelle d’exécution transitoire
La nouvelle attaque par canal latéral présentée dans un article technique publié sur Arxiv.org décrit une faille dans le changement du registre EFLAGS en exécution transitoire, affectant le timing des instructions JCC (jump on condition code).

Le registre EFLAGS est un registre CPU qui contient divers indicateurs liés à l’état du processeur, tandis que l’instruction JCC est une instruction CPU qui permet un branchement conditionnel basé sur le contenu du registre EFLAGS.

L’attaque se déroule en deux phases, la première étant de déclencher l’exécution transitoire et de coder les données secrètes via le registre EFLAGS, et la seconde de mesurer le temps d’exécution de l’instruction KCC pour décoder les données.

Les données expérimentales ont montré que l’attaque a atteint 100 % de récupération de données (fuite) pour les processeurs Intel i7-6700 et Intel i7-7700 et a eu un certain succès contre le nouveau processeur Intel i9-10980XE. L’expérience a été menée sur Ubuntu 22.04 jammy avec la version 5.15.0 du noyau Linux.

Cependant, les chercheurs notent que cette attaque temporelle n’est pas aussi fiable que les méthodes de canal latéral à l’état du cache, et pour obtenir de meilleurs résultats dans les puces récentes, l’attaque devrait être répétée des milliers de fois.

« Dans notre expérience, nous avons constaté que l’influence du registre EFLAGS sur le temps d’exécution de l’instruction Jcc n’est pas aussi persistante que l’état du cache », lit-on dans la partie sur l’évaluation des données expérimentales.

« Pendant environ 6 à 9 cycles après l’exécution transitoire, le temps d’exécution Jcc ne sera pas sur le point de construire un canal latéral. Empiriquement, l’attaque doit se répéter des milliers de fois pour une plus grande précision.

Les chercheurs admettent que les causes profondes de l’attaque restent insaisissables et émettent l’hypothèse qu’il existe un tampon dans l’unité d’exécution du processeur Intel, qui a besoin de temps pour revenir si l’exécution doit être retirée, un processus qui provoque un blocage si l’instruction suivante dépend sur la cible du tampon.

Cependant, ils proposent toujours des atténuations non triviales, telles que la modification de l’implémentation de l’instruction JCC pour rendre impossible la mesure de l’exécution contradictoire dans toutes les conditions, ou la réécriture de l’EFLAGS après l’exécution transitoire pour réduire son influence sur l’instruction JCC.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *