Intel ve AMD’den bazı mikroişlemciler, şifre verilerini ve diğer hassas materyalleri gizlice sızdırabilen ve her iki yonga üreticisini de inatla kalıcı bir güvenlik açığı olduğunu kanıtlamak için bir kez daha karıştıran yeni keşfedilen bir spekülatif yürütme saldırısına karşı savunmasızdır.
ETH Zürih’ten araştırmacılar, spekülatif yürütme saldırılarının zararlı etkilerini azaltmak için 2018’de tanıtılan retpoline olarak bilinen bir yazılım savunmasından yararlandığı için saldırılarını Retbleed olarak adlandırdı. Spectre olarak da bilinen spekülatif yürütme saldırıları, modern CPU’ların doğrudan veya dolaylı bir talimat dalıyla karşılaştığında, almak üzere oldukları bir sonraki talimatın adresini tahmin etmeleri ve tahmin onaylanmadan önce otomatik olarak yürütmeleri gerçeğinden yararlanır. Spectre, CPU’yu, normalde düşük ayrıcalıklı bir uygulamaya kapalı olan bellekteki hassas verilere erişen bir talimatı yürütmesi için kandırarak çalışır. Retbleed, işlem iptal edildikten sonra verileri çıkarır.
Trambolin mi yoksa sapan mı?
Retpoline, dolaylı dalları spekülatif yürütme saldırılarından izole etmek için bir dizi iade işlemi kullanarak çalışır ve aslında bir trambolinin güvenli bir şekilde sıçramasına neden olan yazılım eşdeğerini kurar. Başka bir deyişle, bir retpoline, birçok araştırmacının duyarlı olmadığını varsaydığı dolaylı sıçramaları ve çağrıları geri dönüşlerle değiştirerek çalışır. Savunma, Ocak 2018’deki orijinal spekülatif yürütme saldırılarının 2. varyantına karşı koymak için tasarlandı. BTI olarak kısaltılan varyant, dolaylı bir dalı “gadget” adı verilen kodu yürütmeye zorlar ve bu da bir yan kanaldan sızacak veriler oluşturur.
Bazı araştırmacılar, kullanılan geri dönüş retpolininin BTI’ye duyarlı olması nedeniyle, retpolinin spekülatif yürütme saldırılarını azaltmak için yeterli olmadığı konusunda yıllardır uyardılar. Linux yaratıcısı Linus Torvalds, bu tür istismarların pratik olmadığını savunarak bu tür uyarıları ünlü bir şekilde reddetti.
ETH Zürih araştırmacıları, retpolininin spekülatif yürütme saldırılarını önlemek için yetersiz olduğunu kesin olarak gösterdiler. Retbleed kavram kanıtları, Kaby Lake ve Coffee Lake mikro mimarilerine ve AMD Zen 1, Zen 1+ ve Zen 2 mikro mimarilerine sahip Intel CPU’lara karşı çalışır.
Araştırmacılar Johannes Wikner ve Kaveh Razavi, “Bir Spectre-BTI azaltması olarak Retpoline, geri dönüş talimatlarını bir saldırı vektörü olarak kabul etmiyor” diye yazdı. “RSB’ye geçerli bir giriş ekleyerek iade talimatlarını savunmak mümkün olsa da [return stack buffer] iade talimatını uygulamadan önce, her dönüşü bu şekilde potansiyel olarak sömürülebilir olarak ele almak, muazzam bir ek yük getirecektir. Önceki çalışma, çağrı yığını derinliğini izleyen bir CPU başına sayacı belirli bir eşiğe ulaştığında, RSB’yi zararsız geri dönüş hedefleriyle koşullu olarak yeniden doldurmaya çalıştı, ancak hiçbir zaman yukarı akış için onaylanmadı. Retbleed ışığında, bu hafifletme Intel tarafından yeniden değerlendiriliyor, ancak AMD CPU’ları farklı bir strateji gerektiriyor.”
Bir e-postada Razavi bunu şöyle açıkladı:
Spectre varyantı 2, çekirdekte keyfi spekülatif yürütme elde etmek için dolaylı dallardan yararlandı. Dolaylı dallar, Spectre varyantı 2’yi azaltmak için retpoline kullanılarak getirilere dönüştürüldü.
Retbleed, iade talimatlarının maalesef dolaylı şubelere benzer belirli koşullar altında sızdığını gösteriyor. Bu koşullar ne yazık ki hem Intel (Skylake ve Skylake tabanlı) hem de AMD (Zen, Zen+ ve Zen2) platformlarında yaygındır. Bu, retpoline’in maalesef başlangıçta yetersiz bir azaltma olduğu anlamına gelir.
Araştırmaya yanıt olarak hem Intel hem de AMD, müşterilere, araştırmacıların operasyonlara yüzde 28’e kadar daha fazla ek yük katacağını söylediği yeni azaltmaları benimsemelerini tavsiye etti.
Retbleed, Intel CPU’lardan saniyede yaklaşık 219 bayt ve yüzde 98 doğrulukla çekirdek belleği sızdırabilir. Bu istismar, saniyede 3,9 kB bant genişliği ile AMD CPU’lardan çekirdek belleği çıkarabilir. Araştırmacılar, Intel CPU’ları çalıştırırken yaklaşık 28 dakika ve AMD CPU’lar için yaklaşık 6 dakika içinde bir Linux bilgisayarın kök parola karmasını fiziksel bellekten bulup sızdırabileceğini söyledi.
Retbleed, CPU’ların tahminlerini yapmak için güvendiği dal tahmin birimini esasen zehirleyen kodu kullanarak çalışır. Zehirlenme tamamlandığında, bu BPU, saldırganın kontrol edebileceği yanlış tahminler yapacaktır.
Araştırmacılar bir blog yazısında, “Ayrıcalıksız bir kullanıcı olarak bile çekirdek adres alanında bulunan şube hedeflerini enjekte edebileceğimizi bulduk” dedi. “Çekirdek adres alanı içindeki şube hedeflerine erişemesek de (böyle bir hedefe dallanmak bir sayfa hatasıyla sonuçlanır) Şube Tahmin Birimi bir şubeyi gözlemledikten sonra kendisini günceller ve yasal olarak yürütüldüğünü varsayar. çekirdek adresi.”