DemoteContention¶
Sürekli
cldemote'tan kurulan, hiçbir addressing-function veya replacement-policy reverse engineering gerektirmeyen, Prime+Probe yerine sunulan bir cross-core L3 contention channel'ı.
Mechanism¶
Attacker, profiling ile bulunan bir victim line'ıyla aynı L3 set'ine map'lenen kendi cache line'ını (shared memory gerekmez) sürekli cldemote'lar. cldemote mimari olarak bir performance HINT'tir ve etkisi implementation-defined'dır; ancak Rauscher et al.'ın ölçtüğü Sapphire Rapids / Emerald Rapids microarchitecture'larında cldemote, line cache'lenmemiş olsa bile L3 (veya cache directory) ile etkileşir. Bu nedenle L3'e ulaşan victim aktivitesi o set/directory üzerinde contention'a yol açar ve cldemote execution time'ında ölçülebilir bir spike üretir.
Note
Bu özellikle Intel Sapphire Rapids / Emerald Rapids üzerinde önemlidir; bunların non-inclusive L3'ü, victim'in kendisi L3'e ulaştığı durum hariç klasik eviction tabanlı cross-core saldırıları (Prime+Probe, Evict+Reload) etkisiz kılar — tam da DemoteContention'ın kullandığı rejim. Kritik olarak bu CPU'ların addressing/replacement function'larının çözülmemiş reverse-engineering'ini atlatır ve physical address'lere ihtiyaç duymaz; contention, attacker'ın izlediği line cache'lenmemiş olsa bile gözlenir.
Walkthrough¶
- Profile. Victim'in hedef L3 set'inde co-resident bir attacker line'ı bul.
- Loop. O line'ı
rdtscptiming ile tekrar tekrarcldemote'la. - Read. Channel'ı geri çıkarmak için victim'in L3'e ulaşan aktivitesiyle korele latency spike'larını tespit et.
Detection¶
Yükselmiş bir cldemote issue oranı ve L3/directory contention olarak kendini gösterir; yayınlanmış temiz bir detector belirtilmemiş.
Mitigation¶
cldemote'u privileged kullanıma kısıtla veya timing noise ekle; randomized/secure-cache tasarımları bu directory/contention etkisinden ziyade priming'i hedefler. Onaylanmış bir vendor fix yok.