中文 英语

Rowhammer漏洞有实际测试吗?

针对持久DRAM问题的新方法浮出水面。

人气

事实证明,Rowhammer是一个难以解决的DRAM问题。

尽管人们继续努力减轻或消除这种影响,但目前还没有一种可靠的解决方案投入批量生产。此外,更激进的流程节点预计会加剧这个问题。在没有修复的情况下,测试可能是一种方法动态随机存取记忆体制造商和用户的某种方式来分离更容易受到效果的装置,以提高系统安全性。

“排锤敲击之所以引起我们的注意,是出于安全考虑,”雅万特·佐里安(Yervant Zorian)说Synopsys对此.“通过敲击,人们可以对记忆内容进行逆向工程。”

佛罗里达大学的研究员穆罕默德·法马尼(Mohammad Farmani)在2021年的欧洲测试研讨会上发表了类似的发现。“自2014年rowhammer引入以来,每年都会出现几起攻击事件,其中来自软件级别的攻击者利用了rowhammer在电路级别的漏洞,侵犯了主存的完整性。”

对rowhammer漏洞进行全面、详尽的测试将花费太长时间,在经济上是不可行的。“这样做真的很费时间,”Zorian说。“尽管测试在高速运行,但这是一个非常长的测试。”

目前,唯一的选项是没有测试。但是研究项目[1]在最近的欧洲测试研讨会上提出,使用一种远非详尽的方法来提供详尽测试的大部分好处是可能的。如果完全部署,它既可以为制造商提供关于更容易受到攻击的设备的反馈,又可以为用户提供可行的来料测试流程,使他们能够对所使用的部件进行更严格的选择。

一个顽固的挑战
Rowhammer是一个动态随机存取记忆体-特定的现象,重复访问特定的内存行可能损坏物理上相邻行的数据。每当一行被访问时,一小股电子就会飘到邻近的电池中。

单独来看,这些膨胀并不显著。但是,如果有人故意连续不断地进入这一排,即所谓的“攻击者”,这些累积的电子可以改变相邻排中相邻细胞的状态,即“受害者”。这已经被发现是一个安全挑战,可能使攻击者控制系统。

如果在任何损坏之前执行了刷新,则内存将重新开始。问题是在刷新之间会出现太多的访问。更紧密的电池封装使问题变得更糟,这就是为什么旧的dram不太容易受到影响,而新的dram预计会更糟。翻转位所需的访问次数预计会随着维度的缩减而减少。

由于这是一种不同寻常的访问模式,因此这种敲打不会是正常应用程序的典型特征。“在正常的操作中,你不会用锤子,”佐里安指出。它主要发生在攻击期间,因此这只是一个安全问题,而不是质量问题。法马尼指出:“脆弱细胞与记忆中的脆弱细胞不同。”

对于rowhammer的缓解措施和可能的修复措施已经进行了许多讨论。缓解措施已经到位,审查意见不一,但行业尚未最终采纳任何修复措施。法马尼说:“最近的袭击表明,目前的解决方案并不完全有效。

在考虑测试rowhammer时,隐含的预期是某些芯片比其他芯片更脆弱。理想情况下,测试可以让制造商挑选出特别脆弱的芯片。或者,作为进料质量检查,系统构建者可能会拒绝使用更脆弱的部件,认为它们存在安全风险。

在后一种情况下,我们处理的是内存,而不是单独的存储芯片。这意味着测试不仅要测试单个芯片,还要测试内存上的每一个芯片。

图。图1:每个DIMM具有多个DRAM,每个DRAM具有多个存储体,每个存储体具有多个DRAM单元子阵列。资料来源:©2021 IEEE

图。图1:每个DIMM具有多个DRAM,每个DRAM具有多个存储体,每个存储体具有多个DRAM单元子阵列。资料来源:©2021 IEEE

如果每个芯片中的所有细胞都面临同样的风险,那么同样,测试也没有任何益处。Farmani说:“如果我们每次应用rowhammer时没有一致性,那么错误就会发生在一个新的位置。”“这意味着每次所有的细胞都有相同的概率显示错误,这使得找到一个测试解决方案是不可行的。”

这是因为详尽的测试太昂贵了。为了执行测试,必须对每一行进行数十万次访问,检查相邻的行是否存在错误。

从SOC测试
Rowhammer测试可在内存中提供内置自检(MBist)模块。这种MBist块通常被放置在SOC中,以用于测试SOC上的嵌入存储器。然而,在DRAM的情况下,存储器是SOC的外部而不是被嵌入。

为此,MBist块可以通过高速DRAM访问端口访问DRAM。这提供了一种方法来在SOC的控制下测试DRAM。MBist功能可能涵盖许多不同类型的故障,但是Rowhammer可以是一个可选测试。“我们有一个特殊的引擎,与DDR内存交谈,到HBM内存,”Zorian说。“然后我们应用这种锤击的方法。”

