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

DRAM芯片封装非常紧密。 研究表明,相邻的比特可以随机翻转。

  • 在一个带有ECC的服务器级DRAM芯片中随机触发错误的概率是多less( CMU-Intel论文引用一年中一次未知芯片的数量为9.4×10 ^ -14)?
  • 如何在购买内存之前知道错误是否已被修复?
  • 我应该怎么做,以抵制恶意企图通过例如租户或非特权用户(例如CentOS 7)进行特权升级?

参考文献:

  • 行内DRAM漏洞被利用,解锁访问物理内存
  • 内存翻转而不访问DRAM:DRAM干扰误差的实验研究
  • Google的PoC回购
  • 项目零写入

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

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

第二个CMU-Intel论文 (第10页)提到了不同的ECCalgorithm对错误减less的影响(因子10 ^ 2到10 ^ 5,可能更复杂的内存testing和“防护带”)。

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

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

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

我想在操作系统方面没有太多可以做的事情,除了终止持续的高CPU使用率和高速caching未命中的可疑进程外。

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

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

据报道,“无名记忆公司”曾试图通过贿赂来换取Passmark Software公司在其Memtest86工具中没有发布行刑testing。

由于增加了新的clflushopt指令,英特尔Skylake硬件已经被报告为更容易受到攻击,而不是更less 。 这已经在rowhammer.js中被利用了

Daniel Gruss在这里谈到了2015年12月的一些关于缓解的问题( rowhammer.js论文的合着者)

  1. 虽然有些ECC RAM比非ECC RAM容易受到攻击,但是其他ECC RAM比非ECC RAM容易受到攻击( video链接问题 )
  2. 切换到更快的刷新速率足以防止大部分的硬件 – 但不是所有的BIOS都允许改变刷新率( 链接到video中的问题 )。

作为一种对策,有可能检测到正在进行的行敲打攻击,但是我不知道那已经完成了。