阿姆斯特丹自由大学的一组研究人员开发了RowHammer攻击的新高级版本, 它允许更改基于DRAM芯片的存储器中各个位的内容,以保护所应用的纠错码(ECC)的完整性。
可以通过非特权访问系统来远程进行攻击由于RowHammer漏洞可以通过周期性地从相邻存储单元读取数据来扭曲内存中各个位的内容。
什么是RowHammer漏洞?
研究人员对RowHammer漏洞的解释是e基于DRAM存储器的结构,因为基本上这是单元的二维矩阵,这些单元的每个单元由一个电容器和一个晶体管组成。
因此,连续读取同一存储区域会导致电压波动和异常,从而导致相邻单元的电荷损失很小。
如果读数强度足够大,则单元可能会损失足够多的电荷,并且下一个再生周期将没有时间恢复其原始状态,从而导致单元中存储的数据值发生变化。
RowHammer的新变体
到目前为止, 使用ECC被认为是防止上述问题的最可靠方法。
但 研究人员成功地开发了一种更改指定存储位的方法 没有激活纠错机制。
方法 可以在具有ECC内存的服务器上使用以修改数据,替换恶意代码并更改访问权限。
例如,在上面演示的RowHammer攻击中,当攻击者访问虚拟机时,通过更改主机名apt进程来下载和修改主机名数字签名的验证逻辑,从而下载了恶意系统更新。
这个新变体如何运作?
研究人员对此有何解释 这种新的攻击是ECC演练依赖于纠错功能-如果更改一位,则ECC将纠正错误,如果两位提高,将引发异常,并且将强制终止程序,但是如果同时更改XNUMX位,则ECC可能不会注意到该修改。
要确定ECC验证不起作用的条件, 已经开发出一种与比赛类似的验证方法,该方法可以评估内存中特定地址受到攻击的可能性。
该方法基于这样的事实,即在纠正错误时,读取时间会增加,并且由此产生的延迟是相当可测量和引人注意的。
攻击减少为连续尝试分别更改每个位,并通过出现由ECC设置引起的延迟来确定更改是否成功。
因此,用三个可变位执行机器字搜索。 在最后阶段,必须确保两个位置的三个可变位不同,然后尝试单次更改其值。
关于演示
MGI 研究人员成功地证明了攻击具有DDR3内存的四台不同服务器的可能性 (理论上易受攻击的DDR4内存),其中三个配备了Intel处理器(E3-1270 v3,Xeon E5-2650 v1,Intel Xeon E5-2620 v1)和一个AMD(Opteron 6376)。
En 该演示表明,在空闲服务器上的实验室中找到所需的位组合大约需要32分钟。
由于存在因应用程序活动引起的干扰,因此对正在运行的服务器进行攻击要困难得多。
在生产系统中,可能需要多达一周的时间才能找到所需的可互换钻头组合。
成为第一个发表评论