Extracting the Keys to the Intel SGX Kingdom with Transient Out-Of-Order Execution
Total Page:16
File Type:pdf, Size:1020Kb
FORESHADOW: Extracting the Keys to the Intel SGX Kingdom with Transient Out-of-Order Execution Jo Van Bulck1, Marina Minkin2, Ofir Weisse3, Daniel Genkin3, Baris Kasikci3, Frank Piessens1, Mark Silberstein2, Thomas F. Wenisch3, Yuval Yarom4, and Raoul Strackx1 1imec-DistriNet, KU Leuven, 2Technion, 3University of Michigan, 4University of Adelaide and Data61 Abstract distrusting enclaves with a minimal Trusted Computing Base (TCB) that includes only the processor package and Trusted execution environments, and particularly the Soft- microcode. Enclave-private CPU and memory state is ware Guard eXtensions (SGX) included in recent Intel exclusively accessible to the code running inside it, and x86 processors, gained significant traction in recent years. remains explicitly out of reach of all other enclaves and A long track of research papers, and increasingly also real- software running at any privilege level, including a po- world industry applications, take advantage of the strong tentially malicious operating system and/or hypervisor. hardware-enforced confidentiality and integrity guaran- Besides strong memory isolation, TEEs typically offer an tees provided by Intel SGX. Ultimately, enclaved execu- attestation primitive that allows local or remote stakehold- tion holds the compelling potential of securely offloading ers to cryptographically verify at runtime that a specific sensitive computations to untrusted remote platforms. enclave has been loaded on a genuine (and hence pre- We present Foreshadow, a practical software-only mi- sumed to be secure) TEE processor. croarchitectural attack that decisively dismantles the se- With the announcement of Intel’s Software Guard eX- curity objectives of current SGX implementations. Cru- tensions (SGX) [2, 27, 43] in 2013, hardware-enforced cially, unlike previous SGX attacks, we do not make any TEE isolation and attestation guarantees are now available assumptions on the victim enclave’s code and do not on off-the-shelf x86 processors. In light of the strong se- necessarily require kernel-level access. At its core, Fore- curity guarantees promised by Intel SGX, industry actors shadow abuses a speculative execution bug in modern are increasingly adopting this technology in a wide variety Intel processors, on top of which we develop a novel ex- of applications featuring secure execution on adversary- ploitation methodology to reliably leak plaintext enclave controlled machines. Open Whisper Systems [50] re- secrets from the CPU cache. We demonstrate our attacks lies on SGX for privacy-friendly contact discovery in its by extracting full cryptographic keys from Intel’s vetted Signal network. Both Microsoft and IBM recently an- architectural enclaves, and validate their correctness by nounced support for SGX in their cloud infrastructure. launching rogue production enclaves and forging arbitrary Various off-the-shelf Blu-ray players and initially also the local and remote attestation responses. The extracted re- 4K Netflix client furthermore use SGX to enforce Digi- mote attestation keys affect millions of devices. tal Rights Management (DRM) for high-resolution video streams. Emerging cryptocurrencies [44] and innovative 1 Introduction blockchain technologies [25] rely even more critically on the correctness of Intel SGX. It becomes inherently difficult to place trust in modern, widely used operating systems and applications whose Our Contribution. This paper shows, however, that sizes can easily reach millions of lines of code, and where current SGX implementations cannot meet their security a single vulnerability can often lead to a complete collapse objectives. We present the Foreshadow attack, which of all security guarantees. In response to these challenges, leverages a speculative execution bug in recent Intel x86 recent research [11,41,48] and industry efforts [1,2,35,43] processors to reliably leak plaintext enclave secrets from developed Trusted Execution Environments (TEEs) that the CPU cache. At its core, Foreshadow abuses the same feature an alternative, non-hierarchical protection model processor vulnerability as the recently announced Melt- for isolated application compartments called enclaves. down [40] attack, i.e., a delicate race condition in the TEEs enforce the confidentiality and integrity of mutually CPU’s access control logic that allows an attacker to use the results of unauthorized memory accesses in transient • We evaluate the effectiveness and bandwidth of the out-of-order instructions before they are rolled back. Im- Foreshadow attack through controlled experiments. portantly, however, whereas Meltdown targets traditional hierarchical protection domains, Foreshadow considers • We extract full cryptographic keys from Intel’s archi- a very different attacker model where the adversary’s tectural enclaves, and demonstrate how to( i) bypass goal is not to read kernel memory from user space, but enclave launch control; and( ii) forge local and re- to compromise state-of-the-art intra-address space en- mote attestations to completely break confidentiality clave protection domains that are not covered by recently plus integrity guarantees for remote computations. deployed kernel page table isolation defenses [19]. We explain how Foreshadow necessitates a novel exploitation Current Status. Following responsible disclosure prac- methodology, and we show that our basic attack can be en- tices, we notified Intel about our attacks in January tirely mounted by an unprivileged adversary without root 2018. Intel acknowledged the novelty and severity of access to the victim machine. Given SGX’s unique privi- Foreshadow-type “L1 Terminal Fault” attacks, and as- leged attacker model, however, we additionally contribute signed CVE-2018-3615 to the results described in this a set of optional kernel-level optimization techniques to paper. We were further indicated that our attacks affect all further reduce noise for root adversaries. Our findings SGX-enabled Core processors, while some Atom family have far-reaching consequences for the security model processors with SGX support allegedly remain unaffected. pursued by Intel SGX in that, in the absence of a mi- At the time of this writing, Intel assigned CVSS severity crocode patch, current SGX processors cannot guarantee ratings of “high” and “low” for respectively confidential- the confidentiality of enclaved data nor attest the integrity ity and integrity. We note, however, that Foreshadow also of enclaved execution, including for Intel’s own archi- affects the integrity of enclaved computations, since our tectural enclaves. Moreover, despite SGX’s ambition to attacks can arbitrarily modify sealed storage, and forge defend against strong kernel-level adversaries, present local and remote attestation responses. SGX processors cannot even safeguard enclave secrets in Intel confirmed that microcode patches are underway the presence of unprivileged user space attackers. and should be deployed concurrently to the public re- All previously known attacks against Intel SGX rely on lease of our results. As of this writing, however, we have application-specific information leakage from either side- not been provided with substantial technical information channels [30, 39, 45, 51, 57, 58, 60] or software vulnerabil- about these mitigations. We discuss defense strategies in ities [38,59]. It was generally believed that well-written Section 6, and provide further guidelines on the impact enclaves could prevent information leakage by adhering of our findings at https://foreshadowattack.eu/. to good coding practices, such as never branching on secrets, prompting Intel to state that “in general, these Disclosure. Foreshadow was independently and concur- research papers do not demonstrate anything new or unex- rently discovered by two teams. The KU Leuven authors pected about the Intel SGX architecture. Preventing side discovered the vulnerability, independently developed the channel attacks is a matter for the enclave developer” [33]. attack, and first notified Intel on January 3, 2018. Their Foreshadow defeats this argument, however, as it relies work was done independently from and concurrently to solely on elementary Intel x86 CPU behavior and does not other recent x86 speculative execution vulnerabilities, no- exploit any software vulnerability, or even require knowl- tably Meltdown and Spectre [36, 40]. The authors from edge of the victim enclave’s source code. We demonstrate Technion, University of Michigan, and the University this point by being the first to actually extract long-term of Adelaide independently discovered and reported the platform launch and attestation keys from Intel’s critical vulnerability to Intel during the embargo period on Jan- and thoroughly vetted architectural launch and quoting en- uary 23, 2018. claves, decisively dismantling SGX’s security objectives. In summary, our contributions are: 2 Background • We advance the understanding of Meltdown-type We first overview Intel SGX [2, 10, 27, 43] and refine transient execution CPU vulnerabilities by showing the attacker model. Thereafter, we introduce the relevant that they also apply to intra-address space isolation parts of the x86 microarchitecture, and discuss previous and SGX’s non-terminating abort page semantics. research results on speculative execution vulnerabilities. • We present novel exploitation methodologies that 2.1 Intel SGX allow an unprivileged software-only attacker to re- liably extract enclave secrets residing in either pro- Memory Isolation. SGX enclaves