Deux des vulnérabilités les plus médiatisées dans les années 2010 étaient très étroitement liées les unes aux autres. Plutôt que d'être des vulnérabilités de sécurité dans les logiciels, Spectre et Meltdown sont des vulnérabilités dans la conception fondamentale des processeurs, ce qui rend le problème plus difficile à résoudre. Les problèmes eux-mêmes sont particulièrement graves, permettant la divulgation de mémoire à partir d'autres applications et du système d'exploitation.
Aperçu
Les processeurs utilisent des conceptions incroyablement avancées pour atteindre les performances les plus élevées, y compris des techniques telles que l'exécution spéculative et la prédiction de branche. L'exécution spéculative est l'endroit où le processeur commence à exécuter un processus avant de savoir s'il en a besoin, dans le but de gagner du temps lorsqu'il détermine qu'il en a besoin. La prédiction de branche est un sous-ensemble d'exécution spéculative qui tente de prédire le résultat d'un processus, puis commence à calculer l'étape suivante en fonction de cette valeur prédite permettant au CPU d'exécuter une série d'instructions sur ordre.
La vulnérabilité Spectre vient de l'implémentation de ces deux fonctionnalités. Il permet à une application de violer les techniques d'isolation de la mémoire intégrées à la plupart des logiciels modernes permettant la divulgation de la mémoire, y compris les secrets tels que les mots de passe et les clés de cryptage. L'un des problèmes avec Spectre est que les données peuvent être accessibles à partir d'applications qui ne présentent aucune vulnérabilité de sécurité, car seul un programme malveillant est requis.
La vulnérabilité Meltdown est basée sur certaines techniques de mémoire, ainsi que sur le système d'exécution spéculatif mentionné ci-dessus. Il utilise une « condition de concurrence » entre l'exécution du processus et la vérification des privilèges et permet à un programme malveillant d'accéder à la mémoire d'autres applications et du système d'exploitation.
Astuce: Une « condition de concurrence » est un problème dans lequel une tâche est censée dépendre d'une autre, mais l'ordre d'exécution correct n'est pas appliqué. Cela peut entraîner l'exécution du « deuxième » processus en premier et l'utilisation d'une mémoire non initialisée qui aurait dû contenir le résultat du « premier » processus, en laissant fuiter le contenu précédent de cette mémoire. Dans ce cas spécifique, le processus ne doit pas s'exécuter tant qu'un contrôle des autorisations n'a pas vérifié qu'il est autorisé à le faire, mais le contrôle des autorisations peut avoir lieu en second en raison des optimisations de performances.
Effets
À la mi-2017, plusieurs équipes ont découvert et signalé de manière indépendante Meltdown et Spectre aux fabricants de processeurs qui ont développé des correctifs. En raison des correctifs ciblant les optimisations de performances, ils ont fini par réduire les performances des processeurs jusqu'à 30 % dans le pire des cas, une baisse de performance de 2 à 14 % étant plus représentative de la expériences.
Les vulnérabilités ont affecté de nombreux processeurs x86, les processeurs IBM POWER et certains processeurs basés sur ARM. Meltdown affecte le matériel généralement trouvé dans les ordinateurs personnels ainsi que les serveurs cloud. Spectre affecte les ordinateurs personnels, les serveurs cloud et les appareils mobiles. Tous les processeurs Intel de 1995 à mi-2018 étaient vulnérables aux problèmes (à l'exclusion des lignes Itanium et Atom avant 2013). Les processeurs AMD n'étaient pas affectés par Meltdown mais étaient vulnérables à Spectre.
Des correctifs logiciels d'atténuation ont été développés et publiés par des fournisseurs de systèmes d'exploitation qui résolvent la majorité des problèmes. Depuis la mi-2018, Intel a mis à jour la conception de son processeur pour inclure des atténuations matérielles pour les problèmes.
Les deux problèmes peuvent être exploités via des pages Web malveillantes avec du JavaScript spécialement conçu, il est donc très important de assurez-vous que les correctifs de sécurité sont installés sur chaque système, même si la perte de performance sera sévère. Malheureusement, les problèmes ne peuvent pas être résolus avec un seul correctif, car ce sont des problèmes extrêmement complexes avec des l'intégration dans le matériel, les correctifs de sécurité continueront d'être déployés au fil du temps à mesure que de nouvelles variantes sont découvert.