Planter des idées dans la tête d'un ordinateur
En bref
- Des chercheuses et chercheurs de l'ETH Zurich ont découvert une grave vulnérabilité dans certaines unités centrales de traitement (CPU).
- Les attaquants et attaquantes peuvent amener les CPU ciblés à exécuter certaines commandes afin d'obtenir des informations sensibles.
- Les chercheurs et chercheuses ont rapidement informé le fabricant afin de lui donner le temps de fournir un correctif de sécurité.
Tout le monde a, à un moment ou à un autre, fait l'expérience de l'influence des rêves sur notre humeur et nos actions. Cependant, mettre une idée dans la tête de quelqu'un d'autre pendant qu'il ou elle rêve afin de lui faire faire quelque chose de précis une fois réveillé relève encore de la science-fiction. Dans le film Inception de 2010, le personnage de Leonardo DiCaprio tente de convaincre l'héritier d'un riche homme d'affaires de démanteler l'empire de son père. Pour ce faire, il partage un rêve avec l'héritier dans lequel, par une habile manipulation, les convictions de l'héritier sur son père sont subtilement modifiées, l'amenant à abandonner l'entreprise de son défunt père.
S'il est impossible de partager des rêves et de faire germer de telles idées dans la réalité, une expérience très similaire a récemment été réalisée dans le monde de l'informatique. Une équipe de recherche de l'ETH Zurich dirigée par Kaveh Razavi, professeur au département des technologies de l'information et de l'ingénierie, a mis en évidence une grave vulnérabilité de certaines unités centrales de traitement (CPU), qui permet à un attaquant d'implanter l'équivalent d'une idée dans le CPU d'une victime, de l'amener à exécuter certaines commandes et de récupérer ainsi des informations. Kaveh Razavi et ses collègues présentent leurs recherches à la conférence USENIX Security 2023 qui se tient cette semaine.
Une attaque complexe
Si le document de recherche de Kaveh Razavi contient des noms qui rappellent James Bond et les films catastrophes - Spectre et Meltdown font leur apparition -, il s'agit pour l'essentiel d'informatique complexe. «En fait, tout comme le film du même nom, l'attaque Inception est particulièrement complexe et difficile à expliquer», explique Daniël Trujillo, étudiant en master, qui a découvert cette nouvelle attaque lors de son travail de thèse dans le groupe de Kaveh Razavi, supervisé par Johannes Wikner, étudiant en doctorat. «Pourtant», ajoute Johannes Wikner, «le cœur du problème de toutes ces attaques est assez simple - à savoir, le fait que l'unité centrale d'un ordinateur doit faire des suppositions en permanence, et que ces suppositions peuvent être faussées».
Dans les ordinateurs modernes, les suppositions sont nécessaires parce que pendant l'exécution d'un programme - un jeu, par exemple, ou un navigateur web - l'unité centrale doit prendre des centaines de millions de décisions par seconde. À certains moments de l'exécution, la commande suivante peut dépendre d'un choix effectué sur la base d'informations qui doivent être extraites de la mémoire de l'ordinateur. Les unités centrales sont devenues incroyablement rapides ces dernières années, mais la vitesse à laquelle les données peuvent être transférées de la mémoire (DRAM) à l'unité centrale n'a pas pu suivre cette accélération. Par conséquent, l'unité centrale devrait passer une grande partie de son temps à attendre des données fraîches pour prendre une décision.
Accélérer en devinant
C'est là que la devinette entre en jeu : sur la base de l'expérience passée, l'unité centrale crée une sorte de table de recherche et l'utilise pour deviner l'étape suivante la plus probable, qu'elle exécute ensuite. Dans la grande majorité des cas, l'unité centrale a raison et économise ainsi un temps de calcul précieux. Il arrive cependant qu'elle se trompe, et une telle erreur de prédiction peut être exploitée par un ou une pirate pour accéder à des informations sensibles.
«L'attaque Spectre, qui a été découverte en 2018, est basée sur de telles erreurs de prédiction», explique Kaveh Razavi, «mais au départ, il semblait que les fabricants avaient trouvé des moyens de l'atténuer.» En effet, les fabricants de puces ont prévu des fonctionnalités permettant de supprimer partiellement la table de recherche lors du passage d'un contexte de sécurité à un autre (c'est-à-dire lors de l'accès au noyau sensible de l'ordinateur) ou d'ajouter un bit d'information indiquant au processeur si une prédiction de la table de recherche a été créée ou non dans le noyau et peut, par conséquent, être fiable.
Planter une idée dans une unité centrale
Néanmoins, Kaveh Razavi et ses collègues ont décidé de vérifier si, malgré les nouvelles mesures de sécurité, une attaque pouvait être lancée. Après de longues recherches, ils et elles sont tombées sur quelque chose d'étrange : «Il semblait que nous pouvions faire croire aux processeurs fabriqués par AMD qu'ils avaient déjà vu certaines instructions, alors qu'en réalité, cela ne s'était jamais produit», explique Daniël Trujillo. Comme dans le film, les chercheurs et chercheuses ont pu implanter une idée dans l'unité centrale pendant qu'elle rêvait, en quelque sorte.
Par conséquent, la table de recherche - que l'unité centrale crée continuellement à partir d'instructions antérieures - a pu être manipulée une nouvelle fois. Comme l'unité centrale était convaincue que les entrées de la table de recherche provenaient d'instructions qu'elle avait déjà vues, la fonction de sécurité censée garantir que seules des prédictions fiables sont prises en considération a été contournée. Le groupe de recherche de l'ETH Zurich a ainsi pu faire fuir des données de n'importe quel endroit de la mémoire de l'ordinateur, y compris des informations sensibles telles que le hachage du mot de passe racine.
Grave vulnérabilité
Il s'agit bien sûr d'une faille de sécurité très grave, et Kaveh Razavi a donc informé AMD en février pour s'assurer qu'ils avaient le temps de proposer un correctif avant la publication de l'article de recherche (AMD a attribué le numéro CVE-2023-20569 à la faille). «Nous avons démontré le concept d'une nouvelle classe d'attaques dangereuses, qui est particulièrement pertinente dans le contexte de l'informatique en nuage, où plusieurs clients et clientes partagent le même matériel», explique Kaveh Razavi, qui ajoute : «Cela soulève également des questions pour l'avenir.» Il souhaite par exemple savoir s'il existe d'autres attaques similaires et si une attaque de type Inception est également possible sur des processeurs d'autres fabricants.