La vulnérabilité Spectre : 4 ans plus tard

Les vulnérabilités des processeurs sont-elles une menace réelle pour les entreprises ?

Quatre ans se sont écoulés depuis la première publication d’une étude sur Spectre et Meltdown, des failles informatiques qui se trouvent dans les processeurs modernes. Depuis cette date, les chercheurs ont découvert plusieurs problèmes similaires qui peuvent éventuellement entraîner la fuite de données confidentielles. Les chercheurs ont aussi donné des exemples d’attaques qui exploitent ces vulnérabilités, même s’il est peu probable qu’elles puissent être réalisées dans le monde réel. Dans cet article, nous cherchons à savoir quelle est la situation actuelle de ces problèmes informatiques et s’ils pourraient être utilisés pour attaquer les entreprises.

Les différentes variantes de Spectre

L’annonce faite en août 2018 a révélé trois vulnérabilités : Spectre v1 et v2, et Meltdown. Ces vulnérabilités ont plusieurs caractéristiques en commun :

  • Leur exploitation implique généralement l’exécution d’un code malveillant dans un système vulnérable, bien qu’avec des privilèges bas. L’option la plus dangereuse est une attaque via le navigateur lorsque l’utilisateur visite un site Web « infecté ».
  • L’exploitation en pratique exige certaines conditions. Ainsi, le code de l’application prise pour cible doit autoriser la fuite des données, avoir un soi-disant « gadget », et cette attaque rend l’attaque possible.
  • La divulgation des données se fait par des canaux secondaires. C’est pourquoi la fuite des données est extrêmement lente.
  • Une attaque réussie pourrait ne laisser aucune trace d’accès non autorisé aux données.

Ce dernier point est précisément ce qui a suscité l’intérêt particulier de ce travail scientifique apparemment théorique. Dans tous les cas, les chercheurs ont exploité le système de prédiction de branchement. Ce mécanisme, introduit il y a plus de 20 ans, vous permet d’accélérer les performances en exécutant un ensemble d’instructions même avant que le programme ne fasse une demande explicite d’exécution. Si la prédiction est correcte, les ressources du processeur sont utilisées de façon plus efficace. Si la prédiction est erronée, les calculs sont tout simplement oubliés.

La preuve de concept de Spectre v1 a montré que le processeur va lire les données auxquelles le programme ne devrait pas avoir accès. Ces données sont stockées dans le cache et peuvent être retirées en passant par les canaux secondaires. Ce mécanisme était considéré comme sûr puisque ce « secret » mal lu par erreur n’était pas transmis au programme. Pourtant, les chercheurs ont trouvé plusieurs méthodes qui permettent de lire indirectement ces données.

Après la publication de ce travail sur Spectre et Meltdown, plusieurs failles similaires ont été découvertes. Les experts cherchent encore de nouvelles méthodes pour extraire les données secrètes en exploitant les vulnérabilités des processeurs. Le tableau récapitulatif d’Intel inclut plus de 20 de ces problèmes, en plus des trois originaux.

Comment lutter contre Spectre

En théorie, il existe trois méthodes qui permettent de rendre la vulnérabilité d’un processeur moins exploitable : les fabricants peuvent lancer une mise à jour du microcode pour les processeurs existants, ils peuvent modifier les nouveaux processeurs, ou ils peuvent essayer de résoudre le problème en mettant à jour le programme. Une réelle atténuation exige souvent la combinaison des mises à jour du micrologiciel et du programme. Le nouveau microcode, qui corrige certaines vulnérabilités, est disponible pour les processeurs Intel depuis la génération de 2013 Haswell. Les solutions informatiques ont d’abord été implantées dans la huitième génération des processeurs Intel, ainsi que dans les processeurs Zen 2 d’AMD.

Les solutions logicielles peuvent être très délicates. Pour vous faire une idée, vous pouvez voir les modifications qui peuvent être apportées dans le noyau de Linux pour lutter contre Spectre v1 et v2. Un grand nombre de mesures ont été abordées, selon les buts et les objectifs d’un système spécifique, y compris la désactivation complète de l’exécution du code spéculatif avec de très graves conséquences pour le processeur.

