Décidément, sale journée que fut hier pour le CPU et pour son industrie, avec un doublé de vulnérabilité, d’abord avec "Downfall" chez Intel et maintenant avec "Inception" chez AMD ! Pas de chercheur de chez Google pour auteur cette fois-ci, la faille a été découverte pas trop loin de chez nous par une équipe de chercheurs de l’ETH Zurich (classée comme l’une des meilleures universités en Europe et au monde), et plus exactement par Daniel Trujillo, Johannes Wikner et Kaveh Razavi. Qu’on-t-ils trouvé ? Ni plus ni moins une vulnérabilité permettant à un attaquant ayant compromis le système cible de faire fuiter des données (potentiellement sensibles), une fois de plus !
Tout d’abord, sachez qu’AMD a abordé la faille dans son bulletin de sécurité AMD-SB-7005. Le CVE à retenir pour celle-ci est le CVE-2023-20569, mais aussi CVE-2022-23825, Inception reposant sur l’exploitation de la vulnérabilité Phantom pour démarrer une exécution arbitraire via spéculation. À savoir que les deux sont classées "medium" sur l’échelle de la sévérité. C’est, encore une fois, l’exécution spéculative qui est à l’origine du problème. Pour rappel, c’est une technique utilisée par les CPU modernes pour exécuter des instructions de manière prédictive afin de maintenir les cœurs alimentés et les caches pleins, plutôt que d’attendre l’exécution séquentielle de chaque instruction.
En bref, ce que permet Inception c’est à un attaquant de créer sa propre instruction simple pour tromper le CPU en lui faisant croire qu’il a une fonction récursive et d’injecter des instructions dans le pipeline de production pour ensuite faire fuir des données. Certes, un peu comme avec Zenbleed, cette fuite s’effectuera à très faible vitesse à raison de quelques bytes par seconde seulement. Il serait donc bien difficile de siphonner rapidement une base de données par cet intermédiaire, par exemple. En revanche, cela serait plus que suffisant pour mettre la main en quelques secondes sur d’autres éléments sensibles, comme des clés de sécurité. Le problème est bien là, pas tant pour l’utilisateur mainstream, certes, mais encore une fois surtout pour les entreprises et leurs serveurs. Voici ce qu’AMD avait à en dire après avoir été approché par ServeTheHome :
AMD a reçu un rapport externe intitulé "INCEPTION", décrivant une nouvelle attaque de canal secondaire spéculative. AMD estime que "Inception" n’est potentiellement exploitable que localement, par exemple via un logiciel malveillant téléchargé, et recommande aux clients de mettre en œuvre les meilleures pratiques en matière de sécurité, notamment en exécutant un logiciel à jour et des outils de détection de logiciels malveillants. AMD n’a connaissance d’aucune exploitation de "Inception" en dehors de l’environnement de recherche, à l’heure actuelle.
AMD recommande aux clients d’appliquer un correctif de microcode ou une mise à jour du BIOS, le cas échéant, pour les produits basés sur les architectures de processeurs "Zen 3" et "Zen 4". Aucun correctif de microcode ou mise à jour du BIOS n’est nécessaire pour les produits basés sur les architectures de processeurs "Zen" ou "Zen 2", car ces architectures sont déjà conçues pour purger les prédictions de type de branches du prédicteur de branches.
AMD prévoit de publier des versions mises à jour de l’AGESA (AMD Generic Encapsulated Software Architecture) aux fabricants d’équipement d’origine (OEM), aux fabricants de design d’origine (ODM) et aux fabricants de cartes mères mentionnés dans le bulletin de sécurité d’AMD. Veuillez vous référer à votre OEM, ODM ou fabricant de cartes mères pour obtenir une mise à jour du BIOS spécifique à votre produit.
Comme vous avez pu le lire, sont concernés (selon AMD) uniquement tous les processeurs basés sur les architectures Zen 3 et Zen 4, qu’il s’agisse de Ryzen ou d’EPYC pour desktop, serveur et embedded, ce qui fait tout de même beaucoup et représente déjà une base de cibles potentielles bien large. À savoir que les chercheurs estimaient au moment de leur trouvaille que tous les processeurs de Zen à Zen 4 sont potentiellement vulnérables, mais tout en ayant considéré qu’un mécanisme en place au sein de Zen et Zen 2 pourrait être suffisant à les protéger d’Inception, mitigation inexistante avec Zen 3 et Zen 4.
Pour corriger ce qui doit l’être, AMD va proposer plusieurs approches selon les produits concernés, par exemple via un nouveau microcode ou un nouvel AGESA. Le constructeur mentionne également la possibilité dans certains de cas de configurer l’OS de sorte à limiter les risques. Pour la liste complète du programme de mise à jour pour chaque segment, rendez-vous sur le page du bulletin de sécurité d’AMD. En ce qui nous concerne, vous trouverez directement dans le tableau ci-dessous ce qui est prévu pour nos Ryzen. Nous y apprenons par la même occasion que l’AGESA 1.0.8.0 (appellation en interne, se nommera certainement AGESA 1.0.0.8 en public) devrait donc arriver encore ce mois-ci et suivra donc de très près l’AGESA 1.0.0.7c, qui est apparu récemment.
Pour finir, quand bien même la faille n'est pas des plus sévères et relève d'une exploitabilité a priori assez difficile, il faut malgré tout saluer la créativité et l'ingéniosité requise pour aller dénicher toutes ces vulnérabilités, un travail assurément très complexe et qui, s'il est difficile à apprécier à sa juste valeur par les mortels profanes que nous sommes, aura toujours le mérite de contribuer à améliorer la sécurité, et potentiellement aussi les architectures de demain.