Intel® Software Guard Extensions (Intel® SGX)

Intel Software Guard Extensions (Intel SGX) est une extension de l’architecture x86/x64 conçue pour augmenter la sécurité du code et des données, introduite avec l’architecture Skylake.

Intel SGX offre un environnement d’exécution de confiance, en isolant une portion de la mémoire physique, nommée enclave de sécurité, afin de protéger du code et/ou des données de lecture ou de modification.

Une application tirant parti de ces extensions protège ainsi ses secrets et ses fonctions critiques dans une enclave : mots de passe, identification biométrique, clés de chiffrement, informations personnellement identifiables, dossiers médicaux, etc.

Avec le privilège le plus élevé disponible sur le processeur, ni le système d’exploitation, ni un hyperviseur ne pourront accéder à ces données protégées.

C’est une solution idéale à pour l’informatique en nuage : si les données confidentielles d’une personne sont dans l’enclave de sécurité, même le fournisseur de l’informatique en nuage, en compromettant la machine virtuelle, le système d’exploitation ou l’application, ne pourra pas les atteindre.

Practical Enclave Malware with Intel SGX

Dans un document de recherche publié aujourd’hui, Practical Enclave Malware with Intel SGX, Michael Schwarz, Samuel Weiser, Daniel Gruss de l’Université de technologie de Graz, présentent le premier logiciel malveillant pour enclave, qui imite totalement et en secret son application hôte.

Associé à une application mal isolée, ce « super-malware » pourrait voler des documents, les chiffrer contre demande de rançon, ou agir au nom de l’utilisateur : envoyer des courriels d’hameçonnage, monter une attaque de déni de service, et ainsi de suite.

Une enclave exploitée à des fins malveillantes est encore plus puissante qu’un logiciel malveillant sur un système sans enclave : elle empêche un antivirus de détecter ou de corriger un virus, elle découple l’infestation de l’exploitation, ce qui permet à un attaquant de lancer d’énormes attaques synchrones, et elle rend presque impossible de développer des solutions contre des rançongiciels qui protègent leur clé de chiffrement dans l’enclave.

Pourtant, le code inclus dans une enclave est très limité par rapport à une application classique : impossibilité d’effectuer des appels systèmes ou des opérations d’entrées-sorties, ce qui devrait limiter leur potentiel néfaste.

Cependant, les chercheurs ont développé des techniques pour contourner les limitations imposées par Intel SGX :

  • Inspection de la mémoire de l’application hôte avec Intel TSX. Intel TSX est l’extension d’Intel pour la mémoire transactionnelle, qui accélère l’exécution d’une application à plusieurs fils d’exécution par élision du verrou ;
  • Les chercheurs développent la technique TAP (TSX-based address probing), qui permet d’examiner la mémoire de l’application hôte sans être détectée ; et la technique CLAW (Checking Located Addresses for Writability) qui permet de tester en toute confidentialité si une page mémoire peut être modifiée ;
  • Attaque par réutilisation de code, nommée SGX-ROP, qui permet à l’enclave malveillante d’effectuer des appels systèmes et des opérations malveillantes, sans la moindre collaboration de l’application hôte. La mémoire de l’application hôte est analysée avec TAP, des plages où l’on peut écrire sont détectées avec CLAW puis un code arbitraire est écrit. Combiné avec une technique de fausse pile, le flux de contrôle est détourné sur le code arbitraire.

En conclusion, les auteurs montrent l’asymétrie du modèle de menace : l’enclave est protégée des menaces extérieures, mais l’extérieur n’est pas protégé des menaces issues des enclaves.

Le remède est-il pire que le mal?

Interrogée, Intel répond que cette recherche est basée sur des hypothèses en dehors du modèle de menace : l’intérêt de Intel SGX est d’exécuter du code dans une enclave protégée, et non de garantir que le code dans une enclave provient d’une source en laquelle on a confiance.

Une réponse qui ne satisfait pas les chercheurs : les modèles de menace et les frontières changent tout le temps, à mesure que les gens inventent de nouveaux cas d’utilisation qui ne se plient pas à aux modèles existant.