
Rowhammer是横跨多代内存产品的持续性DRAM缺陷,随着制造工艺进步,问题愈发严重。新增刷新指令虽能缓解不良影响,但要从根本上消除这类问题,唯一的希望或许在于全新架构的DRAM存储单元。
“Rowhammer 源于存储单元间的干扰,会导致受影响比特位发生翻转。” 新思科技应用工程执行董事 Xi-Wei Lin 表示,“它可被利用实施安全攻击,且在 6F₂ 架构持续微缩、存储单元间距不断缩小的过程中,危害会进一步加剧。”
针对 Rowhammer,业界已提出无数修复、测试与缓解方案,但新攻击手段总能突破这些防御。原本为解决问题设计的新指令,甚至被用来发起新型攻击。即便存在永久性解决方案,距离落地仍需数年时间。“Rowhammer 以及 Rowpress 这类相邻单元干扰问题,始终是行业痛点,且在更先进工艺节点上影响持续扩大。”Rambus 院士级杰出发明家 Steven Woo 指出,“相关防护措施仍在不断迭代。”
DRAM 内部布局保密也加剧了这一问题,但目前尚无迹象显示这一现状会改变。微软研究员 Stefan Saroiu、Alec Woman 与 Lucian Cojocar 在一份研究报告中写道:“我们认为,隐瞒DRAM内部拓扑结构,会从多个方面损害内存用户的利益。”
从理论上讲,这并非某个元器件在测试环节未被检出的质量缺陷。所有内存都存在一定程度的脆弱性,只是程度不同。西门子 EDA 内存研究总监 Jongsin Yun 坦言:“长期对所有DRAM产品进行 Rowhammer 测试,总会发现失效案例。”
Rowhammer 的成因是被捕获的电子被推入存储单元周围的体硅区域。刻蚀侧壁的缺陷会形成电子陷阱,当字线被激活时,部分电子会被释放。这些电子进入体硅后,会迁移至共享同一衬底的相邻存储单元。
单次电子迁移影响微乎其微,但反复激活(即 “锤击”)字线,会让大量电子涌入相邻单元,导致其状态翻转。刷新操作可修复部分损害,前提是比特位尚未翻转。可一旦发生翻转,刷新只会巩固错误状态,因此 Rowhammer 攻击需要在两次刷新间隙进行频繁访问才能生效。被反复激活的行通常被称为攻击行,受影响的行则被称为受害行。
随着工艺节点演进,存储单元排布愈发密集,问题进一步恶化。每一行都存在一个重复访问的 “阈值”,超过该阈值就会引发相邻行比特位翻转。制造差异会导致不同行的阈值各不相同,而每一代工艺进步都会让阈值持续降低,如今只需更少的激活次数就能引发故障。
受影响的不仅是紧邻行,更远的行同样可能发生状态改变,尤其是在单元间距不断缩小的情况下。可能受波及的相邻受害行数量,被称为影响范围。
业界已提出多种 “解决方案”,但截至目前均未能彻底解决问题,绝大多数方案仅聚焦于缓解与刷新管理。西门的 Yun 表示:“我们采用常规刷新机制,同时可基于访问计数增加额外刷新。”
近期,一种相关但机理不同的新现象出现。它并非由频繁访问触发,而是单次长时间访问导致,因此被命名为 Rowpress(行施压),区别于 Rowhammer(行锤击)。Rowpress 源于存储单元间的传输门效应(PGE)。当字线被激活时,会改变相邻单元的阈值电压,使其漏电流上升。持续足够长时间后,单元状态便会翻转。尽管单元间设有虚拟字线用于隔离,但其效果十分有限。
Rowpress 与 Rowhammer 看似相似,二者均依赖相邻单元共享体硅、电子可在其间迁移,且都能通过及时刷新缓解。核心区别在于:两者的影响随温度变化呈现相反趋势。
通过管理刷新保持数据完整性看似简单可行——监控被频繁访问的行,在必要时提前刷新相邻受害行,即便超出常规刷新周期。但这需要知晓DRAM行布局,才能准确定位相邻行,而这正是问题症结所在。
最早的缓解方案是目标行刷新(TRR),该功能集成在内存芯片内部,用于追踪行访问行为,检测到疑似锤击操作时,自动刷新对应行。芯片内实现的方式可保护布局信息不泄露。但 TRR 仅取得部分成功。该机制无统一标准,各家内存厂商采用私有算法识别访问模式,攻击手段可轻易绕过。此外,TRR 仅统计单位时间内的激活次数,无法防御 Rowpress。
为解决这一问题,业界标准化了名为刷新管理(RFM) 的新指令。该指令由内存控制器监控访问行为,而非芯片本身。但控制器仅知晓哪一行被攻击,无法判断哪些相邻行会受影响。
RFM 是基于存储体的指令。内存控制器可追踪单个存储体的访问频率,若怀疑遭受攻击,便发送 RFM 指令刷新整个存储体,抵消损害。因此其精准度较低。早期实现采用固定周期触发 RFM,效果与常规刷新类似,只是阻塞存储体的时间更短。当存储体访问次数超过阈值,便启动刷新并重置计数器。升级版自适应刷新管理(ARFM) 允许软件调整访问阈值与刷新后计数递减数值,可灵活适配不同负载。
“执行 RFM 后,访问计数器会按指定数值递减并重新计数。”Yun 解释道,“ARFM 支持用户为单个或全部存储体修改阈值与计数器递减值。”
更新的定向刷新管理(DRFM) 现已完成标准化。“它会记录访问地址,不仅刷新直接相邻行,还可根据设置刷新间隔两行、三行的单元。”Yun 表示。
DRFM 基于行而非存储体运作,精准度更高。“RFM 与 DRFM 可让系统主动锁定 Rowhammer 攻击中的受害行,降低干扰影响,同时避免过度全域刷新。”Rambus 的 Woo 解释称,“这有助于提升数据安全性与系统可靠性,同时最小化性能与功耗损耗。在 HBM 堆叠密度提升、系统对性能要求更高的背景下,这一点尤为关键。”
但 DRFM 也可能因刷新次数多于其他方案而增加功耗,部分刷新甚至存在冗余。例如,内存控制器检测到两行被攻击并分别发送 DRFM 指令,而这两行可能共享受害行,刷新其中一行即可修复另一行。在双面攻击场景下这一问题尤为突出:两个攻击行夹击同一受害行,电子从两侧涌入,会大幅降低翻转阈值。
DDR5、LPDDR4 与 HBM3 支持 RFM 和 ARFM;DDR5、LPDDR5 与 HBM4 支持 DRFM;GDDR 则不支持任何此类指令,仅依赖内部机制防护。
尽管 DRFM 等指令旨在防御攻击,却同样可能被利用。刷新操作会激活行,定向刷新则激活特定行。研究发现,重复发送 DRFM 指令可引发传导式 Rowhammer 攻击:被刷新的受害行会成为新的攻击行,影响其相邻行。部分问题源于内存控制器的 “盲操作”。控制器仅能识别被攻击的行,却无法定位受害行、影响范围,以及传导攻击的潜在目标。刷新整个存储体过于冗余,多次 DRFM 刷新也可能重复执行,额外且过量的刷新都会抬高功耗。公开内存布局或可改善现状。控制器无需追踪攻击行,转而直接监控受害行,实现全局可视,从而不再依赖DRAM芯片内部的 TRR 等电路。
微软团队指出:“内存控制器可实现比现有方案更强、更高效的 Rowhammer 防御,防御更具针对性,同时减少DRAM带宽与功耗占用。控制器可通过常规行激活指令刷新受害行,无需新增DRAM指令,节省实现与测试成本。”
内存厂商保密布局的动机主要有两点:一是防止竞争对手获取技术信息,二是担心客户利用内部数据对比选型。但微软团队认为,这些顾虑并无必要。“内存厂商有足够预算与技术能力反向工程竞品产品,获取内部知识产权信息。” 团队解释称,“用户不太可能依据DRAM内部拓扑结构选择供应商。部分内存产品已通过串行存在检测(SPD)芯片公开时序等参数,并无证据表明 SPD 信息会左右采购决策。”
截至目前,内存厂商仍拒绝公开内部布局,行业只能以 “打地鼠” 的方式持续封堵漏洞、抵御攻击。
传统DRAM单元的两个特性导致了上述问题:电子陷阱引发 Rowhammer,相邻单元共享体硅则同时加剧 Rowhammer 与 Rowpress。这些特性无法通过简单方式修复。出于其他考量,多家内存厂商已在研发新型DRAM单元,采用垂直晶体管结构。尽管具体方案各异,但两大特性有望从根本上消除两类攻击。
最重要的是,新型单元不再共享体硅,切断了电子在单元间迁移的路径。此外,部分方案显示,制造工艺将外延生长替代刻蚀,侧壁更洁净,可大幅减少电子陷阱。“随着 4F₂ 架构落地,Rowhammer 效应有望大幅减弱。垂直沟道晶体管相邻排布,不再像 6F₂ 架构那样共享衬底。”Lin 表示。
但这种新型存储单元距离量产仍需数年时间,且仅能应用于新一代内存。现有内存产品生命周期漫长,因此这类攻击仍会在未来多年持续存在。
本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。
