Menu

Intel SGX est vulnérable à une faille non corrigible qui peut voler des clés de chiffrement et plus

11 mars 2020 - Technologies
Intel SGX est vulnérable à une faille non corrigible qui peut voler des clés de chiffrement et plus


Illustration stylisée d'une micropuce avec un symbole de cadenas dessus

Au cours des 26 derniers mois, Intel et d’autres fabricants de processeurs ont été attaqués par Spectre, Meltdown et un flux constant de vulnérabilités de suivi qui permettent aux attaquants de récupérer des mots de passe, des clés de chiffrement et d’autres données sensibles dans la mémoire de l’ordinateur. Mardi, les chercheurs ont révélé une nouvelle faille qui dérobe des informations au SGX d’Intel, abréviation de Software Guard eXtensions, qui agit comme un coffre-fort numérique pour sécuriser les secrets les plus sensibles des utilisateurs.

En surface, Load Value Injection, comme les chercheurs ont nommé leurs attaques par preuve de concept, fonctionne de manière similaire aux vulnérabilités précédentes et accomplit la même chose. Tous ces soi-disant exécution transitoire les défauts proviennent de exécution spéculative, une optimisation dans laquelle les CPU tentent de deviner les futures instructions avant d’être appelées. Meltdown et Spectre ont été les premiers exploits d’exécution transitoires à être rendus publics. Des attaques nommées ZombieLoad, RIDL, Fallout et Foreshadow ont rapidement suivi. Foreshadow a également fonctionné contre SGX d’Intel.

Briser la voûte

En obligeant un système vulnérable à exécuter JavaScript stocké sur un site malveillant ou du code enfoui dans une application malveillante, les attaquants peuvent exploiter un canal latéral qui révèle finalement le contenu du cache appartenant à d’autres applications et devrait normalement être interdit. Cette dernière vulnérabilité, qui, comme d’autres défauts d’exécution transitoire, ne peut être atténuée et non corrigée, laisse la place à des exploits qui bouleversent complètement une garantie de confidentialité de base de SGX.

L’injection de valeur de charge, ou LVI pour faire court, est particulièrement importante car l’exploit permet de piller les secrets stockés dans l’enclave SGX, le nom souvent utilisé pour les extensions logicielles d’Intel Guard. Les applications qui fonctionnent avec des clés de chiffrement, des mots de passe, une technologie de gestion des droits numériques et d’autres données secrètes utilisent souvent SGX pour s’exécuter dans un conteneur fortifié appelé environnement d’exécution de confiance. LVI peut également voler des secrets dans d’autres régions d’un processeur vulnérable.

Sorti en 2015, SGX crée également des environnements isolés à l’intérieur de la mémoire appelés enclaves. SGX utilise un cryptage puissant et une isolation au niveau du matériel pour garantir la confidentialité des données et du code et empêcher leur altération. Intel a conçu SGX pour protéger les applications et le code même lorsque le système d’exploitation, l’hyperviseur ou le micrologiciel du BIOS est compromis.

Dans la vidéo ci-dessous, les chercheurs qui ont découvert LVI montrent comment un exploit peut voler une clé de cryptage secrète protégée par le SGX.

Vidéo de démonstration LVI (Load Value Injection)

Intel a une liste de processeurs affectés ici. Les puces qui ont des correctifs matériels pour Meltdown ne sont pas vulnérables. L’exploitation peut également être entravée par certaines mesures défensives intégrées au matériel ou aux logiciels qui protègent bogues de déréférencement de pointeur nul. Certaines distributions Linux, par exemple, ne permettent pas le mappage d’un zéro d’adresse virtuelle dans l’espace utilisateur. Autre exemple d’atténuation: les fonctionnalités architecturales SMAP et SMEP x86 récentes interdisent davantage les données de l’espace utilisateur et les déréférences de pointeur de code respectivement en mode noyau. «SMAP et SMEP se sont également avérés valables dans le domaine transitoire microarchitectural», ont déclaré les chercheurs.

Empoisonnement du processeur

Comme son nom l’indique, LVI fonctionne en injectant des données d’attaquant dans un programme en cours d’exécution et en volant des données sensibles et des clés qu’il utilise au moment de l’attaque. Les données malveillantes transitent par des tampons de processeur cachés dans le programme et détournent le flux d’exécution d’une application ou d’un processus. Avec cela, le code de l’attaquant peut acquérir les informations sensibles. Il n’est pas possible de corriger ou d’atténuer la vulnérabilité à l’intérieur du silicium, laissant la seule option d’atténuation aux développeurs externes pour recompiler le code utilisé par leurs applications. L’équipe de chercheurs qui a conçu l’exploit LVI a déclaré que les atténuations du compilateur avaient un impact considérable sur les performances du système.

