【论文总结】端对端的方法检测云供应商是否容易受Rowhammer攻击

端对端的方法检测云供应商是否容易受Rowhammer攻击

介绍

这是一篇来自2020S&P的论文,作者是Lucian Cojocar, Jeremie Kim, Minesh Patel, Lillian Tsai, Stefan Saroiu, Alec Wolman, Onur Mutlu。该论文是从硬件的角度分析云计算安全。

前置知识

1.Rowhammer是一种对动态随机存取存储器(DRAM)攻击方法。这种攻击利用了DRAM在运行过程中产生的意外电荷泄漏效应,在足够多的访问次数后让某个单元的值从1变成0,反之亦然。Rowhammer攻击可以导致存储器单元泄露电荷并可能造成比特翻转,攻击存在的一个原因是现在DRAM存储单元的高密度排列造成的。简单来说就是该攻击是对DRAM中相邻地址的高访问率会翻转存储在附近地址的数据中的位。如下图,通过不断对第一行和第三行的访问,使第二行第三列的数值变为了1。
在这里插入图片描述
在这里插入图片描述
2.DRAM结构
DRAM由一个二维数组层次结构组成,如下图。在最高级的层面上,DRAM控制器和一个通道上的DRAM rank进行交互,该通道在DRAM控制器和DRAM rank之间传递DRAM命令、地址和数据。多个DRAM rank组成一个DRAM module,DRAM控制器使用芯片选择信号在任何给定的时间内只与一个DRAM rank进行接口交互。一个DRAM rank由多个DRAM芯片组成,DRAM bank被进一步划分为存储单元的行和列,每个单元对单个数据编码。
在这里插入图片描述
DRAM读取操作分为三个阶段:1)激活(ACT)储在bank中整个DRAM行单元中的电荷被感知并存储在一个行缓冲区中。行缓冲区充当高速缓存;2)读取(RD):将位于给定列地址处的行缓冲区的内容返回到DRAM控制器。3)预充(PRE):通过断开连接和清除活动行缓冲区,银行为下一次访问做好准备。4)刷新(REF): DRAM单元格会泄漏电荷,当单元格访问不够频繁时,可能会导致数据丢失。为了防止这种情况发生,DRAM控制器会定期发出刷新操作。

作者提出的端对端方法

1.在服务器架构上生成最高速率的ACT命令

首先使用了来自FuturePlus系统的FS2800 DDR检测器,测量执行序列的行激活速率,通过测量ACT速率找到在特定平台上产生最高的ACT速率,以及量化这个ACT速率和DRAM数据表中最有速率的差异。然后评估先前工作指令顺序的性能。通过构建42个不同指令序列进行实验,发现概念的RowHammer攻击和DRAM测试方法存在差异。最后提出新的指令序列,研究表明使用无内存障碍和不容易受无序执行的影响的序列指令下,在两个云服务平台Skylake and Cascade Lake中产生最好的激活率。

2.在任意DRAM设备中进行邻近的逆向工程

设计了一个DDR4故障注入器,用于阻止内存控制器发送给DIMM的REF。该注入器可以逆向工程任何 DDR4 DIMM 的行邻接关系。然后,使用故障注入器对安装在DDR4内存上的DRAM设备的物理行邻接进行了反向工程。实验发现 DRAM 行并不总是遵循线性映射。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Ohh24/article/details/130056947