Dedup Est Machina: Memory Deduplication as an Advanced Exploitation Vector
- 18 August 2016
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 987-1004
Abstract
Memory deduplication, a well-known technique to reduce the memory footprint across virtual machines, is now also a default-on feature inside the Windows 8.1 and Windows 10 operating systems. Deduplication maps multiple identical copies of a physical page onto a single shared copy with copy-on-write semantics. As a result, a write to such a shared page triggers a page fault and is thus measurably slower than a write to a normal page. Prior work has shown that an attacker able to craft pages on the target system can use this timing difference as a simple single-bit side channel to discover that certain pages exist in the system. In this paper, we demonstrate that the deduplication side channel is much more powerful than previously assumed, potentially providing an attacker with a weird machine to read arbitrary data in the system. We first show that an attacker controlling the alignment and reuse of data in memory is able to perform byte-by-byte disclosure of sensitive data (such as randomized 64 bit pointers). Next, even without control over data alignment or reuse, we show that an attacker can still disclose high-entropy randomized pointers using a birthday attack. To show these primitives are practical, we present an end-to-end JavaScript-based attack against the new Microsoft Edge browser, in absence of software bugs and with all defenses turned on. Our attack combines our deduplication-based primitives with a reliable Rowhammer exploit to gain arbitrary memory read and write access in the browser. We conclude by extending our JavaScript-based attack to cross-process system-wide exploitation (using the popular nginx web server as an example) and discussing mitigation strategies.Keywords
This publication has 18 references indexed in Scilit:
- Losing Control2015
- Thwarting Cache Side-Channel Attacks Through Dynamic Software Diversity2015
- Isomeron: Code Randomization Resilient to (Just-In-Time) Return-Oriented Programming2015
- Mutable checkpoint-restart2014
- Share-o-meter: An empirical analysis of KSM based memory sharing in virtualized systems2013
- Just-In-Time Code Reuse: On the Effectiveness of Fine-Grained Address Space Layout Randomization2013
- A covert channel construction in a virtualized environment2012
- Singleton2012
- Non-interactive OS fingerprinting through memory de-duplication technique in virtual machines2011
- Memory deduplication as a threat to the guest OS2011