Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sgx-step — Un framework d'attaque pratique pour un contrôle précis de l'exécution dans les enclaves | Kitploit
Outils/GitHubGitHub/jovanbulck/sgx-step
ExploitationTests d'IntrusionSécurité MatérielleAnalyse de Binaires
GitHubjovanbulck/sgx-step

sgx-step

Un framework d'attaque pratique pour un contrôle précis de l'exécution dans les enclaves

Voir le dépôt
4779330il y a 21 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Un cadre d'attaque pratique pour un contrôle précis de l'exécution des enclaves CI

logo

SGX-Step est un cadre open-source conçu pour faciliter la recherche sur les attaques par canaux auxiliaires sur les processeurs Intel x86 en général et les plates-formes Intel SGX en particulier. SGX-Step se compose d'un pilote noyau Linux adverse et d'une petite bibliothèque système en espace utilisateur qui permet de configurer des entrées de table de pages non fiables et/ou des interruptions de minuterie APIC x86 entièrement depuis l'espace utilisateur. SGX-Step a été utilisé dans nos propres recherches, ainsi que par des chercheurs indépendants, pour permettre plusieurs nouvelles attaques d'exécution d'enclaves améliorées qui recueillent des observations de canaux auxiliaires à une résolution temporelle maximale (c'est-à-dire en interrompant l'enclave victime après chaque instruction individuelle).

Licence. SGX-Step est un logiciel libre, sous licence GPLv3. Le logo de SGX-Step est dérivé de la célèbre série de photos domaine public "Sallie Gardner at a Gallop" d'Eadweard Muybridge, qui, comme notre objectif de pas à pas d'enclave, décompose la dynamique du cheval au galop en une série de photogrammes individuels pour révéler les propriétés globales de l'allure du cheval.

Version SGX-StepFonctionnalités du journal des modifications
v1.5.0Correctifs de stabilisation (KPTI, mappage ISR noyau) ; port Gramine (expérimental) ; support IPI.
v1.4.0Portes d'interruption/appel privilégiées (Plundervolt).
v1.3.0Support d'exécution transitoire (Foreshadow).
v1.2.0Gestion des interruptions en espace utilisateur et filtrage déterministe zéro-pas (Nemesis).
v1.1.0Support IA32.
v1.0.0Manipulation des tables de pages en espace utilisateur et pas à pas par minuterie APIC.

Publications. SGX-Step a été employé par plusieurs groupes de recherche indépendants et a permis une nouvelle lignée d'attaques SGX à haute résolution. Une liste complète et à jour des projets connus utilisant SGX-Step est incluse en bas de ce README. Une copie de l'article original est disponible ici.``` @inproceedings{vanbulck2017sgxstep, title = {{SGX-Step}: A Practical Attack Framework for Precise Enclave Execution Control}, author = {Van Bulck, Jo and Piessens, Frank and Strackx, Raoul}, booktitle = {2nd Workshop on System Software for Trusted Execution {(SysTEX)}}, publisher = {{ACM}}, pages = {4:1--4:6}, month = Oct, year = 2017, }

**Démo.** Le répertoire [app/memcmp](https://github.com/jovanbulck/sgx-step/blob/master/app/memcmp) contient une petite application de démonstration qui illustre la puissance des attaques SGX-Step en exécutant pas à pas une enclave exemple contenant une logique de comparaison de mot de passe `memcmp` subtile et non à temps constant. Contrairement aux attaques temporelles traditionnelles, notoirement bruyantes, SGX-Step peut forcer de manière déterministe le mot de passe caractère par caractère en temps _linéaire_ :

![sgxstep-memcmp-demo](https://assets.kitploit.com/production/public/readmes/2927/0b35615006c06e0d0b3f3e04f9628ab3deb2402317eb48bd0fce72509bfa91d3.gif)

## Aperçu

Crucial pour la conception de SGX-Step, par opposition aux propositions précédentes de préemption d’enclave, est la création de mappages de mémoire virtuelle en espace utilisateur pour les emplacements de mémoire physique contenant les entrées de la table de pages, ainsi que pour les registres de configuration d’entrée-sortie mappée en mémoire du contrôleur d’interruptions APIC local et la table des descripteurs d’interruption (IDT) x86. Cela permet à un processus hôte non fiable contrôlé par un attaquant de (i) suivre ou modifier facilement les entrées de la table de pages de l’enclave, (ii) configurer la source d’interruption unique/périodique du minuteur APIC, (iii) déclencher des interruptions inter-processeurs et (iv) enregistrer des gestionnaires d’interruptions personnalisés complètement _dans_ l’espace utilisateur.

![sgx-step-framework](https://assets.kitploit.com/production/public/readmes/2927/b46f57fa9f7b93fb9142a28857693034e7cece8f9f675d2e9abb433093bdefe8.png)

La figure ci-dessus résume la séquence d’étapes matérielles et logicielles lors de l’interruption et de la reprise d’une enclave SGX via notre infrastructure.

1. L’interruption du minuteur APIC local arrive à l’intérieur d’une instruction enclavée.
2. Le processeur exécute la procédure AEX qui stocke de manière sécurisée le contexte d’exécution dans la trame SSA de l’enclave, initialise les registres du CPU et vecteur vers le gestionnaire d’interruptions (en espace utilisateur) enregistré dans l’IDT.
3. À ce stade, tout code espion spécifique à l’attaque peut facilement être intégré.
4. La bibliothèque retourne à la trampoline AEP en espace utilisateur. Nous avons modifié l’environnement d’exécution non fiable du SDK SGX officiel pour permettre l’enregistrement facile d’un stub AEP personnalisé. De plus, pour permettre une évaluation précise de notre approche sur des enclaves de débogage de benchmark contrôlées par l’attaquant, SGX-Step peut _optionnellement_ être instrumenté pour récupérer le pointeur d’instruction stocké dans la trame SSA de l’enclave interrompue (en utilisant l’interface `/proc/self/mem` de Linux et l’instruction `EDBGRD`).
5. Ensuite, nous configurons le minuteur APIC local pour la prochaine interruption en écrivant dans le registre d’entrée-sortie mappé en mémoire de comptage initial, juste avant d’exécuter (6) `ERESUME`.

## Aperçu du code source

Ce dépôt est organisé comme suit :```
.
├── app        -- Collection of sample client applications using SGX-Step to
│                 attack different victim enclave scenarios.
├── doc        -- Papers and reference material.
├── kernel     -- Minimal dynamically loadable Linux kernel driver to export
│                 physical memory to user space and bootstrap `libsgxstep`.
├── libsgxstep -- Small user-space operating system library that implements the
│                 actual SGX-Step functionality, including x86 page-table and
│                 APIC timer manipulations.
└── sdk        -- Bindings to use SGX-Step with different SGX SDKs and libOSs.

Fonctionnalités et applications du framework

SGX-Step est un framework de contrôle d'exécution universel qui permet l'entrelacement précis des instructions de l'enclave victime avec du code attaquant arbitraire. Quelques-uns des principaux cas d'utilisation du framework SGX-Step sont résumés dans la figure ci-dessous (voir également le bas de ce README pour une liste à jour des publications utilisant SGX-Step).

Aperçu des attaques SGX-Step

Construction et exécution

0. Configuration système requise

Télécharger l’outil