Les failles découvertes dans bon nombre de processeurs sont provoquées par des méthodes d’amélioration des performances desdits processeurs. Il semble que personne ne soit épargné et on ignore encore à ce jour si ces vulnérabilités ont été exploitées ou non.
On en parle énormément mais nous ne vous avons toujours pas expliqué ce qui se cache derrière les noms Meltdown et Spectre. Au début de la semaine, The Register a dévoilé l’existence d’une faille dans les processeurs Intel. Les détails techniques étaient néanmoins sous embargo. Mais la reprise de cette information a poussé les équipes issues de Google Zéro et d’autres sociétés ainsi que des universitaires enquêtant depuis un an sur ces failles à briser l’embargo.
On apprend ainsi qu’il n’est pas question d’une unique faille mais de trois. CVE-2017-5754, ou Meltdown, est vraisemblablement exclusive à Intel. Elle « casse le mécanisme empêchant applications d'accéder à la mémoire système arbitraire » commentent les chercheurs. Cette attaque permet à un programme d'accéder à la mémoire au niveau du kernel et donc d’accéder à des ressources et informations sensibles (mots de passe, clés d’authentification…).
Pour la contrer, il faut donc isoler les espaces mémoires dédiés au kernel et ceux affectés aux processus utilisateurs. On parle de Kernel Page Table Isolation (KPTI), c’est justement ce que contenaient les patches Linux qui ont mis la puce à l’oreille de nos confrères du Register. Meltdown pourrait s’avérer particulièrement néfaste dès lors que sont visés des VM : c’est l’ensemble des utilisateurs d’une infrastructure mutualisée qui seraient alors impactés.
Un avant-goût d’aCPUcalypse
CVE-2017-5753 et CVE-2017-5715, rassemblées sous le nom Spectre, ne touchent pas qu’Intel. ARM est également concerné. Quant à AMD, qui pointait du doigt Intel dans l’article du Register, il se fait désormais discret puisque lui aussi est touché. Cette attaque emploie des méthodes proches de Meltdown. Ici, c’est l’isolation entre les applications qui est cassée, permettant à l’attaquant de récupérer les données en mémoire directement avec un code JavaScript sur un site web piraté.
Plus concrètement, cette faille permet à un programme d’accéder aux espaces mémoire alloués à un autre programme. Spectre est plus difficile à exploiter que Meltdown mais aussi plus difficile à corriger, estime-t-on chez Google Zero. Il est suggéré que les correctifs doivent être apportés directement aux applications. Une correction du défaut de conception des processeurs est également une solution, quoique difficilement envisageable sur le parc existant.
Ces deux failles particulièrement dangereuses existent du fait des mécanismes implémentés par les fabricants à leurs processeurs. Meltdown utilise le « out of order execution », une exécution des processus dans le désordre permettant d’accélérer l’envoi d’instructions au processeur. Spectre, pour sa part, repose sur la « Speculative execution », un mécanisme fort complexe consistant pour le processeur à exécuter des instructions avant qu’elles lui soient réellement transmises. Ces méthodes sont employées par les fabricants depuis plus d’une décennie, et pas seulement Intel. Ajoutez à cela les embargos et une communication erratique et vous obtenez un cocktail explosif.