AEX-NStep: Probabilistic Interrupt Counting Attacks on Intel SGX
Nicolas Dutly, Friederike Groschupp, Ivan Puddu, Kari Kostiainen, Srdjan Capkun
TL;DR
AEX-Notify was designed to prevent deterministic single-stepping in SGX enclaves, but this work shows that probabilistic interrupt counting remains viable. The authors introduce AEX-NStep and two attack primitives, PSS and LBMS, which exploit SMT co-location, performance counters, and IPI-based timing to infer enclave progress even with AEX-Notify. They demonstrate practical attacks that leak an ECDSA private key and replicate memcmp-based leakage, underscoring limitations in the mitigation and prompting new defensive directions. The results highlight the need for architectural mitigations that address microarchitectural leakage and interrupt timing directly, beyond obfuscating forward progress or reducing the execution window.
Abstract
To mitigate interrupt-based stepping attacks (notably using SGX-Step), Intel introduced AEX-Notify, an ISA extension to Intel SGX that aims to prevent deterministic single-stepping. In this work, we introduce AEX-NStep, the first interrupt counting attack on AEX-Notify-enabled Enclaves. We show that deterministic single-stepping is not required for interrupt counting attacks to be practical and that, therefore, AEX-Notify does not entirely prevent such attacks. We specifically show that one of AEX-Notify's security guarantees, obfuscated forward progress, does not hold, and we introduce two new probabilistic interrupt counting attacks. We use these attacks to construct a practical ECDSA key leakage attack on an AEX-Notify-enabled SGX enclave. Our results extend the original security analysis of AEX-Notify and inform the design of future mitigations.
