Meltdown : la faille la plus couverte médiatiquement pourtant facilement corrigeable
Meltdown est une méthode permettant de lire, de manière illégitime, des blocs de mémoires depuis un programme utilisateur classique. Ceci est possible à cause d’une vérification effective trop « lente » des accès mémoires.
Cette faille se décompose en l’exécution de trois étapes :
Charger une adresse mémoire, normalement inaccessible avec les privilèges insuffisants de l’attaquant, dans un registre « temporaire » dont la branche chargée sera considérée comme illégitime.
Injecter une instruction de transition pour transférer l’instruction spéculative frauduleuse dans la mémoire cache associée au microprocesseur.
Profiter d’une attaque (l’attaque par side channel attack) connue sous le nom de « flush and reload » du cache microprocesseur, en se basant sur les différences de timing entre les niveaux de cache, pour récupérer le résultat de l’instruction frauduleuse qui a été chargée puis déplacée dans le cache.
Ainsi, en effectuant de façon successive ces étapes, il est possible d’extraire entièrement la zone mémoire à laquelle on veut avoir accès. Avec cette méthode, il devient très simple d’exfiltrer des mots de passe, clefs de chiffrement ou autres informations sensibles. Tous les processeurs Intel, depuis le premier ATOM, semblent être touchés par cette vulnérabilité. A l’heure actuelle, il est encore impossible de savoir si cette faille a déjà été exploitée dans le passé.
Afin de se protéger de Meltdown il est nécessaire d’utiliser un correctif nommé KAISER. Ce patch, diffusé en juin 2017 pour se protéger contre les attaques de type « side channel », permet l’implémentation d’une isolation plus forte entre le noyau et l’espace utilisateur. Ce patch opère au niveau applicatif et est donc une solution facilement implémentable, en attendant une éventuelle mise à jour technique des processeurs. KAISER a déjà été implémenté sur de nombreux noyaux Linux et est disponible pour les utilisateurs Windows dans la mise à jour KB4056892 (Windows 10).
Apple a indiqué que les dernières versions de ses produits (iOS 11.2, macOS 10.13.2, et tvOS 11) ne sont pas impactées par cette faille. Un correctif, pour les versions plus anciennes, sera publié dans les prochains jours.
Les utilisateurs Android qui appliqueront les futurs patchs de sécurité, fournis par chaque constructeur, seront protégés selon Google. Les smartphones de la marque ont déjà reçu cette mise à jour le 5 janvier.
Spectre : une faille dont il est difficile de se prémunir complètement
Spectre, la seconde faille découverte, est une vulnérabilité plus générique, englobant Meltdown.
En effet, Spectre, contrairement à Meltdown, ne s’appuie pas sur une partie spécifique de la gestion du système de protection de la mémoire d’un seul processeur, mais repose sur un concept plus général, et les impacts associés seraient plus conséquents.
Le concept est assez proche, la possibilité d’attaque temporelle par canal auxiliaire a été rendue possible par le système de prédiction de branche des microprocesseurs. Au niveau architectural, toute erreur de prédiction est censée être annulée après qu’elle ait été constatée (« roll-back »). Cependant, l’exécution prédictive peut laisser des effets secondaires, comme des lignes de cache chargées, repérés en effectuant des techniques d’analyse temporelle.
L’exploitation de cette faille peut résider dans les protections contre les erreurs retournées par les tentatives d’accès mémoire de n’importe quel langage informatique et donc par n’importe quelle application. En réitérant ces traitements, il est possible de comparer les temps de réponses et de déterminer quelle donnée est bien détenue dans une zone mémoire du cache.
Cette fois-ci les principaux fabricants sont touchés. En effet, les produits Intel, AMD et ARM sont vulnérables.
Cette faille peut très difficilement être corrigée, mais certaines versions de produits sont immunisées contre Spectre. Les équipes de Mozilla Firefox ont mis en ligne un correctif dans la version 57.0.4 de leur navigateur. D’autres éditeurs ont décidé de réagir différemment. Google par exemple, prévoit de corriger son navigateur Chrome le 23 Janvier. En attendant, une procédure manuelle est proposée, pour contrer Spectre de manière temporaire.
Il est très difficile de se prémunir complètement de cette faille. En effet, il faudrait changer radicalement l’architecture des microprocesseurs pour s’en protéger totalement. Des correctifs spécifiques, par application, vont et seront déployés pour se prémunir de ce genre d’attaque.
En résumé, Meltdown et Spectre, bien que différentes sur bien des aspects, permettent à un utilisateur avec de faibles privilèges, d’exécuter du code afin d’avoir accès à des informations sensibles de la mémoire à travers les mécanismes d’optimisation du microprocesseur.
L’impact de ces failles se mesurera que dans quelques temps, en attendant, il faut rester vigilant
Il convient de mesurer l’importance des impacts générés par ces failles avec prudence. Nous ne sommes qu’au début d’un long processus d’investigation et de correction. Il s’agira d’évaluer la portée de ces failles et notamment en termes d’exploitation, ainsi que de mener des enquêtes afin de déterminer si celles-ci n’ont pas déjà été exploitées. Enfin, il sera judicieux de rester attentif durant toute l’année à venir afin de considérer l’arrivée imminente d’outils et d’exploits créés sur-mesure pour Meltdown et Spectre.
L’attitude idéale afin de se prémunir contre ces deux failles reste de suivre les recommandations des éditeurs et d’installer avec assiduité les prochains correctifs diffusés, quitte à réaliser un compromis plus ou moins important concernant une baisse des performances. Les particuliers n’auront pas de question à se poser, contrairement aux différents providers pour lesquels l’échelle de baisse de performance n’est pas du tout la même.