DRAM的 “打地鼠” 式安全危機
核心要點
Rowhammer(行錘) 仍是 DRAM 的主要安全威脅,Rowpress(行壓) 正成為新的相關威脅。
內存控制器發出的新型刷新指令可緩解問題,但并非完美解決方案。
更小的垂直結構 DRAM 單元有望從根本上消除問題,但距離量產仍需數年。
Rowhammer 已經困擾了數代 DRAM 產品,并且隨著制程進步愈發嚴重。與之相關的新型漏洞 Rowpress 也隨之出現。新的刷新指令可以減輕不良影響,但要徹底根除問題,可能只能依靠新一代 DRAM 存儲單元結構。
新思科技(Synopsys)應用工程執行董事林希煒表示:“Rowhammer 由單元間干擾引發,導致受害比特位發生翻轉。它可被利用實施安全攻擊,并且在 6F2 架構持續微縮的過程中,存儲單元間距更小,問題會更加嚴重。”
針對 Rowhammer,業界已提出無數修復、測試與緩解方案,但往往剛堵住一個漏洞,新的攻擊方式就隨之出現。原本用于防御的新指令,甚至被反過來用于發起新攻擊。真正的永久性解決方案,即便存在,也仍需數年時間才能落地。
瑞薩(Rambus)院士兼杰出發明家 Steven Woo 指出:“Rowhammer 以及 Rowpress 這類相鄰干擾問題仍是行業痛點,在更先進制程上影響持續擴大,防護手段也在不斷演進。”
DRAM 內部布局保密也加劇了這一問題,且目前看不到改變的跡象。微軟研究員 Stefan Saroiu、Alec Wolman 與 Lucian Cojocar 在一份報告中寫道:“我們認為,DRAM 內部拓撲保密會在多個方面損害客戶利益。”
理論上講,這并非某個芯片在測試中未被檢出的缺陷。所有 DRAM 都存在一定程度的脆弱性,只是程度不同。西門子 EDA 存儲器研究總監 Jongsin Yun 評價道:“如果長期對所有 DRAM 產品做 Rowhammer 測試,終究會發現失效。”
電子 “煙霧”:Rowhammer 的原理
Rowhammer 產生的原因是:被捕獲的電子被推入存儲單元周圍的體硅區域。刻蝕側壁的缺陷會形成電子陷阱,當字線被反復激活時,部分電子被釋放并遷移到共享同一襯底的相鄰單元中。
單次電子遷移影響很小,但反復激活(錘擊)字線會讓足夠多的電子進入相鄰單元,改變其數據狀態。刷新操作可以修復部分損傷 —— 但前提是比特位尚未翻轉。一旦翻轉,刷新只會鞏固錯誤狀態。因此,Rowhammer 攻擊需要在兩次刷新之間進行頻繁訪問。
被反復訪問的行稱為攻擊行(aggressor),受影響的行稱為受害行(victim)。
隨著制程進步,存儲單元排列更加密集,問題進一步惡化。每一行都存在一個 “反復訪問閾值”,超過該閾值就會導致相鄰行比特翻轉。工藝每進步一代,閾值就會降低,只需更少的激活次數就能引發故障。
受影響的不只是緊鄰行,更遠的行也可能狀態改變,影響范圍被稱為爆炸半徑(blast radius)。
迄今提出的眾多 “修復方案” 均未能徹底解決問題,大多數方案仍停留在緩解與刷新管理層面。
西門子 EDA 的 Yun 表示:“我們有常規刷新機制,同時可以基于訪問計數增加額外刷新。”
緩慢熱風:Rowpress 新威脅
近期出現了一種相關但原理不同的現象:并非由反復訪問觸發,而是單次長時間訪問,因此被稱為 Rowpress(行壓)。
Rowpress 由 ** 傳輸門效應(PGE)** 引發:當一條字線被長時間激活,會改變相鄰單元的閾值電壓,導致漏電流升高,最終使數據狀態翻轉。盡管單元之間設有虛擬字線做隔離,但效果十分有限。
Rowpress 與 Rowhammer 看似相似,都依賴相鄰單元共享體硅、電子可遷移傳播,且都能通過及時刷新緩解。關鍵區別在于:兩者受溫度影響的趨勢相反。
訪問計數:治標不治本
通過管理刷新保持數據正確看似簡單:追蹤被頻繁訪問的行,在必要時主動刷新受害行,即便超出常規刷新周期。但這需要知道 DRAM 的行布局,才能確定相鄰關系,而這正是問題所在。
最早的緩解方案是 目標行刷新(TRR),由 DRAM 芯片內部追蹤行訪問,發現疑似被錘擊的行便主動刷新。芯片內實現有助于保護布局機密。
但 TRR 僅取得部分成功:該機制無統一標準,各家廠商采用私有識別方式,攻擊手段仍可繞過。此外,TRR 無法防御 Rowpress,因為它只統計單位時間內的激活次數。
交給控制器處理
為解決這一問題,業界標準化了名為 刷新管理(RFM) 的新指令。
這一次,由內存控制器監控訪問,而非 DRAM 芯片。但它只知道哪一行被攻擊,卻不知道哪些相鄰行會受影響。
RFM 是基于 **Bank(存儲體)** 的指令:控制器監控 Bank 訪問頻率,若懷疑遭受攻擊,便對整個 Bank 執行刷新。因此精度較低。
早期實現采用固定周期觸發,效果類似普通刷新,只是阻塞時間更短。當一個 Bank 的訪問次數超過閾值,便啟動刷新并重置計數器。
升級版 自適應刷新管理(ARFM) 允許軟件調整訪問閾值與刷新后的計數衰減值,可靈活適配不同負載。
西門子 EDA 的 Yun 解釋:“RFM 執行后,訪問計數器會按指定數值減少并重新計數。ARFM 則允許用戶對單個或全部 Bank 修改閾值與衰減值。”
最新標準化的指令是 定向刷新管理(DRFM)。
Yun 表示:“它會記錄訪問地址,不僅刷新直接相鄰行,還可根據設置刷新兩行、三行之外的單元。”
DRFM 基于行級別操作,而非 Bank 級別,精度更高。
瑞薩的 Woo 補充:“RFM 與 DRFM 讓系統能夠主動定位 Rowhammer 攻擊中的受害行,降低干擾,同時避免大面積刷新。這在 HBM 堆疊密度越來越高、系統對性能要求更高的場景下尤為重要。”
不過,DRFM 也可能因刷新更頻繁而增加功耗,甚至出現冗余刷新。例如,控制器檢測到兩行被錘擊,分別下發 DRFM 指令,但兩行可能共享受害行,導致重復刷新。在雙面攻擊中這種情況尤其明顯:兩條攻擊行夾擊一條受害行,電子從兩側涌入,閾值進一步降低。
目前支持情況:
DDR5、LPDDR4、HBM3 支持 RFM / ARFM
DDR5、LPDDR5、HBM4 支持 DRFM
GDDR 不支持上述指令,僅依靠內部機制
防御指令可能 “反噬”
盡管 DRFM 等指令用于防御攻擊,卻可能被反過來用于攻擊。
刷新本身會激活行,定向刷新會激活特定行。研究發現,反復發送 DRFM 指令可構成傳導型 Rowhammer 攻擊:被刷新的受害行會變成新的攻擊行,影響下一行。
部分原因在于內存控制器是 “盲操作”:它能看到哪些行被攻擊,但不知道受害行、爆炸半徑或傳導攻擊的潛在目標。刷新整個 Bank 過于粗放,多次 DRFM 刷新可能冗余,都會因額外刷新導致功耗上升。
公開內存布局或許能改善現狀:控制器可直接追蹤受害行,而非攻擊行,擁有完整可見性,DRAM 芯片內的 TRR 等電路也不再需要。
微軟團隊指出:“內存控制器能實現比現在更強、更高效的 Rowhammer 防御,更有針對性,占用更少帶寬與功耗。控制器可使用普通行激活指令刷新受害行,無需新增 DRAM 指令,節省實現與測試成本。”
廠商保密布局的動機主要有兩點:
防止競爭對手獲取內部設計
擔心客戶利用內部信息對比選型
但微軟團隊認為這些擔憂站不住腳:
“DRAM 廠商有足夠預算與能力反向工程競品,獲取內部 IP。客戶不太可能依靠內部拓撲信息決定采購。部分 DRAM 已通過 SPD 芯片公開時序等信息,并無證據表明這影響采購決策。”
截至目前,存儲廠商仍拒絕公開布局,導致業界只能以打地鼠的方式堵漏洞。
終極方案:全新存儲單元
傳統 DRAM 單元的兩個特性導致了這些漏洞:
側壁缺陷形成電子陷阱 → 引發 Rowhammer
相鄰單元共享體硅 → 允許電子遷移 → 同時引發 Rowhammer 與 Rowpress
這兩點都沒有簡單的修復方法。
出于其他原因,多家公司正在研發垂直結構 DRAM 單元。盡管細節各異,但其兩大特性有望徹底消除兩類攻擊:
單元之間不再共享體硅 → 切斷電子遷移路徑
部分方案用外延生長替代刻蝕 → 側壁更干凈,大幅減少電子陷阱
新思科技的 Lin 表示:“隨著 4F2 架構到來,Rowhammer 效應預計大幅減弱,因為相鄰垂直溝道晶體管不再像 6F2 架構那樣共享同一襯底。”
然而,這種新型單元距離量產仍需數年,且只能用于新一代存儲器。現有 DRAM 世代生命周期很長,因此相關攻擊仍會持續存在很多年。
編者注
關于這些新指令的網絡搜索結果可能存在大量沖突、混亂甚至錯誤信息。如需更多信息,建議謹慎檢索,并直接向官方來源核實。








評論