Au début de l'année dernière, plusieurs vulnérabilités affectant les processeurs depuis plusieurs années ont été dévoilées. Au nombre de trois « variantes », ces vulnérabilités exploitent des mécanismes internes aux processeurs. Elles sont souvent regroupées sous le nom de Spectre pour les variantes 1 et 2, et Meltdown pour la variante 3. Elles permettent de lire la mémoire kernel en tant que simple utilisateur, ou bien d’aller lire la mémoire de l’hôte depuis une machine virtuelle. Plusieurs autres variantes ont été découvertes par la suite. Des détails de deux autres variantes (3a, et 4) ont été publiés. Elles abusent des mécanismes d’exécution spéculative pour (3a) lire des registres internes des processeurs et (4) lire des données sensibles en mémoire. Pour rappel, Meltdown et Spectre abusent de certains mécanismes d’optimisations implémentés dans les processeurs, notamment celui dit d’exécution spéculative. Ce mécanisme permet au processeur d’exécuter certaines instructions en avance de phase afin de gagner du temps. Le processeur peut par exemple (variante 1) exécuter une série d’instructions se trouvant après une condition, sans savoir à ce moment-là si la condition sera remplie ou non. Si la condition n’est en fait pas remplie, le processeur revient à son état précédent l’exécution du bloc et tout se passe comme si rien ne s’était passé. Or il a été démontré que des traces de l’exécution erronée du bloc peuvent être retrouvées dans le cache du processeur, celui-ci n’étant pas remis dans son état original.
Ces vulnérabilités ont dû être patchées soit par la mise à jour du microcode des processeurs affectés, soit par la mise en place de mécanismes de protection au sein des systèmes d’exploitation. Néanmoins certaines de ces protections impliquent des baisses de performances, et certains patchs n’ont pas été totalement efficaces et ont subi plusieurs itérations avant d’être matures. AMD et Intel ont aussi pris en compte ces failles dans leurs futures architectures afin de livrer de nouveaux processeurs non vulnérables. Les fournisseurs d’infrastructure cloud, particulièrement impactés par ces vulnérabilités, ont aussi dû rapidement réagir en déployant des correctifs sur leurs serveurs. Aussi, des compilateurs ont implémenté des mécanismes pour contrer certaines variantes, et des guides de développement ont été publiés afin d’écrire du code moins sensible à ces attaques. Encore plus inattendu, les navigateurs web ont baissé la précision des timers JavaScript afin d’empêcher l’exploitation de ces failles depuis du code JavaScript.
Meltdown et Spectre ont donc été des vulnérabilités assez hors du commun, tant par le fait qu’elles attaquent les processeurs eux-mêmes, par leur impact très large (tous les OS étant concernés), et le travail qui a été nécessaire pour les corriger. En effet c’est toute l’industrie (fabricants de CPU, développeurs d’OS, fournisseurs d’infrastructure) qui a dû se coordonner, en secret, pendant plusieurs mois afin de fournir une réponse adaptée. Au centre des efforts d'Intel pour trouver un correctif se trouve STORM, le groupe de recherche offensive stratégique et d'atténuation de la société, une équipe de pirates informatiques du monde entier chargée de contrer les menaces de sécurité de la prochaine génération. Réagir aux vulnérabilités d'exécution spéculatives, en particulier, a nécessité une collaboration étroite entre les équipes de développement de produits, les groupes d'architecture patrimoniale, les services de communication et de diffusion pour coordonner l'intervention, et les groupes de recherche axés sur la sécurité chez Intel. STORM a été au cœur de l'aspect technique.
« Avec Meltdown et Spectre, nous avons été très agressifs dans notre façon d'aborder ce problème. La quantité de produits que nous devions traiter et le rythme auquel nous le faisions, nous avons placé la barre très haut », explique Dhinesh Manoharan, qui dirige la division de recherche en sécurité offensive d'Intel, qui comprend STORM. L'équipe de recherche sur la sécurité offensive d'Intel se compose d'une soixantaine de personnes qui se concentrent sur des tests de sécurité proactifs et des enquêtes approfondies. STORM est un sous-ensemble d'une douzaine de personnes qui travaillent spécifiquement sur les exploits de prototypage pour montrer leur impact...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.