Modern işlemcilerde bulunan donanım açıkları Spectre ve Meltdown ile ilgili araştırmanın ilk yayınlandığı tarihin üzerinden dört yıl geçti. O zamandan beri araştırmacılar, potansiyel olarak gizli verileri sızdırma yeteneğine sahip birkaç benzer açık keşfettiler. Araştırmacılar, her ne kadar gerçek hayatta kullanılması muhtemel olmasa da, bu güvenlik açıklarının kullanıldığı saldırı örneklerini gösterdiler. Yazımızda, bu donanım sorunlarının günümüzdeki durumuna ve işletmelere saldırmak için potansiyel kullanımlarına göz atıyoruz.
Spectre’nin farklı türleri
Ağustos 2018’de yapılan ilk duyuruda üç güvenlik açığı yer alıyordu: Spectre v1 ve v2 ve Meltdown. Bu güvenlik açıklarının birkaç ortak özelliği bulunuyor:
- Düşük ayrıcalıklarla da olsa, güvenlik açıklardan yararlanma genellikle açığı bulunan bir sistemde kötü amaçlı kodun yürütülmesini içeriyor. En tehlikeli olasılık, “virüs bulaşmış” bir web sayfasını ziyaret ederken tarayıcı aracılığıyla yapılan saldırıdır.
- Pratikte açıktan yararlanılması için bir dizi koşulun gerçekleşmesi gereklidir; özellikle saldırıya uğrayan uygulamanın kodunun, veri sızıntısına izin vererek, saldırıyı mümkün kılan bir “aygıt” erişimi olması gerekir.
- Veri sızıntısı yan kanallar aracılığıyla gerçekleşir. Bu nedenle, veri sızıntısının hızı son derece düşüktür.
- Başarılı bir saldırı, yetkisiz veri erişimine ilişkin hiçbir iz bırakmayabilir.
Son durum tam olarak, bu, görünüşte teorik bilimsel çalışmaya özel ilgi uyandıran şeydir. Her durumda araştırmacılar, dallanma öngörü sisteminden yararlandılar. Programda, yürütülmesi için yapılan açık bir istekten önce bile bir dizi talimatın yürütülmesiyle performans artışına olanak tanıyan bu mekanizma 20 yıldan daha uzun bir süre önce tanıtıldı. Tahmin doğruysa, işlemci kaynakları daha verimli kullanılmış olur. Tahmin yanlışsa, hesaplamalar atılır.
Spectre v1’e ait POC (kavram kanıtı), işlemcinin program tarafından erişilemeyen verileri okuduğunu gösterdi. Bu veriler önbellekte saklanır ve oradan yan kanallar aracılığıyla alınabilir. Hatalı okunan bu “gizli” bilgi programa iletilmediği için bu mekanizma güvenli kabul ediliyordu. Ancak araştırmacılar bu verileri dolaylı olarak okumanın yollarını buldular.
Spectre ve Meltdown ile ilgili çalışmaların yayınlanmasından sonra, birkaç benzer güvenlik açığı daha keşfedildi. Araştırmacılar, işlemcilerin güvenlik açıklarından yararlanarak gizli verileri çıkarmaya yönelik yeni yöntemler aramaya devam ediyor. Intel’in özet tablosu, orijinal üç soruna ek olarak 20’den fazla sorunu daha listeliyor.
Spectre’yle nasıl mücadele edilir?
Teoride bir işlemcideki güvenlik açığından faydalanmayı daha az olası hale getirmenin üç yolu vardır: Sağlayıcılar mevcut işlemciler için bir mikro kod güncellemesi yayınlayabilir, CPU’ları yenisiyle değiştirebilir veya sorunu yazılım güncellemeleri yoluyla çözmeye çalışabilir. Genellikle gerçek etki azaltma için ürün yazılımı ve yazılım güncellemelerinin bir kombinasyonunu gerekir. Güvenlik açıklarından bazılarını kapsayan yeni mikro kod, Intel’in 2013 Haswell nesli işlemcilerden beri mevcuttur. Donanım çözümleri ilk olarak sekizinci nesil Intel işlemcilerinde ve AMD’nin Zen 2 CPU’larında uygulandı.
Yazılımsal çözümler oldukça zor olabilir: Örneğin, Spectre v1 ve v2’ye karşı Linux çekirdeğindeki olası değişikliklere bakabilirsiniz. CPU performansında ciddi sonuçlar doğuracak şekilde spekülatif kod yürütmenin tamamen devre dışı bırakılması da dahil olmak üzere, belirli bir sistemin amaç ve hedeflerine bağlı olarak çok çeşitli önlemler gündeme geldi.
İş modeli büyük bir sunucu filosunun performansına bağlı olan çoğu işletme için Spectre karşıtı önlemlerin en belirgin etkisi, bu tür performans düşüşü olacaktır. Phoronix sitesindeki, çeşitli sunucu uygulamalarının performansını inceleyen nispeten yeni bir karşılaştırmalı analiz, Linux işletim sisteminde tüm Spectre karşıtı önlemler etkinleştirildiğinde ortalama olarak %25’lik bir performans düşüşü yaşandığını gösteriyor.
Uygulanabilir saldırılar ve kavram kanıtları
Çok sayıdaki saldırı türüne rağmen, Spectre kaynaklı veri hırsızlığı tehdidi hala teoriktir. Her araştırma, sızıntıyı gösteren bazı kodlar içerse de bu, kodun gerçek bir sisteme karşı kullanılabileceği anlamına gelmez. Genel olarak bu demolara ilişkin kısıtlar veya kavram kanıtları aşağıdaki gibidir:
- Rastgele bir veri sızıntısı gösterirler. Uygulamada bir anlam ifade etmeyebilir, sadece saldırganın daha önce erişemediği rastgele bilgilerdir.
- Saldırı için ideal koşullar araştırmacılar yaratıldı. Örneğin, sistemde sınırsız erişime sahiplerdi. Bu durumda, karmaşık veri hırsızlığı yöntemlerini kullanmaya gerek yoktur.
- Pek de olası olmayan koşullarda yaşanan gerçek bir veri ihlali olduğunu gösterir.
En etkileyici teorik çalışma (olası sonuçlar açısından) NetSpectre saldırısıdır. Araştırmacılar saatte 15 ila 60 bit hızında veri sızdırarak, güvenlik açığından uzaktan da yararlanılabildiğini gösterebildiler. Saldırıya ilişkin sınırlamalar oldukça açık: Düşük veri aktarım hızı, sızdırılan verilerin büyük miktarda önemsiz trafik verisi içermesi ve ayrıca başarı için saldırıya uğrayan sunucuda “doğru yerde” savunmasız kod bulunması.
Geçen yıl ITW koşullarına mümkün olduğunca yakın uygulamalı iki saldırı gösterildi. Mart ayında Google, bir leaky.page, RAM’den veri çıkarabilen bir web sayfası konsepti gösterdi. Eylül ayında, Spectre korumalı (web sayfalarının ayrı tarayıcı süreçlerinde izole edilmesi) araştırma sırasındaki en son Google Chrome (92) sürümüne düzenlenen bir Spook.js saldırısı gösterildi. Bu yöntem gerçek veri hırsızlığına izin veriyordu: Araştırmacılar bir sosyal ağdaki kimlik bilgilerine, parola yöneticisi verilerine ve bir kullanıcı tarafından özel buluta yüklenen bir görüntüye erişti. Ancak tüm bu durumlar için, başarılı veri yolunun aynı alan adı altında bulunan “virüslü” bir sayfaya sahip olması gerekiyor. Örneğin, bir Tumblr şifresini çalmak için aynı sosyal ağdaki başka bir sayfaya kötü amaçlı Javascript kodu yüklemek gerekiyor.
Peki tehdit ne kadar tehlikeli?
Spook.js, Google Chrome tarayıcısı için çıkarılan bir yazılım yaması ile etkisiz hale getirildi. Dolayısıyla şu anda, gerçek koşullarda Spectre güvenlik açıklarından yararlanmaya ilişkin bir tehdit söz konusu değildir. Bilinen tüm saldırılar son derece karmaşıktır ve saldırganın en üst düzeyde kabiliyete sahip olmasını gerektirir.
En gerçekçi kavram kanıtları için yamalar çıkarıldı ve yamalar olmadan bile, bu açıklardan faydalanmak için oldukça çok sayıda koşulun gerçekleşmesi gerekiyor. Gerçek “Spectre güvenlik açığından yararlanma” hakkında medyada çıkan medya haberler doğrulanmasa da güvenlik sağlayıcıları her ihtimale karşı bilinen saldırıları tespit etmek için araçlar eklediler. Bu nedenle büyük olasılıkla mevcut kötü amaçlı yazılım tespit mekanizmaları şirketinizi korumaya yardımcı olacaktır.
Ancak, Spectre’i tamamen görmezden gelmemeliyiz: Araştırmanın devam etmesi önemlidir. Küçük bir ihtimal ile zamanla, “en kötü durum senaryosu” keşfedilecek: Kötü amaçlı yazılım yüklenmesini gerektirmeyen ve iz bırakmadan veri sızıntısına izin veren bir saldırı.
Teorik olarak, çalınan verilerin değeri buna değiyorsa, donanımsal güvenlik açıklarını kullanarak hedefli bir saldırı gerçekleştirmek gayet olasıdır. Bu tür risklere karşı koruma, potansiyel saldırı vektörlerini belirleme, işletim sistemi geliştiricilerinin tavsiyelerini takip etme veya ciddi bir performans düşüşü pahasına bile koruma uygulama konusunda ciddi yatırımlar gerektirir. Ancak çoğu, hatta büyük şirketler için yazılım ve işletim sistemi geliştiricilerine, işlemci üreticilerine ve güvenlik çözümlerine güvenmek yeterlidir.