Pour la plupart des entreprises dont le modèle commercial dépend de la performance d’un vaste parc de serveurs, cette baisse de performance sera l’effet le plus notable de ces mesures anti-Spectre. Une étude relativement récente publiée sur le site de Phoronix, qui examine la performance de plusieurs serveurs d’applications, a révélé une baisse moyenne de la performance de 25 % lorsque toutes les précautions prises contre Spectre sont activées dans le système d’exploitation Linux.

Attaques et preuves de concept réalistes

Malgré le nombre élevé de types d’attaques, la menace du vol des données via Spectre n’est que théorique. Même si chaque étude contient un code qui prouve la fuite, cela ne signifie pas pour autant que ce code peut être utilisé pour vraiment attaquer le système. Les limites habituelles de ce genre de démonstrations ou de preuves de concept sont les suivantes :

  • Les chercheurs démontrent une fuite de données au hasard. Il n’y a peut-être pas de valeur pratique. Il s’agit seulement d’informations arbitraires auxquelles le cybercriminel n’avait pas accès auparavant.
  • Ils créent les conditions idéales pour l’attaque. Par exemple, ils ont un accès illimité au système. Dans ce cas, ils n’ont pas besoin d’utiliser des méthodes complexes pour extraire les données.
  • Ils prouvent qu’il y a une vraie fuite de données, mais dans des conditions très improbables.

Le travail théorique le plus impressionnant, en termes de conséquences possibles, est l’attaque NetSpectre. Les chercheurs ont réussi à démontrer qu’une exploitation à distance est possible avec une extraction des données à une vitesse de 15 à 60 bits par heure. Les limites de cette attaque sont évidentes : un faible taux de transmission des données, les informations extraites contiennent un volume important de trafic indésirable, et le code vulnérable sur le serveur attaqué se trouve « juste au bon endroit ».

Deux attaques réalistes, dans des conditions aussi vraies que possible, ont été présentées l’an dernier. En mars, Google a montré un concept leaky.page : la page d’un site Web peut extraire les données de la RAM. En septembre, une attaque Spook.js visant la dernière version de Google Chrome (à ce moment-là, la 92) pourtant protégée contre Spectre (isolation des pages dans des processus de navigateurs séparés) a fait ses preuves. Cette méthode permet vraiment de voler des données. Les chercheurs ont accédé aux identifiants d’un réseau social, aux données d’un gestionnaire de mots de passe et à une image téléchargée par l’utilisateur sur son Cloud privé. Dans tous les cas, pour que cette fuite de données soit un succès, la page « infectée » doit se trouver sur le même domaine. Par exemple, pour voler le mot de passe d’un compte Tumblr, le code malveillant JavaScript doit être téléchargé sur une autre page du même réseau social.

À quel point cette menace est-elle dangereuse ?

La faille Spook.js a été neutralisée grâce à un patch logiciel pour le navigateur Google Chrome. Ainsi, pour le moment, il n’y aucune menace immédiate d’exploitation des vulnérabilités Spectre dans le monde réel. Toutes les attaques connues sont extrêmement complexes et requièrent d’excellentes compétences.

La plupart des preuves de concept plus réalistes ont été corrigées, et même sans ces patchs, il faut que de nombreuses conditions soient réunies pour qu’elles puissent être exploitées. Même si les rapports médiatiques qui parlent d’ « exploits réels de Spectre » n’ont pas été confirmés, les fabricants de solutions de sécurité ont ajouté des outils capables de détecter les attaques connues, juste au cas où. Ainsi, il est fort probable que les mécanismes existants de détection des malwares puissent protéger votre entreprise.

Pourtant, nous ne devrions pas ignorer Spectre : les recherches doivent se poursuivre. Avec le temps, nous pourrions découvrir le « pire scénario possible » : une attaque qui n’a pas besoin d’installer un malware pour voler les données et qui ne laisse aucune trace.

En théorie, une attaque ciblée peut être lancée en exploitant les vulnérabilités informatiques si la valeur des données volées le justifie. Pour se protéger contre ces menaces, il faut beaucoup investir dans l’identification des potentiels vecteurs d’attaque, suivre les conseils donnés par les développeurs des systèmes d’exploitation ou mettre en place une protection, même si cela signifie qu’il y aura une baisse significative en termes de performance. La plupart des entreprises, y compris les plus grandes, considèrent qu’il suffit de faire confiance aux développeurs de programmes et de systèmes d’exploitation, aux fabricants des processeurs et aux solutions de sécurité.

Conseils