Half-Double¶
Distance-2 Rowhammer: ardışık A-B-C row'ları verildiğinde, uzaktaki victim C'yi, uzak aggressor A'ya çok sayıda erişip yakın aggressor B'ye birkaç kez dokunarak flip'lersin — coupling, hemen komşunun ötesine ulaşıp TRR'yi atlatır.
Mechanism¶
Rowhammer coupling mesafenin bir fonksiyonu, illa adjacency'nin değil
Klasik model, disturbance'ın en güçlü olduğu yerin bir aggressor'a hemen bitişik row olduğunu söyler. Half-Double ise etkinin silikondaki non-linear bir gating efekti üzerinden distance-2 row'lara da yayıldığını gösterir. Üç ardışık A, B, C row'unu ele al: A'ya (uzak aggressor) çok büyük sayıda erişim yöneltmek, B'ye (yakın aggressor) yalnızca bir avuç — düzinelerce — erişimle birleştiğinde, iki row ötedeki C'de (victim) flip'lere yol açar.
Cell geometry'leri küçüldükçe Rowhammer'dan sorumlu electrical coupling daha güçlü ve daha uzun menzilli hale gelir; dolayısıyla iki (ve muhtemelen daha fazla) mesafeler önem kazanır. Bu, birçok savunmaya gömülü bir varsayımı kırar.
Bu, Rowhammer ve double-sided hammering'i genelleştirir ve TRR tarzı mitigation'ların (bkz. TRRespass, many-sided) neden yetersiz kaldığının kilit nedenidir.
Walkthrough¶
1. Bir A-B-C row üçlüsü belirle. Kurtarılan DRAM mapping'i kullanarak aynı bank'te üç ardışık row bul.
2. Asimetrik erişim pattern'ini uygula. A'yı yoğun hammer'la; B'ye hafifçe dokun.
loop:
access(A) x many # far aggressor, the bulk of activations
access(B) x ~dozens # near aggressor, a light tap
-> disturbance reaches C two rows away
3. C'deki flip'leri oku. distance-2 victim'i bit flip'ler için kontrol et ve her zamanki gibi exploit et (PTE/secret corruption).
TRR suç ortağına dönüşür
The USENIX'22 paper shows how TRR can inadvertently *facilitate* Half-Double:
the mitigative refresh that TRR issues in response to the far aggressor A
can turn its recipient row (the near neighbour B) into a second aggressor.
"The cure becomes the disease" - the refresh can co-conspire with A to flip C.
Yalnızca adjacency'ye dayanan savunmaları yener
"Sadece hemen bitişik komşu risk altında" varsayan mitigation'lar — naive TRR implementasyonları ve bazı refresh heuristic'leri dahil — bypass edilebilir, çünkü victim en çok hammer'lanan row'a bitişik değildir ve TRR'nin kendi refresh'i yakın-aggressor aktivitesini sağlayabilir.
Mitigation¶
- Distance-aware TRR / refresh management: distance-2 (ve ötesi) coupling'i hesaba katan yaklaşım.
- Increased refresh rate leakage window'unu kısaltır.
- ECC single-bit flip'leri düzeltir (multi-bit ve yan etkiler kalır).
References¶
- Kogler et al. / Google. Introducing Half-Double: New hammering technique for DRAM Rowhammer bug. Google Online Security Blog, May 2021 — https://security.googleblog.com/2021/05/introducing-half-double-new-hammering.html
- Half-Double: Hammering From the Next Row Over (USENIX Security 2022) — https://www.usenix.org/conference/usenixsecurity22/presentation/kogler-half-double