Une faille de sécurité impossible à corriger sur les puces Apple Silicon !
Par June Cantillon - Publié le
GoFetch : une faille de sécurité sur les puces Apple Silicon
Vous souvenez-vous des failles Meltdown et Spectre qui avaient fait couler beaucoup d'encre et qui touchaient dont nombreux processeurs, dont ceux en x86 d'Intel et AMD, mais également les puces ARM des iPhone, iPad et Mac de Cupertino ? Des chercheurs en sécurité ont averti Apple fin 2023 de la découverte d'une nouvelle faille, dénommée GoFetch (va chercher dans la langue de Molière), touchant les puces Apple Silicon de la série M.
GoFecth se rapproche de Meltdown et Spectre car elle s'appuie sur les technologies de prédiction des puces pour soutirer des données confidentielles. La faille touche ainsi la fonction Data Memory-dependent Prefetcher (ou DMP) des puces M1, M2 et M3 qui analyse les flux de données afin de tenter de deviner celles qui seront rapidement utiles aux processeurs pour les traitements à venir, et ce afin d'accélérer grandement les calculs lorsque la prédiction est juste. Les amateurs peuvent consulter le document très complet détaillant le principe de fonctionnement de la faille en question, dont voici un extrait.
Les prefetchers examinent généralement les adresses des données consultées (en ignorant les valeurs des données consultées) et tentent de deviner les futures adresses qui pourraient être utiles. Le DMP est différent en ce sens car en plus des adresses, il utilise également les valeurs des données afin de faire des prédictions. En particulier, si une valeur de données « ressemble » à un pointeur, elle sera traitée comme une « adresse » (alors qu’en réalité elle ne l’est pas !) et les données de cette « adresse » seront amenées dans le cache.
Notre attaque exploite ce fait. Nous ne pouvons pas divulguer directement les clés de chiffrement, mais ce que nous pouvons faire, c'est manipuler les données intermédiaires à l'intérieur de l'algorithme de chiffrement pour ressembler à un pointeur via une attaque d'entrée choisie. Le DMP voit alors que la valeur des données « ressemble » à une adresse et introduit les données de cette « adresse » dans le cache, ce qui entraîne la fuite de « l'adresse ».
Une faille matérielle impossible à corriger
En simplifiant fortement, la faille GoFetch consiste à berner le système d'analyse et de prédiction afin de récupérer des clés de chiffrement RSA-2048 au sein de la mémoire cache. Malheureusement, la faille se trouvant au niveau matériel, il y a peu de solutions afin de mettre en place un correctif efficace.
Il est toutefois possible de se passer de ces fonctions matérielles de prédiction (soit en passant par les cœurs efficients qui ne disposent pas du DMP, soit en empêchant l'usage de cette technologie pour certains programmes sur les cœurs performants, ce qui ne semble possible qu'à partir des puces M3), mais au prix d'un impact important sur les performances.
Il faut bien entendu relativiser le danger de cette faille puisque l'attaquant devra obligatoirement tromper l'utilisateur afin d'installer un programme malveillant. De plus, l'attaque nécessite un certain temps avant de dévoiler une clé de chiffrement (entre 50 minutes et 10 heures selon les différents essais des chercheurs). Apple devrait toutefois combler cette faille de sécurité matérielle au sein de ses prochaines puces.