读论文Hydra: Enabling Low-Overhead Mitigation of Row-Hammer at Ultra-Low Thresholds via Hybrid Tracking

Hydra:通过混合跟踪实现超低阈值下低开销的Row-Hammer缓解方法

乔治亚理工大学(Georgia Institute of Technology,美国大学)

大约在五年前首次发现,消除“rowhammer”威胁的大多数努力仅起到缓解问题的作用。

Rowhammer比特翻转攻击是指利用临近内存单元之间电子的互相影响,在足够多的访问次数后让某个单元的值从1变成0,反之亦然。这种攻击可以在不访问目标内存区域的前提下使其产生数据错误。
这次的攻击与操作系统和软件无关,纯粹是硬件上的漏洞导致的

这里写图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IsLfDHyk-1680344249505)(C:\Users\杨\AppData\Roaming\Typora\typora-user-images\image-20230330163214260.png)]

摘要

​ DRAM系统一直受到Row-Hammer (RH)安全漏洞的困扰。诱导RH所需的行激活阈值T_RH已从2014年的139K迅速减少到2020年的4.8K,并且T_RH预计将进一步减少,使RH对未来DRAM的影响更加严重。因此,缓解RH的解决方案不仅在当前T_RH有效,而且在未来T_RH有效。在本文中,我们研究了在超低阈值(500及以下)时RH的缓解。在这样的阈值下,依赖 SRAM 或 CAM 来跟踪行激活的最先进的解决方案,会产生不切实际的存储开销(在T_RH为500时,每个rank 340KB或更多),使这样的解决方案没有吸引力的商业采用。在可寻址DRAM空间中逐行存储元数据的替代方案,由于额外的内存访问,即使在存在元数据缓存的情况下,也会导致显著的减速(平均25%)。我们的目标是在降低SRAM和性能开销的同时,开发可扩展的RH缓解方案。

为此,本文提出了Hydra,一种用于RH缓解的混合跟踪器,它结合了SRAM和DRAM的优点,能够在超低阈值下实现低成本的RH缓解。Hydra由两个结构组成。首先,基于sram的结构以一组行的粒度跟踪聚合计数,并且对于绝大多数只接收少量激活的行是有用的。第二,存储在dram数组中的逐行跟踪器,它可以跟踪任意数量的行,但是,为了限制性能开销,该跟踪器只用于超出基于sram结构的跟踪能力的少量行。对Hydra进行了安全性分析,表明Hydra可以在指定阈值内可靠地发布缓解。评估表明,Hydra能有效缓解RH,同时每阶仅产生28 KB的SRAM开销,平均速度仅为0.7%。

1. 介绍

​ 紧密地封装电池时,当频繁访问的DRAM行会导致附近行的位翻转时产生一种干扰:Row-Hammer,RH依赖于数据的特性可以被用来隐蔽地推断存储在附近行的数据。

​ Row Hammer Threshold, T_RH通常用来表征RH的严重程度,表示给定行中需要的行激活数量。由此可见RH成为未来系统更严重的问题,本文研究缓解的解决方案RH处于超低阈值状态:500及以下。

在这里插入图片描述

​ 通常用一个专门的计数器来跟踪每行的激活计数需要数兆字节的存储空间。一些提案试图减少跟踪的存储和性能开销。将这种跟踪方案分为基于SRAM和基于DRAM的跟踪方案。

用于降低RH的基于硬件的技术通常由跟踪机制组成,该机制识别一行何时达到指定的激活数量,然后发出缓解措施(在运行时准确地识别被锤击的行并刷新它们的邻居。)。一个典型的内存系统包含数百万行(例如,一个16GB的模块将有200万行,每行8KB),因此简单地使用每行专用计数器跟踪每行的激活计数需要数兆字节的存储空间。

在这里插入图片描述

​ 基于SRAM的跟踪有很高的SRAM开销、基于dram的跟踪具有较大的减速。

