什么是Rowhammer DRAM错误,我该如何处理?


20

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

  • 在带有ECC的服务器级DRAM芯片中随机触发错误的可能性是多少(CMU-Intel论文引用了例如,一年中一次故障的未知芯片的编号为9.4x10 ^ -14)?
  • 如何在购买内存之前知道该错误是否已解决?
  • 我该如何应对例如CentOS 7上的租户或非特权用户进行的恶意的特权升级尝试

参考文献:


2
鉴于尚未充分利用此漏洞的细节,我不确定除了Google已经给您的信息以外,还会有很多可用的信息。
fukawi2 2015年

据我了解,内存刷新率大大降低了成功进行位翻转的几率,而较新的BIOS版本也降低了刷新率以尝试降低风险。因此,更新BIOS可能是一个不错的第一步?
2015年

1
@ fukawi2,对漏洞利用的哪些细节进行了禁运?概念验证漏洞的完整代码已在博客文章中发布。
Mark Seaborn

@MarkSeaborn我现在甚至都不记得了,这是3个月前的事,我几乎记不清早餐了。
fukawi2

Answers:


19

您引用的CMU-Intel论文显示(第5页),错误率在很大程度上取决于DRAM模块的部件号/生产日期,并且变化幅度为10-1000。还有迹象表明,该问题在最近(2014年)制造的芯片中不那么明显。

您引用的数字“ 9.4x10 ^ -14”用于建议的理论缓解机制“ PARA”(可能与现有的缓解机制pTRR(伪目标行刷新)相似),与您的建议无关问题,因为PARA与ECC无关。

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

ECC有效地将“行锤”漏洞转化为DOS攻击。1位错误将通过ECC进行纠正,并且一旦检测到不可纠正的2位错误,系统将停止运行(假设为SECDED ECC)。

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

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

我猜想,除了终止具有持续高CPU使用率和高缓存未命中率的可疑进程外,在操作系统方面您无能为力。


4

情况似乎还不太清楚,所以我认为您的问题无法直接回答,但是这里有一些相对较新的信息作为部分答案。有关新闻,请关注rowhammer-discuss邮件列表。

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

据报道,“未具名的存储器公司” 试图行贿,以换取Passmark Software未在其Memtest86工具中发布行锤测试。

据报道,由于增加了新指令英特尔Skylake硬件更容易受到冲击,而不是不容易受到影响clflushopt。这已经被利用在rowhammer.js

丹尼尔·格鲁斯(Daniel Gruss )在本演讲中回答了截至2015年12月的缓解措施的一些问题(rowhammer.js论文的合著者):

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.