Skip to content

Membuster

SGX enclave'inin memory-access trace'ini recover etmek için şifrelenmemiş DRAM address bus'ını dinleyen fiziksel, off-chip bir saldırı; on-chip page-fault ve cache mitigation'larını atlar.

Mechanism

MemBuster (Lee, Jung, Fang, Tsai, Popa; USENIX Security 2020), SGX'in açıkta bıraktığı tek arayüzü hedef alır: CPU package'ı ile DRAM DIMM'leri arasındaki fiziksel address bus. SGX, DRAM'deki enclave verisini şifreler ve integrity ile korur, ama DRAM transaction'larının adresleri bus boyunca açık halde seyahat eder. Fiziksel erişimi olan bir saldırgan, channel'a bir probe (pasif bir bus interposer / DIMM düzeyinde bir snooper) yerleştirir ve kurbanın dokunduğu DRAM adreslerinin dizisini kaydeder. Bu trace'ten, secret'a bağlı memory access kalıpları (table index'leri, branch target'ları, dictionary lookup'ları) yeniden inşa edilebilir.

Invariant: address bus, hiçbir on-chip mitigation'ın kapatamadığı bir gizlilik deliğidir

On-chip side channel'lar (page fault'lar, cache timing) kurbanı dolaylı olarak ve aynı trust boundary'nin içinden gözlemler, dolayısıyla controlled channel'ı devre dışı bırakmak, oblivious execution ya da cache partitioning gibi savunmalar onları köreltebilir. MemBuster ise gerçek fiziksel memory erişimlerini doğrudan, CPU'nun dışında gözlemler. Bu yüzden niteliksel olarak farklıdır ve engellemesi daha zordur — bir teli patch'leyip yok edemezsiniz. Aşması gereken tek kısıtlama, CPU'nun cache hierarchy'sinin çoğu erişimi emmesidir: bir DRAM isteği yalnızca erişim last-level cache'i (LLC) miss ettiğinde bus'ta görünür. MemBuster'ın yaptığı her şey, ilginç erişimleri kurbanı uyarmadan LLC miss'lerine dönüştürmekle ilgilidir.

Walkthrough

MemBuster bir hardware-artı-software pipeline'ıdır. Üst düzey akış:

  1. Fiziksel tap. Kurban enclave çalışırken bir bus snooper, DRAM channel'ının adres (ve command) hatlarını kaydeder. Yakalama, virtual ya da fiziksel adres değil, zaman sıralı bir DRAM adresleri (rank/bank/row/column) listesidir.

  2. Address-translation reverse engineering. Trace'i anlamlandırmak için saldırgan, virtual → physical → DRAM adresleri arasındaki mapping'i (memory controller'ın interleaving fonksiyonunu) yeniden inşa eder. Bu, gözlemlenen DRAM koordinatlarının kurban binary'sinin veri yapılarıyla ilişkilendirilmesini sağlar.

  3. Secret erişimlerini bus'a zorlamak. Hit'ler görünmez olduğundan makale, kurbana tespit edilebilir hiçbir interference olmadan faydalı LLC miss'lerini maksimize etmek için üç teknik tanıtır:

  4. Critical page whitelisting — çabayı secret'a bağlı veriyi tutan page'lere kısıtlar, böylece alakasız erişimlerden gelen gürültü azalır.
  5. Cache squeezing — secret'a bağlı erişimlerin cache'i miss etmesini sağlamak (tam olarak o line'ları sessizce evict edip/baskılayarak) için ayarlama yapar, böylece her biri bir DRAM transaction yayar; bu sırada genel yavaşlamayı tespitten kaçınacak kadar düşük tutar.
  6. Oracle-based fuzzy matching — gürültülü, kısmi gözlemlenmiş adres trace'ini secret değerlere geri map'leyen, hâlâ cache'te hit eden erişimlerin bıraktığı boşluklara tolerans gösteren bir eşleme algoritması.

  7. Recovery. Recover edilmiş erişim trace'i, secret'ı sızdırmak için programın veriye bağlı erişim kalıbıyla correlate edilir.

Gösterilen hedefler ve sonuç

Yazarlar MemBuster'ı, bir Intel SGX enclave'i içinde çalışan iki gerçek uygulamaya karşı değerlendirdi:

  • Hunspell — bir yazım denetleyici; lookup yapılan dictionary kelimeleri secret'tır (girdi metnini recover etmek).
  • Memcached — erişilen key secret'tır.

Bildirilen sonuç: kurbanın tek, kesintisiz bir run'ı hassas verinin çoğunu yüksek doğrulukla sızdırır — bu dikkat çekicidir çünkü single-stepping ya da controlled-channel saldırılarının aksine MemBuster, kurbanı tekrar tekrar kesmek ya da replay etmek zorunda değildir; daha sinsi ve tespiti daha zor olmasının nedenlerinden biri de budur.

Detection

MemBuster sinsilik için tasarlanmıştır: üç tekniği tam olarak, interrupt güdümlü enclave saldırılarının (page fault'lar, single-stepping) ürettiği yavaşlamadan ya da fault fırtınasından kaçınmak için vardır; dolayısıyla aşırı AEX'leri ya da page fault'ları izleyen software düzeyindeki anomali tespit edicileri onu göremez. Fiziksel tap'in kendisini tespit etmek, kurban software'inin gözlemleyebileceği bir şey değil, bir supply-chain / tamper-evidence problemidir (mühürlü kasa, intrusion sensörleri).

Mitigation

Güçlü savunma invariant'ı ortadan kaldırmaktır: bus'ta adres sızdırmayı durdur. Bu alandaki yaklaşımlar arasında Oblivious RAM (ORAM) ve oblivious / data-independent memory access (böylece gözlemlenen adres trace'i secret'lardan bağımsız olur) ile snoop edilen adreslerin anlamlı olmaması için address-bus / memory-bus şifrelemesi ya da scrambling'i yer alır. Bunlar pahalıdır; makalenin MemBuster'ın önceki on-chip enclave saldırılarından mitigate etmesi daha zor olduğunu vurgulamasının nedeni de budur.

References