Failles Meltdown & Spectre

Par Richard Schmed – Alrix Consulting


Quelle est la différence entre les failles Meltdown & Spectre et le bug de l’an 2000 ? On serait tenté de répondre « aucune », les deux cas ont ébranlé le monde entier. Tous savent qu’ils peuvent potentiellement être touchés par le cas mais ne savent pas réellement quand et si cela arrivera.

Pour être capable d’y voir plus clair et se faire une idée plus précise de ce qui nous attend, revenons un peu en arrière.

meltdown-spectre-cpu-670x335

Au fil du temps, les processeurs ont certes gagné en puissance mais se sont également complexifiés, plus leur architecture se sophistiquait et plus il était compliqué d’être certain de maitriser les moindres recoins.
On a alors appris aux processeurs à traiter des instructions en parallèle afin de gagner en performance en les répartissant notamment vers des sous-processeurs spécialisés pour un certain type de traitement. On a également créé des files d’attentes et on a multiplié le nombre de processeurs car on ne pouvait plus augmenter leur fréquence (la loi de Moore avait vécu).

Qu’en est-il des failles ? La faille « Meltdown » est propre aux processeurs Intel. Elle touche la fonction « Out of Order Execution » des processeurs. Comprenez par-là que l’on entend « Out of Order » en tant « ordre différent » et non pas « en panne ». Pour gagner du temps et ne pas perdre des cycles d’horloge à attendre des résultats avant de pouvoir procéder au traitement des instructions suivantes, on a commencé à exécuter les instructions dans un ordre différent de leur arrivée dans la file d’attente. Cette fonction permet donc d’accéder à certaines zones de mémoire du noyau sans avoir besoin de fournir un niveau d’autorisation. Cela permet à un traitement d’aller espionner un processus lancé par un traitement tiers et en rapatrier les données. En clair on peut récupérer des données sensibles d’une application vers une autre. Toutefois, il semble qu’il ne soit pas possible procéder à une altération des données. On peut donc aisément imaginer une application récupérer les mots de passe et identifiants d’une autre application, ou encore des données financières, etc.

La faille « Spectre », elle concerne tous types de processeur et touche les exécutions spéculatives. Une exécution spéculative est une optimisation technique où l’on procède à certaines tâches alors qu’elles ne sont pas encore nécessaires, c’est-à-dire que l’on spécule sur un résultat encore à venir. Cela permet de gagner en temps d’exécution en accélérant les traitements de manière très sensible. On peut imaginer que l’on perdrait énormément de performance si l’on devait décider de se passer de cette fonction. Bien que cette faille ne permet pas d’accéder au kernel (noyau), elle crée une attaque qui dirige une voie prédictive vers un chemin et, après plusieurs itérations, elle utilise une voie prédictive erronée afin de forcer l’exécution d’un code qui n’aurait pas dû être effectué (altération du chemin).

On est donc tenté de se poser la question suivante : est-ce que le problème est sérieux ? La réponse est clairement OUI. Meltdown est certainement le bug (erreur, bogue) le plus sérieux jamais rencontré dans l’histoire de la gestion des processeurs informatiques. Tout traitement qui est exécuté par une application peut potentiellement voler des données d’une application active, cela inclut du code javascript d’une page web affichée par un navigateur. D’autre part, Spectre est plus complexe à mettre en œuvre pour un hacker mais il est aussi plus difficile à éradiquer et posera un problème beaucoup plus sérieux à long terme.
Meltdown a été identifié par 3 équipes, incluant Jann Horn du Projet Zero de Google, Werner Haas et Thomas Prescher de Cyberus Technology et également Daniel Gruss, Moritz Lipp, Stefan Mangard et Michael Schwarz de l’Université de la Technologie de Graz en Autriche. Spectre, quant à lui, a été découvert par 2 personnes, Horn et Paul Kocher, qui ont collaboré avec Daniel Genkin des Universités de Pennsylvannie et du Maryland, Mike Hamburg de Rambus, Lipp et Yuval Yarom de l’Université d’Adélaide et Data61.

Quelles unités sont touchées ? Potentiellement toute unité possédant des processeurs Intel, AMD et ARM peut être touchée. Cela comprend les serveurs, les ordinateurs personnels, les tablettes, les téléphones, les objets connectés et surtout les systèmes « cloud », ces derniers vont être une cible privilégiée des hackers car regroupant des applications de différentes sources dans un même système de processeurs. On imagine aisément une société cherchant à espionner une autre par le biais d’une de ces failles.

2018-01-07_11-25-36

Comment peut-on se protéger d’une utilisation frauduleuse de ces failles ? En premier lieu pour les processeurs à venir les fondeurs vont devoir redessiner le design et l’architecture de leurs puces. Mais ceci est une musique d’avenir qui n’interviendra certainement pas rapidement d’une part, et qui entend le changement de tous les processeurs (voire l’équipement complet) de l’architecture informatique, d’autre part. Les fondeurs peuvent également imaginer la mise à jour du microcode des processeurs existants. Une mise à jour et une adaptation des système d’opérations (Windows, MacOs, Linux, etc.) doit être envisagée pour rendre les noyaux plus sûrs au niveau des autorisations d’accès. On peut penser que la dernière solution soit la plus rapide à pouvoir être mise en place. Mais toutes ces solutions vont certainement conduire à une dégradation plus ou moins marquée des performances suivant la solution choisie. L’utilisateur doit donc s’attendre à une régression de la vitesse d’exécution des applications de son environnement informatique. Il existe déjà aujourd’hui des prédictions de ralentissement d’environ 30% des certaines tâches telles que les sets d’instruction de lecture et écriture sur média de stockage.

Comme cité précédemment, le problème le plus évident concerne le service cloud comme le service Web d’Amazon et le Cloud Platform de Google, du fait de l’échelle et des niveaux de leurs ressources informatiques et également de l’impact potentiel de leurs correctifs sur les performances. Amazon est en train de patcher ses systèmes de son Amazon Web Services EC2, mais pour être totalement protégé l’utilisateur devra procéder à l’installation d’un correctif de son OS. Google a également informé avoir mis à jour la majorité de son système mais là aussi l’utilisateur devra procéder à une mise à jour sur son système. Microsoft est actuellement dans un processus de déploiement de correctifs sur ses systèmes cloud.

Comme on peut le voir, toutes les forces sont mobilisées pour trouver tous les moyens de combler ces failles afin de bloquer toute action intrusive. Mais, qu’on ne se leurre pas, quoique l’on puisse entendre, cette étape seront longue jusqu’à que ce l’on se trouve dans un environnement sécurisé répondant aux attentes des utilisateurs.
Dans l’immédiat, il est recommandé de redoubler de prudence pour sa propre sécurité, éviter les sites web que l’on ne connait pas bien ou encore qui sont douteux. Il faut également prêter une attention particulière à tout ce l’on pourrait télécharger (et recevoir par mail) sur sa machine (logiciels, documents pouvant contenir des macro-instructions).

Ce problème touche le monde entier, nul n’est à l’abri, certains seront touchés d’autres passeront entre les gouttes, mais, en tous les cas, personne ne peut prédire aujourd’hui qu’il ne sera pas touché. Donc la prudence la plus élémentaire est de mise, il va certainement falloir modifier nos habitudes d’exploitation de nos systèmes informatiques…