​ Hydra把追踪分为两部分。首先,使用基于SRAM的组计数表(GCT)对一组行的粒度进行聚合跟踪。第二,逐行跟踪,使用行计数表(Row-Count Table, RCT),它存储在DRAM中,并在片上专用的行计数缓存(Row-Count Cache, RCC)中缓存。

GCT是一个未标记的计数器表,Hydra使用GCT来“剔除激活次数低的行,仅在GCT不敏感时才使用RCT的逐行跟踪。”

静态随机存取存储器(Static Random Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面存储的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM)里面所存储的数据就需要周期性地更新。然而,当电力供应停止时,SRAM存储的数据还是会消失(被称为易失性存储器),这与在断电后还能存储资料的ROM或闪存是不同的。

​ Hydra只是一种跟踪机制,可以用于任何缓解措施(受害者刷新或插入延迟)。

论文做出了以下贡献:

1、本文研究了在超低阈值下常规跟踪的有效性,并表明它们要么招致令人望而却步的SRAM开销,要么导致不可接受的减速。

2、本文提出Hydra,一种缓解RH的混合跟踪器,结合了SRAM和DRAM跟踪的优点,以实现超低阈值的低成本跟踪。

3、对Hydra的安全性进行了分析,结果表明Hydra提供了有保障的跟踪。本文还分析了Hydra的不同攻击向量以及针对此类攻击的防御措施.

2. 背景和动机

介绍了:DRAM组织和定时参数、Row-Hammer和安全影响、威胁模型、SRAM-Based跟踪、DRAM-Based跟踪

​ DRAM模块包含多个banks,它们并行操作并共享公共数据总线。在内部,banks被组织成一个由行和列组成的二维数组。要从DRAM访问数据,必须激活一行,这将把数据带入行缓冲区。如果内存控制器需要访问另一行中的数据,它必须首先使用precharge命令清除行缓冲区,然后激活给定行的数据。DRAM存储单元存在数据泄漏,需要周期性的刷新操作来保持数据的完整性。

3. 评价方法

​ 使用USIMM,一个详细的内存系统模拟器,进行研究。表2显示了我们的基线系统的配置。
在这里插入图片描述

​ 使用来自SPEC2017、PARSEC和GAP基准测试的总共36个工作负载来评估设计。

4. HYDRA:可行的混合跟踪

​ 不使用CAM的跟踪器需要更多的存储开销。如果跟踪器没有提供足够数量的条目,那么对手就可以通过破坏结构来逃避检测。

​ 为了开发一个只需要少量SRAM开销(几十kb)和低性能开销的解决方案,我们利用两个观察结果。首先,典型的工作负载往往只有少量的行接收数百次激活(在64ms的刷新周期内),跟踪这些行的聚合计数可能是有效的,从而避免了与逐行跟踪相关的SRAM和性能开销。

​ 其次,我们可以提供每行SRAM跟踪资源来处理几千行频繁访问的行,同时依赖备份跟踪(存储在dram数组中)为片上资源不充足的工作负载提供可靠的跟踪资源。基于这些见解,

​ 所提出的解决方案被设计为执行混合跟踪,从而结合了SRAM跟踪(低性能开销)和dram跟踪(低SRAM开销和跟踪任意数量行的能力)的优点。

图3展示了Hydra的概述。Hydra把追踪分为两部分。首先,使用基于sram的组计数表(GCT)对一组行的粒度进行聚合跟踪。第二,使用DRAM内存空间中的行计数表(Row-Count Table, RCT)逐行跟踪,并在片上专用的行计数缓存(Row-Count Cache, RCC)中缓存。

在这里插入图片描述

GCT的目的是方便地过滤掉只有少量激活的绝大多数行的行计数更新。

为了拥有任意数量的逐行跟踪项的灵活性,Hydra在一个称为行计数表(RCT)的结构中

由于RCT是内存映射结构,访问RCT会产生较高的延迟,通过通过在专门的行计数缓存(RCC)解决
在这里插入图片描述

更新行激活计数的请求可以根据服务该请求的结构分为三类

1、常见的情况是,请求在GCT中建立索引,并增加GCT项的值。gct项仍然小于T,因此不需要进一步处理。这对于大多数请求来说都是有效的。

