
En janvier 2018, les chercheurs de Google ont rendu publiques les informations sur les vulnérabilités matérielles fondamentales de la plupart des processeurs modernes avec une exécution spéculative des instructions. Vulnerability Specter (et Meltdown adjacent) exploite le mécanisme de prédiction de branchement dans le CPU et permet de lire des données via un canal externe sous la forme d'une hiérarchie de cache commune. En d'autres termes, toute application sur l'ordinateur peut obtenir un accès en lecture à des emplacements de mémoire arbitraires, ce qui viole l'isolement des programmes, provoque une fuite de données, un déni de service et d'autres problèmes.
Pire encore, presque tous les processeurs modernes (sauf RISC et Elbrus russe) sont vulnérables, car la prédiction de branche est devenue un
élément fondamental de l'architecture des processeurs modernes , qui ne peut être abandonnée sans perte significative de performances.
En fait, les chercheurs ont découvert la vulnérabilité à la mi-2017, ils n'en ont tout simplement pas informé le grand public afin que les fabricants de processeurs et de systèmes aient la possibilité de préparer des mises à jour de microcodes et de logiciels.
Par conséquent, immédiatement après l'annonce officielle début janvier, Intel a
publié une mise à
jour du microcode pour un grand nombre de modèles de processeurs actuels et obsolètes. La mise à jour est disponible sous forme de packages pour Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Fedora, Ubuntu, Debian et Chrome OS, vous permettant de mettre à jour le firmware sans mettre à jour le BIOS. La mise à jour du microcode n'élimine pas la nécessité d'appliquer des correctifs KPTI au noyau Linux. Certes, les premières versions de Linus Torvalds
appelées «ordures absolues» , et Intel a demandé de cesser de les installer, puis réédité.
Des mises à jour ont été publiées par d'
autres fabricants pour leurs produits, les correctifs correspondants ont été publiés pour la plupart des systèmes d'exploitation. Un
correctif pour Windows 10 n'a pas échappé aux aventures: Microsoft l'a publié, l'a rappelé, puis l'a à nouveau publié.
Mais après toutes ces aventures, l'histoire semble terminée: des versions stables de correctifs ont été publiées et tous ceux qui voulaient les installer. Il semblerait que vous puissiez y mettre un terme. Mais non. Un an plus tard, le 14 février 2019, un groupe de chercheurs de Google a publié un rapport disant:
«Spectre restera avec nous. Analyse des attaques via des canaux tiers et exécution spéculative .
" Les chercheurs ont conclu qu'il est impossible de fermer complètement la vulnérabilité uniquement avec des correctifs logiciels. Cela nécessitera "un traitement important des processeurs".
D'après le rapport, on peut conclure que la vulnérabilité est vraiment fondamentale. Les auteurs écrivent que
tous les processeurs à exécution spéculative seront toujours sensibles à diverses attaques des canaux secondaires, malgré les méthodes de protection partielle qui pourraient être mises en œuvre à l'avenir .
Le rapport indique: «Nous pensons qu'avec un équipement moderne, les vulnérabilités spéculatives minent la confidentialité au niveau logiciel. Dans le même temps, il n'y a pas de protection logicielle complète, car nous avons découvert qu'un code malveillant peut créer un mécanisme universel pour lire toute la mémoire dans le même espace d'adressage via des canaux tiers. "
Intel a déclaré qu'il avait l'intention d'implémenter certains changements matériels dans les processeurs pour se protéger contre Spectre. Mais le problème est que Spectre n'est pas seulement un bug. Les chercheurs pensent qu'il s'agit d'une
large classe de vulnérabilités qui exploitent le mécanisme de prédiction de branche. Par conséquent, les correctifs simples ne peuvent pas être utilisés ici.
Les chercheurs ont suggéré plusieurs solutions potentielles, à savoir:
- désactivation complète de l'exécution spéculative;
- précision réduite de la minuterie;
- masquer les branches (étant donné que tout contrôle de sécurité intégré dans le code en tant que branche peut être contourné par la nature même de la prédiction de branche, les auteurs proposent de ne pas prendre en compte les branches dans la conception des mécanismes de sécurité).
Les chercheurs font une conclusion décevante: «Nos modèles, nos modèles
mentaux sont faux; nous avons sacrifié la sécurité pour la performance et la complexité, et nous ne le savions pas. L'ironie amère est maintenant que la protection nécessite l'introduction d'une complexité encore plus grande à l'aide d'outils logiciels, dont la plupart, comme nous le savons, sont incomplets ... Il semble que Spectre ait une trop bonne réputation car il est destiné à nous hanter pendant longtemps.