这种功能在高级包中特别有用。“当你在多芯片模块中封装一个模具时,模具在封装、处理等过程中仍然是暴露的,”Zorian说。“它可能会被破坏。这就是为什么包装后要重新测试。但我已经不能直接使用它了。它与逻辑相连。如果我试着去探测它,那将会非常困难,因为你正在测试的是非常高速的连接。”

一些芯片甚至可能在3D配置中被倒置或被另一个芯片覆盖。因此,通过DRAM端口的mist方法是测试这种组件的有效方法。

汽车应用对开机、临时和关机测试有独特的要求。但是,由于rowhammer是一个安全问题,而不是质量问题,所以它不太可能在系统内执行(尽管它可能由系统构建器选择)。这主要是在系统部署到现场或安装DIMM之前的制造级测试。

一些mist块允许在不同的设置下执行不同的程序。因此,完整的测试,包括滚锤测试,可以在生产测试中执行。其他设置——比如开机测试和临时测试——可能涉及较短的测试,它们可以完全忽略rowhammer测试。

“有些人喜欢进行更短的测试,只是为了看看DRAM是否还活着,”Zorian说。“在其他应用中,如汽车或高端计算,他们通过[soc -DRAM]桥应用整个DRAM测试。”

通过一个可编程的mist块,一个通用的行锤测试算法可以被构建到mist中,同时将重要的参数置于编写测试程序的人的控制之下。通过这种方式,可以对要测试的特定地址和要执行的“锤子”数量进行编程。

“在我们的BiST引擎中,我们有一个循环,”Zorian说。“我们把它交给包装公司的控制——谁把它放在一起——他们决定要做多少个循环。”

测试时间总是很重要的。因此,一个大问题变成了,“应该访问多少行,应该读取多少列,应该测试哪些特定的行和列,应该执行多少锤子?”一个mist块可能允许将该信息编程到测试中,但它自己并没有提供关于如何设置这些参数的指导。

佛罗里达大学队正在寻找更有效的方式来系统地测试弱势件 - 即,以最脆弱的细胞指导的方式进行。这将适用于MBist实施或外部控制的测试自动化测试设备(吃)。但是,为了使其有意义,每个存储阵列中的某些位置需要比其他位置更容易受到攻击——对于给定的设计,这种相关性需要从一部分到另一部分是一致的。

或者,如果所有单元都同样容易损坏,那么测试内存的随机子集可能会在更短的时间内提供一些好处。但选择测试的内容和锤击的数量或多或少都是随机选择的,因此很难证明具体选择的合理性。

那么,给定一个ATE或mist程序,允许测试数组的子集来测试rowhammer漏洞,应该是哪个子集呢?

熟悉邻居
一个系统的,定向的行锤测试需要行邻接的知识。在这样的设计中有三个层次的地址。这是软件使用的逻辑地址,该地址由内存管理单元(MMU)转换为物理地址。但是,这些dram的物理布局有时会打乱地址,因此,具有相邻“物理”地址的两行可能在物理上并不相邻。

“我们曾经有五种,六种类型的加扰 - 位扭曲,地址扰乱,堵塞等等,”佐安说。“今天,有大约有20种类型的扰乱。”

图2:行地址置乱的例子。顶部和底部的行集合没有被打乱,但是中间的行集合被打乱了。资料来源:©2021 IEEE

图2:行地址置乱的例子。顶部和底部的行集合没有被打乱,但是中间的行集合被打乱了。资料来源:©2021 IEEE

芯片制造商将知道如何将物理地址映射到研究小组所说的“实现地址”。但是一个系统建造者,作为一个DRAM客户,不会知道这个映射。为了进行测试,需要有一种方法来反向工程实现邻接关系。

这是佛罗里达队的项目的第一步。这是穷举的工作,因为它是通过按行敲打设备行来完成的,以查看哪个行已损坏。锤击一个侵略性行应该导致另外两个受害者行显示位翻转。然后假设这两个受害者行躺在行的两侧被锤击。实际上,这就是他们发现的。

法马尼说:“除了记忆的开始和结束,每一个攻击者都有两个受害者的争吵。”测试的三个不同供应商(他们的身份没有公开)都有不同的映射,但对于每个供应商来说,映射在多个设备上是一致的。

有一种担忧是,随着技术的更新,这种影响可能不仅会破坏相邻的行,而且会破坏相邻的行。这是因为这些行会更紧密地挤在一起,而电子的喷射可能会到达额外的行。

在这种情况下,使用这种方法,人们会预期有四行腐败-其中两行比另外两行更腐败。损坏程度越高的行就会被解释为相邻的行,而损坏程度越低的行就会被解释为相邻的行。这个项目使用了旧的记忆,所以在他们的具体工作中没有考虑到这一点。

因为旧的设备需要更多的锤子来造成损坏,团队敲打每一行1500万次——足够在刷新周期之间做。因此,他们禁用了自动刷新,只在需要时手动刷新(尽管延长刷新间隔的时间也可能导致一些随机单元自然泄漏它们的状态)。

