The Guard's Dilemma: Efficient Code-Reuse Attacks Against Intel SGX
summary
Demonstrates a practical code‑reuse exploit against Intel SGX that needs no kernel privileges, causes no enclave crashes, and defeats SGX‑Shield by abusing nonrandomized SDK runtime code. It builds two primitives, Allred primitive (returns into a fake OCALL frame) and continue primitive (manufactures exception context), then combines them into an Allred+continue loop to chain full function calls, read enclave keys and exfiltrate them. Provides a working exploit on SDK enclaves and recommends hardening the SDK, per‑structure secrets, and finer‑grained CFI.
AI-written summary · about
chapters (16)
- 0:00Intro
- 0:22Intel SGX (software Guard extensions)
- 1:48SGX provides strong isolation
- 2:41Control-Flow Attacks
- 4:02Related work
- 5:23The SGX SDK
- 6:54The Guard's Dilemma
- 7:26Motivation
- 8:00The Basic Idea
- 9:03The CONT Primitive
- 13:14Attack Overview
- 14:16Example Attack
- 15:57Attacking SGX-Shield
- 17:02SGX-Shield Exploit
- 17:54Mitigations
- 19:23Conclusion
related talks
33mHacking in Darkness: Return-oriented Programming against Secure Enclaves
54mWhen Good Turns Evil: Using Intel SGX to Stealthily Steal Bitcoins
25mTelling Your Secrets without Page Faults...
35mBringing Intel SGX to the Rust Ecosystem
38mOne Ring -3 To Secure Them All: Computing with Hardware Enclaves
32mSecure Container with SGX: Protecting Secret in Cloud Environment
48mSGX Secure Enclaves in Practice: Security and Crypto Review
47mKeynote: Code-Reuse Attacks and Beyond
