Meltdown 3a Revived¶
Privileged system register'ları transient olarak okumak (Meltdown-CPL-REG / Variant 3a, CVE-2018-3640) ve leak'in modern CPU'larda vendor mitigation'larını atlattığını göstererek counter tabanlı saldırıları yeniden mümkün kılmak.
Mechanism¶
Kırılan invariant
Model-specific register'lar (MSR'ler) ve performance counter'lar gibi system register'lar bir privilege gereksinimi taşır: onları rdmsr/rdpmc (ya da ARM eşdeğeri) ile adlandıran unprivileged (CPL 3 / EL0) bir instruction, herhangi bir değer döndürülmeden önce fault vermelidir. Variant 3a / Rogue System Register Read (CVE-2018-3640) bunu kırar çünkü read transient olarak çalışabilir — register değeri, privilege check retire olup instruction'ı geri almadan önce out-of-order execution'a forward edilir. O transient window sırasında değer, microarchitectural state'e (bir cache line, bir counter) encode edilebilir ve ardından bir side channel üzerinden geri kazanılabilir. "Reviving Meltdown 3a" araştırması (ESORICS 2023) bu sınıfı Meltdown-CPL-REG olarak yeniden inceledi ve etkisinin başlangıçta belgelenenden daha geniş ve daha CPU'ya bağımlı olduğunu gösterdi.
Walkthrough¶
Açık CVE-2018-3640 advisory'sinden ve "Reviving Meltdown 3a" paper'ından alınan yüksek seviyeli özet:
- Transient privileged read. Attacker, sonucun fault teslim edilmeden önce speculative/transient olarak tüketildiği koşullar altında, privileged bir register'ın belirlenmiş bir read'ini (örneğin
rdmsr) gönderir. - Rollback'ten önce encode et. Transient olarak okunan değer bir probe yapısını indeksler, böylece (çok sayıdan) bir cache line cache'e getirilir ve architectural rollback'ten sonra bir microarchitectural footprint bırakır.
-
Side channel üzerinden decode et. Bir timing channel (örneğin cache reload timing), hangi line'a dokunulduğunu geri kazanır ve register içeriğini bit bit yeniden oluşturur.
Kavramsal leak şekli (yalnızca fragment)
Yalnızca mantıksal şekil gösterilmiştir; çalışan bir primitive, offset ya da measurement loop yeniden üretilmemiştir. -
CounterLeak. Paper, CounterLeak adlı bir primitive tanıtır ve güncel yamalarla bile register/counter state'ini sızdırmanın, cryptographic algoritmalar üzerindeki performance-counter tabanlı saldırıları yeniden mümkün kıldığını, KASLR'ı kırdığını ve Spectre saldırıları kurduğunu gösterir.
Mitigation'lar tekdüze değil
Araştırmacılar, en yeni Intel CPU'larının Meltdown-CPL-REG'den etkilenmemiş göründüğünü, ancak en yeni AMD CPU'larının (Zen 3 ve sonrası) etkilenmiş kaldığını raporlar — dolayısıyla toptan bir "yamalandı" varsayımı güvenli değildir. Ayrıca microarchitectural data sampling içindeki daha geniş sampling tarzı leakage'a da bakın.
Detection¶
- Register read'leri için telemetry.
rdmsr/rdpmcya da kısıtlı system-register read'leri deneyen unprivileged code son derece anomalous'tur; OS'in yapabildiği yerlerde bu tür erişimleri trap-and-log yapın. - Performance-counter access politikası. Userspace'in cache-timing ölçümüyle eşleştirilmiş sıkı loop'larda performance counter'ları enable/sample etmesini izleyin — CounterLeak pattern'i.
- Side-channel imzaları. Diğer transient-execution leak'lerinde olduğu gibi, faulting instruction'ları izleyen yüksek oranlı, yapılandırılmış cache-probe aktivitesini (flush/reload ya da prime/probe loop'ları) arayın.
Mitigation¶
- Microcode / vendor güncellemeleri. CVE-2018-3640 (INTEL-SA-00115) Intel x86 işlemcilere özgüdür ve Intel'den gelen CPU microcode güncellemeleriyle ele alınır; Arm işlemcileri aynı Variant 3a sınıfından etkilenebilse de ayrı advisory'lere tabidir. Her iki durumda da güncel platform firmware'ini uygulayın.
- Register exposure'ını kısıtla. Unprivileged performance-counter erişimini devre dışı bırakın ya da kapı ardına alın (örneğin
perf_event_paranoidtarzı politikaları sıkılaştırın) ki transient read başarılı olsa bile sızdırılan counter'lar exploit edilemesin. - AMD'de yeniden doğrula. Zen 3+ etkilenmiş kaldığı için, yalnızca patch seviyesiyle mitigation varsaymayın; spesifik microarchitecture üzerinde güncel araçlarla doğrulayın.
- Defense-in-depth. Paper, register leakage'ın bu saldırıları beslediğini gösterdiği için KASLR güçlendirme ve Spectre mitigation'larıyla birleştirin. Kanonik Meltdown-US ile karşılaştırın.