Trois chercheurs en sécurité informatique découvrent deux instructions x86 non documentées |
————— 20 Mars 2021 à 17h26 —— 19888 vues
Trois chercheurs en sécurité informatique découvrent deux instructions x86 non documentées |
————— 20 Mars 2021 à 17h26 —— 19888 vues
Alors que nous vous causions hier du sujet non trivial qu’est la gestion des interruptions sur le jeu d’instruction x86 (et des moyens de la rendre un peu plus sexy), voilà que le tweet du jour vient nous replonger la tête sous l’eau. Sortez l’acide acétylsalicylique, nous plongeons tout droit dans les méandres internes des processeurs d’Intel.
Wow, we (+@h0t_max and @_Dmit) have found two undocumented x86 instructions in Intel CPUs which completely control microarchitectural state (yes, they can modify microcode) pic.twitter.com/IDBkD1ZIkI
— Mark Ermolov (@_markel___) March 19, 2021
Si la plupart des instructions x86 se décodent simplement, une partie du jeu d’instructions — et principalement de ses extensions — doivent passer par un décodeur plus complexe, entraînant l’exécution d’une suite prédéterminée de micro-instructions. Sans rentrer davantage dans les détails, cette traduction est effectuée par le microcode, une zone de mémoire programmable présente dans le CPU, éventuellement patchée au boot par le BIOS et/ou l’OS, puis impossible à modifier une fois le CPU en route.
Cependant, trois chercheurs spécialisés dans les failles de ce microcode auraient découvert un comportement inattendu : deux instructions pourtant invalides dans une utilisation normale seraient en fait bien décodées et envoyées au microcode, qui répondrait — normalement ! – par une erreur UD : l’instruction est invalide. Sauf que, lorsque le processeur est réglé en mode Red Unlocked, un état de développement du CPU possible uniquement lors de hack extrêmement délicat — comprendre qu’un accès physique est quasiment toujours nécessaire, ces instructions permettent de modifier le contenu de ce fameux microcode. Une faille de sécurité donc, qui permettrait à des pirates potentiels d’introduire des traceurs potentiellement indétectables... à condition que l’opération en vaille le coup : comprenez que l’exploitation sur une cible grand publique semble plus qu’invraisemblable.
Bon, cela ne dit pas grand-chose, mais ce code permet de lire et d’écrire une valeur à l’intérieur du CPU (et non dans la RAM)
Au niveau des CPU « impactés », un des premiers processeurs détectant correctement ces instructions serait KNC, (Knight Corners, une puce de la famille des Xeon Phi datant de 2012). Cependant, du fait de la très probable utilisation en interne de ces instructions pour la programmation voire le test des CPU, rien n’empêcherait les générations précédentes d’être également touchées. Les chercheurs ayant annoncé publier leurs résultats sous peu, nous devrions donc en réentendre parler prochainement, avec davantage de détails techniques cette fois-ci.
Un poil avant ?Première fuite d'une potentielle RX 6800M sur la toile | Un peu plus tard ...Gamotron • Bien plus qu'un clône |