Haberlerdeki yeni bir Apple güvenlik açığıyla, spekülatif yürütmenin ne olduğu ve nasıl çalıştığı sorusunu tekrar gözden geçirmenin tam zamanı. Bu konu, birkaç yıl önce Spectre ve Meltdown’ın sık sık haberlerde yer aldığı ve birkaç ayda bir yeni yan kanal saldırılarının ortaya çıktığı bir dönemde çok tartışıldı.
Spekülatif yürütme, AMD, ARM, IBM ve Intel tarafından oluşturulan veya tasarlanan çipler de dahil olmak üzere tüm modern mikroişlemcilerin performansını bir dereceye kadar artırmak için kullanılan bir tekniktir. Spekülatif yürütme kullanmayan modern CPU çekirdeklerinin tümü, ultra düşük güç ortamları veya minimum işlem görevleri için tasarlanmıştır. Spectre, Meltdown, Foreshadow ve MDS gibi çeşitli güvenlik kusurlarının tümü, birkaç yıl önce, genellikle Intel CPU’larda spekülatif yürütmeyi hedef aldı.
Spekülatif İcra Nedir?
Spekülatif yürütme, üç bileşenden biridir. sıra dışı yürütme, dinamik yürütme olarak da bilinir. Çoklu dal tahmini (yakın gelecekte ihtiyaç duyulması en muhtemel talimatları tahmin etmek için kullanılır) ve veri akışı analizi (talimatları geldikleri sırayla yürütmek yerine optimum yürütme için hizalamak için kullanılır) ile birlikte spekülatif yürütme bir 1990’ların ortalarında ilk kez piyasaya sürüldüğünde önceki Intel işlemcilere göre çarpıcı performans artışı. Bu teknikler çok iyi çalıştığı için, K5’ten başlayarak sıra dışı işleme kullanan AMD tarafından hızla benimsendi.
ARM’nin düşük güçlü mobil işlemcilere odaklanması başlangıçta onu OOoE oyun alanının dışında tuttu, ancak şirket Cortex A9’u kurduğunda sıra dışı yürütmeyi benimsedi ve tekniğin kullanımını daha sonra, daha güçlü Cortex ile genişletmeye devam etti. – markalı CPU’lar.
İşte nasıl çalıştığı. Modern CPU’ların tümü ardışık düzene sahiptir, yani aşağıdaki şemada gösterildiği gibi birden çok talimatı paralel olarak yürütebilirler.
Yeşil bloğun bir if-then-else dalını temsil ettiğini hayal edin. Dal tahmincisi, hangi dalın alınma olasılığının daha yüksek olduğunu hesaplar, o dalla ilişkili sonraki talimat setini getirir ve iki kod dalından hangisini kullanacağını bilmeden önce bunları spekülatif olarak yürütmeye başlar. Yukarıdaki şemada, bu spekülatif talimatlar mor kutu olarak gösterilmiştir. Dal tahmincisi doğru tahmin ederse, CPU’nun ihtiyaç duyduğu bir sonraki talimat seti sıralanır ve hiçbir boru hattı durması veya yürütme gecikmesi olmadan kullanıma hazırdır.
Dallanma tahmini ve spekülatif yürütme olmadan, CPU, ardışık düzendeki ilk talimatın (yeşil kutu) yürütülmesini bitirip Aşama 4’e geçene kadar hangi dalı alacağını bilemez. sonra, CPU uygun talimatların gelmesini beklemek zorundadır. Bu, CPU’nun yararlı işler yapma zamanı geldiğinden sistem performansına zarar verir.
“Spekülatif” yürütmenin nedeni, CPU’nun yanlış olabileceğidir. Varsa, sistem uygun verileri yükler ve bunun yerine bu talimatları yürütür. Ancak dal tahmin edicileri çok sık yanlış değildir; doğruluk oranları tipik olarak yüzde 95’in üzerindedir.
Neden Spekülatif Yürütme Kullanılır?
On yıllar önce, sıra dışı yürütme icat edilmeden önce, CPU’lar bugün “sıralı” tasarımlar dediğimiz şeydi. Talimatlar, alındıkları sırayla yürütülür, onları yeniden sıralamaya veya daha verimli bir şekilde yürütmeye çalışmaz. Sıralı yürütmeyle ilgili en büyük sorunlardan biri, bir işlem hattı duraklamasının sorun çözülene kadar tüm CPU’yu durdurmasıdır.
Spekülatif yürütmenin gelişmesini sağlayan diğer sorun, CPU ve ana bellek hızları arasındaki boşluktu. Aşağıdaki grafik CPU ve bellek saatleri arasındaki boşluğu göstermektedir. Boşluk büyüdükçe, CPU’nun bilgi iletmek için ana bellekte beklemek için harcadığı süre de arttı. L1, L2 ve L3 önbellekleri ve spekülatif yürütme gibi özellikler, CPU’yu meşgul edecek ve boşta geçirdiği süreyi en aza indirecek şekilde tasarlanmıştır.
İşe yaradı. Büyük kalıp dışı önbelleklerin ve sıra dışı yürütmenin birleşimi, Intel’in Pentium Pro ve Pentium II’sine bacaklarını önceki yongaların erişemeyeceği şekillerde uzatma fırsatları verdi. 1997 Anandtech’ten alınan bu grafik makale avantajını açıkça göstermektedir.
Spekülatif yürütme ve büyük önbelleklerin birleşimi sayesinde, Pentium II 166, Pentium 250 MMX’in öncekine göre 1.51x saat hızı avantajına sahip olmasına rağmen, kesinlikle bir Pentium 250 MMX’den daha iyi performans gösteriyor.
Sonuç olarak, çoğu tüketiciye düzensiz yürütmenin faydalarını sağlayan Pentium II oldu. Pentium II, kısa bir süre önce en üst seviye olan Pentium sistemlerine göre hızlı bir mikroişlemciydi. AMD kesinlikle yetenekli bir ikinci kademe seçeneğiydi, ancak orijinal Athlon piyasaya çıkana kadar Intel’in mutlak performans tacında bir kilidi vardı.
Pentium Pro ve sonraki Pentium II, Intel’in kullandığı önceki mimarilerden çok daha hızlıydı. Bu garanti değildi. Intel, Pentium Pro’yu tasarlarken, kalıp ve güç bütçesinin önemli bir miktarını, sıra dışı yürütmeyi mümkün kılmak için harcadı. Ama bahis karşılığını verdi, büyük zaman.
Intel, daha agresif bir şekilde spekülasyon yapmayı ve bu süreçte belirli veri türlerini açığa çıkarmayı tercih ettiğinden, AMD veya ARM’ye kıyasla son üç yılda piyasaya çıkan yan kanal saldırılarının çoğuna karşı savunmasız kaldı. Birkaç yama turu, önceki yongalardaki bu güvenlik açıklarını azalttı ve daha yeni CPU’lar, donanımdaki bu sorunların bazıları için güvenlik düzeltmeleriyle tasarlandı. Ayrıca, bu tür yan kanal saldırılarının riskinin teorik kaldığını da belirtmek gerekir. Ortaya çıktıklarından bu yana geçen yıllarda, bu yöntemleri kullanan herhangi bir saldırı bildirilmedi.
Intel, AMD ve ARM’nin spekülatif yürütmeyi nasıl uyguladığı arasında farklılıklar vardır ve bu farklılıklar, Intel’in bu saldırıların bazılarına diğer satıcıların olmadığı şekilde maruz kalmasının bir parçasıdır. Ancak bir teknik olarak spekülatif yürütme, kullanmayı bırakamayacak kadar değerlidir. Günümüzde her bir üst düzey CPU mimarisi, sıra dışı yürütme kullanıyor. Ve spekülatif yürütme, şirketten şirkete farklı şekilde uygulansa da, her biri tarafından kullanılır. Spekülatif yürütme olmadan, sıra dışı yürütme çalışmaz.
2021’de Yan Kanal Güvenlik Açıklarının Durumu
2018 – 2020 arasında Spectre, Meltdown, Foreshadow, RIDL, MDS, ZombieLoad ve diğerleri dahil olmak üzere bir dizi yan kanal güvenlik açığının tartışıldığını gördük. Güvenlik araştırmacıları için ciddi bir rapor, pazar dostu bir isim ve ara sıra tüyler ürpertici PR patlamaları yayınlamak biraz moda oldu ve bu, bugüne kadar ortaya çıkmamış yıkıcı güvenlik sorunlarının hayaletini (hiçbir amacı yok) gündeme getirdi.
Yan kanal araştırması devam ediyor – yeni potansiyel güvenlik açığı Mart ayında Intel CPU’larında bulundu – ancak yan kanal saldırılarının işe yaramasının bir nedeni Çünkü fizik, onu iletmek için tasarlanmamış kanalları kullanarak bilgiyi gözetlememize izin verir. (Yan kanal saldırıları, verileri kırmak için belirli bir algoritmaya odaklanmak yerine, verileri sızdırmak için uygulamanın zayıf yönlerine odaklanan saldırılardır).
İnsanların doğal olarak algılayamadığı enerji spektrumlarında gözlemleyerek, uzay hakkında düzenli olarak bir şeyler öğreniriz. Baykal Gölü gibi yerlerde derinlerde boğulmuş dedektörler kullanarak nötrinoları izliyoruz, çünkü bu yerlerin özellikleri, evrenin kendi işini yürüten gürültüsünden aradığımız zayıf sinyali ayırt etmemize yardımcı oluyor. Jeoloji, astronomi, sismoloji ve verilerin doğrudan gözlemlenmesinin imkansız veya kavramsal olarak pratik olmadığı herhangi bir alan hakkında bildiklerimizin çoğu, “sızdıran” yan kanallar fikriyle ilgilidir. İnsanlar dolaylı olarak ölçüm yaparak verileri ortaya çıkarmada çok iyidirler. Yan kanal istismarlarını daha zor hale getiren çipler tasarlamak için devam eden çabalar var, ancak onları tamamen kilitlemek çok zor olacak.
Bu, bu güvenlik sorunlarının ciddi olmadığı veya CPU firmalarının, evren elverişsiz olduğu için ellerini kaldırıp bunları düzeltmeyi reddetmeleri gerektiği anlamına gelmez, ancak bu şimdilik dev bir köstebek vurma oyunudur ve bir çipi bu tür saldırılara karşı güvenceye almak mümkün değildir. Yeni güvenlik yöntemleri icat edildikçe, diğer yan kanallara dayanan yeni gözetleme yöntemleri de ortaya çıkabilir. Hyper-Threading’i devre dışı bırakmak gibi bazı düzeltmeler güvenliği artırabilir, ancak belirli uygulamalarda önemli performans isabetleri sağlar.
Neyse ki, şimdilik, tüm bu ileri geri teorik. Intel, bu ifşaatlardan en çok etkilenen şirket oldu, ancak Spectre ve Meltdown’dan bu yana düşen yan kanal ifşaatlarının hiçbiri halka açık bir saldırıda kullanılmadı. AMD, benzer şekilde, Zen 3’ün son açıklamasını hedef alan hiçbir grup veya kuruluştan haberdar değil. Fidye yazılımı gibi sorunlar, yan kanal güvenlik açıklarının yardımına gerek kalmadan son iki yılda çok daha kötü hale geldi.
Uzun vadede AMD, Intel ve diğer satıcıların donanım, yazılım ve bellenim güncellemelerinin bir kombinasyonu ile bu sorunları ortaya çıktıkça düzeltmeye devam etmelerini bekliyoruz. Kavramsal olarak, bunun gibi yan kanal saldırılarını önlemek imkansız değilse de son derece zordur. Belirli sorunlar azaltılabilir veya çözülebilir, ancak spekülatif yürütmenin doğası, belirli koşullar altında belirli miktarda verinin sızacağı anlamına gelir. Çoğu kullanıcının ticaret yapmak isteyeceğinden çok daha fazla performanstan vazgeçmeden bunu önlemek mümkün olmayabilir.
Şimdi Oku:
Günümüzün en yeni teknoloji konularını daha derinlemesine incelemek için ExtremeTech Açıklamaları serimize göz atın.
Kaynak : https://www.extremetech.com/computing/261792-what-is-speculative-execution