CEASER randomized cache¶
Last-level cache'in line-address-to-set mapping'ini encrypt et ve periyodik olarak re-key yap, böylece saldırganın eviction set'i kurulamadan stale olur — Prime+Probe gibi conflict-based cache saldırılarını çürütür.
Mechanism¶
Neden çalışır
Conflict-based LLC saldırıları (Prime+Probe, Evict+Reload) hepsi bir eviction set'e ihtiyaç duyar: victim line ile aynı cache set'ine map olan bir line grubu. Geleneksel cache'ler, physical line-address (PLA)'in sabit bir hash'i ile index'ler, dolayısıyla bir saldırgan çakışan line'ları deterministik olarak bulabilir — eviction set'i kurmak basittir.
CEASER, cache'i bir encrypted address space üzerinde index'ler. Bir Low-Latency Block Cipher (LLBC) — ~2 cycle içinde encrypt/decrypt yapan, ~10 byte key'li 4-aşamalı bir Feistel network'ü — b-bit PLA'yı cache'i index'lemek için kullanılan b-bit bir Encrypted Line-Address (ELA)'e map eder. Cipher'ın avalanche etkisi, spatially-correlated line'ları ilgisiz set'lere dağıtır, dolayısıyla PLA-based muhakeme artık conflict'leri tahmin etmez.
- Encryption-only temel tasarımdır (CEASE).
- CEASER = CEASE + Remapping: periyodik olarak key'i değiştir ve line'ları eski key'den yeni key'e kademeli olarak remap et. Bu, herhangi bir sabit line→set mapping'inin geçerli olduğu pencereyi sınırlar. Analiz, her 100 cache erişiminde ~1 line remap etmenin (%1 remap rate) eviction set'leri 100+ yıl saldırıya tolerans gösterecek kadar stale tuttuğunu gösterir; ~%1.1 yavaşlama, <24 byte eklenen storage ve OS desteği gerektirmeden.
Invariant: saldırgan, cache mapping'i re-randomize etmeden daha hızlı bir eviction set kurmalıdır — CEASER, build süresi içinde re-key yaparak bunu imkânsız kılar.
Walkthrough¶
CEASER bir microarchitectural cache tasarımıdır, bir software knob değil; kavramsal olarak:
Indexing path (per LLC access):
PLA --LLBC encrypt (key K)--> ELA --> set = ELA[index bits]
(decrypt on fill/writeback to recover PLA for tag/coherence)
Remapping (rekey) loop:
every ~100 accesses:
migrate one line from mapping(K_old) to mapping(K_new)
when the whole cache is remapped:
K_old <- K_new ; pick fresh K_new
Eviction set kuran bir saldırgan üzerindeki etki:
1. Attacker probes addresses to find lines colliding in a target set.
2. The set membership depends on the current key K.
3. Before enough colliding lines are confirmed, the rekey/remap has
shuffled the mapping -> the partially-built eviction set is invalid.
=> Prime+Probe cannot maintain a stable eviction set; the channel collapses.
Tek-key skew zayıf noktadır
CEASER'ın tek encrypted mapping'inin sonradan daha hızlı eviction-set algoritmalarıyla saldırılabilir olduğu gösterildi; takip eden CEASER-S (Skewed CEASER, ISCA 2019), cache'i skew'lere bölerek bir line'ın partition başına farklı set'lere map olmasını sağlar ve onu daha da sertleştirir. CEASER yalnızca conflict-based saldırıları hedefler — shared memory üzerindeki flush-based (Flush+Reload) channel'ları durdurmaz.
Mitigation¶
(Residual risk / bypass.) Geliştirilmiş eviction-set construction, düz CEASER için güvenli remap periyodunu azalttı ve CEASER-S'yi motive etti; shared-memory flush saldırıları ve occupancy/contention channel'ları kapsam dışındadır ve başka savunmalara ihtiyaç duyar (CAT gibi cache partitioning).
References¶
- Qureshi. CEASER: Mitigating Conflict-Based Cache Attacks via Encrypted-Address and Remapping. MICRO 2018. — https://fast.cc.gatech.edu/papers/MICRO_2018_2.pdf
- IEEE Xplore. CEASER (MICRO 2018), DOI 10.1109/MICRO.2018.00068. — https://ieeexplore.ieee.org/document/8574585/