Meltdown ve Spectre Hakkında Her Şey, Sonuçları, Olası Önlemleri ve Dahası!


Diggad edd’in

Sizlere zaten Meltdown ve Spectre güvenlik açıkları hakkında ilk haberlerimizi yapmıştık fakat  haberlerin tarihinden bu yana bazı detaylar daha ortaya çıktı aynı zamanda kafalarda oluşan soruları gidermek de bizler için farz oldu.
2018 yılının daha ilk günlerinde gündeme ardı ardına düşen ve son 10 yılda üretilen neredeyse tüm işlemcilerin temelinde önemli kritik açıklar tespit edildi. Bu açıklar Meltdown ve Spectre olarak adlandırılmakta. İşlemcilerler keşfedilen açık aslında işlemcinin daha etkin ve verimli çalışmasını sağlayan bir dizi özelliğin parçası konumunda. Dolayısıyla artık yayınlanmaya başlayan yamalar sistem performansını olumsuz yönde etkileyebilmekte.

Spectre ve Meltdown Nedir?

Spectre ve Meltdown dediğimiz gibi neredeyse 10 yıllık bir geçmişe sahip. 3 Ocak 2018’de yayınlanan Spectre ve Meltdown açıkları, modern işlemcilerin performansını artırmak için tasarlanmış optimizasyon tekniklerinin yan etkisidir.
Teknik olarak aslında üç tane açık bulunmakta, bunların ikisi Spectre (Spectre Varyant 1 ve Varyant 2) adı altında toplanırken diğeri Meltdown olarak da bilinmekte.

  • CVE-2017-5754 veya “hileli veri önbelleği yükü” (rogue data cache load) MELTDOWN
  • CVE-2017-5753 veya “sınır denetimini atlama” (bounds check bypass) SPECTRE
  • CVE-2017-5715 veya “dal hedefi ekleme” (branch target injection) SPECTRE

Meltdown ve Spectre aslında birbirine oldukça benziyor. Modern CPU’ların spekülatif yürütme (speculative execution) adı verilen bir performans özelliğinden yararlanan bu açıklar aslında okunması mümkün olmayan daha doğrusu okunması istenmeyen verilerin okunması yol açmakta. Spekülatif yürütme, işlemcinin, işlem akışında kullanılıp kullanılmayacağı belli olmayan komutları önceden hesaplaması için gereksiz yere hazırda tutmasının önüne geçerek zamanı daha iyi kullanmasını sağlarlar. Yani CPU, performansını artırmak için en olası komutlar tahmin edilerek elde tutulur. Hazırda tutulan komut aktifleştiğinde CPU hemen yanıtı verir, diğer hazırda tutulanlar ise elden çıkarılır.
Spekülatif yürütme sonucunda elde edilen veriler CPU içindeki ön bellekte bekletilir. Buna Önbelleğe alma işlemi denir. Önbelleğe alma, bellek erişimini hızlandırmak için kullanılan bir tekniktir. CPU’nun ayrı bir yongada yaşayan RAM’den veri alması nispeten uzun bir süre alır, bu nedenle CPU üzerinde CPU önbellek olarak adlandırılan ve çok hızlı bir şekilde erişilebilen özel küçük bir bellek depolama alanı vardır. Bu bellek, çipin yakında veya sıklıkla ihtiyaç duyacağı verilerle doludur. Durumumuzla ilgili olan, spekülatif yürütme sonucunda çıktı verisi, spekülatif yürütmeyi hızlandıran şeyin bir parçası olan önbellekte sık sık saklanır.
Buraya kadar her şey tamam. Şimdi bir de ”korumalı bellek” şeysinden söz edelim.
Korumalı bellek, bilgisayar güvenliğinin altında yatan temel kavramlardan biridir. Özünde, bilgisayardaki herhangi bir işlem izin almadıkça veriye erişemez olmasıdır. Bu, bir programın bazı verilerini bazı kullanıcılarından uzak tutmasını sağlar ve işletim sisteminin bir programın başka bir programa ait verileri görmesine engel olmasını sağlar. Verilere erişmek için bir işlemin, o verilerin görmesine izin verilip verilmeyeceğini belirleyen bir ayrıcalık denetimi gerekiyor.
Fakat bir ayrıcalık denetimi (nispeten) uzun sürebilir. Yani – ve tartışmakta olduğumuz güvenlik açığının anahtarı budur – CPU, spekülatif yürütme sayesinde işlemin bu verilere erişmesine izin verilip verilmediğini bulmak için beklerken, bu verilerle çalışmaya, izin almadan önce başlar. Teorik olarak bu hala güvence altındadır çünkü spekülatif yürütme sonuçları donanım düzeyinde de korunmaktadır. İşlemin, ayrıcalık denetimi tamamlanıncaya kadar görmesine izin verilmiyor ve onaylamayı kabul etmezse, veriler atılıyor.
Sorun, korunan verinin erişimi için izni alınmasa bile, korunan veriler CPU önbellekte depolandığı için ortaya çıkar. Bilgisayar belleğinin çalışma şekli nedeniyle, verilerin depolandığı adresleri bilmek, verilerin ne olduğunu çıkarmanıza yardımcı olabilir. Yan kanal saldırısı (side-channel attack.) olarak bilinen şey budur.
Kısa Özet; Sorun donanım ve tasarım bazında olduğundan %100 bir çözümü bulunmamaktadır. Önümüzde ki yıllarda çıkacak işlemci ailelerinde de bu açık bulunabilir zira CPU mimarisini bu kısa vadede değiştirmek imkansıza yakındır.

