Intel ZombieLoad ve MDS Side-Channel Saldırıları

İlk kez Ocak 2018‘de tanıştığımız MeltdownSpectre ve Foreshadow gibi iÅŸlemci bazlı zafiyetlere bir yenisi daha eklendi. Graz Teknoloji Üniversitesi’nden bir grup araÅŸtırmacı, Intel iÅŸlemcilerde saldırganların CPU bellek alanlarında iÅŸlenen verileri almasına izin verebilecek yeni bir güvenlik açığı sınıfı keÅŸfetti. CPU bazlı saldırıların artmasıyla beraber artık bu tip saldırılarda karakterlerine göre sınıflandırılmaya baÅŸlandı. Yeni iÅŸlemci zafiyetine ise Zombieload, RIDL, Fallout saldırıları adı verildi.

Tıpkı ilk üç zafiyette olduÄŸu gibi, Zombieload, RIDL ve Fallout da Intel’in veri iÅŸleme hızlarını ve performansını iyileÅŸtirmek için CPU’larına eklediÄŸi bir optimizasyon tekniÄŸi olan spekülatif yürütme iÅŸleminden (speculative execution process) yararlanarak faydalanıyor.

Modern bilgisayar mimari organizasyonunda işlemciden depolama alanlarına gidildikçe kapasite artar ve maliyet düşer. Bununla paralel olarak ise daha yavaş bir çalışma performansı ortaya çıkar.

Bu piramide göre işlemci hafıza alanları, en hızlı hafıza birimi olmaktadır.

3.0 GHz bir iÅŸlemci ortalama saniyede 3 milyar kez hafıza alanlarına eriÅŸebilir.

Piramitte aÅŸağıya doÄŸru gidildikçe daha az pahalı olan L1, L2, L3… türü ön belleklerde iÅŸlenecek veriler tutulur. İşlemci tarafından iÅŸlenecek komut setleri hiyerarÅŸiye göre hafıza alanlarına eriÅŸilerek iÅŸlemciye getirilir ve iÅŸlenilir.

Buradaki önemli olan ve iÅŸlemciler için yazılımsal olarak hız optimizasyonlarının yapılması ihtiyacı doÄŸuran kısım, iÅŸlemcilerin nano saniyeler bazında iÅŸlem yapması. İnsanoÄŸlunun algılarına 1 s gelebilen bir iÅŸlemci iÅŸlem zamanı bilgisayar nezdinde 0.3 ns gibi kısa bir sürede yapılmaktadır. İnsan için 1 s de gerçekleÅŸen bu iÅŸlem, zaman olarak insanlar için çok küçük görülse de bilgisayarlar için büyük bir kayıp olarak atfedilebilir. Buna baÄŸlı olarak günümüz modern iÅŸlemcilerinde veriler nano saniye boyutlarında iÅŸlendiÄŸi için maliyet kaybı yaÅŸanmaması amacıyla pipelining (borulama – üst üste bindirme) vb. iÅŸlemci veri iÅŸleme optimizasyonları yapılmaktadır. Pipelining iÅŸlem biter bitmez ardışık baÅŸka bir iÅŸlemin belli parçasının zaman kayıpsız alıp iÅŸlenmesine dayanan bir optimizasyon tekniÄŸidir.

Spekülatif yürütme işlemi ise işlemcinin ihtiyaç duyulmayacak bazı görevleri yerine getirdiği bir optimizasyon tekniğidir. İşin gerçekte gerekli olup olmadığı bilinmeden önce, gerekli olduğu bilindikten sonra işi yaparak gerçekleşmesi gereken bir gecikmeyi önlemek için yapılır. Sonuç olarak iş gerekli olmadıysa, işin yaptığı değişikliklerin çoğu geri döndürülür ve sonuçlar göz ardı edilir. Burada hedeflenen amaç işlem için ilave kaynaklara daha fazla eş zamanlılık sağlamaktır. Bu spekülatif yaklaşım pipeliningdeki değer tahminleri, bellek ve dosyaları önceden ayarlayıp tahsis etme, veri tabanı sistemlerinde eş zamanlılık kontrolü gibi alanlarda kullanılır.

Spekülatif yürütmeyi gerçek hayatla örtüştürecek olursak, X kentine 1 günlük iş için gittiğimizi düşünelim. X kentinde bahar olduğunu ve hava geçişlerinin sık olduğunu düşünelim. Anlık değişimlerle yağmurlu ya da güneşli olma durumları mümkün. Güneşli ve yağmurlu hava için birer kombini valizde götürmek, her hava değişiminde evimizi X kentine götürmekten daha hızlı ve pratik bir yol. Bilgisayar açısından bakacak olursak işlemci X kentindeki anlık hava değişimini beklemeden zamandan tasarruf etmek için giydirme işlemini nano saniyeler mertebesinde gerçekleştirecektir. Çünkü zaman kaybı işlemci açısından maliyet demektir. Zafiyetin ortaya çıkış noktası da tam olarak bu durumdan kaynaklanmaktadır. İşlemcinin spekülatif tahminleri ve tercihleri manipüle edilmektedir.

Spekülatif yürütmenin istekli (eager), predictive (öngörü) ve tembel (lazy) işletme olmak üzere 3 çeşit varyantı bulunmaktadır.

