Skip to content

Demote+Reload

Eviction adımı için cldemote kullanan ve 15.48 Mbit/s ile en yüksek ölçülen channel kapasitesine ulaşan bir same-physical-core (SMT) cache side channel'ı (bir Flush+Reload analoğu). Tespit victim'in L1 load'una bağlı olduğundan attacker ile victim aynı physical core'da (SMT) co-resident olmalı ve read-only shared memory paylaşmalıdır.

Mechanism

Attacker, paylaşılan bir cache line'ı L1'den L3'e cldemote'lar. Victim line'a erişirse line L1'e geri reload edilir; attacker ardından aynı line'ın bir reload'unu zamanlar (timed operation) — hızlı bir reload onun zaten L1'de olduğu (victim erişti), yavaş bir reload ise L3'te kaldığı (erişim yok) anlamına gelir.

Note

Bu tam Flush+Reload semantiğini izler ama clflush yerine cldemote kullanır, böylece line DRAM'e flush edilmek yerine L3'e demote edilir. Sonuç %60.7 daha küçük bir "blind spot" ve daha yüksek bandwidth'tir (15.48 Mbit/s, NDSS 2025 makalesine göre Flush+Reload'un %64.3 üstünde). Tespit victim'in L1 load'una bağlı olduğundan, attacker ve victim aynı physical core'da (SMT) çalışmalıdır ve victim'le read-only shared memory gereklidir.

Walkthrough

  1. Share. Bir victim library page'ini read-only map'le.
  2. Demote. Hedef line'ı cldemote'la.
  3. Victim'i çalıştır.
  4. Reload. Reload'u zamanlamak için rdtscp ile sarmalanmış olarak line'dan mov yap; hit/miss sınıflandır.

Makale Demote+Reload'u bir AES T-table attack'ine (diğer tekniklerden daha iyi performansla), bir inter-keystroke timing attack'ine uygular ve power side-channel leakage'ını amplify edebileceğini gösterir.

Detection

Reload adımı hâlâ L1 fill'leri induce eder; demote'un kendisi bir flush'tan daha sessizdir. Genel tespit edilebilirlik Flush+Reload'a benzer.

Mitigation

SMT'yi devre dışı bırak; cldemote'u kısıtla/cezalandır. Flush tabanlı mitigation'lar demote varyantlarını doğrudan kapsamaz. Onaylanmış bir vendor fix yok.

References