Spectre ve Meltdown Arasındaki Fark Nedir?


Spectre ve Meltdown’un nasıl işlediğine dair çok daha teknik bir açıklama istiyorsanız Google’ın Project Zero sitesin yayını kontrol etmelisiniz. Kısa ve basit tutmak için hem Spectre hem de Meltdown, potansiyel saldırganların, yukarıda özetlenen teknikleri kullanarak erişememesi gereken verilere erişmesine izin verebilir, ancak etkileri biraz farklıdır:
Temelde ikisi de aynı işlevi görüyor ancak kulağı tersten tutmak gibi düşünülebilir. Farkları basite indirgemek gerekirse bilinmesi gereken iki açığında bulunduğu yongaların farklılık göstermesidir.
Meltdown açığı sadece Intel’in sanallaştırma içeren yani mevcut ve oldukça eski işlemci serilerini etkilemekte. Tam net olmasa da NVIDIA’nın bazı ekran kartları da Intel’in bu açığının yamanması sonrasında düşen performanstan etkilendiği belirtilmekte.
Spectre ise Intel, ARM, AMD ayırt etmeksizin ortak bir bela. Dolayısıy etki alanı inanılmaz derecede geniş. Bilgisayardan telefona, güvenlik kamerasından buzdolabına kadar bir alan söz konusu.

Yamalar Ne Durumda?

Hali hazırda bu ayın sonuna kadar tüm çevrelerden ilgili yamalar ve firmware güncellemeleri yayınlanacak ve yayınlanmaya başladı. Microsoft yamaları dağıtmakta, Linux tarafında da yamalar dağıtılmakta. Aynı şekilde bu açığa duyarlı antivirüs programları da güncellenmekte. Benzer şekilde Firefox (Beta sürümde yayınlanmış durumda) ve Chrome bu ayın 23’ünde açıklar için güncellenecek.

Microsoft, 11 Ocak tarihinde hem kendi güncellemelerini içeren hem de diğer büyük oyuncuların yamalarını linklerini içeren sayfasını yayınladı. Aktarılanlara göre bazı yamalardan sonra bazı AMD sistemler çalışmadı, bu yamalar şimdilik geri çekilmiş durumda.

Apple, 3 Ocak itibariyle kendi çözümleri için yamaları yayınlamaya başladı. iOS, MacOS, TVos, WatchOS ve diğer ürünleri için güncellemeler çıkmış durumda.

Google, Chrome OS için KAISER yamaları yayınladı.

Sony, bazı akıllı telefon modelleri için güncelleme yayınladı. Samsung, LG, Huawei ve diğer üreticiler de yayınlayacaktır ancak net tarih belli olmadığı gibi güncelleme alacak modellerde belli değil.

Spectre ve Meltdown Yaması Performansımı Etkilenecek mi?

Evet, etkileyecek. AMD CPU ve GPU’ları Meltdown’dan zaten etkilenmiyorlar zira firma spekülatif yürütmeyi yongalarında kullanmamakta. Ancak Spectre için sonuç ne olacak henüz bilemiyoruz. AMD bir performans düşüşü olup olmayacağını söylememekte. Açıkçası etki olacaksa bile Intel’den daha az olacağı çok açık.
Intel işlemciler ise oldukça şanssız. Özellikle iki yıldan daha eski modeller güncelleme sonrasında neredeyse her alanda performans düşüşü yaşamakta. Program açma, render, I/O gerektiren işlemler hatta oyunlarda performans düşüşü yaşandığı aktarılıyor. Performans düşüşü %40’ları aşabiliyor. Intel tarafında bir başka sorun ise bazı işlemciler yama sonrası yeniden başlatma döngüsü yaşaması.
Apple tarafında iPhone bazında yapılan testler de gösteriyor ki iOS 11.2.2 sonrasında ciddi performans düşüşü yaşanmakta. Sony, Spectre için güncelleme yayınlamış olsa da ARM tarafında performansın nasıl etkileneceği şuan için soru işareti.
Ancak performans konusunda en büyük etki ve maliyet sunucu pazarı için yaşanacak.

Nasıl Korunabilirim?

Dediğimiz gibi bu açıklardan %100 korunmak gibi bir çözüm yok. Sadece önlemler alınabilir ve bu önlemler de şimdilik üreticilerin ve işletim sistemlerinin yayınladıkları yamalardan geçiyor. Bu yamalar performansa etki etse de en azından sizi çok daha güvende tutacaktır. Zira şuan girdiğiniz bir sitenin kodunda çalışan bir JavaScript komutu dahi işlemcinizin sahip olduğu Spectre açığından yararlanabilir potansiyele sahip.
Dolayısıyla Dijitaller olarak güncel uygulamaları kullanmanızı tavsiye etmekteyiz.

Savunmasız mıyım?


Bunu öğrenmek için Ashampoo Spectre and Meltdown CPU Checker adlı küçük ve ücretsiz uygulamayı kullanabilirsiniz. Sadece Windows da çalışan uygulamayu BURADAN indirebilirsiniz. Linux için ise BURADAKİ adımları izleyebilirsiniz.
Kaynaklar ve ilgili bazı haberler;


Metin Akpınar
Teknolojiyi ve popüler kültürü takip etmeyi sever, onlar hakkında yazmayı daha çok sever. Ayrıca sizden gelen soruları da cevaplamaktan hoşnut kalır; [email protected]

0 Yorum

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir