Piratage d’environnements TEE dans les infrastructures de serveurs

Deux articles de recherche distincts démontrent clairement comment les systèmes virtuels peuvent être compromis dans un environnement hostile, notamment lorsque le propriétaire des données ne peut même pas faire confiance au fournisseur de services cloud.

Les processeurs de serveurs modernes intègrent un environnement d’exécution de confiance (Trusted Execution Environment, TEE) pour le traitement des informations particulièrement sensibles. Il existe de nombreuses mise en œuvre du TEE, mais deux d’entre elles sont particulièrement pertinentes dans le cadre de cette discussion : Intel Software Guard eXtensions (SGX) et AMD Secure Encrypted Virtualization (SEV). Presque simultanément, deux équipes de chercheurs distinctes, l’une aux États-Unis et l’autre en Europe, ont découvert indépendamment des méthodes très similaires (bien que distinctes) pour exploiter ces deux mises en œuvre. Leur objectif était d’accéder aux données chiffrées stockées dans la mémoire vive. Les articles scientifiques détaillant ces résultats ont été publiés à quelques jours d’intervalle :

  • Le projet WireTap: Breaking Server SGX via DRAM Bus Interposition est le fruit du travail de chercheurs américains. Il détaille le piratage réussi du système Intel Software Guard eXtensions (SGX). Ils y sont parvenus en interceptant l’échange de données entre le processeur et le module RAM DDR4.
  • Dans la publication Battering RAM, des scientifiques belges et britanniques ont également réussi à compromettre le système Intel SGX, ainsi que le système de sécurité équivalent d’AMD, SEV-SNP, en manipulant le processus de transfert de données entre le processeur et le module RAM DDR4.

Piratage d’un TEE

Les deux technologies mentionnées, Intel SGX et AMD SEV, sont conçues pour protéger les données, même si le système qui les traite est entièrement compromis. Les chercheurs sont donc partis du principe que les auteurs de l’attaque disposeraient d’une liberté d’action totale : accès complet au logiciel et au matériel du serveur, ainsi qu’aux données confidentielles qu’ils recherchent, stockées par exemple sur une machine virtuelle fonctionnant sur ce serveur.

Dans ce scénario, certaines limitations d’Intel SGX et d’AMD SEV deviennent critiques. Un exemple est l’utilisation du chiffrement déterministe : un algorithme où une séquence spécifique de données d’entrée produit toujours exactement la même séquence de données de sortie chiffrées. Étant donné que le pirate informatique dispose d’un accès complet au logiciel, il peut saisir des données arbitraires dans le TEE. Si le cybercriminel avait également accès aux informations chiffrées obtenues, la comparaison de ces deux ensembles de données lui permettrait de calculer la clé privée utilisée. Il pourrait alors déchiffrer d’autres données chiffrées par le même mécanisme.

La difficulté réside toutefois dans la manière de lire les données chiffrées. Celles-ci se trouvent dans la mémoire vive (RAM) et seul le processeur y a directement accès. Le programme malveillant théorique ne voit que les informations d’origine avant qu’elles ne soient chiffrées en mémoire. C’est là le principal défi, que les chercheurs ont abordé de différentes manières. Une solution simple et directe consiste à intercepter au niveau matériel les données transmises du processeur au module RAM.

Comment ça marche ? Le module de mémoire est retiré puis réinséré à l’aide d’un interposeur, qui est également connecté à un appareil spécialisé : un analyseur logique. L’analyseur logique intercepte les flux de données transitant par toutes les lignes de données et d’adresses vers le module de mémoire. C’est assez complexe. Un serveur dispose généralement de nombreux modules de mémoire, si bien que le pirate doit trouver un moyen de forcer le processeur à écrire les informations cibles spécifiquement dans la plage souhaitée. Ensuite, les données brutes capturées par l’analyseur logique doivent être reconstruites et analysées.

Cependant, les problèmes ne s’arrêtent pas là. Les modules de mémoire modernes échangent des données avec le processeur à des vitesses très élevées, effectuant des milliards d’opérations par seconde. L’interception d’un flux de données aussi rapide requiert un équipement haut de gamme. Le matériel utilisé pour prouver la faisabilité de ce type d’attaque en 2021 coûtait des centaines de milliers de dollars.

Les fonctionnalités de WireTap

Les chercheurs américains à l’origine de WireTap ont réussi à réduire le coût de leur piratage à un peu moins de mille dollars. La configuration pour intercepter les données du module de mémoire DDR4 ressemblait à ceci :

WireTap et Battering RAM : attaques contre les TEE

Système de test pour intercepter l’échange de données entre le processeur et le module de mémoire Source

Ils ont dépensé la moitié du budget pour acheter un analyseur logique vieux de vingt-cinq ans, qu’ils ont acquis dans le cadre d’une vente aux enchères en ligne. Le reste a couvert les connecteurs nécessaires, et l’interposeur (l’adaptateur dans lequel le module de mémoire cible a été inséré) a été soudé sur mesure par les auteurs eux-mêmes. Une configuration obsolète de ce type n’a pa pu capturer le flux de données à sa vitesse normale. Cependant, les chercheurs ont fait une découverte capitale : ils ont pu ralentir le fonctionnement du module de mémoire. Au lieu des vitesses effectives standard DDR4 de 1 600 à 3 200 mégahertz, ils ont réussi à réduire la vitesse à 1 333 mégahertz.