« Surtout, LVI est beaucoup plus difficile à atténuer que les attaques précédentes, car il peut affecter pratiquement n’importe quel accès à la mémoire », ont écrit les chercheurs dans un aperçu de leurs recherches. «Contrairement à toutes les attaques de type Meltdown précédentes, LVI ne peut pas être atténué de manière transparente dans les processeurs existants et nécessite des correctifs logiciels coûteux, ce qui peut ralentir le calcul des enclaves Intel SGX de 2 à 19 fois.»

LVI renverse le processus d’exploitation de Meltdown. Alors que Meltdown s’appuie sur un attaquant qui sonde les décalages de mémoire pour déduire le contenu des données en vol, LVI inverse le flux en injectant des données qui empoisonnent le tampon de processeur caché (en particulier le tampon de remplissage de ligne) avec des valeurs d’attaquant. À partir de là, l’attaquant peut détourner un processus et accéder aux données qu’il utilise.

Les attaques basées sur LVI ne sont pas susceptibles d’être utilisées contre les machines grand public, car les attaques sont extrêmement difficiles à exécuter et il existe généralement des moyens beaucoup plus faciles d’obtenir des informations confidentielles à domicile et dans les petites entreprises. Le scénario d’attaque le plus probable est un environnement de cloud computing qui alloue deux clients ou plus au même processeur. Alors que les hyperviseurs et autres protections bouclent normalement les données appartenant à différents clients, LVI pourrait en théorie supprimer toutes les données ou tout code stockés dans les environnements SGX, ainsi que d’autres régions d’un CPU vulnérable.

Dans un communiqué, les responsables d’Intel ont écrit:

Les chercheurs ont identifié un nouveau mécanisme appelé injection de valeur de charge (LVI). En raison des nombreuses exigences complexes qui doivent être satisfaites pour réussir, Intel ne pense pas que LVI soit une méthode pratique dans des environnements réels où le système d’exploitation et VMM sont fiables. De nouveaux conseils et outils d’atténuation pour LVI sont disponibles dès maintenant et fonctionnent conjointement avec les atténuations précédemment publiées pour réduire considérablement la surface d’attaque globale. Nous remercions les chercheurs qui ont travaillé avec nous et nos partenaires de l’industrie pour leurs contributions à la divulgation coordonnée de ce problème.

Pour atténuer les exploits potentiels de Load Value Injection (LVI) sur les plates-formes et applications utilisant Intel SGX, Intel publie des mises à jour du logiciel et du SDK de la plate-forme SGX à partir d’aujourd’hui. Le SDK Intel SGX comprend des conseils sur la façon d’atténuer LVI pour les développeurs d’applications Intel SGX. Intel a également travaillé avec nos partenaires de l’industrie pour rendre disponibles les options du compilateur d’applications et procédera à une récupération SGX TCB.

Le fabricant de puces a publié cette plongée profonde.

LVI fonctionne principalement contre les processeurs Intel, mais il affecte également d’autres puces qui sont vulnérables à la fusion. Les processeurs non Intel qui se sont révélés vulnérables à Meltdown incluent ceux basés sur la conception ARM. On ne sait pas actuellement quelles puces ARM spécifiques sont affectées.

L’équipe qui a identifié les vulnérabilités LVI pour la première fois comprenait des chercheurs de imec-DistriNet, KU Leuven, Worcester Polytechnic Institute, Graz University of Technology, University of Michigan, University of Adelaide et Data61. Les chercheurs de la firme de sécurité roumaine Bitdefender ont découvert la vulnérabilité après que l’équipe précédente l’ait déjà signalée à Intel. La première équipe a publié des informations ici. Bitdefender a des détails ici, ici, et ici. Le code de validation de principe est ici et ici.

Certaines restrictions s’appliquent

La difficulté de mener des attaques LVI n’est pas la seule limitation. Les données que les attaques peuvent acquérir sont également limitées à celles stockées au moment de l’exécution du code malveillant. Cela fait des exploits un jeu de chance ou ajoute encore aux exigences rigoureuses d’exploitation. Pour ces raisons, de nombreux chercheurs affirment que des exploits incertains ne seront jamais utilisés dans des attaques malveillantes actives.

Tous les chercheurs ne partagent pas cette évaluation. Bogdan Botezatu, analyste principal des menaces électroniques chez Bitdefender, a déclaré que le nombre croissant de recherches montrant comment exploiter l’exécution spéculative pourrait ouvrir la voie à des attaquants du monde réel, en particulier ceux des États-nations ciblant des personnes spécifiques.

«Il y a plus de gens impliqués dans ce genre de recherche qui sont de bons gars», m’a dit Botezatu. «Il est probable que les méchants étudient également activement le problème du processeur. Ce qui me fait penser qu’à un moment donné, avec un examen suffisamment approfondi, ce ne sera pas uniquement un sujet académique. Il deviendra un outil viable à exploiter dans la nature. »