CAn't Touch This:针对 Rowhammer 攻击的实用且通用的纯软件防御
摘要
Rowhammer 是一种硬件漏洞,可被利用来实施特权升级和远程代码执行攻击。此前关于 Rowhammer 缓解的方案要么需要硬件更改,要么遵循基于启发式的方法(基于 CPU 性能计数器)。迄今为止,尚无针对遗留系统上 Rowhammer 攻击的即时保护措施。在本文中,我们提出了两种针对 Rowhammer 攻击的实用且高效的纯软件防御方案的设计与实现。我们的防御措施阻止攻击者利用 Rowhammer 破坏内存中物理位置相邻但属于不同系统实体的数据。我们的第一种防御方案 B-CATT 扩展了系统引导加载程序以禁用易受攻击的物理内存。B-CATT 具有高度实用性,无需更改操作系统,并可部署在几乎所有基于 x86 的系统上。虽然 B-CATT 能够阻止所有已知的 Rowhammer 攻击,但它尚未解决物理内存中缺乏内存隔离这一根本问题。为解决此问题,我们引入了第二种防御方案 G-CATT,这是一种通用解决方案,通过扩展操作系统的物理内存分配器来物理隔离不同系统实体(例如内核和用户空间)的内存。作为概念验证,我们在 x86 上实现了 B-CATT,并在 x86 和 ARM 上实现了我们的通用防御方案 G-CATT,以缓解基于 Rowhammer 的内核利用。我们广泛的评估表明,这两种缓解方案 (i) 能够阻止现有的真实世界 Rowhammer 攻击,(ii) 对常见的用户和内核基准测试以及常用应用程序几乎不产生运行时开销,以及 (iii) 不影响整体系统的稳定性。
引用
@article{arxiv.1611.08396,
title = {CAn't Touch This: Practical and Generic Software-only Defenses Against Rowhammer Attacks},
author = {Ferdinand Brasser and Lucas Davi and David Gens and Christopher Liebchen and Ahmad-Reza Sadeghi},
journal= {arXiv preprint arXiv:1611.08396},
year = {2016}
}
备注
-- Clarifications based on intial feedback -- p7: clarified formula p10: included rest of pts/memory (cachebench/ramspeed) in Tab III p12: include discussion on how single-sided rowhammer attacks are mitigated and benchmark selection p13: updated related work p14: updated acknowledgment