2、请求在GCT中建立索引,发现GCT项等于T。它访问了RCC,找到了匹配。与行的关联的计数器被递增。如果计数器到达T,则发出缓解,并重置计数器。

3、与(2)相同,只是请求遇到了RCC miss。rct项从DRAM中获取并安装在RCC中(任何被删除的项都会被回写)。与行的关联的计数器被递增。如果计数器到达T,则发出缓解并重置计数器。

Hydra估计的行数可能不精确(行数可能等于或大于实际值)。在最好的情况下,给定行的gct项不会从行组中的任何其他行获得任何更新。

我们希望跟踪刷新周期内的激活计数。因此,每64ms,我们重置SRAM结构(GCT和

我们使用受害者刷新,因为它在超低阈值下更实用每一边刷新的受害者行数(N)可以根据爆炸半径来决定。考虑到最近的攻击[11]导致了距离为2的比特翻转,我们在研究中使用N=2。我们还假设系统知道DRAM映射,因此它可以为给定的攻击者识别受害行,从而发出缓解措施。这是一个常见的假设,在之前的大多数工作中也做了这个假设

5. 安全分析

为了证明对Hydra的追踪是安全的,我们只做以下假设:

成功的行锤攻击需要在刷新周期内激活至少一行。

此Hydra提供了更强的安全保障,具体如下:

定理1:Hydra 问题缓解(a)在 T /2激活时或之前,(b)在每个 T /2激活时或之前,自其在跟踪窗口中的过去缓解以来。

为证明安全性(定理1),分析了在不同的Hydra结构中如何跟踪潜在攻击者行激活计数。在跟踪窗口中,任何一行都有三个阶段。

阶段1:最初,当一行被GCT条目跟踪时,直到达到GCT阈值T)。

阶段2:在gct条目到达T之后,当行被RCT中的逐行计数器跟踪时,直到它到达(T/2)并发出缓减

阶段3:在发布rst缓解后,RCT计数器被重置,并继续跟踪,直到跟踪窗口结束

适应性攻击

Hydra还将由于受害者刷新而遇到的任何激活作为该行的总体激活计数的一部分。

假设RCT存储在DRAM中,攻击者可能试图对RCT项本身进行行锤攻击,从而导致对RCT项的快速访问,从而导致快速的DRAM访问。为了解决这个问题,我们只需在SRAM中使用一组专用的1字节计数器来跟踪DRAM中RCT行的激活情况。

内存性能攻击

攻击者即使在基线情况下也可以通过向内存发送请求来造成性能攻击,而针对此类问题的内存系统隔离解决方案也适用于我们的设计。

6. 结果与分析

性能的影响

图5显示了石墨烯、CRA和Hydra的性能

​ 石墨烯导致的减速可以忽略不计(平均0.1%),因为它只在缓解时进行额外激活。然而,它会带来较高的SRAM开销。CRA需要额外访问元数据和su!平均减速幅度为25%。Hydra的平均速度只有0.7%。跟踪Hydra导致的速度变慢,主要是由于内存中RCT的计数器更新导致的额外内存访问。然而,GCT成功地“过滤掉了大多数计数器更新,其余的则”由RCC过滤掉。因此,用于跟踪的额外内存访问显著减少。只有一个工作负载(xz)在使用Hydra时表现出超过3%的减速。

​ GCT成功地“过滤掉了大多数计数器更新,其余的则”由RCC过滤掉。CRA导致25%的减速,而Hydra只需要57KB的存储,导致0.7%的减速。

在这里插入图片描述

GCT在过滤更新时的有效性

图6显示了三个级别(即GCT、RCC和RCT)中每个级别处理的行激活的百分比。平均而言,

90.7%的激活仅由GCT处理。剩余的大部分激活(平均9.0%)由RCC处理,只有0.3%的计数器访问需要内存访问。

在这里插入图片描述

对Row-Hammer阈值的敏感性

