Après Spectre et Meltdown, trois nouvelles failles CPUs Intel vont imposer aux DSI de désactiver l’hyper-threading des PC et serveurs pour garantir leur sécurité. 

Nous l’avions dit dès janvier 2018 lors de l’annonce de la découverte des failles Spectre et Meltdown : « ne nous y trompons pas, ces découvertes en entraîneront bien d’autres. Elles inaugurent une nouvelle ère : celle de l’exploitation des failles de design des processeurs ».
Originales, les attaques Spectre et Meltdown n’exploitent pas un bug, mais des déficiences dans la conception même des processeurs. Dès lors, il n’existe aucun réel correctif et les parades ressemblent davantage à de fragiles rustines qui masquent le mal plus qu’il ne le corrige. La seule vraie solution suppose une reconception des « cœurs » des processeurs.
Depuis, de multiples variantes de Spectre sont apparues ainsi que d’autres attaques (Spoiler) exploitant les mêmes défaillances dans les mécanismes spéculatifs d’optimisation des exécutions. Intel en est la principale victime. Chaque découverte impose d’émettre de nouvelles rustines impactant un peu plus les performances.

Mais la dernière découverte en la matière aura un impact encore plus drastique. Inspirées de Spectre quoique radicalement différentes, les nouvelles attaques RIDL, Fallout et ZombieLoad exploitent un ensemble de quatre vulnérabilités qui affectent presque tous les processeurs Intel sortis depuis 2008 ! Dénommées « vulnérabilités MDS (Microarchitectural Data Sampling) », elles permettent à un attaquant depuis une simple page Web hébergeant un code JavaScript de dérober des données confidentielles comme les clés de chiffrements, les mots de passe, etc. Portées au cœur même des processeurs, ces attaques échappent à tous les mécanismes d’isolation, qu’ils s’agissent de VM, de protection des processus ou même d’enclaves SGX (qui créent des ilots d’exécution chiffrés).

Comme pour les précédentes failles, se protéger de ces failles implique la diffusion d’un nouveau microcode Intel et des patchs dans les systèmes, les drivers et les navigateurs Web. Des rustines qui ne corrigent pas entièrement le mal. Au point que Google (pour ChromeOS), Microsoft, Apple, RedHat et OpenBSD invitent les administrateurs à désactiver la fonctionnalité « Hyper-Threading » présente dans tous les processeurs Intel Core et Intel Xeon des serveurs, workstations et PC ! Et comme le précise l’alerte émise par Apple, « cette action peut réduire les performances jusqu’à 40%, l’impact étant particulièrement sensible sur les applications fortement multithreadées ».

Mettre à jour son système et désactiver l’hyperthreading apparaît comme la mesure la plus simple, la plus efficace et la plus rapide à mettre en œuvre. Autre solution, s’assurer que les ordinateurs n’explorent plus le Web et soient totalement blindés afin d’interdire toute exécution de codes non certifiés, ce qui est bien moins aisé à concrétiser.
Toutegois « Intel ne recommande la désactivation d’Hyperthreading » selon un email envoyé par le fondeur à The Register. Pour Intel, désactiver cette fonctionnalité ne suffirait pas à protéger les appareils et impacterait trop fortement la performance des Workloads. Le fondeur recommande d’implémenter les rustines mises à disposition puis, cas par cas, de définir les mesures complémentaires à mettre en place.

Au final, ces nouvelles failles sont une très mauvaise nouvelle pour tous les datacenters, pour tous les clouds mais surtout pour Intel. Le fondeur est spécifiquement visé par ces attaques alors même qu’il doit affronter le retour en force d’AMD sur les PC comme sur les serveurs avec ces processeurs Ryzen et Epyc.

Liens indispensables : 
Intel – Software Guidance For Security Advisories
Microsoft – MDS Threat Guidance
Apple – Additional mitigations for speculative execution vulnerabilities on Intel CPUs
Google – Google’s mitigations for MDS
RedHat – MDS Vulnearabilities

Sources:
Université de Vrije Amsterdam – RIDL & Fallout : MDS Attacks
RIDL: Rogue In-Flight Data Load
FALLOUT : Reading Kernel Writes From User Space
ZOMBIELOAD : The ZombieLoad Attack