Skip to content

Software Mitigation of RISC-V Spectre Attacks (Spectre-BTI / Spectre-RSB on BOOM)

Speculation tabanlı Spectre-BTI ve Spectre-RSB saldırıları, açık RISC-V BOOM core'unda tıpkı x86'daki gibi çalışır ve düşük-overhead, compiler-inserted fence'lerle körleştirilebilir — Spectre-RSB için önerilen ilk software mitigation dahil.

Mechanism

Bug sınıfı: bir RISC-V out-of-order core'unda speculative control-flow yönlendirmesi

Berkeley Out-of-Order Machine (BOOM), x86'yı Spectre'ye karşı savunmasız kılan aynı speculative predictor'lara sahip yüksek performanslı bir RISC-V core'udur. Burada iki predictor yapısı önemli:

  • Branch Target Buffer (BTB): indirect-branch target'larını cache'ler. Bir attacker BTB'yi eğitebilirse (Spectre-BTI / branch-target injection), victim'deki bir indirect jalr gerçek target çözülmeden önce attacker'ın seçtiği bir gadget'a speculatively atlayabilir.
  • Return Address Stack / Return Stack Buffer (RAS/RSB): ret'in target'ını öngörür. Underflow ya da uyuşmazlıkta (Spectre-RSB) öngörülen return address bir gadget'a yönlendirilebilir.

Her iki durumda da güvenlik sınırı transiently aşılır: core, mispredict edilen bir path boyunca instruction yürütür, bu instruction'lar secret-dependent belleğe dokunur ve ortaya çıkan cache footprint squash'tan sağ çıkar. Sonra bir cache side channel (örn. Flush+Reload) secret'ı architecturally okur. Kırılan invariant, bir misprediction'ın gözlemlenebilir hiçbir iz bırakmaması gerektiğidir — gerçek bir predictor'da iz bırakır. Makale, ISA açıklığının bağışıklık vermediğini gösterir; aynı micro-architectural sözleşme RISC-V'de de ihlal edilir.

Walkthrough

Üst seviye kavramsal yeniden üretim (arXiv:2206.04507, Bălucea & Irofti)

Kavramsal olarak yazarlar klasik x86 metodolojisini bir BOOM softcore üzerinde aynalar ve sonra onu toolchain'de etkisizleştirir:

  1. Vulnerable bir indirect call (Spectre-BTI) ya da bir return-prediction gadget'ı (Spectre-RSB) içeren bir victim derle.
  2. BTB/RAS'ı mistrain et ki core, secret-indexli belleği bir probe array'e yükleyen bir gadget'a speculatively ulaşsın.
  3. Probe array üzerindeki bir timing kanalı aracılığıyla sızdırılan byte'ı kurtar.
  4. Mitigation aşaması: güvenlik açısından kritik control-flow noktasına bir RISC-V speculation fence'i ekle ki core onun ötesine speculate edemesin; bunu LLVM backend'ine bağla ki elle değil otomatik olarak uygulansın.

Spectre-RSB için makale, (yazarların bildiği kadarıyla) ilk software mitigation'ı tanıtır; kavramsal olarak mispredict edilen return'ün kullanılabilir bir gadget'a ulaşmasını engeller. Burada silah haline getirilmiş bir gadget zinciri yeniden üretilmiyor.

Detection

Transient saldırıları runtime'da yakalamak zordur; side channel'a ve build provenance'a dayan

  • Cache side-channel telemetrisi: veri exfiltration adımı hâlâ bir covert channel'a ihtiyaç duyar. Yüksek çözünürlüklü L1/LLC miss anomalileri ya da Flush+Reload tarzı probe döngüleri gözlemlenebilir kuyruktur (bkz. flush-reload, prime-probe).
  • Branch-mistraining workload'ları: tek bir address üzerinde yoğun, tekrarlayan indirect-branch ya da return misprediction'ları (BTB/RAS mispredict'leri için RISC-V hardware performance counter'ları üzerinden, açıkta olduğu yerde görünür).
  • Build-time provenance: speculation-fence pass'i olmadan derlenmiş binary'ler, savunulan bir RISC-V filosu için birincil risk göstergesidir.

Mitigation

Compiler-inserted speculation barrier'ları; hardware düzeltmeleri hâlâ prototip aşamasında

  • Vulnerable indirect call ve return'lerde RISC-V fence tarzı speculation barrier'ları ekleyen, hem Spectre-BTI hem Spectre-RSB'yi kapsayan makalenin LLVM pass'lerini benimse.
  • Ölçülen overhead'i düşük tutmak için global fencing yerine güvenlik açısından kritik control-flow kenarlarında fence'leri dar uygula.
  • Upstream hardware mitigation'larını takip et: yazarlar RISC-V hardware savunmalarının yalnızca prototip olarak var olduğunu belirtir, bu yüzden silicon predictor-isolation/flushing özellikleri taşıyana dek software mitigation deploy edilebilir seçenektir.
  • Genel Spectre hijyeni (constant-time secret işleme, secret-dependent bellek indexing'inden kaçınma), ISA'dan bağımsız olarak exploit edilebilir gadget'ları azaltır.

References