CacheZoom¶
Intel SGX'e karşı, neredeyse her enclave memory access'ini izleyen ve AES key'lerini ~10 ölçümden geri kazanan high-resolution bir L1 Prime+Probe channel'ı.
Mechanism¶
SGX threat model'inde OS untrusted'dır ve CacheZoom (Moghimi, Irazoqui, Eisenbarth, CHES '17) tam da bunu silah haline getirir. Attacker scheduling ve interrupt'ları kontrol ettiğinden, victim enclave'i yalnızca birkaç memory access'ten sonra preempt edebilir ve aynı physical core'da enclave ile paylaştığı private L1 cache üzerinde PRIME+PROBE çalıştırabilir.
Note
Sıradan cross-core cache attack'lar victim aktivitesini kaba çözer çünkü victim probe'lar arasında kesintisiz çalışır. CacheZoom bir L1 attack'ını amplify eder: enclave'i neredeyse-instruction granülerliğinde interrupt ederek, her Prime+Probe turu yalnızca birkaç access'i çözer. Spatial resolution 64-byte line / cache-set seviyesinde kalır, ama temporal resolution fiilen per-instruction hale gelir.
Walkthrough¶
- Co-locate et. Attacker ve victim enclave'i aynı physical core'a pin'le ki L1'i paylaşsınlar.
- Preemption'ı kur. Local APIC timer'ı (ya da başka bir high-frequency interrupt) çok az enclave access'inden sonra tetiklenecek şekilde programla.
- Prime. L1 set'lerini attacker data'sıyla doldur.
- Step. Enclave'i küçük bir dilim için devam ettir, sonra interrupt'ı al (AEX).
- Probe. Her set'e yeniden access et,
rdtscile timing'le; artık yavaş olan set'lere enclave dokunmuştur. - Yeniden birleştir. Interrupt başına set trace'lerini high-resolution bir access trace'ine birleştir, sonra AES T-table set access'lerini key'e bağlı index'lere map'le.
Yazarlar bir AES key'ini ~10 kadar az ölçümle geri kazanır ve prefetch tabanlı countermeasure'ları yener.
Detection¶
Anormal derecede yüksek enclave AEX / interrupt oranları güçlü bir göstergedir; sonraki savunmalar (T-SGX, Déjà Vu) anormal preemption ya da transaction-abort sıklığını tespit eder.
Mitigation¶
Constant-time, cache-access-oblivious crypto; cache partitioning; sık preemption'ın enclave tarafında tespit edilmesi. Microcode'da düzeltilemez — SGX'in belirtilen threat model'inin dışındadır.