Retbleed, Intel ve AMD CPU'ların spekülatif yürütme mekanizmasına yönelik yeni bir saldırıdır

ETH Zürih'ten bir grup araştırmacı, CPU'daki dolaylı geçişlerin spekülatif olarak yürütülmesi mekanizmasına yönelik yeni bir saldırı tespit etti; bu, çekirdek belleğinden bilgi çıkarmayı veya sanal makinelerden ana bilgisayar sistemine bir saldırı düzenlemeyi mümkün kılıyor. Güvenlik açıkları kod adı Retbleed (CVE-2022-29900, CVE-2022-29901) olup doğası gereği Spectre-v2 saldırılarına yakındır. Aradaki fark, "jmp" komutunu kullanarak adresi yükleyen dolaylı bir atlama yerine yığından atlanacak adresi getiren "ret" (dönüş) komutunu işlerken keyfi kodun spekülatif yürütülmesinin organizasyonundan kaynaklanmaktadır. bellek veya CPU kaydı.

Saldırgan, hatalı geçiş tahmini için koşullar yaratabilir ve program yürütme mantığı tarafından sağlanmayan bir kod bloğuna hedefli, spekülatif bir geçiş düzenleyebilir. Sonuçta işlemci, dal tahmininin doğrulanmadığını belirleyecek ve işlemi orijinal durumuna geri döndürecektir, ancak spekülatif yürütme sırasında işlenen veriler önbellekte ve mikro mimari arabelleklerde son bulacaktır. Yanlışlıkla yürütülen bir blok belleğe erişirse, spekülatif yürütme, bellekten okunan verilerin paylaşılan önbellekte saklanmasına yol açacaktır.

Saldırgan, spekülatif işlemlerden sonra önbellekte kalan verileri belirlemek için, önbelleğe alınmış ve önbelleğe alınmamış verilere erişim zamanlarındaki değişiklikleri analiz etmek gibi artık verileri belirlemek amacıyla yan kanal tekniklerini kullanabilir. Başka bir ayrıcalık düzeyindeki alanlardan (örneğin, çekirdek belleğinden) bilinçli olarak bilgi çıkarmak için, "araçlar" kullanılır - çekirdekte bulunan ve etkilenebilecek dış koşullara bağlı olarak bellekten verileri spekülatif olarak okumak için uygun olan komut dizileri. saldırgan.

Koşullu ve dolaylı atlama talimatlarını kullanan klasik Spectre sınıfı saldırılara karşı koruma sağlamak için çoğu işletim sistemi, dolaylı atlama işlemlerini işlemcilerin ayrı bir yığın durumu tahmin birimi kullandığı "ret" talimatıyla değiştirmeye dayanan "retpoline" tekniğini kullanır. dallanma tahmin bloğunu kullanmamak. Retpoline 2018'de piyasaya sürüldüğünde Spectre benzeri adres manipülasyonlarının "ret" komutunu kullanan spekülatif dallanma için pratik olmadığına inanılıyordu.

Retbleed saldırı yöntemini geliştiren araştırmacılar, "ret" komutunu kullanarak spekülatif bir geçiş başlatmak için mikro mimari koşullar yaratma olasılığını gösterdiler ve Linux çekirdeğindeki güvenlik açığından yararlanmaya uygun talimat dizilerini (gadget'lar) belirlemek için hazır araçlar yayınladılar. bu tür koşulların kendini gösterdiği durumlar.

Araştırma sırasında, Intel CPU'lu sistemlerde, kullanıcı alanındaki ayrıcalıksız bir süreçten çekirdek belleğinden saniyede 219 bayt hızla ve %98 doğrulukla rastgele verilerin çıkarılmasına olanak tanıyan çalışan bir istismar hazırlandı. AMD işlemcilerde bu açığın verimliliği çok daha yüksek; sızıntı oranı saniyede 3.9 KB. Pratik bir örnek olarak, /etc/shadow dosyasının içeriğini belirlemek için önerilen istismarın nasıl kullanılacağını gösteriyoruz. Intel CPU'lu sistemlerde, kök kullanıcı şifre karmasını belirlemeye yönelik saldırı 28 dakikada, AMD CPU'lu sistemlerde ise 6 dakikada gerçekleştirildi.

Saldırı, 6'un 8. çeyreğinden önce piyasaya sürülen 3-2019. nesil Intel işlemciler (Skylake dahil) ve 1'in 1. çeyreğinden önce piyasaya sürülen Zen 2, Zen 2021+ ve Zen 3 mikro mimarilerini temel alan AMD işlemciler için doğrulandı. AMD ZenXNUMX ve Intel Alder Lake gibi daha yeni işlemci modellerinde ve ARM işlemcilerde sorun mevcut koruma mekanizmaları tarafından engelleniyor. Örneğin, IBRS (Dolaylı Dal Kısıtlı Spekülasyon) talimatlarının kullanılması, saldırılara karşı korunmaya yardımcı olur.

Linux çekirdeği ve Xen hipervizörü için eski CPU'lardaki yazılımlardaki sorunu engelleyecek bir dizi değişiklik hazırlandı. Linux çekirdeği için önerilen yama 68 dosyayı değiştiriyor, 1783 satır ekliyor ve 387 satırı siliyor. Ne yazık ki, koruma ciddi genel giderlere yol açıyor - AMD ve Intel işlemciler üzerine yazılan metinlerde performans düşüşünün %14 ila %39 arasında olduğu tahmin ediliyor. Yeni nesil Intel CPU'larda bulunan ve Linux çekirdeği 4.19'dan başlayarak desteklenen IBRS talimatlarına dayalı korumanın kullanılması daha çok tercih edilir.

Intel işlemcilerde spekülatif dolaylı sıçrama için adres değişikliği, Dönüş Yığın Arabelleğinin alt sınırında (yetersiz akış) bir taşma meydana geldiğinde ortaya çıkan bir özellik sayesinde gerçekleştirilir. Bu tür koşullar oluştuğunda, "ret" komutu, normal dolaylı atlamalar için kullanılana benzer adres seçim mantığını uygulamaya başlar. Linux çekirdeğinde böyle bir geri akışı başlatmak için koşullar yaratan ve sistem çağrıları yoluyla erişilebilen binden fazla yer bulunmuştur.

AMD işlemcilerde, "ret" komutunun spekülatif yürütülmesi, yığına özgü bir ara belleğe (Dönüş Adresi Yığını) referans olmadan gerçekleştirilir ve dal tahmin birimi, "ret" komutunu bir kontrol dönüşü olarak değil, dolaylı bir dal olarak değerlendirir. ve buna göre verileri dolaylı geçişleri tahmin etmek için kullanır. Bu koşullar altında, bir sistem çağrısı yoluyla ulaşılabilen hemen hemen her "geri alma" işleminden yararlanılabilir.

Ek olarak, AMD CPU'larda (CVE-2022-23825, Dal Tipi Karışıklık) hayali dalların uygulanmasıyla ilgili başka bir sorun da tespit edildi - dallanma tahmini koşulları, dallanma tahmin arabelleğinin etkilenmesine izin veren gerekli dallanma talimatları olmadan bile meydana gelebilir "ret" talimatı olmadan. Bu özellik, korumanın uygulanmasını önemli ölçüde karmaşıklaştırır ve dallanma tahmin arabelleğinin daha etkin bir şekilde temizlenmesini gerektirir. Çekirdeğe tam koruma eklenmesinin ek yükü %209 oranında artırması bekleniyor.

Kaynak: opennet.ru

Yorum ekle