Papers
Topics
Authors
Recent
Search
2000 character limit reached

Rowhammer.js: A Remote Software-Induced Fault Attack in JavaScript

Published 24 Jul 2015 in cs.CR | (1507.06955v5)

Abstract: A fundamental assumption in software security is that a memory location can only be modified by processes that may write to this memory location. However, a recent study has shown that parasitic effects in DRAM can change the content of a memory cell without accessing it, but by accessing other memory locations in a high frequency. This so-called Rowhammer bug occurs in most of today's memory modules and has fatal consequences for the security of all affected systems, e.g., privilege escalation attacks. All studies and attacks related to Rowhammer so far rely on the availability of a cache flush instruction in order to cause accesses to DRAM modules at a sufficiently high frequency. We overcome this limitation by defeating complex cache replacement policies. We show that caches can be forced into fast cache eviction to trigger the Rowhammer bug with only regular memory accesses. This allows to trigger the Rowhammer bug in highly restricted and even scripting environments. We demonstrate a fully automated attack that requires nothing but a website with JavaScript to trigger faults on remote hardware. Thereby we can gain unrestricted access to systems of website visitors. We show that the attack works on off-the-shelf systems. Existing countermeasures fail to protect against this new Rowhammer attack.

Citations (387)

Summary

  • The paper demonstrates a novel JavaScript method that triggers DRAM bit flips using cache eviction without relying on clflush.
  • It establishes an automated strategy to identify efficient cache eviction patterns across Intel architectures, validating the attack on DDR3 and DDR4.
  • The research highlights critical security implications by showing that standard web environments can be exploited to induce hardware faults.

Analysis of "Rowhammer.js: A Remote Software-Induced Fault Attack in JavaScript"

The research paper "Rowhammer.js: A Remote Software-Induced Fault Attack in JavaScript" by Daniel Gruss, Clémentine Maurice, and Stefan Mangard provides an in-depth exploration of a novel approach to triggering the Rowhammer bug without relying on the availability of specific processor instructions. The Rowhammer bug exploits parasitic effects in DRAM, enabling bit flips in memory cells adjacent to the frequently accessed rows. This phenomenon is traditionally exploited in conditions where direct cache manipulation instructions, such as clflush, are accessible. This paper expands the attack landscape by demonstrating how JavaScript-based attacks can also induce these faults remotely and autonomously, extending the threat to web browsers.

Core Contributions

The authors make significant contributions by first systematically exploring cache eviction strategies across recent Intel architectures, identifying optimized patterns that enable high rates of cache eviction purely through memory accesses. This exploration is crucial because it bypasses the need for the instruction sets previously deemed necessary to exploit Rowhammer. They detail an automated attack method for determining these efficient eviction patterns on remote targets, even without prior knowledge of the system's architecture.

Key contributions include:

  • Exploration of Cache Eviction: The paper outlines a thorough methodology to identify efficient cache eviction strategies on various Intel CPU architectures, thus allowing for exploits where traditional cache manipulation instructions are unavailable.
  • Cross-Environment Exploit: By implementing Rowhammer attacks within JavaScript, the authors illustrate how web-based environments can be compromised without native code execution, posing new challenges to system security.
  • Analysis of DDR3 and DDR4 Vulnerability: Contrary to initial beliefs about DDR4’s immunity, the paper demonstrates that certain DDR4 configurations remain susceptible to Rowhammer exploitation.

Methodology and Results

The authors demonstrate their approach by first evaluating a diverse set of eviction strategies on controlled systems to determine their efficiency in evicting target cache lines. This involves innovative use of timing measurements and repetitive memory accesses to derive the optimal parameters for cache eviction. They leverage this knowledge to develop an online strategy that successively refines these eviction patterns on unknown systems, ensuring robustness and adaptability across diverging hardware configurations.

The experimental setup validates the feasibility of Rowhammer attacks on varying architectures, including DDR3 and DDR4 platforms, underlining the persistent vulnerability of these memory technologies. Table assessments (e.g., Table 1) capture diverse system configurations validating their claims. Additionally, their method achieves high eviction rates without clflush, which was previously considered indispensable, demonstrating practical bit flip induction in realistic attack scenarios.

Implications and Speculation

The paper's implications stress the urgent need for comprehensive countermeasures across software and hardware domains. The authors critique current mitigation strategies, underscoring the insufficiency of approaches like blacklisting specific instructions or relying on newer DRAM modules alone. They posit that defenses must accommodate non-native execution environments, such as web browsers, revealing possible directions for research into enhanced memory management practices and more granular hardware protection mechanisms.

Practical Implications: This research alerts to the latent vulnerabilities in everyday user platforms, emphasizing that browsers are pathways for potential hardware-based compromises. It suggests that security paradigms considering physical device interactions must also encompass environments that virtualize access layers, such as web applications.

Theoretical Speculation: Looking forward, the research emphasizes directions in robust architectural policies, potentially involving dynamic addressing functions or more integrated detection systems to mitigate cache side-channel activities across platforms.

Overall, the "Rowhammer.js" study signals a paradigm shift in fault attack methodologies, advocating for renewed diligence in combating security threats that exploit seemingly innocuous software layers to induce hardware faults. This expansion broadens the scope of potential attack surfaces, calling for reevaluation and integration of security practices in contemporary computing infrastructure.

Paper to Video (Beta)

Whiteboard

No one has generated a whiteboard explanation for this paper yet.

Open Problems

We haven't generated a list of open problems mentioned in this paper yet.

Collections

Sign up for free to add this paper to one or more collections.

Tweets

Sign up for free to view the 1 tweet with 2 likes about this paper.