Huit ans après Spectre, des chercheurs contournent encore eIBRS et Safe RET
Depuis janvier 2018 et la découverte simultanée de Meltdown et de Spectre par les équipes de Google, l’industrie du processeur fait face à des défis persistants. L’exécution spéculative, méthode permettant aux processeurs d’anticiper les instructions à venir pour optimiser les performances, a révélé des vulnérabilités exploitables. En réponse, les fabricants de processeurs ont mis en place une décennie de correctifs, de microcodes et de protections matérielles, entraînant parfois des pertes de performance.
Récemment, Daniël Trujillo, doctorant, et Mengjia Yan, professeure associée au laboratoire d’informatique et d’intelligence artificielle du MIT, ont présenté à la conférence Black Hat une nouvelle méthode d’attaque qui met en lumière une faille de conception dans les défenses actuelles, au-delà des simples bugs d’implémentation.
Le trou se trouve entre le nettoyage et l’usage
Les protections actuelles reposent sur un prédicteur de branchement, qui anticipe la suite des instructions. Une attaque de type Spectre manipule ces anticipations pour diriger le processeur vers du code susceptible de fuiter des données. Les défenses impliquent de nettoyer ou d’isoler le prédicteur avant l’exécution de portions sensibles du système.
Intel et AMD adoptent des approches différentes : Intel nettoie à l’entrée du noyau avec son mécanisme eIBRS, tandis qu’AMD le fait juste avant chaque retour du noyau via Safe RET. Ces stratégies, désignées par les chercheurs comme neutralisation à l’entrée et neutralisation sur place, partagent l’hypothèse que rien d’hostile ne peut se produire entre ces deux étapes.
Cependant, la technique TONTOU, acronyme de « Time-of-Neutralization to Time-of-Use », remet en question cette hypothèse. Elle repose sur l’injection d’interruptions, permettant à un programme sans privilèges de placer des interruptions à haute fréquence pour exploiter la fenêtre de vulnérabilité.
Dix-huit minutes pour lire le fichier des mots de passe
La démonstration a été réalisée sur un matériel courant, un Ryzen 7 4700G d’architecture Zen 2, avec 16 Go de mémoire, sous Linux 6.14 et toutes les protections Spectre v2 activées. L’attaque a permis de lire la mémoire du noyau à une vitesse de 5,47 octets par seconde avec une précision de 91,97 %. Les chercheurs ont réussi à localiser le contenu du fichier des mots de passe dans cinq des dix tentatives, avec un temps moyen de dix-huit minutes par exécution réussie. Aucun accès administrateur n’était nécessaire, juste l’exécution d’un code utilisateur.
Un fondeur corrige, l’autre paie et passe son chemin
Les deux entreprises ont été informées de la vulnérabilité en février, et les mainteneurs du noyau Linux en mars, ce qui a permis une réponse coordonnée. AMD a publié un bulletin en août, désignant le problème dans ses architectures Zen 1 à Zen 4 et fournissant un correctif dans le noyau. Intel, quant à lui, a indiqué qu’aucune mitigation supplémentaire n’était prévue, arguant que l’exploitation dépendait de nombreux facteurs. Cependant, Intel a récompensé les chercheurs dans le cadre de son programme de chasse aux bugs.
La distinction entre un défaut spécifique et une classe d’attaques est cruciale. TONTOU ne désigne pas une vulnérabilité d’une puce particulière, mais un angle mort partagé par une famille de protections. La position d’Intel, qui a déjà renoncé à corriger plusieurs générations de processeurs anciens, souligne la complexité de la situation.
Pour les utilisateurs, il est recommandé de maintenir leur noyau Linux à jour, ce qui suffit pour les systèmes AMD. En revanche, pour les hébergeurs, la démonstration souligne les risques liés aux processeurs partagés, qui peuvent présenter des vulnérabilités communes.
Source : Clubic



