Skip to content

SoftTRR

Page table'lara komşu row'lara yapılan erişimleri takip eden ve bir bit'i flip'lemeye yetecek kadar activation birikmeden önce page-table row'unu refresh eden software-only bir Target Row Refresh savunması.

Mechanism

Note

Hardware ChipTRR yalnızca sınırlı sayıda row takip eder ve many-sided hammering ile yenilir. SoftTRR, TRR'yi software'de taklit eder ama sınırsız sayıda level-1 page-table (L1PT) row'unu korur. Page-table row'larına komşu tüm row'lara yapılan erişimleri takip eder ve per-row bir charge-leak counter bir eşiği geçtiğinde page-table row'unu refresh eder. Invariant: victim page-table row'u, bir bit'i flip'lemeye yetecek kadar aggressor activation birikmeden önce refresh edilirse, integrity korunur. Özellikle page table'ları korumak, en yaygın Rowhammer privilege-escalation yolunu (physical bellek kontrolü elde etmek için bir PTE'yi flip'lemek) engeller.

Walkthrough

SoftTRR, kernel source'unu değiştirmeden adjacent-row erişimlerini saymak için MMU page-fault yolunu yeniden amaçlandırır:

  • Korumalı bir L1PT row'una komşu sayfaları işaret eden leaf PTE'lerde kullanılmayan bir reserved bit (bit 51)'i set eder. Linux leaf-PTE reserved bit'lerini kontrol etmez.
  • Böyle bir sayfaya erişim bir RSVD page fault yükseltir; bu, hook'lanmış bir do_page_fault tarafından yakalanır, bu da komşu L1PT row'unun leak_count'unu artırır, erişimin devam etmesi için reserved bit'i temizler ve daha sonra periyodik bir timer aracılığıyla yeniden arm eder.
  • Bir row'un sayacı eşiği geçtiğinde, page-table row'u refresh edilir.
threshold = timer_intr x (count_limit - 1)
  derived from threshold = tRC x #ACT, with tRC ~= 50 ns and #ACT ~= 20K
  set threshold = 1 ms to guarantee no flip within the window
protects rows up to 6 rows away from aggressors (the largest observed blast radius)
Implementasyon ve değerlendirme
  • Loadable kernel module, ~2320 SLOC, kernel-source değişikliği yok; red-black tree'ler artı dinamik olarak büyüyen bir PTE ring buffer kullanır.
  • SPECint 2006'da ortalama ~%0.8 performance overhead (CATT/CTA ile karşılaştırılabilir; ZebRAM %4-5'tir).
  • Üç gerçek saldırıyı — Memory Spray, CATTmew ve PThammer — saatlerce hammering sonrasında hiç bit flip olmadan yener.

Mitigation

SoftTRR'nin kendisi bir savunma'dır. Sınırlaması kapsamdır: keyfi veriyi değil, page table'ları (ve yapılandırılabilir yakın row'ları) korur; diğer güvenlik-hassas nesneleri bozan ya da yapılandırılmış blast radius'unun ötesindeki row'ları hammer'layan saldırılar kapsam dışında kalır.

References