Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
sgx-step — Ein praktisches Angriffsframework für präzise Steuerung der Enklavenausführung | Kitploit
Tools/GitHubGitHub/jovanbulck/sgx-step
ExploitationPenetrationstestsHardware-SicherheitBinäranalyse
GitHubjovanbulck/sgx-step

sgx-step

Ein praktisches Angriffsframework für präzise Steuerung der Enklavenausführung

Repository anzeigen
4779330vor 21 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Ein praktisches Angriffs-Framework für präzise Enklaven-Ausführungskontrolle CI

logo

SGX-Step ist ein Open-Source-Framework, das die Forschung zu Seitenkanalangriffen auf Intel x86-Prozessoren im Allgemeinen und Intel SGX-Plattformen im Besonderen erleichtert. SGX-Step besteht aus einem adversarialen Linux-Kernel-Treiber und einer kleinen User-Space-Betriebssystembibliothek, die es ermöglicht, nicht vertrauenswürdige Seitentabelleneinträge und/oder x86-APIC-Timer-Interrupts vollständig aus dem Benutzerraum zu konfigurieren. SGX-Step wurde sowohl in unserer eigenen Forschung als auch von unabhängigen Forschern genutzt, um mehrere neue und verbesserte Enclave-Ausführungsangriffe zu ermöglichen, die Seitenkanalbeobachtungen mit maximaler zeitlicher Auflösung sammeln (d.h. durch Unterbrechung der Opfer-Enclave nach jeder einzelnen Anweisung).

Lizenz. SGX-Step ist freie Software, lizenziert unter GPLv3. Das SGX-Step-Logo ist abgeleitet von Eadweard Muybridges ikonischer Public-Domain Fotoserie "Sallie Gardner at a Gallop", die, ähnlich wie unser Ziel des Enclave Single-Steppings, die Dynamik eines galoppierenden Pferdes in eine Reihe einzelner Frames zerlegt, um die Gesamtbewegungsabläufe des Pferdes sichtbar zu machen.

SGX-Step releaseChangelog features
v1.5.0Stabilisierungs-Fixes (KPTI, Kernel-ISR-Mapping); (experimenteller) Gramine-Port; IPI-Unterstützung.
v1.4.0Privilegierte Interrupt-/Call-Gates (Plundervolt).
v1.3.0Unterstützung für transiente Ausführung (Foreshadow).
v1.2.0User-Space-Interrupt-Handling und deterministisches Zero-Step-Filtering (Nemesis).
v1.1.0IA32-Unterstützung.
v1.0.0User-Space-Seitentabellenmanipulation und APIC-Timer-Single-Stepping.

Publikationen. SGX-Step wurde von mehreren unabhängigen Forschergruppen eingesetzt und hat eine neue Reihe hochauflösender SGX-Angriffe ermöglicht. Eine vollständige aktuelle Liste bekannter Projekte, die SGX-Step verwenden, befindet sich am Ende dieser README. Eine Kopie des Originalpapiers ist hier verfügbar.``` @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, }

**Demo.** Das Verzeichnis [app/memcmp](https://github.com/jovanbulck/sgx-step/blob/master/app/memcmp) enthält eine kleine Demo-Anwendung, die die Leistungsfähigkeit von SGX-Step-Angriffen demonstriert, indem sie eine Beispiel-Enclave schrittweise ausführt, die eine subtile, nicht-konstantzeitliche `memcmp`-Passwortvergleichslogik enthält. Im Gegensatz zu traditionellen, bekanntermaßen verrauschten Timing-Angriffen kann SGX-Step das Passwort deterministisch Zeichen für Zeichen in _linearer_ Zeit erraten:

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

## Übersicht

Entscheidend für das Design von SGX-Step, im Gegensatz zu früheren Vorschlägen zur Enclave-Präemption, ist die Erstellung von Userspace-Virtual-Memory-Mappings für physische Speicherorte, die Seitentabelleneinträge enthalten, sowie für die lokalen APIC-Memory-Mapped-I/O-Konfigurationsregister und die x86 Interrupt Descriptor Table (IDT). Dies erlaubt einem nicht vertrauenswürdigen, angreiferkontrollierten Host-Prozess, einfach (i) Enclave-Seitentabelleneinträge zu verfolgen oder zu modifizieren, (ii) die APIC-Timer-Interruptquelle (Einmal-/Periodisch) zu konfigurieren, (iii) Inter-Processor-Interrupts auszulösen und (iv) benutzerdefinierte Interrupt-Handler vollständig _innerhalb_ des Userspace zu registrieren.

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

Die obige Abbildung fasst die Abfolge der Hardware- und Softwareschritte beim Interrupt und der Wiederaufnahme einer SGX-Enclave durch unser Framework zusammen.

1. Der lokale APIC-Timer-Interrupt trifft innerhalb einer Enclaved-Instruktion ein.
2. Der Prozessor führt die AEX-Prozedur aus, die den Ausführungskontext sicher im SSA-Frame der Enclave speichert, CPU-Register initialisiert und zum (Userspace-)Interrupt-Handler im IDT vektorisiert.
3. An diesem Punkt kann jeder angriffsspezifische Spy-Code einfach eingefügt werden.
4. Die Bibliothek kehrt zum Userspace-AEP-Trampolin zurück. Wir haben die nicht vertrauenswürdige Runtime des offiziellen SGX SDK modifiziert, um eine einfache Registrierung eines benutzerdefinierten AEP-Stubs zu ermöglichen. Darüber hinaus kann SGX-Step _optional_ instrumentiert werden, um den gespeicherten Befehlszeiger aus dem SSA-Frame der unterbrochenen Enclave abzurufen (unter Verwendung des Linux-`/proc/self/mem`-Interfaces und der `EDBGRD`-Instruktion), um eine präzise Evaluierung unseres Ansatzes auf angreiferkontrollierten Benchmark-Debug-Enclaves zu ermöglichen.
5. Danach konfigurieren wir den lokalen APIC-Timer für den nächsten Interrupt, indem wir in das Initial-Count-Memory-Mapped-I/O-Register schreiben, direkt bevor wir (6) `ERESUME` ausführen.

## Quellcode-Übersicht

Dieses Repository ist wie folgt organisiert:```
.
├── 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.

Framework-Funktionen und Anwendungen

SGX-Step ist ein universelles Ausführungskontroll-Framework, das die präzise Verschachtelung von Enklaven-Befehlen des Opfers mit beliebigem Angreifercode ermöglicht. Einige der Hauptanwendungsfälle des SGX-Step-Frameworks sind in der folgenden Abbildung zusammengefasst (siehe auch das Ende dieser README für eine aktuelle Liste der Publikationen, die SGX-Step verwenden).

Übersicht der SGX-Step-Angriffe

Erstellung und Ausführung

0. Systemanforderungen

SGX-Step benötigt einen SGX-fähigen Intel-Prozessor und einen handelsüblichen Linux-Kernel. Unsere ursprüngliche Bewertung wurde auf i7-6500U/6700 CPUs unter Ubuntu 18.04 mit einem Standard-Linux-4.15.0-Kernel durchgeführt. Neuere Linux-Kernel und Distributionen werden ebenfalls unterstützt. Wir fassen die Kernelparameter von Linux unten zusammen.

Tool herunterladen