SGX

Dernière mise à jour : 12/11/2020

SGX est un système d’enclave sécurisé présent au sein de certains processeurs Intel, spécialement conçus pour être plus sécurisés.

SGX selon Intel

En gros, le processeur isole des données confidentielles (comme une clé de chiffrement) dans une enclave censée n’être accessible par personne. Plus exactement, l’enclave contiendra du code et des données, qui seront traitées dans cette enclave (chiffrées ou déchiffrées, par exemple), sans que personne ne puisse voir ce qu’il s’y passe.

Une explication très détaillée du fonctionnement est visible ici :

Cette possibilité est extrêmement importante quand on utilise une infrastructure externe et/ou non maîtrisée, puisque personne dans cette infrastructure ne pourra lire les données, par même avec un memory dump.

Ainsi, on ne voit rien du traitement, on ne peut que récupérer les données en sortie : aucune donnée n’est visible dans la mémoire vive de la machine hôte.

Belle idée mais…

…les failles Spectre et Meltdown sont passées par là, et SGX ne vaut plus grand chose.

En 2020, on repasse une couche avec cache-out, une nouvelle attaque avec son site web dédié, liée à l’exécution spéculative qui n’est décidément par l’amie de la sécurité…

En mars 2020, on en remet une couche (ça commence pas à faire beaucoup ?) avec la faille Load Value Injection, ou LVI. Même si elle est complexe1 à mettre en oeuvre (pas sûr qu’une attaque distante soit possible), cela resterait abordable pour un attaquant du niveau étatique. Sans parade matérielle possible, les seules corrections logicielles engendrent une dégradation catastrophique des performances2.

Encore un drôle
d’animal

En novembre 2020, nouvelle attaque de type canal auxiliaire, avec PLATYPUS, qui dispose de son site dédié, et qui consiste à observer la consommation du processeur pour en déduire le contenu des informations traitées3 et qui permettrait de reconstituer une clé de chiffrement utilisée dans une enclave SGX en une centaine de minutes4.

A force de vouloir faire compliqué, on va finir par trouver qu’un processeur de base sans raffinement est plus sûr dans un environnement partagé, et que finalement une faille VM Escape reste encore un risque plus acceptable. Quoique5

Sources