Deux chercheurs de l’Université de Birmingham ont découvert que la carte mère Supermicro X11SSL, largement utilisée dans les serveurs, comportait des failles logicielles pouvant être exploitées à distance par des pirates informatiques pour induire des fautes matérielles sur le CPU principal. En injectant leur propre code, ils ont modifié les tensions envoyées au CPU, menant à sa destruction.
Les cartes mères des serveurs modernes contiennent de nombreux composants, parmi lesquels des régulateurs de tension pour la gestion de l’alimentation. Ces composants sont connectés au processeur (CPU) et au contrôleur de gestion de carte mère (ou BMC, pour Baseboard Management Controller) via le PMBus, un protocole de communication basé sur I2C, destiné à la gestion de l’alimentation et adopté par plus de 40 constructeurs. Zitai Chen et David Oswald ont découvert qu’une carte mère couramment utilisée dans les serveurs (Supermicro X11SSL) comportait des failles particulièrement dangereuses.
Dans un article de pré-impression, ils montrent comment des failles logicielles repérées dans le BMC (ou d’autres processeurs ayant accès au PMBus) peuvent être utilisées pour accéder au PMBus afin de lancer des attaques par injection de fautes matérielles sur le CPU principal. « Nos attaques, appelées PMFault ne nécessitent pas d’accès physique à la carte mère du serveur, ni la connaissance des informations d’identification du BMC », précisent-ils dans leur article. Ils ont évidemment signalé le problème à Supermicro.
Prendre le contrôle du BMC pour viser le CPU
« Le contrôleur de gestion de carte (BMC) dispose d’un bus de circuit inter-intégré (I2C), qui peut permettre aux changements de tension d’être en dehors de la plage de fonctionnement spécifiée pour le processeur et, par conséquent, d’affecter les calculs normaux », a déclaré Supermicro dans un communiqué, après avoir été avertie par les deux chercheurs. La société précise qu’il s’agit d’une faille de gravité « élevée » et que le BMC des cartes mères concernées doit être mis à jour pour éliminer cette vulnérabilité.
D’autres constructeurs ont déjà fait les frais d’attaques ciblant directement le matériel : fin 2019, les puces Intel étaient la cible d’une attaque appelée Plundervolt, qui exploitait une fonction non documentée des processeurs pour modifier leur limite de tension d’alimentation et déclencher des erreurs de calcul. Par ce biais, il était possible de contourner les protections de sécurité fournies par la technologie Software Guard Extensions (SGX) — l’environnement d’exécution sécurisé d’Intel — intégrée aux processeurs.
Cette technologie permet de créer des « enclaves », dans lesquelles le processeur chiffre une partie de la mémoire, qui devient dès lors inaccessible à tout programme extérieur à l’enclave. Mais le fait de modifier la tension fournie au processeur au moment du chiffrement entraîne un chiffrement moins robuste et permet aux pirates d’accéder plus facilement aux données sensibles de la mémoire. Bien d’autres attaques (comme CLKSCREW, V0ltPwn et VoltJockey) ont montré qu’une sous- ou surtension peut être utilisée pour créer des erreurs de calcul et ainsi briser les environnements d’exécution de confiance.
Le type d’attaque mis en œuvre par Chen et Ostwald est assez similaire. Ils ont découvert que le BMC de la carte Supermicro X11SSL pouvait être exploité de façon malveillante, car il a été conçu pour permettre le contrôle à distance du serveur (via SSH) en cas de panne du CPU ; or, ce composant possède plusieurs connexions à d’autres bus et puces de la carte mère, y compris le bus I2C où se trouve le module de régulation de la tension.
Une nouvelle possibilité d’attaque par survoltage
« Les faiblesses sous-jacentes comprennent des mécanismes non sécurisés de chiffrement et de signature des micrologiciels, un manque d’authentification pour le processus de mise à jour des micrologiciels et l’interface de contrôle IPMI KCS, ainsi que la conception de la carte mère (avec le PMBus connecté au BMC et au SMBus par défaut) », détaillent-ils.
Les deux chercheurs soulignent que la position privilégiée du BMC, combinée à sa grande surface d’action, rend intéressant — du point de vue d’un pirate informatique — d’exploiter les vulnérabilités du système par le biais des fonctions de gestion de l’énergie. Ils ont ainsi écrit un nouveau code qu’ils ont injecté dans le BMC pour en prendre le contrôle, de manière à envoyer via le PMBus des commandes arbitraires de contrôle de la tension du CPU.
Ils ont montré que leur approche d’undervolting à travers le PMBus permet même de contourner les contre-mesures mises en place par Intel contre les attaques précédentes (telles que Plundervolt ou V0ltPwn) et donc, de briser les garanties d’intégrité des enclaves SGX — ce qui permet notamment d’accéder au clés de chiffrement. Enfin, ils ont mis en évidence une nouvelle possibilité d’attaque par survoltage : en envoyant une certaine séquence de commandes PMBus, ils peuvent appliquer une tension au CPU Intel Xeon bien supérieure à sa limite maximale (jusqu’à 2,84 V), pour l’endommager de façon permanente, rendant le serveur inopérant. Le détail de leurs expériences est disponible sur Github.
Toutes les cartes mères Supermicro de 11e génération présentent ces faiblesses, mais les chercheurs estiment que d’autres fabricants sont sans doute concernés, notamment ASRock. « À notre connaissance, la 12e génération de cartes mères Supermicro, qui a été conçue avant que nous ne signalions la faille à Supermicro, n’est pas vulnérable », ajoutent-ils.