Meltdown et Spectre : scandale technologique ou fatalité ?

La faille découverte dans les processeurs du géant mondial Intel qui fait paniquer Microsoft, Amazon et consorts n'est pas un problème de compétence, mais de culture de sûreté, laquelle a été pendant des années minimisée au profit de la course à la performance. Par J.-J. Quisquater, Ecole Polytechnique de Louvain, Université catholique de Louvain (UCL) et Ch. Cuvelliez, Ecole Polytechnique de Bruxelles, Université libre de Bruxelles (ULB).
Jean-Jacques Quisquater, Ecole Polytechnique de Louvain, Université catholique de Louvain (UCL) et Charles Cuvelliez, Ecole Polytechnique de Bruxelles, Université libre de Bruxelles (ULB).
Jean-Jacques Quisquater, Ecole Polytechnique de Louvain, Université catholique de Louvain (UCL) et Charles Cuvelliez, Ecole Polytechnique de Bruxelles, Université libre de Bruxelles (ULB). (Crédits : DR)

Les failles de sécurité d'Intel, c'est l'heure de gloire des responsables sécurité des fabricants de puces. Ils l'attendaient depuis des années.  Car la faille Intel n'est pas un problème de compétence, mais de culture de sûreté. C'est l'obsession, pour tous ces fabricants, de la course à la performance qui en est à l'origine. Pour prendre la mesure du spectacle qui se déroule sous nos yeux, il faut comprendre la nature de ces failles pour en tirer les leçons car d'autres vont suivre.

Spectre

Les microprocesseurs modernes anticipent les instructions qu'ils doivent effectuer. Ils n'attendent pas qu'elles arrivent de la mémoire, ce qui à l'échelle de temps des microprocesseurs, représente une éternité. A ce niveau élémentaire, les microprocesseurs sont souvent dans le bon et ils gagnent ainsi du temps et en performance. Si le microprocesseur s'est trompé, il fait marche arrière et exécute la bonne instruction qui lui est entretemps parvenue. Il est censé tout effacer des effets de l'instruction qui n'était pas la bonne. C'est là qu'est la faille Spectre : il reste des traces exploitables. Or, aucune sécurité ne contrôle leur absence.

Les chercheurs ont eu l'idée de forcer le microprocesseur à anticiper une instruction venant d'un autre programme donnant accès à des informations confidentielles de ce dernier.

Au niveau logiciel, un tel accès est impossible : ce sont les techniques d'isolation entre programmes qui tournent sur un même ordinateur. Ainsi, plusieurs utilisateurs ou plusieurs programmes peuvent se partager le même microprocesseur en toute sécurité.

Ce que ces techniques connues depuis longtemps n'avaient pas prévu, c'est que, à un niveau inférieur, ces violations peuvent avoir lieu au niveau matériel, mais surtout que les conséquences de ces violations ne seraient pas annihilées complètement lorsque le microprocesseur réalise son erreur.

Ceci dit, il faudrait que l'attaquant ait accès au même microprocesseur que la victime, qu'il sache où le programme utilisé par la victime stockera les informations intéressantes ou qu'il en connaisse les instructions sensibles. Car les chercheurs ont décortiqué le programme tiers qu'ils avaient, en fait, écrits eux-mêmes, puis ils se sont mis dans la peau d'un hacker... à ceci près : ils savaient déjà ce qu'ils cherchaient !

Ce n'est pas seulement Intel qui est impacté: ARM et AMD le sont aussi. Des remèdes sont possibles mais coûteux comme interdire toute anticipation d'instruction, au prix d'une sérieuse dégradation des performances. La seule bonne nouvelle est que seul le secret des données peut être violé, par leur intégrité.

Meltdown

Avec Meltdown, c'est une autre vulnérabilité qui viole le principe de séparation entre la mémoire système (kernel), qui contient tous les secrets du PC, et mémoire utilisateur. Quand le PC doit répondre à une sollicitation système (écriture d'un fichier, ouverture d'une connexion réseau...), le microprocesseur passe en mode kernel avant de revenir au mode utilisateur. Le passage d'un mode à l'autre est extrêmement coûteux en temps car il faut passer d'une zone mémoire dite « kernel » à la zone mémoire du mode utilisateur. Dans les microprocesseurs modernes, on protège le mode « kernel » au niveau matériel par un bit inviolable. Grâce à cette protection, les modes « kernel » et « utilisateur » peuvent alors coexister sans risque.

Là aussi, l'anticipation des instructions est la source du problème : il suffit d'envoyer au microprocesseur des instructions normalement réservées au mode kernel. Comme l'instruction est anticipée, elle pourrait très bien être exécutée avant celle qui lui donne le droit d'accéder au kernel. Le microprocesseur ne se pose pas de questions car si ce n'est pas la bonne instruction (il n'avait pas le droit d'accéder au kernel), il effacera de toute façon tout de ce qu'il vient de faire « illégalement ». Erreur : il reste aussi des traces matérielles exploitables.

Il y a des remèdes contre Meltdown :  mettre fin à la coexistence des modes kernel et utilisateur, imposer une stricte séparation entre les zones mémoire utilisateur et « kernel » qu'on distribue aléatoirement dans toute la mémoire du PC. Ainsi, les modes « kernel » et utilisateur  s'ignorent à nouveau mais au prix de performances dégradées. Les clouds sont les plus impactés : la mémoire kernel y est partagée entre plusieurs utilisateurs et a donc les secrets de tous. Or, les chercheurs ont été capables de faire une copie de la mémoire « kernel » sans y être autorisés. Voilà qui explique la panique chez Amazon et Microsoft.

Meltdown et Spectre : un très mauvais signal pour l'IoT

Alors, scandale technologique ? Non, hypocrisie : il y a vingt ans, quand ces optimisations matérielles ont été mises au point, on ne pouvait pas encore tout savoir de leur impact sur la sécurité. Mais, depuis, ceux qui l'ont appréhendée prêchent dans le désert chez les fabricants.

Il s'agit d'un bug matériel : les spécialistes de sécurité software ont le beau rôle en expliquant qu'ils ont toujours pris pour acquis que, au niveau matériel, tout était isolé et sécurisé. Ce n'est pas leur faute, disent-ils.

Ce faisant, ils nient les attaques corrélées matérielles et logicielles, dont la combinaison peut mettre à plat deux couches parfaitement sécurisées... en isolation. Enfin, on sait depuis longtemps que l'optimisation des performances des microprocesseurs a un impact sur la configuration matérielle. Or, les algorithmes de cryptographie ne sont pas considérés comme sûrs, si, au niveau du microprocesseur, des configurations matérielles sont modifiées, comme le font Meltdown et Spectre.

Il faut plutôt craindre la boîte de Pandore : il y aura d'autre déconvenues dès lors qu'on sait qu'au niveau microprocesseur se passent des choses que les programmes au-dessus considéraient comme impossibles. C'est très mauvais pour l'IoT (l'Internet des objets) qui reposera amplement sur ces couches matérielles.

___

POUR ALLER PLUS LOIN :

Sujets les + lus

|

Sujets les + commentés

Commentaire 1
à écrit le 10/01/2018 à 9:04
Signaler
C'est surtout une immense déception concernant Intel que je pensais être un fabricant sérieux mais qui volontairement, afin de stocker des données à vendre, a installé une faille de sécurité sur ses processeurs voyant que windows 10 misait toute sa r...

Votre email ne sera pas affiché publiquement.
Tous les champs sont obligatoires.

-

Merci pour votre commentaire. Il sera visible prochainement sous réserve de validation.