Memory deduplication, a well-known technique to reduce the memory footprint across virtual machines, is now also a default-on feature inside the Windows 10 operating system. 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.
We leverage this side channel to build a weird machine and read arbitrary data in the system from the browser. By controlling the alignment and reuse of data in memory, we perform a byte-by-byte disclosure of high-entropy sensitive data, such as 64-bit code pointers randomized by ASLR. Next, even without control over data alignment or reuse, we show how to disclose randomized 64-bit heap pointers using a novel birthday attack. To show these attack primitives are practical, we have built an end-to-end JavaScript-based exploit against the new Microsoft Edge browser, in absence of software vulnerabilities and with all defenses turned on. Our exploit combines our deduplication-based primitives with a reliable Rowhammer attack to gain arbitrary memory read and write access in the browser.
Erik Bosman is a PhD student in the Systems and Network Security group at theVrije Universiteit Amsterdam in the Netherlands. He is currently working onnovel side-channel attacks for leaking sensitive information from the OS andapplications. He has previously developed Signal Return-Oriented Programming,a highly portable exploitation technique that abuses signal frames forcreating a weird machine that the attackers can program. His minemu system isthe world fastest dynamic taint-tracker that can be used to protect binariesagainst memory corruption attacks.
Kaveh Razavi is a security researcher at the Vrije Universiteit Amsterdam inthe Netherlands. He is currently mostly interested in reliable exploitationand mitigation of hardware vulnerabilities and side-channel attacks onOS/hardware interfaces. He has previously been part of a CERT teamspecializing on operating system security, has worked on authenticationsystems of a Swiss bank, and has spent two summers in Microsoft Researchbuilding large-scale system prototypes. He holds a BSc from Sharif Universityof Technology, Tehran, an MSc from ETH Zurich and a PhD from VrijeUniversiteit Amsterdam.
Herbert Bos is a professor of Systems and Network Security at VrijeUniversiteit Amsterdam in the Netherlands. Coming from a systems background,he drifted into security a few years ago and never left. Even so, he stilldoes not understand crypto, and hides this by saying that he prefers to stayon the systems' side of security. He obtained a Ph.D. from CambridgeUniversity Computer Laboratory (UK) and is very proud of his (ex-)students.
Cristiano Giuffrida is an Assistant Professor in the Computer ScienceDepartment of the Vrije Universiteit Amsterdam. His research interests spanacross most aspects of systems security and reliability, including softwaresecurity, side channels, and binary and malware analysis. He received a PhDcum laude from the Vrije Universiteit Amsterdam in 2014. He was awarded theRoger Needham Award at EuroSys and the Dennis M. Ritchie Award at SOSP for thebest PhD dissertation in Computer Systems in 2015 (Europe and worldwide).