Afin de développer des mécanismes de défense, des chercheurs du MIT ont étudié le point faible des processeurs pour serveurs Intel Xeon et Intel Core X. Ils ont découvert comment attaquer le composant qui gère l’interconnexion entre les cœurs pour voler des données comme des clés cryptographiques.


au sommaire


    Ces dernières années, de nombreuses failles matérielles ont été découvertes au sein des processeurs, obligeant les constructeurs à revoir leur architecture pour les générations suivantes, et aussi à travailler notamment avec MicrosoftMicrosoft pour mettre en place une parade directement au niveau du système d'exploitation. Toutefois, un des éléments des processeurs, qui est pourtant relié à tous les composants sur la puce, est assez peu étudié.

    Les processeurs pour serveurs multicœur IntelIntel sont des puces complexes, avec de nombreux éléments. Chaque cœur est en réalité un processeur en lui-même, avec sa propre mémoire cache. La puce dispose également d'une mémoire cache commune pour tous les cœurs. Lorsqu'un des cœurs a besoin d'une information dans la mémoire cache commune, ou celle d'un des autres cœurs, il doit passer par l'interconnexion, un composant dédié pour réguler le trafic.

    L’architecture de l’interconnexion des processeurs pour serveur Intel, à gauche l’ancienne, à droite celle utilisée depuis 2017. © Intel
    L’architecture de l’interconnexion des processeurs pour serveur Intel, à gauche l’ancienne, à droite celle utilisée depuis 2017. © Intel

    Une attaque sophistiquée, mais bien réelle

    Jusqu'à présent, les chercheurs en cybersécurité ont jugé toute possibilité d'attaque visant l'interconnexion comme étant peu probable car trop complexe. Toutefois, des chercheurs du Massachusetts Institute of Technology (MIT) aux États-Unis viennent de découvrir qu'il est possible d'utiliser la Mesh Interconnect Architecture d’Intel, qui a remplacé la précédente interconnexion (Ring Architecture) en 2017, pour voler des données sensibles des logiciels comme un mot de passe ou une clé cryptographique.

    C’est en mesurant cette latence qu’ils parviennent à extraire des informations des logiciels qui s’exécutent sur ces cœurs

    À chaque fois que deux cœurs tentent simultanément d'accéder à des informations qui ne sont pas dans leur propre mémoire cache, l'interconnexion devra donner la priorité à l'un ou l'autre, créant des délais. C'est en mesurant cette latencelatence qu'ils parviennent à extraire des informations des logiciels qui s'exécutent sur ces cœurs.

    Les chercheurs ont d'abord dû créer des programmes accèdant intentionnellement à la mémoire cache située hors des cœurs sur lesquels ils s'exécutent. Ceci leur a permis de cartographier l'interconnexion, et ainsi de créer un modèle de fonctionnement, et même déterminer quels cœurs sont les plus vulnérables à une attaque par canal auxiliaire. Ils peuvent ensuite voler des informations bit par bit et sont parvenus à extraire les clés cryptographiques de deux programmes différents.

    Une attaque qui ne vise que les serveurs ?

    La bonne nouvelle est que cette étude s'est concentrée sur des processeurs pour serveurs d'Intel qui ont une architecture différente de celle des ordinateursordinateurs grand public. La même attaque ne devrait donc pas fonctionner sur un simple PCPC où la Mesh Interconnect Architecture n'est pas présente. Toutefois, si un serveur est affecté, des malfaiteurs pourraient dérober des informations d'un grand nombre d'utilisateurs.

    Les chercheurs ont utilisé leur modèle pour trouver deux méthodes que les administrateurs peuvent mettre en place pour limiter le risque d'attaque. La première est de déterminer quels cœurs sont les plus exposés à ce genre d'attaque, et d'exécuter les programmes les plus sensibles sur les cœurs les moins vulnérables. La seconde stratégie est de réserver les cœurs situés autour de celui qui exécute un programme sensible. En ne lançant que des programmes approuvés sur ces cœurs, un intrus ne pourra pas tenter de surveiller le programme sensible.