Des chercheurs en sécurité de l'éditeur de logiciels Bitdefender ont trouvé une autre façon d’exploiter le mécanisme d’exécution spéculative des CPU actuels pour casser les liens de sécurité et donner accès à la mémoire du noyau du système d’exploitation. Ils viennent de décrire à l’occasion de la conférence Black Hat 2019 (Las Vegas, du 3 au 8 août) leur technique qui passe par l’instruction système SWAPGS et peut contourner les atténuations mises en place pour contrer les précédentes failles d’exécution spéculative telles que Spectre. Cette vulnérabilité a été signalée à Intel il y a presque un an par Bitdefender, lorsqu'en août 2018, ses experts en sécurité Dan Horea LUȚAȘ et Andrei Vlad LUȚAȘ ont découvert une nouvelle faille partageant des points communs avec Meltdown. A la suite de cette information, un très long processus de coordination s’est engagé qui a également impliqué Microsoft. Ce dernier a livré des atténuations le mois dernier dans sa mise à jour de sécurité mensuelle (ex-Patch Tuesday) de juillet.
SWAPGS permet au kernel d’accéder aux structures internes de données par CPU lorsqu’un processus passe du mode utilisateur au mode kernel. Cependant, des chercheurs de Bitdefender ont découvert que lorsque l’instruction était exécutée de façon spéculative, son comportement était peu documentée et qu’elle entraînait des implications au niveau de la sécurité. Voici trois scénarios d’attaque qui recourent à SWAPGS. Le premier permet à des attaquants de contourner KASLR (Kernel Address Space Layout Randomization), un mécanisme des systèmes d’exploitation modernes conçu pour compliquer l’exploitation des vulnérabilités. Dans le deuxième scénario, les attaquants peuvent verifier si une certaine valeur existe à une adresse donnée de la mémoire du kernel depuis l’espace utilisateur. Enfin, le troisième scénario, le plus dangereux, peut permettre à des attaquants de récupérer les contenus d’adresses mémoire arbitraires du kernel. L’impact est similaire à celui de la vulnérabilité Spectre. En fait, cette nouvelle technique est considérée comme une variante de la version 1 de Spectre.
Des tests concentrés sur Windows
L’attaque n’est pas très performante. En utilisant leur PoC d’exploitation de la faille, les chercheurs estiment qu’elle pourrait laisser fuiter quelques bits chaque minutes. Mais ils pensent aussi que cette fuite de données pourrait être augmentée de façon importante dans le futur. Ce qui est particulièrement notable à propos de cette attaque, c’est qu’elle a contourné toutes les atténuations logicielles existantes, y compris le mécanisme KPTI (Kernel Page Table Isolation) qui est supposé isoler entièrement la mémoire du kernel dans son propre espace d’adressage virtuel, pour rendre plus difficiles les attaques de type Spectre et Meltdown.
Les chercheurs ont concentré leurs tests sur Windows parce qu’il s’agissait de la cible la plus facile en raison de la façon dont SWAPGS est utilisé par le système d’exploitation de Microsoft. Le problème de sécurité s’est vu assigner l’identifiant CVE-2019-1125. « Nous sommes conscients que ce problème qui touche l’ensemble de l’industrie et nous travaillons étroitement avec les fabricants de processeurs affectés et nos partenaires du secteur pour développer et tester des atténuations pour protéger nos clients », a indiqué dans un communiqué adressé par mail un porte-parole de Microsoft. « Nous avons livré des mises à jour de sécurité en juillet et nos clients qui ont activé Windows Update et qui appliquent les mises à jour de sécurité sont automatiquement protégés ». Bien que les patches aient déjà été livrés, les détails n’ont été communiqués qu’hier pour attendre la publication du livre blanc de Bitdefender et le bulletin de sécurité de Microsoft sur le sujet.
Linux difficile à attaquer
« Une rapide analyse du noyau Linux a révélé que, malgré qu’il contienne un gadget pouvant être utilisé dans une attaque, celui-ci se trouve dans le gestionnaire Non-Maskable Interrupt (NMI) », expliquent les chercheurs de Bitdefender dans leur article. « Nous pensons par conséquent que Linux serait difficile (sinon impossible) à attaquer ». Red Hat a confirmé que ses produits étaient théoriquement vulnérables mais indique dans un bulletin d’alerte qu’il n’y a actuellement aucune façon connue d’exploiter la faille avec succès sur des systèmes faisant tourner le noyau Linux. Malgré tout, l’éditeur récemment racheté par IBM a fourni des mises à jour du kernel et précisé que les atténuations pourraient entraîner un léger impact de performance sur les CPU Intel et AMD qui sont les seuls processeurs à être affectés par ce problème.
« Une analyse rapide du noyau Hyper-V et du noyau de l’hyperviseur Xen montrent que l’instruction SWAPGS n’est pas utilisée, son exploitation est donc impossible », mentionnent les chercheurs de Bitdefender. « Les autres systèmes d’exploitation et hyperviseurs n’ont pas été explorés, bien que Microsoft, pendant la coordination de la divulgation, ait informé toutes les parties prenantes intéressées par la vulnérabilité ».
Pas de mise à jour du microcode
Comme la version 1 de Spectre, l’attaque SWAPGS peut être atténuée directement dans le logiciel et ne nécessite pas de mise à jour du microcode. C’est pourquoi Intel a laissé Microsoft prendre la main sur la coordination de sa divulgation. « Intel, aux côtés des partenaires de l’industrie, a déterminé que le problème était mieux pris en charge au niveau logiciel et a mis les chercheurs en contact avec Microsoft », confirme le fabricant de puces dans une déclaration envoyée par email. « Cela permet à l’écosystème de travailler ensemble pour sécuriser collectivement les produits et les données et ce problème a été coordonné par Microsoft ».
Ce n’est que la dernière d’une longue liste de vulnérabilités touchant les CPU (et de variantes) qui ont été découvertes depuis que les failles Spectre et Meltdown ont été annoncées en janvier 2018. Tandis que la communauté des chercheurs en sécurité continue de se pencher sur la façon dont fonctionnent, à bas niveau, les processeurs modernes et les autres composants matériels, on devrait probablement mettre au jour d’autres problèmes de sécurité.