图7显示了由于使用Hydra进行跟踪和缓解而导致的放缓,与不安全基线相比,퐻为250和125。我们将Hydra的结构按比例缩放(2倍和4倍)。GUPS会导致显著的减速(减少)퐻。九头蛇在퐻(500)时的平均减速为0.7%,在퐻(250)时增加到1.6%,在퐻(125)时增加到4%。我们注意到,在lower)퐻,不仅是跟踪,而且是减缓活动导致了显著的减速。

Hydra的减速效果从0.7%(500时)增加到1.6%(250时)增加到4%(125时)。

在这里插入图片描述

GCT与RCC的相对贡献

为了分析两种SRAM结构(GCT和RCC)的相对贡献,我们研究了不含GCT和不含RCC的Hydra结构。图8显示了这两种设计和默认Hydra的性能,都是相对于非安全基线而言的。没有RCC的版本平均减速4.5%,然而,没有GCT的版本平均减速20%。因此,由于GCT的“过滤”对于Hydra和单独依赖RCC缓存的有效性是非常有效的(没有GCT, RCC会因为执行行激活的大量行而抖动)。

在这里插入图片描述

GCT大小的影响

32K项的GCT在SRAM面积成本和性能之间提供了一个很好的权衡

在这里插入图片描述

GCT-Threshold的影响

we select *T_G of 200 80% of T_H
在这里插入图片描述

  • 存储分析

Hydra需要SRAM存储GCT和RCC。此外,它还需要存储存储RIT的行(RIT- act)的激活计数。表4显示了Hydra的SRAM存储开销。我们假设RCC有一个13位的标签(因为setassociativity而减少了标签)。Hydra的SRAM总开销为56.5KB。Hydra还需要4MB的DRAM(不到DRAM容量的0.02%)。
在这里插入图片描述

功率分析

Hydra的电力开销来自两个因素:(1)额外

为获取RCT条目和执行缓解而引起的DRAM访问,以及(2)新添加的SRAM结构(GCT和RCC)所消耗的能量。

为了评估DRAM的功耗开销,我们使用USIMM[6]。我们观察到,RCT和缓减带来的额外内存访问只导致DRAM总功耗的0.2%。为了评估SRAM的功耗开销,我们使用CACTI[3](采用22 nm工艺)。Hydra所需的SRAM结构(GCT和RCC)产生18.6mW的功率开销(GCT 10.6mW, RCC 8mW)。总的来说,Hydra在DRAM访问和SRAM结构上的功耗开销可以忽略不计

8.总结

​ 即使经过几年的研究和内存供应商的承诺,Row-Hammer (RH)仍然是一个持久的问题。在本文中,我们研究了在几百个DRAM行激活的阈值时的RH缓解。据我们所知,目前还没有已知的方法可以在不引起令人望而却步的SRAM存储(基于SRAM的跟踪)或性能开销(基于dram的跟踪)的情况下,在这样的阈值下高效地跟踪行激活计数。本文提出了Hydra,一种缓解RH的混合跟踪器,它结合了两者的优点——SRAM跟踪器的低性能开销和DRAM跟踪器的低SRAM开销。Hydra将跟踪的任务分成两部分:SRAM用于对一组行进行聚集计数,DRAM用于在聚集计数不可用时对每行进行计数。对于我们的32GB内存系统,Hydra只需要56.5 KB的SRAM,平均性能开销仅为0.7%。虽然我们使用了victim-refresh来评估Hydra,但它也可以与其他缓解行动一起使用,如行迁移[26]。探索这样的扩展是我们未来工作的一部分。

开销和DRAM跟踪器的低SRAM开销。Hydra将跟踪的任务分成两部分:SRAM用于对一组行进行聚集计数,DRAM用于在聚集计数不可用时对每行进行计数。对于我们的32GB内存系统,Hydra只需要56.5 KB的SRAM,平均性能开销仅为0.7%。虽然我们使用了victim-refresh来评估Hydra,但它也可以与其他缓解行动一起使用,如行迁移[26]。探索这样的扩展是我们未来工作的一部分。

面对极端情况追踪仍然然以实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值