  Aggressive memory density scaling causes modern DRAM devices to suffer from
RowHammer, a phenomenon where rapidly activating a DRAM row can cause bit-flips
in physically-nearby rows. Recent studies demonstrate that modern DRAM chips,
including chips previously marketed as RowHammer-safe, are even more vulnerable
to RowHammer than older chips. Many works show that attackers can exploit
RowHammer bit-flips to reliably mount system-level attacks to escalate
privilege and leak private data. Therefore, it is critical to ensure
RowHammer-safe operation on all DRAM-based systems. Unfortunately,
state-of-the-art RowHammer mitigation mechanisms face two major challenges.
First, they incur increasingly higher performance and/or area overheads when
applied to more vulnerable DRAM chips. Second, they require either proprietary
information about or modifications to the DRAM chip design. In this paper, we
show that it is possible to efficiently and scalably prevent RowHammer
bit-flips without knowledge of or modification to DRAM internals. We introduce
BlockHammer, a low-cost, effective, and easy-to-adopt RowHammer mitigation
mechanism that overcomes the two key challenges by selectively throttling
memory accesses that could otherwise cause RowHammer bit-flips. The key idea of
BlockHammer is to (1) track row activation rates using area-efficient Bloom
filters and (2) use the tracking data to ensure that no row is ever activated
rapidly enough to induce RowHammer bit-flips. By doing so, BlockHammer (1)
makes it impossible for a RowHammer bit-flip to occur and (2) greatly reduces a
RowHammer attack's impact on the performance of co-running benign applications.
Compared to state-of-the-art RowHammer mitigation mechanisms, BlockHammer
provides competitive performance and energy when the system is not under a
RowHammer attack and significantly better performance and energy when the
system is under attack.