寻找相关性和模式
一旦地址映射已知,下一步就是弄清楚芯片的某些部分是否比其他部分更容易受到攻击。这将重新启动一个锤击序列,尽管使用的锤子更少。通过这一过程,他们可以利用自相关将受损细胞从受损细胞中随机分离出来。

他们最终得到的是脆弱细胞的分布,包括破坏不同细胞所需的锤子数量。这就是为什么除了随机的比特翻转,所有芯片之间的一致性是很重要的,这就是我们发现的。

法马尼说:“我们发现,易受轮锤攻击的细胞高度一致。“它们在位线中有相关性,这有助于我们在记忆中定位更脆弱的线。它们与行数没有任何关联。同一厂商同一系列的不同芯片彼此非常相似。对于所有三家供应商来说,rowhammer脆弱电池的平均一致性超过80%。”这意味着相同的测试可以用于具有相同设计的所有设备。

实际的影响是,对于给定的内存设计,需要使用多个芯片进行一次映射和相关处理,以有效地描述该设计的rowhammer分布。这些数据可以为使用相同设计的其他芯片的测试程序奠定基础。

它还意味着需要为每个供应商的每个设计执行该流程。从理论上讲,这些数据可以供其他人在创建测试程序时使用。在实践中,业务考虑可能导致数据被多个组织使用。

提供可调测试程序
在脆弱细胞和无敌细胞之间没有明显的下降。它们是逐渐变化的。所以他们在这个阶段发现的分布告诉他们在给定的锤子数量下可以翻转多少个细胞。它还提供了位线相关性的分布,以脆弱性的顺序。

这让测试创建者在权衡覆盖率和成本时有两个选择。为了获得更高的覆盖率,该程序可以放松相关性,引入更多的位行,并/或增加每一行测试的锤的数量——以更长的测试为代价。当然,这是假设检查结果的方式可以受益于较少的位行检查。

较短的测试只能在最脆弱的位线上关注最脆弱的位线(因为更脆弱的位线需要较少的命中率较少,以损坏其邻居)。至于行,在那里没有相关性,因此可以使用行的任何子集进行测试。这成为第三个旋钮,具有更多的行,为更高的成本提供更高的覆盖范围。

虽然更新的进程节点预计会导致更脆弱的芯片,但这对测试来说实际上是一个好消息。造成腐蚀的锤子越少,测试就越快。

对于ATE执行的测试,这些参数为如何编写测试程序提供了方向。对于一个可编程的mist块,只要锤数和目标地址可以编程,ATE测试(或它的变体)可以在mist程序中实现。

需要进一步的研究将这些结果推广到更多的供应商和更新的技术。然后自动化可以看到rowhammer漏洞被添加到一个新的DRAM芯片的引出特性。

来源
[1] M. Farmani, M. Tehranipoor, F. Rahmanr,“RHAT:现代DRAM模块的高效RowHammer-Aware测试”,2021年IEEE欧洲测试研讨会(ETS), 2021,第1-6页,©2021年IEEE。

有关的故事
DRAM对芯片安全的持续威胁
内存上的Rowhammer攻击可能会给系统带来重大问题;可能的解决方案。
更多数据,更多内存缩放问题
挑战持续适用于DRAM,Flash和新记忆。
半导体安全知识中心



3评论

贝克穆罕默德 说:

为什么不放置简单的硬件来防止连续访问同一行,从而防止RawHammer,因为它在功能模式中是不需要的。只是一个想法!

Erik Jan Marinissen 说:

感谢您为最近在IEEE欧洲测试研讨会(ETS-2021)上发表的一篇论文撰写的这篇写得很好的文章。关于这个主题的论文全文将很快出现在IEEE的数字图书馆IEEE Xplore中。与此同时,在2021年6月27日之前,所有注册的ETS参与者都可以按需观看演讲的论文和Zoom视频记录。顺便说一下,你仍然可以注册ETS。当然,ETS的现场直播已于5月27日结束,但你仍然可以观看所有环节。看到的:https://ets2021.vfairs.com/

Erik Jan Marinissen

汉斯皮达 说:

Baker在ISCA2018的一篇论文和演讲中指出,“使用自适应计数器树缓解字线串扰”,并且已经在商业可用的2Gb或4Gb(以及最近的8Gb) DDR3L DRAM芯片中实现了,正如作者之前的相关文章“DRAM对芯片安全的持续威胁”中提到的那样。现在您可能会问,为什么不是所有的DRAM品牌都实现这个看门狗(和“过时的”行刷新)方案,以确保他们的DRAM不会给最近越来越复杂的row - hammer黑客攻击留下硬件后门?答案是,这需要额外的芯片成本,因此很难在这个价格驱动的竞争激烈的动态内存业务中生存下来,一些主要的DRAM品牌,如奇梦达、Promos或尔必达,在最近几十年都未能生存下来。

留下一个回复


(注意:此名称将公开显示)

Baidu