Akademisyenler Meltdown zafiyetinin keşfinden sonraki zaman süreci içerisinde spekülatif yürütme sürecinin bileşenlerine odaklanmış durumdaydılar. İşlemci tampon bellek bölgeleri ve veri işleme adımlarından nasıl veri sızdırabilecekleri üzerine yoğunlaşmış, Spectre ve Foreshadow gibi yeni zafiyetler keşfetmişlerdi.

Spekülatif yürütme iÅŸlemi üzerinden keÅŸfedilen yeni zafiyetler ise Microarchitectural Data Sampling (MDS)ve Zombieload saldırıları olarak adlandırıldı. Depolama tampon bellek alanlarını hedef alan (CVE-2018-12126aka Fallout), yükleme tamponlarını hedef alan (CVE-2018-12127), satır dolgu tamponlarını hedef alan (CVE-2018-12130, aka RIDL) ve önbelleÄŸe alınamayan bellek alanlarının istismarı (CVE-2019-11091 aka Zombieload) olmak üzere 4 farklı MDS saldırı tipi keÅŸfettiler. Zombieload diÄŸerlerinden daha fazla hassas ve kritik veriye eriÅŸebileceÄŸi için diÄŸer MDS saldırılarına göre en tehlikeli durumda.

Programlar normalde yalnızca kendi verilerini iÅŸlerken, spekülatif yürütmeyi istismar eden saldırganlar baÅŸka iÅŸlemlere ait tarayıcı geçmiÅŸi, web sitesi içeriÄŸi, kullanıcı anahtarları ve ÅŸifreler/parolalar gibi kullanıcı düzeyinde bilgiler veya disk ÅŸifreleme anahtarları gibi sistem düzeyindeki bilgilere eriÅŸebiliyor. Zombieload saldırısını gerçekleÅŸtirecek saldırgan uygulamalar arasında var olan etkin gizlilik korumalarını atlatabileceÄŸi (bypass) edebileceÄŸi anlamına gelmektedir.

  • RIDL leaking root password hash
    https://www.youtube.com/watch?v=JXPebaGY8RA
  • RIDL leaking Linux kernel data
    https://www.youtube.com/watch?v=UV9GDcOWeeI
  • RIDL from JavaScript
    https://www.youtube.com/watch?v=KAgoDQmod1Y
  • Zombieload Attack
    https://zombieloadattack.com/public/videos/demo_720.mp4

AraÅŸtırmacılar bu zafiyetlerden 2011’den beri piyasaya sürülen tüm Intel iÅŸlemcilerin etkilendiÄŸini belirttiler. Ayrıca masaüstü bilgisayar, mobil iÅŸlemciler (laptop iÅŸlemcisi) ve sunucu iÅŸlemcilerinin etkilendiÄŸi iletildi.

Öte yandan iyi haber olarak Meltdown ve Spectre zafiyetlerinden sonra üretilen Intel işlemcilerde (8. & 9. Nesil Core işlemciler ve 2. nesil Xeon işlemciler) spekülatif yürütme saldırılarına karşı koruma mekanizmaları geliştirildi ve optimizasyonlar yapıldı. Ancak Intel bu işlemciler içinde saldırı etkilerini azaltmak için bir öneri yazısı paylaştı. https://www.intel.com/content/www/us/en/architecture-and-technology/mds.html

Intel ise etkilenen iÅŸlemci versiyonları için yeni bir mikro servis kod güncellemesi yayınlaması bekleniyor. Ancak bu mikro kod güncellemelerinin optimizasyonlar üzerinde ciddi deÄŸiÅŸiklikler yaptığı için iÅŸlemcilerde performans kayıplarına sebep olacağı aÅŸikâr. 8 ve 9 nesil iÅŸlemciler için yayınlanan etki azaltma öneri yazısında, BIOS’tan devre dışı bırakılması önerilen özelliklerin performansa etkileri olduÄŸu gözüküyor.

Yakın gelecekte de işlemci türü zafiyetlerle fazlaca karşılaşacağız gibi gözüküyor. Araştırmayla ilgili yayınlanan makalelere ve Intel’in yayınladığı mikro kod güncelleme listelerine linklerden erişebilirsiniz.

  • https://cpu.fail/
  • https://zombieloadattack.com/
  • https://labs.bitdefender.com/2019/05/yet-another-meltdown-a-microarchitectural-fill-buffer-data-sampling-vulnerability/
  • https://mdsattacks.com/
  • https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00233.html
  • https://www.intel.com/content/dam/www/public/us/en/documents/corporate-information/SA00233-microcode-update-guidance_05132019.pdf
  • https://www.intel.com/content/www/us/en/architecture-and-technology/engineering-new-protections-into-hardware.html
  • https://access.redhat.com/security/vulnerabilities/mds
  • https://support.google.com/faqs/answer/9330250
  • https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/adv190013
  • https://support.apple.com/en-us/HT210107

Kaynak: https://h4cktimes.com/guvenlik-aciklari/intel-zombieload-ve-mds-side-channel-saldirilari.html

Yazan: İsmail SAYGILI (Eczacıbaşı Bilişim)