Les failles Meltdown et Spectre

Impossible de ne pas avoir entendu parler des deux failles Meltdown et Spectre, en réalité il s’agit de trois failles, touchant de nombreuses gammes et déclinaisons de processeurs Intel, AMD, ARM, Qualcomm. 

Grosso modo, ces failles font la même chose : permettre l’accès à une partie de la mémoire enfouie dans le processeur et qui normalement constitue une enclave sécurisée et inaccessible. Un des problèmes est l’isolation entre les applications des utilisateurs et le système d’exploitation, car une attaque pourrait accéder à cette mémoire protégée via l’application, permettant ainsi de récupérer les données sensibles stockées dedans. Spectre agit fondamentalement de la même manière mais entre différentes applications. Elles s’appuient sur des faiblesses des mécanismes d’optimisation au niveau du processeur et notamment :

— L’exécution spéculative consiste en le lancement anticipé d’une instruction, afin de pouvoir suivre le rythme des tâches toujours plus nombreuses à exécuter, mais sans s’assurer que cette anticipation soit correcte : soit elle l’est et dans ce cas le résultat est attendu et déjà prêt à être fourni, soit elle n’est pas correcte et il suffit d’ignorer ce résultat sans que cela n’impacte le temps passé ;

— Les limites de sécurité : les ordinateurs modernes s’appuient sur leur capacité à supporter des codes distincts simultanément, tout en maintenant des limites. Par exemple, si vous regardez une vidéo YouTube tout en étant connecté sur votre compte bancaire dans un autre onglet, le processeur peut maintenir la séparation entre ces deux espaces. Cependant, l’exécution spéculative se fait parfois sans vérifier les limites de sécurité, toujours dans l’optique de ne pas ralentir le processeur, dans la mesure où les vérifications de sécurité seront réalisées avant que le résultat final ne soit fourni.

Ces failles ont été découvertes par des équipes de Google en 2017 mais c’est seulement début janvier que l’éditeur a publié les premiers éléments. Et là c’est la panique. Les trois mois de « secret » devaient permettre aux éditeurs et constructeurs de préparer des ripostes pour patcher les systèmes, les noyaux. Mais c’est en janvier que les annonces de patchs, de mises à jour des firmwares se sont succédés. Avec parfois de la confusion, des erreurs et de nouveaux problèmes. Ainsi, des patchs Windows empêchaient des PC basés sur des processeurs AMD de redémarrer…

Ces failles touchent le coeur des processeurs, plus précisément, certains mécanismes d’optimisation des performances. Et c’est pour cela qu’il n’est pas possible de combler les trois failles. L’objectif est de réduire les risques et donc de réduire la surface potentielle d’attaque. Spectre est la faille la plus dangereuse mais aussi la plus complexe à utiliser. Oui les risques sont là mais il ne faut pas tomber dans l’excès. 

Ces patchs nuisent aux performances des systèmes mais l’impact se fera au cas par cas. Des éditeurs parlent de 5-7 % à +20 %. 

Par contre, ce qui est effectivement très important pour vous c’est de comprendre ce que le fournisseur cloud, votre hébergeur va faire pour vous et ce que vous vous devez faire pour vos infrastructures. 

Pour les services mutualités, les infrastructures gérées par le fournisseur, les patchs seront appliqués directement sur les machines, les systèmes serveurs. Mais attention, pour des serveurs dédiés, des VM dédiés, vous devez faire les mises à jour nécessaires. Chaque OS aura sa mise à jour à appliquer. Et bien entendu, il faut redémarrer… 

Est-ce que votre fournisseur est responsable de la perte de performances éventuellement constatée ? La réponse est très difficile à donner car cela va dépendre vos contrats SLA. Si le contrat n’indique pas clairement des objectifs de performances pures, ou des notions de dégradations des performances (le terme de dégradation est déjà ambiguë), vous n’aurez sans doute pas grand chose à dire. 

Au-delà, un autre problème survient. Car ces failles ne concernent pas tous les processeurs serveurs. Comment savoir si votre infrastructure possède des processeurs compromis ? Il faut pouvoir accéder aux spécifications précises des processeurs de chaque lame serveur… 

Mais comme les failles sont liées aux processeurs, il faut changer les processeurs compromis par des processeurs sains ! Je vous laisse imaginer l’ampleur de la tâche. Même dans vos infrastructures internes, posez-vous la question !

La complexité des CPU est tellement élevée que les risques d’une faille critique se multiplient. Et les mécanismes d’optimisation poussent les limites du processeur et ce sont eux qui sont en causes aujourd’hui. Intel promet des processeurs corrigés dans les prochaines semaines…