Fallout, RIDL et Zombieload : les nouvelles vulnérabilités liées aux puces Intel !

Presque devenu chronique, Intel commence à instaurer un rendez-vous malsain dans ce genre (in)sécuritaire puisque les puces du fondeur sont, à nouveau, dans la tourmente via la mise en lumière, au total, de 4 vulnérabilités  : un prolongement de certaines failles liées à Meltdown et Spectre découverts en Janvier 2018 et qui exploiterait une défaillance-mémoire au niveau, cette fois, du buffer. A noter que les puces ARM et AMD ne sont pas concernées même si, pour ce dernier, une faille nommée "Fallout", en Mars 2018, était mise en exergue sans plus de précision.

 

 

Pour rappel, Meltdown puisait sa source dans un accès non autorisé à la mémoire d'un microprocesseur (à l'époque, Intel et AMD étaient concernés) ce qui lui permettait l'injection de code malveillant dont ce dernier ce retrouvait fatalement dans le cache du CPU qui traite l'information "dans le désordre" (out-of-order execution). Au final, ledit code était disséminé un peu partout en mémoire pour ensuite se déverser dans l'environnement-système du terminal ainsi infecté. Concernant Spectre, en Novembre 2018 par exemple, une des failles ciblait le BTB (Branch Target Buffer), une mémoire-cache qui stocke de manière temporaire l'information : la mémoire était corrompue avec l'injection malicieuse de code via divers programmes malveillants avec, en finalité, une extraction de données vers un canal secret prévue à cet effet par les individus malveillants. Entre-temps les variantes de cette attaque par canal auxiliaire se sont suivis, comme "Spectre Next Generation" ou encore "Foreshadow".

 

