Meltdown et Spectre : quand la course à la performance laisse la sécurité sur le banc de touche…

A une époque où les besoins en termes d’efficacité des processeurs ne cessent d’augmenter, les failles Meltdown et Spectre viennent obscurcir cette course à la performance. En effet, trois failles sans précédents ont été publiées le 4 janvier 2018 et ont été répertoriées comme CVE-2017-5754 et CVE-2017-5753 pour Meltdown ainsi que CVE-2017-5715 pour Spectre.

Des microprocesseurs surboostés pour une performance accrue

Afin d’atteindre ces objectifs de performance sans cesse accrus, les processeurs modernes ont été développés de manière complexe. Des mécanismes, liés à l’augmentation perpétuelle de la fréquence d’horloge des microprocesseurs, ont été ajoutés à l’architecture originelle.

Le premier mécanisme novateur apporté aux microprocesseurs a été l’introduction de l’exécution prédictive des instructions. Auparavant, les microprocesseurs géraient les tâches en « file d’activités », c’est-à-dire de manière séquentielle. Mais aujourd’hui, lorsque que le processeur doit gérer une tâche prenant un temps trop important, il effectuera des instructions en avance afin d’éviter de rester inactif.

Dans tous les microprocesseurs modernes, des branches d’instructions parallèles sont créées. Après coup (une fois que la condition initiale est évaluée par exemple), la branche inutile est supprimée et l’exécution des instructions suivantes se fait sur la branche « valable ». Un travail en avance de phase est effectué par le microprocesseur et permet un gain de performance significatif.

La seconde innovation a été de permettre une relative perméabilité du cloisonnement d’espace mémoire entre les processus noyaux et utilisateurs.

Le microprocesseur vérifie, lors de chaque instruction, si on est autorisé, ou non, à accéder à la page mémoire de la requête concernée. En théorie, chaque processus est normalement capable d’accéder à des données de sa propre plage d’adresse virtuelle. En pratique, aujourd’hui toute la mémoire physique est « mappée », par le système d’exploitation, dans le noyau. Le gain pour les opérations des microprocesseurs est de permettre des transitions plus rapides entre les processus noyaux et utilisateurs, notamment dans le cadre de gestion des interruptions, puisqu’aucun changement dans le mapping de la mémoire n’est à prévoir.

Derrière la performance, des failles inédites dites « matérielles »

En avril 2017, de manière confidentielle, un groupe de chercheurs autrichiens et une équipe Google (« Project Zero ») ont exploité les deux mécanismes inhérents aux microprocesseurs présentés ci-dessus, en utilisant des attaques faisant partie de l’état de l’art actuel. Leurs mois de recherches ont permis la mise en lumière des failles Meltdown et Spectre.

Gardées secrètes pendant plusieurs mois, afin de mener des investigations en profondeur et pour laisser le temps aux constructeurs de préparer des correctifs, plusieurs documents et des Proofs of Concept ont été publiés afin de comprendre ces problèmes informatiques majeurs.

La spécificité de Meltdown et Spectre réside dans la nature même de ces failles. Elles ne sont pas de type « applicative ». Elles ne sont pas non plus des failles relatives aux systèmes d’exploitation. Ces failles sont « matérielles ». Elles touchent le cœur de nos appareils électroniques : les microprocesseurs. Cette caractéristique explique la portée inédite de ces failles, et surtout, cela signifie qu’elles sont présentes dans TOUS nos appareils : ordinateurs, smartphones et tablettes.

Trop d’optimisation tue l’optimisation…

Il est nécessaire de s’interroger sur l’ajout incessant de mécanismes d’optimisation. Nous pouvons, en effet, porter un regard critique sur les concessions qui ont été faites par les fabricants de microprocesseurs pendant toutes ces années, au profit d’une course effrénée à l’optimisation. La concession principale qui nous vient à l’esprit est de ne plus maitriser totalement l’unité calculatrice à la base de tous nos appareils électroniques du quotidien, et ainsi de s’exposer à une dérive majeure, comme celle constatée dans le cas présent.

Cette course à l’optimisation des microprocesseurs semble, en plus, provoquer l’effet inverse que celui escompté pendant des années. En effet les patchs actuellement développés pour contrer Meltdown et surtout Spectre, engendrent, dans la plupart des cas, des baisses de performances des processeurs de l’ordre de 5 à 30% dans certains cas.

L’expertise au centre de notre stratégie de croissance