ZenHammer¶
AMD Zen'in gizli DRAM addressing'ini reverse-engineer et, sonra non-uniform hammering'i refresh ile senkronize ederek Zen 2/3 (DDR4) ve Zen 4 (DDR5) üzerinde Rowhammer flip'leri landle.
Mechanism¶
Note
Etkili hammering, aynı bank'taki fiziksel olarak bitişik row'lara vurmayı gerektirir, ama CPU'nun physical adresten DRAM'e (bank/row/rank) mapping'i gizli, vendor'a özel bir fonksiyondur — ve AMD Zen'de hiç reverse-engineer edilmemişti. ZenHammer, bir DRAMA-style timing yaklaşımı kullanarak (row-conflict latency clustering artı bir XOR-function search) Zen üzerindeki bu DRAM address function'larını kurtarır; bir AMD quirk'ünü hesaba katarak: system address remapping nedeniyle recovery'den önce bir physical offset uygulanmalıdır. Doğru addressing ile DRAM refresh ile senkronize olarak in-DRAM TRR'yi atlatan access pattern'ları crafter ve activation throughput'unu yükseltmek için flush/fence instruction'larını schedule eder; aynı zamanda bu mitigation'ları evade etmek için gereken access order'ı korur.
Paper üç challenge'ı çerçeveler: (1) bilinmeyen DRAM addressing function'larını reverse-engineer etmek, (2) in-DRAM mitigation'ları evade etmek için refresh command'larıyla senkronize olmak ve (3) yeterli row-activation throughput'una ulaşmak.
Walkthrough¶
Jattke et al., USENIX Security 2024 (COMSEC, ETH Zurich; github.com/comsec-group/zenhammer).
- Non-repeating row'lar üzerinde DRAMA-style row-conflict timing ile DRAM
address function'larını kurtar, AMD physical-offset düzeltmesini ekleyerek (
DAREtool'u). - Bank/row geometrisi bilindiğinde, seçilmiş bir victim etrafındaki bitişik aggressor row'ları belirle.
- Non-uniform hammering pattern'ları kur ve onları refresh window'una senkronize et; böylece TRR-style in-DRAM mitigation'lar aggressor'ları yakalamaz.
- Instruction schedule'ını tune et —
CLFLUSHOPTile düzenliMOVload'ları, artı fence'ler — aggressor order'ını korurken refresh interval başına activation'ları maximize etmek için (ZenHammer fuzzer'ı). - Flip'leri template'le ve exploit etmek için standart memory massaging (page-table / key corruption) uygula.
Reported numbers (from the COMSEC page)
- Zen generation'ları: Zen 2 ve Zen 3 (DDR4), Zen 4 (DDR5).
- 10 DDR4 cihazı test edildi (üç vendor): Zen 2'de 10'dan 7'sinde, Zen 3'te 10'dan 6'sında flip.
- DDR5: bir DDR5 cihazında ilk kez public Rowhammer flip'leri (test edilen on cihazdan birinde ~42k flip).
- Zen üzerinde end-to-end exploit'ler ortalama ~164 s (page table), ~267 s (RSA-2048), ~209 s (sudo).
Detection¶
In-DRAM mitigation'lar hiçbir yazılım sinyali vermez ve saldırı unprivileged bir process olarak çalışır; yüksek activation rate'lerin performance-counter anomaly detection'ı pratik (kusurlu) gözlem noktasıdır.
Mitigation¶
ZenHammer, AMD Zen'de in-DRAM TRR'nin tek başına yetersiz olduğunu gösterir — refresh-senkronize non-uniform pattern'larla bypass edilir — ve DDR5'in eklediği on-die mitigation'ların bir garanti olmadığını (bir DDR5 cihazında hâlâ flip bulundu). Sağlam savunmalar daha güçlü refresh-management/tracking (artırılmış ya da targeted refresh, ECC artı detection) ya da ZebRAM gibi capacity-isolation savunmaları gerektirir.