Si l'on pensait qu'Intel avait, entre-temps, exploré toute les pistes spéculatives du genre face à ce soucis sécuritaire grave il n'en était, apparemment rien : le 14 Mai 2019, le fondeur indique l'existence de ces 4 failles relatives à une attaque dîte de type "MDS" (pour "Microarchitectural Data Sampling"), qui fait "uniquement référence à des méthodes impliquant des structures micro-architecturales autres que le cache de données de niveau 1 (L1D)", excluant la "variante 3a" (CVE-2018-3640) découverte en Mai 2018 qui ciblait le registre-système (lecture spéculative) mais, également, 3 vulnérabilités nommées Foreshadow (CVE-2018-3615 et Foreshadow-NG, Next Generation, via CVE-2018-3620 et CVE-2018-3646), découvertes en Août 2018 et dont la particularité résidait dans le ciblage du fameux cache L1 ("L1TF" ou "L1 Terminal Fault", selon l'appellation officielle donnée par Intel).

Ces 4 failles sont ainsi réparties :

 

  • CVE-2019-12130 (Zombieload ou "Microarchitectural Fill Buffer Data Sampling"), découverte depuis le 28 Mars 2018 et communiquée officiellement à Intel le 30 Mai 2018 pour une publication (PDF) officieuse depuis le 12 Avril dernier avant que le public n'en soit, finalement, informé, depuis 3 jours. Sous certaines conditions (une erreur d’exécution ordinaire, non provoquée) le chargement-mémoire peut faire basculer dynamiquement (microcode) les données d'un cache à un autre en vérifiant, au préalable les données avant de les actualiser avec les nouvelles données ainsi rentrées (dans le cas "commun" : la libération-mémoire se fait sans préambule). C'est cette vérification ou lecture préalable qui peut potentiellement permettre "une fenêtre d’exécution transitoire"(avec deux variantes : la cartographie du noyau Linux qui fonctionne quand KPTI - isolation de la table des pages pour éviter une fuite de données - est désactivé et l'intrusion de la table des pages par injection assistée de microcode sous Windows), selon le rapport des chercheurs-Universitaires, en permettant d'analyser (en collectant ce type données) cet évènement, qui est jointé en quelque sorte à une valeur ou indicateur, qui sera recyclé par l'individu malveillant pour diverses finalités (déjà évoquées pour les autres failles, comme l'exploitation des enclaves sous SGX ou encore la création d'une chaîne secrète, entre-autres), et ce, même si cette valeur est temporaire ;

 

  • CVE-2019-12127 ("Microarchitectural Load Port Data Sampling) et CVE-2019-11091 ("Microarchitectural Data Sampling Uncacheable Memory), sous l'appellation "RIDL" ("Rogue-In-flight-Data-Load") et découverte par des chercheurs du VuSec (Amsterdam) le 12 Septembre 2018 puis par Giorgi Maisuradze en Juin de la même année, au détour d'un projet pour Microsoft Research. La vulnérabilité se situe autour des données de transit (in-flight data) gérées par le buffer (re-order buffer, suer queue ou encore line fill buffers) et exploite l’exécution spéculative des données en chargement, ce qui donnera lieu à différentes attaques comme flush and reload qui permet d'entrevoir et de déterminer le temps de rechargement nécessaire pour que la mémoire-cache (au niveau du buffer) renouvelle l'information, ou encore, prime robe qui configure la mémoire de sorte de n'avoir qu'un cru malveillant d'adressage en mémoire. L'ensemble permettrait, au final, de dresser analytiquement, en quelque sorte, les chargements et actualisation de chaque instruction en mémoire-tampon. Ici, cette zone de transit est clairement pointée du doigt en soulevant les données à la volée qui transitent, notamment, sur le Cloud ou, plus globalement, sur Internet ;

 

  • CVE-2019-12126 (Fallout ou "Microarchitectural Store Buffer Data Sampling"), découverte et communiquée à Intel le 31 Janvier 2019, pour une divulgation publique le 14 Mai dernier. La vulnérabilité exploit, également, la mémoire-tampon (buffer) mais, fait inquiétant, cela se produit sur un accès qui n'est pas forcément protégé de base (comme cela l'était avec Meltdown : la faille ciblait un accès-mémoire protégé), ce qui rend, par défaut et dans ce cas précis, inefficace les patchs sécuritaires prodigués par Intel. Là aussi, des mesures d'atténuation liées au noyau - Linux ou systèmes "libres" - comme KPTI ou KASLR - une distribution aléatoire de l'espace d'adressage pour semer le trouble au sein de la mémoire virtuelle, en cas de potentielles attaques) ne sont pas suffisantes face à Fallout (tests sous Ubuntu 16.04 avec un résultat de "490 emplacements", soit "9 bits d'entropie", avec deux configurations : Kaby Lake i7-7600U et Coffee Lake R i9-9900K). L'attaque a été testé 1 000 fois pour les deux configurations, respectivement et à matché, à chaque fois, à 100 %, selon le rapport détaillé dédié (PDF) des chercheurs-Universitaires, "en environ 0,27 secondes"... Un dernier point qui en amène fatalement un autre : la faiblesse de ces puces 9ième génération alors-même qu'Intel avait apporté, en Octobre 2017, des changements matériels pour pallier à Spectre et Meltdown.

 

 

Les correctifs sont déjà déployés pour la plupart des acteurs technologiques : Microsoft, Google, Apple (qui publie, en plus, une mesure supplémentaire pour atténuer les risques et les temps de chargement éventuellement trop longs, l'hyperthreading étant mis en cause par la pomme verte) ainsi qu'Amazon pour AWS : "Toutes les infrastructures hôtes EC2 ont été mises à jour avec ces nouvelles protections et aucune action du client n'est requise au niveau de l'infrastructure". De son côté, Intel à mis à jour son microcode tout en indiquant un "impact de performance minime" ; entre 3 et 7 %, selon les chiffres avancés du fondateur de Santa Clara ; "40 % de réduction des performances", selon Apple... A veiller !

 

Sources :