Spectre et Meltdown

 

Non, il ne s’agit pas là d’organisations criminelles issues des films de James Bond. En réalité, il s’agit des noms donnés aux failles de sécurité qui ont été récemment découvertes au niveau de l’architecture des processeurs. A l’instar des ennemis de James Bond, elles pourraient cependant bien mettre le monde en péril…

De quoi s’agit-il ?

Les failles permettraient d’accéder à données protégées, comme les mots de passe, stockées dans la RAM. Il semble que toutes les micro-architectures soient, à degré divers, concernées: Intel, AMD, ARM, SPARK, POWER,… à l’exception de certains processeurs mobile, en particulier les familles Cortex-A7 et Cortex-A53, parce qu’ils n’utilisent pas les mécanismes de Branch Prédiction, de Speculative Exécution et d’Out-of-Order-Execution. Ces trois mécanismes ont été introduits par Intel il y a une vingtaine d’années avec le Pentium Pro et ont permis l’augmentation spectaculaire de la puissance de calcul. Si le processeur défère l’exécution d’une instruction, par exemple en attente de données du cache, il peut en sélectionner d’autres de la file d’attente: l’exécution n’est alors plus en ordre (In-Order), mais dans un ordre différent (Out-of-Order). En outre, les branchements conditionnels, qui font partie de tout programme, sont prédits par une unité du processeur, qui fourni les adresses mémoires accédées les plus probables (Branch Prédiction). Enfin, si des ressources sont disponibles, le processeur exécute des instructions, même s’il n’est pas certain qu’elles sont requises (Speculativ Execution).

En quoi ces mécanismes comportent-ils des failles ?

Meltdown, comme son nom l’indique, fait « fondre » la séparation existant entre les modes utilisateur (user) et système (kernel), permettant à un processus utilisateur de cartographier l’ensemble des adresses mémoire. En abusant de l’exécution spéculative (speculativ execution), il lui est ensuite possible d’y lire les contenus. Y compris des pages qui  ne lui appartiennent pas. Spectre, quant à lui, se décline en deux variantes. La première utilise des branchements conditionnels pour « dépasser » la limite de mémoire allouée au processus en exécution, pour accéder à des pages ne lui appartenant pas. Cette variante peut être mise en oeuvre par les navigateurs, depuis des pages web. La deuxième variante abuse des mécanismes prédictifs de Branch Prediction, pour accéder à des données n’appartenant pas au processus en exécution. Des vitesses de lectures, qui peuvent aller jusqu’à 2’000 bytes par seconde, sont suffisantes pour récupérer des mots de passe.

Les failles ont été découvertes indépendamment par plusieurs groupes de projet issus de Google Project Zero, Cyberus Technology et d’un ensemble d’universités en juin 2017 déjà. Les fabricants tels qu’Intel, AMD, Microsoft, Apple et de nombreux autres en ont été informés sans tarder, ce qui ne les a pas empêché de continuer à vendre processeurs et équipements concernés par les failles. Ce n’est qu’en janvier 2018 que celles-ci ont été rendues publique, raison suffisante pour que de nombreux correctifs soient actuellement proposés pour l’ensemble des systèmes d’exploitation (Windows, MacOS, Linux, iOS, Android, FreeBSD,…), certains pilotes de périphériques, de nombreuses applications et navigateurs.

Même si les mises à jour matérielle et logicielles semblent mitiger le danger d’une exploitation des failles, les chercheurs relèvent que les scénarios d’attaque OoOE (Out-of-Order Execution) et les menaces qu’ils représentent sont susceptibles d’évoluer dans le futur. Pour l’instant, il semble que les failles présentées ci-dessus n’aient pas (encore) été exploitées, mais il faut garder à l’esprit que les pirates attendent généralement d’avoir plusieurs scénarios à disposition avant de lancer une attaque en règle.

Comment se protéger ?

Le mot d’ordre est simple: mettre à jour systématiquement et régulièrement toutes les composantes dès que les mises à jour sont disponibles  (système d’exploitation, BIOS, applications, pilotes,…

Si les mise à jour des systèmes d’exploitation sont en général automatiques  (pour autant que la configuration ait été effectuée correctement…), il n’en va pas forcément de même pour le BIOS. Pour ce dernier, il faudra s’assurer de l’existence d’une mise à jour et consulter le mode d’emploi du fournisseur de la carte.

Enfin, il faut garder à l’esprit que, dans le cas de spectre et de meltdown, il s’agit de vulnérabilités pour lesquelles les scénarios d’exploitation ne sont pas encore connus. Une protection par anti-virus et de bonnes pratiques en terme de sécurité gardent toute leur actualité.