À partir de ce point, les étapes ne sont pas simples à proprement parler, mais elles sont claires :

  1. S’assurer que les données provenant du processus cible ont été écrites dans le module de mémoire piraté, puis les intercepter, toujours sous forme chiffrée à ce stade.
  2. Saisir un ensemble de données personnalisé dans Intel SGX pour le chiffrement.
  3. Intercepter la version chiffrée des données connues, comparer le texte clair connu avec le texte chiffré obtenu et calculer la clé de chiffrement.
  4. Déchiffrer les données précédemment capturées appartenant au processus cible.

En résumé, le travail de WireTap ne modifie pas fondamentalement notre compréhension des limites inhérentes au système Intel SGX. Il prouve néanmoins qu’on peut rendre l’attaque nettement moins onéreuse.

Les fonctionnalités de Battering RAM

Au lieu d’opter pour une approche directe d’interception des données, les chercheurs de l’université KU Leuven en Belgique et leurs collègues britanniques ont cherché une méthode plus subtile et plus élégante pour accéder aux informations chiffrées. Mais avant d’entrer dans les détails, examinons les composants matériels et comparons-les au travail de l’équipe américaine :

WireTap et Battering RAM : attaques contre les TEE

L’interposeur du module de mémoire utilisé dans Battering RAM Source

Au lieu d’un enchevêtrement de fils et d’un analyseur de données encombrant, cette configuration comprend une carte simple conçue à partir de zéro, dans laquelle le module de mémoire cible est inséré. La carte est contrôlée par un micro-ordinateur Raspberry Pi Pico peu coûteux. Le budget matériel est négligeable : seulement 50 euros ! De plus, contrairement à l’attaque WireTap, l’attaque Battering RAM peut être menée de manière dissimulée. En effet, il n’est pas nécessaire d’avoir un accès physique continu au serveur. Une fois que le module de mémoire modifié est installé, les données requises peuvent être volées à distance.

À quoi sert ce tableau exactement ? Les chercheurs ont découvert qu’en reliant à la terre seulement deux lignes d’adresse (qui déterminent où les informations sont écrites ou lues) au bon moment, ils pouvaient créer une situation de mise en miroir des données. Des informations sont alors écrites dans des cellules de mémoire auxquelles le pirate informatique peut accéder. La carte interposeur agit comme une paire de commutateurs simples contrôlés par le micro-ordinateur Raspberry Pi. Alors que la manipulation des contacts sur du matériel en fonctionnement entraîne généralement un blocage du système ou une corruption des données, les chercheurs ont réussi à stabiliser le fonctionnement en déconnectant et reconnectant les lignes d’adresse uniquement aux moments précis où cela était nécessaire.

Cette méthode a permis aux auteurs de choisir où leurs données étaient enregistrées. Cela signifie surtout qu’ils n’ont même pas eu besoin de calculer la clé de chiffrement ! Ils ont d’abord capturé les informations chiffrées du processus cible. Ensuite, ils ont exécuté leur propre programme dans la même plage mémoire et ont demandé au système TEE de déchiffrer les informations précédemment capturées. Cette technique leur a permis de pirater non seulement le système Intel SGX, mais aussi AMD SEV. De plus, ce contrôle sur l’écriture des données leur a permis de contourner l’extension de sécurité d’AMD appelée SEV-SNP. Cette extension, qui utilise la technologie Secure Nested Paging, a été conçue pour protéger la machine virtuelle contre toute compromission en empêchant la modification des données en mémoire. Le contournement du système de sécurité SEV-SNP permet en théorie à un pirate informatique non seulement de lire les données chiffrées, mais également d’injecter du code malveillant dans une machine virtuelle compromise.

La pertinence des attaques physiques contre l’infrastructure des serveurs

Il est clair que, bien que l’application pratique de telles attaques soit possible, il est peu probable qu’elles soient menées dans la réalité. La valeur des données volées devrait être extrêmement élevée pour justifier une manipulation au niveau matériel. C’est du moins la position adoptée par Intel et AMD concernant leurs solutions de sécurité : les deux fabricants de puces ont répondu aux chercheurs en déclarant que les attaques physiques ne relevaient pas de leur modèle de sécurité. Cependant, les équipes de recherche américaines et européennes ont démontré que le coût de ces attaques est loin d’être aussi élevé qu’on le pensait auparavant. Cette situation pourrait élargir la liste des acteurs malveillants prêts à exploiter ces vulnérabilités complexes.

Les attaques proposées s’accompagnent toutefois de certaines restrictions. Comme nous l’avons déjà mentionné, le vol d’informations a été effectué sur des systèmes équipés de modules de mémoire standard DDR4. La nouvelle norme DDR5, finalisée en 2020, n’a pas encore été compromise, même à des fins de recherche. Ce constat est dû à la fois à la nouvelle architecture des modules de mémoire et à l’augmentation de leur vitesse de fonctionnement. Néanmoins, il est fort probable que les chercheurs finissent par trouver également des vulnérabilités dans la technologie DDR5. Et c’est une bonne chose : la sécurité déclarée des systèmes TEE doit être régulièrement soumise à des audits indépendants. Sinon, il se pourrait qu’à un moment donné, un système de protection soi-disant fiable devienne soudainement complètement inutile.

Conseils