Les chercheurs en sécurité de Microsoft et de Google ont découvert une quatrième variante de la fuite de données Meltdown-Spectre. Ces deux failles de sécurité affectant les CPU modernes de millions d’ordinateurs, y compris ceux commercialisés par Apple.

La variante 4 arrive quelques semaines après que le magazine informatique allemand Heise a signalé un ensemble de huit vulnérabilités de type Spectre dans les processeurs Intel et un petit nombre de processeurs ARM, qui pourraient également avoir un impact sur l’architecture des processeurs AMD.
Les variantes 1 et 2 (CVE-2017-5753 et CVE-2017-5715), connues sous le nom de Spectre, et la variante 3 (CVE-2017-5754), connue sous le nom de Meltdown, sont trois vulnérabilités de processeur révélées par les chercheurs de Google Project Zero en janvier de cette année.

Les chercheurs de Microsoft et de Google ont divulgué la variante 4 (CVE-2018-3639), baptisée Speculative Store Bypass, qui est une variante de Spectre qui tire parti de l’exécution spéculative que les CPU modernes utilisent pour exposer potentiellement des données sensibles par un canal latéral.
Les processeurs modernes intègrent plusieurs fonctionnalités visant à améliorer leurs performances. Parmi celles-ci, l’exécution dite out-of-order permet d’exécuter les instructions d’un programme en fonction de la disponibilité des ressources de calculs et plus nécessairement de façon séquentielle. Une faiblesse de ce mécanisme peut cependant conduire à l’exécution d’une instruction sans que le niveau de privilèges requis par celle-ci ne soit correctement vérifié. Bien que le résultat de l’exécution d’une telle instruction ne soit pas validé par la suite, il peut être possible de récupérer l’information en utilisant une attaque par canaux cachés.

L’exécution spéculative est une seconde technique d’optimisation utilisée par les processeurs modernes. Les dépendances entre les instructions limitent les possibilités d’exécution out-of-order. Pour remédier à cette limitation, le processeur émet des hypothèses concernant les résultats non encore disponibles. Ceci lui permet de poursuivre l’exécution out-of-order en utilisant ces hypothèses en remplacement des résultats attendus. On parle alors d’exécution spéculative. Ces hypothèses sont vérifiées par le processeur dès que les résultats auxquels elles se rapportent deviennent disponibles. Si elles se révèlent correctes, le processeur valide l’exécution spéculative. Mais inversement, si elles se révèlent erronées, les effets de l’exécution spéculative doivent être annulés et l’exécution doit reprendre au point on les hypothèses erronées avaient été émises, c’est à dire là où l’exécution spéculative avait débutée.
Cependant les effets d’une exécution spéculative erronée sur le cache perdurent. Or, en mesurant les temps d’accès à des zones mémoires, il est possible de connaître l’état du cache. Par conséquent, un attaquant sera capable de déterminer les résultats intermédiaires d’une exécution spéculative erronée si ceux-ci influent sur l’état du cache. Cette utilisation du cache pour mener à bien l’exploitation est commune aux trois variantes de Spectre.

Contrairement à Meltdown qui touchait principalement les processeurs Intel, Spectre affecte également les processeurs d’autres fabricants.

Impact

Cette nouvelle faille affecte les cœurs de processeurs modernes d’Intel, AMD et ARM, ainsi que les processeurs Power 8, Power 9 et System z d’IBM – menaçant ainsi presque tous les PC, ordinateurs portables, smartphones, tablettes et électronique embarquée, quel que soit le fabricant ou le système d’exploitation.

Elle peut donc affecter tous les systèmes utilisant un processeur vulnérable et de façon indépendante du système d’exploitation. Selon les chercheurs à l’origine de la découverte de ces failles, il est ainsi possible d’accéder à l’intégralité de la mémoire physique sur des systèmes Linux et OSX et à une part importante de la mémoire sur un système Windows.

On notera que l’impact peut être plus particulièrement important dans des systèmes de ressources partagés de type conteneur (Docker, LXC) où il serait possible depuis un environnement restreint d’accéder à toutes les données présentes sur la machine physique dans lequel s’exécute le conteneur ou encore dans des environnements virtualisés utilisant la para-virtualisation de type Xen.
Intel a classé la variante 4 comme  » risque moyen  » car la plupart de éléments ont été corrigés en janvier par les navigateurs comme Safari, Edge et Chrome au cours de la première série de correctifs.
« Depuis janvier, les principaux fournisseurs de navigateurs ont déployé des mesures d’atténuation pour la variante 1 dans leurs environnements d’exécution gérés, ce qui augmente considérablement la difficulté d’exploiter les canaux secondaires dans un navigateur Web », explique Intel dans son avis. « Ces mesures d’atténuation s’appliquent également à la variante 4 et peuvent être utilisées par les consommateurs aujourd’hui. »

Cependant, comme il y a un potentiel avec ces nouveaux exploits, Intel et ses partenaires (y compris les fabricants de PC et les fabricants de systèmes OEM) lancent dans les semaines à venir des mises à jour du BIOS et des microcodes logiciels pour la variante 4.

Des mesures d’atténuation de Spectre qui se traduiront par une autre perte de performance.
L’atténuation sera désactivée par défaut, offrant aux clients le choix de l’activer ou non. Si elle est activée, Intel a observé un taux de performance d’environ 2 à 8 % sur les scores globaux pour des benchmarks tels que SYSmark 2014 SE et SPEC sur les systèmes de test client et serveur ».

ARM et AMD lancent également des correctifs de sécurité pour leurs processeurs respectifs, ARM affirmant que la dernière variante de Spectre n’affecte qu’un petit nombre de cœurs Arm Cortex-A et est atténuée par une mise à jour du firmware développée par Arm.

AMD a également publié un livre blanc, conseillant aux utilisateurs de laisser le correctif désactivé en raison de la difficulté inhérente à effectuer avec succès une attaque de ce type et déclare :
« Microsoft achève les tests finaux et la validation des mises à jour spécifiques à AMD pour les systèmes d’exploitation client et serveur Windows, qui devraient être diffusées par le biais de leur processus de mise à jour standard.

« De même, les distributeurs Linux développent des mises à jour de leur système d’exploitation. AMD recommande de vérifier avec le fournisseur d’OS les plannings pour la mise à jour. »

En bref, il n’y aura pas de solution permanente (plutôt qu’une simple atténuation – une mitigation) pour les exploits de type Spectre jusqu’à ce qu’Intel et d’autres fabricants de puces publient des processeurs mis à jour. Il est donc fortement recommandé aux utilisateurs de suivre de bonnes pratiques de sécurité qui protègent contre les logiciels malveillants et de s’assurer que leur logiciel est à jour.

Mise à jour du 21/06/2018 : OpenBSD désactive l’hyperthreading par défaut pour mitiger la faille Spectre (variante 4). Il est toutefois possible de le réactiver via la commande kernel hw.smt sysctl. Pour le moment cela ne fonctionne que sur les architectures Intel, mais devrait être rapidement étendu aux autres types d’architecture CPU. Il résulte de cette modification une légère baisse des performances mais une amélioration de la sécurité.

Source : The Hacker News, ANSSI