什么是 Rowhammer DRAM 漏洞以及我应该如何处理它?

什么是 Rowhammer DRAM 漏洞以及我应该如何处理它?

DRAM 芯片排列非常紧密。研究表明,相邻的位可以随机翻转。

  • 在具有 ECC 的服务器级 DRAM 芯片中随机触发错误的可能性有多大(CMU-Intel 论文例如,对于一个未知芯片,一年内发生一次故障的概率为 9.4x10^-14?
  • 在购买内存之前如何知道该错误是否已修复?
  • 我应该怎么做才能应对恶意尝试在 CentOS 7 等平台上,如何由租户或者非特权用户提升权限?

参考:

答案1

您引用的 CMU-Intel 论文(第 5 页)显示,错误率在很大程度上取决于 DRAM 模块的零件编号/制造日期,并且相差 10-1000 倍。还有一些迹象表明,最近(2014 年)制造的芯片中这个问题不太明显。

您引用的数字“9.4x10^-14”是在称为“PARA”的拟议理论缓解机制的背景下使用的(可能类似于现有的缓解机制 pTRR(伪目标行刷新)),并且与您的问题无关,因为 PARA 与 ECC 无关。

第二篇 CMU-Intel 论文(第 10 页)提到了不同的 ECC 算法对减少错误的影响(10^2 到 10^5 倍,通过复杂的内存测试和“保护带”可能会更多)。

ECC 有效地将 Row Hammer 漏洞转变为 DOS 攻击。1bit 错误将由 ECC 纠正,并且一旦检测到不可纠正的 2bit 错误,系统将停止(假设 SECDED ECC)。

解决方案是购买支持 pTRR 或 TRR 的硬件。请参阅思科最新博客文章,介绍 Row Hammer至少有些制造商似乎在其 DRAM 模块中内置了其中一种缓解机制,但将其深深隐藏在规格中。要回答您的问题:请询问供应商。

更快的刷新率(32ms 而不是 64ms)和积极的 Patrol Scrub 间隔也有帮助,但会对性能产生影响。但我不知道有任何服务器硬件实际上允许微调这些参数。

我想,除了终止那些 CPU 使用率持续居高不下且缓存未命中率高的可疑进程之外,在操作系统方面你能做的事情并不多。

答案2

情况似乎仍然不太明朗,所以我认为你的问题无法直接回答,但这里有一些相对较新的信息作为部分答案。如需了解新闻,请关注rowhammer 讨论邮件列表。

我不确定目前是否有可能通过公开信息避免购买易受攻击的 RAM,也无法轻松预测现有硬件的故障率。制造商尚未公开其产品如何受到影响的信息。可以使用软件工具测试已购买的内存,但您应该知道,长时间(数小时)运行这些工具可能会永久降低 RAM 的性能并导致运行软件出现故障。

据报道,“未具名的内存公司”试图行贿作为回报,Passmark Software 没有在其 Memtest86 工具中发布 Rowhammer 测试。

据报道,英特尔 Skylake 硬件更加脆弱,而不是更少,因为增加了一条新clflushopt指令。这已被利用在 rowhammer.js 中

Daniel Gruss 在这里回答了一些关于 2015 年 12 月缓解的问题(合著者rowhammer.js 论文在这次演讲中

  1. 虽然一些 ECC RAM 比非 ECC RAM 更不容易受到 Rowhammer 攻击,但其他 ECC RAM 比非 ECC RAM 更容易受到 Rowhammer 攻击(视频中的问题链接
  2. 切换到更快的刷新率足以防止大多数(但不是所有)硬件出现 Rowhammer 现象 - 但并非所有 BIOS 都允许更改刷新率(视频中的问题链接)。

作为一种对策,可能可以检测到正在进行的 Rowhammer 攻击,但我不知道是否已经这样做了。

相关内容