Passer au contenu

Le processeur Apple M1 est vulnérable à une attaque hardware impossible à patcher

Des chercheurs du MIT utilisent une technique inspirée de Meltdown et Spectre pour contourner une protection fondamentale de l’espace mémoire du processeur M1.

Vous vous souvenez peut-être de Meltdown et Spectre, ces incroyables attaques qui s’appuyaient sur une caractéristique fondamentale des processeurs récents : l’exécution spéculative. Les processeurs pré-exécutent des instructions qui ont une haute probabilité d’arriver dans le flot de calcul, sans pour autant les valider. Ce qui permet de gagner beaucoup de temps, mais introduit aussi de nouveaux risques, et tout particulièrement pour les processeurs d’Intel.

C’est désormais au tour d’Apple d’être confronté à ce type de problème particulièrement épineux et complexe. Un groupe de chercheurs du MIT viennent de révéler une attaque baptisée « Pacman » qui permet à un code malveillant de contourner un important dispositif de protection de la mémoire dans le processeur M1, et d’exécuter du code arbitraire dans le noyau, et cela, sans avoir de privilèges particuliers au départ.

Les pointeurs en ligne de mire

Ce dispositif de protection est le « Pointer Authentication Code » (PAC). Un pointeur est une variable qui contient l’adresse mémoire d’un groupe de données. Le PAC est un hash qui est intégré au pointeur et qui permet de vérifier son intégrité. Grâce à lui, de nombreux bugs de mémoire ne peuvent plus être exploités. Dès que le système tombe sur un pointeur dont le hash n’est pas valide, le processus est volontairement planté. Il est donc impossible pour un pirate de calculer un bon hash par force brute. Du moins en théorie.

En effet – et sans trop rentrer dans les détails – les chercheurs utilisent une mauvaise branche d’exécution spéculative pour tester de façon massive des valeurs de hachage. Du coup, même si elles ne sont pas bonnes, ce n’est pas grave, car les instructions ne seront de toutes les façons pas validées et le processus reste en vie. Le test des valeurs de hachage se fait en utilisant un canal auxiliaire lié au « Translation Lookaside Buffer » (TLB) du M1. Le TLB est une mémoire cache du processeur qui accélère la traduction des adresses mémoire virtuelles en adresses mémoire physiques.

Rétro-ingénierie du M1

Les chercheurs ont analysé le TLB du M1 par rétro-ingénierie, ce qui leur permet d’observer de manière indirecte s’il est modifié. Lorsqu’ils chargent un pointeur forgé par leurs soins et que le TLB est modifié, cela veut dire que le hash est bon. Le pirate peut alors utiliser ce pointeur pour exécuter son code malveillant, y compris dans l’espace mémoire du noyau. C’est le jackpot !

Comme elle est liée à la micro-architecture du processeur, cette attaque est impossible à patcher. Pour autant, Apple reste zen et minimise la portée de cette révélation.

« Nous tenons à remercier les chercheurs pour leur collaboration, car cette preuve de concept fait progresser notre compréhension de ces techniques. Sur la base de notre analyse ainsi que des détails partagés avec nous par les chercheurs, nous avons conclu que ce problème ne pose pas de risque immédiat pour nos utilisateurs et est insuffisant pour contourner à lui seul les protections de sécurité du système d’exploitation », a expliqué Apple dans un communiqué.

En effet, le pirate doit non seulement être capable de manipuler les branches d’exécution spéculatives, mais aussi disposer d’un bug mémoire exploitable pour réaliser les tests de hash. Techniquement, l’attaque est donc difficile à réaliser, c’est pourquoi Apple a peut-être raison de ne pas trop s’inquiéter. Pour l’instant, en tous les cas, la technique Pacman n’a pas encore été observée dans des attaques réelles. Croisons les doigts.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.

Source : MIT


Gilbert KALLENBORN