Aller au contenu

SGX : Software Guard Extensions (Intel)

Sécurité

SGX : Software Guard Extensions, extensions de protection logicielle des processeurs Intel, apparues en 2015 avec la génération Skylake. « La pièce blindée, à l'intérieur d'un programme, dont même le système d'exploitation n'a pas la clé », par analogie avec le coffre de chambre d'hôtel, garanti inviolable par le fabricant et ouvert à plusieurs reprises par des chercheurs patients.

Principe : Une application crée une enclave : une zone de mémoire chiffrée et protégée par le processeur, que ni le système d'exploitation, ni l'hyperviseur, ni l'administrateur de la machine ne peuvent lire. Une attestation à distance permet à un tiers de vérifier quel code tourne dans l'enclave avant de lui confier un secret.

Différence avec les machines virtuelles confidentielles : SGX isole un processus ou une partie de processus, alors que TDX (Trust Domain Extensions, chez Intel) et SEV-SNP (Secure Encrypted Virtualization with Secure Nested Paging, chez AMD) protègent une machine virtuelle entière. L'enclave réduit la base de confiance, au prix d'une réécriture souvent lourde de l'application.

Attaques et retrait : Les enclaves ont subi une série d'attaques par canaux auxiliaires et par perturbation, dont Foreshadow (2018) et Plundervolt (2019), corrigées par microcode. Intel a retiré SGX de ses processeurs grand public à partir de la 11e génération Core, ce qui a privé de lecture les disques Blu-ray Ultra HD sur PC, preuve que la sécurité de pointe servait au moins à quelque chose ; SGX reste proposé sur les processeurs serveur Xeon.

Ce qui arrive si on s'en passe

Placer un secret dans une enclave SGX sans vérifier l'attestation, ni le niveau de microcode et de correctifs de la plateforme, revient à faire confiance à une enclave peut-être exposée à une attaque publiée depuis des années. Un code d'enclave mal écrit peut aussi laisser fuir ses secrets par ses temps de réponse ou ses accès mémoire, que l'hôte observe tranquillement. Enfin, compter sur SGX pour un nouveau projet sans vérifier sa disponibilité sur le matériel visé conduit à découvrir, en production, que le processeur n'en dispose plus.

Explication de la marmotte

Normalement, le système d'exploitation et l'administrateur d'un ordinateur peuvent lire toute la mémoire des programmes. SGX est une fonction de certains processeurs Intel qui crée une sorte de petit coffre-fort, appelé enclave, dans lequel un programme peut garder des données secrètes que personne d'autre ne peut lire, même l'administrateur. C'est utile quand on fait tourner des calculs sensibles sur un serveur qui ne nous appartient pas. Des chercheurs ont toutefois trouvé plusieurs façons d'en faire fuir des informations, corrigées depuis par des mises à jour.

Où ce terme est utilisé

← Tout le glossaire