Meltdown et Spectre : l’exploitation de vulnérabilités dans les processeurs permettent l’accès à des données sensibles

En synthèse

Deux vulnérabilités critiques affectant l’ensemble des systèmes utilisant des micro-processeurs Intel, AMD et ARM ont été identifiées :

  • Meltdown : affecte les micro-processeurs Intel et quelques produits ARM, exploite une vulnérabilité d’élévation de privilèges et donne lieu à un accès à la mémoire du Kernel. Cette vulnérabilité nécessite un droit d’exécution du code et permet d’accéder à l’ensemble des données du système. 
  • Spectre : affecte les micro-processeurs Intel, ARM et AMD, exploite une vulnérabilité au niveau de l’exécution spéculative (Speculative Execution correspondant au lancement anticipé des instructions). Cette vulnérabilité nécessite aussi un droit d’exécution du code et permet d’accéder à l’espace mémoire alloué à d’autres applications sur le système.

Des chercheurs ont confirmé que les vulnérabilités exploitées affectent quasiment tous les micro-processeurs et impactent donc des ordinateurs, des téléphones ou encore des serveurs. L’exploitation de ces attaques est particulièrement discrète et ne laisse aucune trace.

Pour Meltdown, des mesures de sécurité ont déjà été publiées, mais elles entraîneraient des baisses de performance significatives (dans certains cas de plus de 30%). 

Les attaques par Spectre seraient plus complexes à bloquer et nécessiteraient des modifications au niveau des processeurs. Les chercheurs estiment cependant qu’il serait possible de bloquer des exploits particuliers de cette attaque au moyen de correctifs logiciels.Un scénario d’attaque pourrait être celui d’un attaquant souscrivant quelques minutes à un serveur cloud Microsoft, Google ou Amazon et vole des données d’autres clients utilisant de l’espace sur le même serveur.

Détails techniques

Meltdown

Les mécanismes d’isolation implémentés dans les processeurs modernes empêchent normalement les applications de lire ou d’écrire des données dans la mémoire du noyau ou d’accéder à la mémoire d’autres applications.

Meltdown permet de contourner les protections mises en œuvre au niveau physique et ainsi d’accéder aux données dans la mémoire du noyau.

Un exploit public est disponible sur Github.

Il est possible de se protéger de la vulnérabilité Meltdown en utilisant la technique Kernel Page Table Isolation (KPTI) conçue afin d’isoler l’espace mémoire noyau de l’espace mémoire utilisateur. KPTI est basée sur le système KAISER développé en 2017 par une équipe de chercheurs de l'Université de Technologie de Graz en Autriche.

KPTI a déjà été implémentée dans les noyaux Linux. Windows et Apple travaillent sur des correctifs basés sur des mécanismes semblables. KPTI présente toutefois le défaut de réduire considérablement les performances de l’ordinateur dans certains cas particuliers (pouvant aller jusqu’à 30%).

Spectre

Spectre permet de passer outre l’isolation entre les différents processus afin d’extraire les données qu’ils ont en mémoire.

Plusieurs PoC sont publiquement accessibles sur Internet, tous dérivés du code PoC décrit dans les papiers académiques présentant l’attaque. Une adaptation permet d’avoir un exploit en JS pour une attaque par le biais d’hameçonnage :

La technique KPTI ne permet pas de corriger la faille Spectre. Il serait donc nécessaire d’attendre un correctif du microcode du processeur. 

Solutions

Plusieurs éditeurs ont publié un patch pour corriger/réduire le risque des deux vulnérabilités, il est très fortement recommandé d’appliquer les mises à jour:

  • Windows OS (7/8/10) and Microsoft Edge/IE : Microsoft a publié une mise à jour de sécurité pour Windows 10 pour corriger Meltdown disponible sur le lien suivant. Pour Windows 7 et Windows 8, la mise à jour sera publiée le 09 Janvier.
    • Un outil sous Windows est disponible sur github. Il permet de tester si les machines Windows sont bien protégées contre ces attaques.
  • Apple macOS, iOS, tvOS, le navigateur Safari: Apple a notifiée ses clients que tous les appareils fonctionnant sous des systèmes Mac ou iOS sont affectés. L’éditeur a publié des solutions pour Meltdown sur iOS 11.2, macOS 10.13.2, and tvOS 11.2 (https://support.apple.com/en-us/HT208394) et compte publier des solutions pour Safari afin de corriger Spectre durant les prochains jours.
  • Android OS : Les utilisateurs d’Android sont amenés à mettre à jour leur systèmes et passer à la dernière version publiée le 05 Janvier lors du patch de sécurité du Janvier pour se protéger contre Meltdown et Spectre.
  • Firefox Web Browser : Mozilla a publié la dernière version de son navigateur Firefox qui inclut des mitigations pour les deux vulnérabilités. Les utilisateurs sont amenés à appliquer cette mise à jour sur leurs installations le plutôt possible.
  • VMware: VMware a publié une liste des produits affecté par les deux attaques et des mises à jour de sécurité pour ESXi, Workstation et Fusion pour corriger la vulnérabilité de Meltdown. https://www.vmware.com/us/security/advisories/VMSA-2018-0002.html.  
  • Citrix: a publié un guide et des recommandations pour vérifier les mises  à jour des logiciels tiers. Il travaille aussi sur le développement d’une solution de contournement provisoire. https://support.citrix.com/article/CTX231399.  
  • Distributions Linux: Les développeurs du Kernel Linux ont publié les versions 4.14.11, 4.9.74, 4.4.109, 3.16.52, 3.18.91 et 3.2.97 téléchargeable depuis https://kernel.org/.  
  • Google Chrome Web Browser: Google a prévu les patchs pour Meltdown et Spectre pour le 23 janvier. A la publication de Chrome 64, les postes de travail et les smartphones seront immunisés contre les attaques basées sur navigateur. En attendant, les utilisateurs peuvent activer une fonctionnalité expérimentale «  isolation des sites » qui offre une protection contre les exploits basés sur le web en renforçant la politique de la même origine. Cette fonctionnalité peut aussi pénaliser la performance.

          La fonctionnalité est activable en suivant les étapes suivantes :

  1. Copier « chrome://flags/#enable-site-per-process » et coller sur la barre d’URL et cliquer sur Entrer.
  2. Cliquer sur Activer sous Isolation stricte des sites.
  3. Redémarrer le navigateur.

CVE

  • CVE-2017-5753
  • CVE-2017-5715
  • CVE-2017-5754

Historique du bulletin

Création : 04/01/2018
Mise à jour : 10/01/2018