Bitdefender'dan araştırmacılar
Güvenlik açığı Spectre v1 sınıfına ait ve talimatların spekülatif olarak yürütülmesinden sonra kalan verilerin işlemci önbelleğinden geri yüklenmesi fikrine dayanıyor. Performansı artırmak için, modern CPU'ların dallanma tahmin birimleri, yürütülme olasılığı en yüksek olan bazı talimatların önleyici olarak yürütülmesini kullanır, ancak bunların yürütülmesini belirleyen tüm faktörlerin hesaplanmasını beklemeden (örneğin, dallanma koşulları veya erişim parametreleri henüz belirlenmediğinde). henüz hesaplanmıştır). Tahmin doğrulanmazsa, işlemci spekülatif yürütmenin sonucunu atar, ancak bu sırada işlenen veriler işlemci önbelleğinde kalır ve önbellek içeriğini yan kanallar aracılığıyla belirleme, erişimdeki değişikliği analiz etme yöntemleri kullanılarak geri yüklenebilir. önbelleğe alınan ve önbelleğe alınmayan veriler için gereken süre.
Yeni saldırının özelliği, kontrol kullanıcı alanından işletim sistemi çekirdeğine (GS) geçtiğinde GS kaydının değerini değiştirmek için işletim sistemlerinde kullanılan SWAPGS komutunun spekülatif yürütülmesi sırasında meydana gelen bir sızıntının kullanılmasıdır. Kullanıcı alanında kullanılan değer, çekirdekteki işlemler sırasında kullanılan değerle değiştirilir). Linux çekirdeğinde GS, çekirdek verilerine erişmek için kullanılan bir per_cpu işaretçisini saklar ve kullanıcı alanı işaretçileri TLS'ye (İş Parçacığı Yerel Depolama) depolar.
Çekirdeğe çekirdek alanından tekrar erişirken veya GS kayıt değişikliği gerektirmeyen kodu çalıştırırken SWAPGS komutunun iki kez çağrılmasını önlemek için, komuttan önce bir kontrol ve koşullu dallanma gerçekleştirilir. Spekülatif yürütme motoru, kontrolün sonucunu beklemeden SWAPGS talimatıyla proaktif olarak kod yürütmeye devam eder ve seçilen dal onaylanmazsa sonucu atar. Bu nedenle, SWAPGS yürütmesini içermeyen bir dal spekülatif olarak seçildiğinde, ancak spekülatif yürütme sırasında GS kaydının değeri SWAPGS talimatı tarafından değiştirilecek ve CPU önbelleğinde sona eren bağımlı bellek işlemlerinde kullanılacaksa bir durum ortaya çıkabilir.
Araştırmacılar, istismar prototipleri hazırlanan iki saldırı senaryosu önerdiler. İlk senaryo, SWAPGS komutunun gerçekte yürütmede kullanılmasına rağmen spekülatif olarak yürütülmediği duruma dayanmaktadır ve ikincisi ise SWAPGS talimatının gerçekte yürütülmemesi gerekmesine rağmen spekülatif olarak yürütüldüğü duruma dayanmaktadır. Her senaryo için, istismar için iki seçenek vardır: Saldırgan, çekirdek alanındaki belirli bir adresteki değeri belirleyebilir ve saldırgan, çekirdekteki rastgele adreslerde belirli bir değeri arayabilir. Bir saldırının gerçekleştirilmesi uzun zaman alır ve istismarın sızıntıyı tamamlaması birkaç saat sürebilir.
Linux çekirdeğinde bir sorun var
Düzeltme, hem ana bilgisayar sistemine hem de konuk ortamlarına bir çekirdek güncellemesinin yüklenmesini ve ardından sistemin yeniden başlatılmasını gerektirir. Linux'ta korumayı devre dışı bırakmak için, SWAPGS güvenlik açığını engellemeye yönelik önlemleri de devre dışı bırakan "nospectre_v1" seçeneği kullanılabilir. Düzeltme şu şekilde mevcuttur:
Bitdefender araştırmacılarına göre Intel, sorun hakkında geçen yılın ağustos ayında bilgilendirildi. Microsoft, Google ve Linux çekirdeği geliştiricilerinin bir düzeltmenin koordineli geliştirilmesine dahil olduğu sorunun programlı olarak çözülmesine karar verildi. Açıklardan yararlanmada kullanılan WRGSBASE talimatının desteklenmemesi nedeniyle Ivy Bridge öncesi eski Intel işlemcilere saldırılması çok daha zordur. ARM, POWER, SPARC, MIPS ve RISC-V sistemleri SWAPGS komutunu desteklemedikleri için sorundan etkilenmezler.
Sorun esas olarak Intel işlemci sahiplerini etkiliyor -
AMD sistemlerinde, rastgele bellek alanlarında belirli değerleri aramak için kullanılabilen GS kaydının temel değerinin spekülatif olarak işlenmesiyle sınırlı olan yalnızca ikinci saldırı senaryosu yeniden üretilebildi. Bu saldırı seçeneğini engellemek için
Kaynak: opennet.ru