Comment implanter des idées dans un ordinateur
Des chercheurs de l'ETH Zurich ont découvert une nouvelle attaque sur les puces informatiques AMD, dans laquelle l'attaquant implante une "idée" dans l'ordinateur sans que celui-ci s'en rende compte. Gr?ce à cette attaque, il a été possible de récupérer des données à n'importe quel endroit de la mémoire de l'ordinateur.
- Lire à haute voix
- Nombre de commentaires
En bref
- Les chercheurs de l'ETH ont découvert une grave faille dans certains CPU (Central Processing Units).
- Les attaquants peuvent forcer les unités centrales ciblées à exécuter certaines instructions afin de récupérer des informations sensibles.
- Les chercheurs ont informé le fabricant suffisamment t?t afin de lui laisser le temps de mettre à disposition un patch de sécurité.
Les rêves peuvent influencer notre humeur et nos actions. Chacun d'entre nous en a déjà fait l'expérience. Implanter une idée dans l'esprit de quelqu'un pendant qu'il rêve pour lui faire faire quelque chose de précis à son réveil relève toutefois du domaine de la science-fiction. C'est le cas dans le film "Inception" de 2010, où un expert interprété par Leonardo DiCaprio tente d'influencer l'héritier d'un riche homme d'affaires pour qu'il démantèle l'empire de son père. Pour ce faire, il se rend avec l'héritier dans un rêve commun dans lequel il modifie subtilement l'attitude de ce dernier envers son père en le manipulant habilement. C'est ainsi qu'il parvient finalement à le convaincre d'abandonner l'entreprise de son défunt père.
Ce qui est impossible dans la vie réelle a toutefois été réalisé récemment de manière similaire dans le monde de l'informatique : une équipe de recherche de l'ETH menée par Kaveh Razavi, professeur au Département de technologie de l'information et de l'électrotechnique, a mis au jour une grave faiblesse de certaines unités centrales de traitement (CPU), c'est-à-dire des unités centrales de calcul.
Cette vulnérabilité permet à un attaquant d'implanter quelque chose comme une idée dans les unités centrales cibles et de leur faire exécuter certaines instructions. Des informations sensibles peuvent ainsi être récupérées. Razavi et ses collègues ont présenté leurs découvertes cette semaine lors de la conférence Usenix Security 2023.
Une attaque complexe
L'article de recherche de Razavi contient des noms qui rappellent plut?t les films de James Bond et les films catastrophes - Spectre et Meltdown font une apparition - mais la majeure partie de l'article est une science informatique très complexe. "En effet, l'attaque Inception, comme le film du même nom, est particulièrement compliquée et difficile à expliquer", explique l'étudiant en master Dani?l Trujillo, qui a trouvé cette nouvelle attaque lors de son travail de fin d'études sous la direction du doctorant Johannes Wikner dans le groupe de travail de Razavi. "Néanmoins, le c?ur de toutes ces attaques est une chose simple : le fait que le CPU d'un ordinateur doit constamment faire des suppositions, et ces suppositions peuvent être manipulées", ajoute Wilkner.
Dans les ordinateurs modernes, il faut faire des suppositions, car l'unité centrale doit prendre des centaines de millions de décisions par seconde pendant l'exécution d'un programme - un jeu ou un navigateur, par exemple. A certains moments de l'exécution, la prochaine instruction peut dépendre d'un choix basé sur des informations qui doivent d'abord être chargées à partir de la mémoire de données de l'ordinateur.
Les unités centrales sont devenues incroyablement rapides au cours des dernières années, mais la vitesse à laquelle les données peuvent être transférées de la mémoire (DRAM) vers l'unité centrale n'a pas suivi cette accélération. Le CPU devrait passer une grande partie de son temps à attendre des données fra?ches pour prendre une décision.
Accélérer par des suppositions
C'est là que les suppositions entrent en jeu : sur la base des expériences passées, le CPU établit une sorte de tableau de correspondance (look-up table) et l'utilise pour deviner la prochaine étape la plus probable et l'exécuter ensuite. Dans la plupart des cas, le CPU a raison et peut ainsi économiser un temps de calcul précieux. Mais il arrive aussi qu'elle se trompe, et ces erreurs de prédiction peuvent être exploitées par un pirate pour accéder à des informations sensibles.
"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 n'était jamais arrivé".Dani?l Trujillo
" L'attaque Spectre, découverte en 2018, repose sur de telles erreurs de prédiction ", explique Razavi, " mais il semblait au départ que les fabricants avaient trouvé des moyens de les atténuer." En fait, les fabricants de puces ont fourni des fonctions qui effacent partiellement les tables de correspondance lorsque le contexte de sécurité est modifié (c'est-à-dire lorsque l'on accède au noyau sensible du système d'exploitation) ou qui ajoutent un bit d'information indiquant au CPU si une prédiction a été générée dans la table du noyau et est donc digne de confiance.
Planter une idée dans l'unité centrale
Razavi et ses collaborateurs ont néanmoins essayé de voir si une attaque pouvait être lancée malgré les nouvelles mesures de sécurité. Après de longues recherches, ils sont finalement tombés 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 n'était jamais arrivé", explique Trujillo. Tout comme dans le film "Inception", les chercheurs ont pu implanter une idée dans le CPU pendant que celui-ci rêvait en quelque sorte.
Cela a eu pour conséquence que la table de correspondance - que le CPU compile en permanence à partir d'instructions antérieures - a pu être manipulée à nouveau. Comme le CPU était convaincu que les entrées du tableau provenaient d'instructions vues précédemment, le dispositif de sécurité censé garantir que le CPU ne prenne en compte que les prédictions dignes de confiance a pu être contourné. De cette manière, les chercheurs de l'ETH ont pu récupérer des données à n'importe quel endroit de la mémoire de l'ordinateur - y compris des informations sensibles, comme par exemple la version cryptée du mot de passe root.
Un sérieux point faible
Il s'agit d'une vulnérabilité de sécurité très sérieuse, et c'est pourquoi Razavi a informé AMD en février 2023, afin de donner au fabricant suffisamment de temps pour fournir un correctif de sécurité avant que le travail de recherche ne soit publié (AMD a attribué le numéro CVE-2023-20569 à cette vulnérabilité). "Nous avons mis en évidence ce concept d'une nouvelle classe d'attaques dangereuses, qui est particulièrement pertinent dans le contexte du cloud computing, où plusieurs clients partagent un même matériel", explique Razavi. "Cela soulève en outre des questions pour l'avenir". Il veut par exemple découvrir s'il existe d'autres attaques similaires et si une sorte d'attaque par inception est également possible avec des CPU d'autres fabricants.
Note bibliographique
Trujillo D, Wikner J, Razavi K : page externeInception : Exposer de nouvelles surfaces d'attaque avec un entra?nement à l'exécution transitoire. 32nd Symposium sur la sécurité d'Usenix, 2023