RowPress RAM saldırısı

Bellek hücrelerini bitflip yapan yeni saldırı yöntemi.

Bellek hücrelerini bitflip yapan yeni saldırı yöntemi.

Bugünün gönderisi, PC’leri, sunucuları ve akıllı telefonları etkileyebilen DRAM yongalarına yönelik yeni bir saldırı hakkında. RowPress adlı yeni bir DRAM saldırı yöntemini araştıran yeni bir çalışma yayınlandığından, gönderinin zamanlaması oldukça uygun. Bir DRAM sırasını birçok kez çekiçlemeyi, yakın sıralarda (fiziksel olarak) bit fliplere neden olmayı ifade eder. Fikrin kendisi yeni değil – Benzer bir şey neredeyse on yıl önce RowHammer adı altında sunuldu. Ancak RowPress daha etkili bir tekniktir. Ama önce, “çekiçlemenin” gerçekte ne anlama geldiğini bulalım.

RAM nasıl çalışır?

RAM çipleri hiç bu kadar güvenilir olmamıştı. Kabaca söylemek gerekirse, içinde bir bit bilginin depolandığı her bellek hücresi minyatür bir pildir. Şarj ettiğimizde hücreye “bir” yazıyoruz. Şarj yoksa “sıfır”dır. Ve bu tekrarlar… saniyede milyonlarca kez! Modern mikroçiplerde, bu hücreler olağanüstü derecede yoğun bir şekilde paketlenmiştir: Hepsi tırnak büyüklüğünde bir kristal üzerinde milyarlarca. Elektronik bileşenlerin yüksek güncelleme hızı ve aşırı minyatürleştirilmesiyle, er ya da geç arıza olması kaçınılmazdır – minyatür “pil” şarjı bitecek ve bir sıfıra dönüşecektir. Bazen arızalar, örneğin bellek yongasının ısıya ve hatta kozmik ışınlara maruz kalması gibi dış etkenlerden kaynaklanır.

Bu tür hatalar kritik hatalara yol açabilir. Bir programın, belirli koşullar karşılandığında erişilmesi gereken bir adresi RAM’de sakladığını hayal edin. Bu adresteki bazı bitler, kodunuz yerine kendiliğinden birden sıfıra dönerse, neyin yürütüleceğini bilemezsiniz. Arızaları önlemek için birçok teknoloji kullanılır; örneğin, bellek hücrelerinin içeriğinin zorunlu bir güncellemesi: Sıralı bilgi okuma/yazma – ne CPU ne de program buna hemen orada ihtiyaç duymasa bile. Veri okuma süreci yıkıcıdır, bu nedenle erişildikten sonra bilgilerin üzerine yazılması gerekir. Ayrıca bir hata düzeltme mekanizması da vardır: Bellek, verilerin doğruluğunu kontrol etmek için hem verileri hem de ayrı bilgileri depolar. Modern bilgisayarlardaki bellek hücrelerinin yüksek yoğunluğunun temel bir özellik olduğunu anlamak önemlidir; başka türlü çalışmazlar.

RowHammer saldırısı

Ancak 2014 RowHammer raporuna geri dönelim. Hem Carnegie Mellon Üniversitesi’nden hem de Intel’den araştırmacılar, dinamik olarak güncellenen RAM’in yukarıda açıklanan özelliklerinin zarar vermek için nasıl kötüye kullanılabileceğini gösterdi. Veri okuma yıkıcıysa ve ardından üzerine yazma geliyorsa, saniyede onlarca veya yüz binlerce kez okuyan bir program yazarsak ne olur? Bu süreç, araştırmacıların “çekiçleme” dediği şeydir.

RAM hücrelerinin yapısının şematik gösterimi

RAM hücrelerinin yapısının şematik gösterimi. Kaynak

Bellek hücreleri bir matris olarak düzenlenir ve belirli bir hücre üzerindeki herhangi bir işlem, bunların tüm aralığına erişmeyi içerir. Bir sıra hücreye ardışık, tekrarlanan erişimin komşu sıraları etkilediği ortaya çıktı. Bu işlem birçok defa tekrarlanırsa komşu satırdaki hücrelerdeki birler ve sıfırlar yer değiştirebilir. 2014 araştırması, o zamanlar standart olan DDR3 bellek modüllerine böyle bir saldırının mümkün olduğunu gösterdi.

Bu neden tehlikeli? Bir bilgisayar korsanının hedeflenen sistemde bazı rasgele kodlar çalıştırabileceğini ancak özel ayrıcalıklara sahip olmadığını hayal edin. Uç örneklerde, kurbana bir bağlantı gönderilen bir web sayfasının kodu bile olabilir. Bu kodun belirli bir RAM alanını “çekiçlemesine” izin verilirse, örneğin işletim sistemi verilerinin depolanabileceği komşu hücrelerde okuma bozukluğuna neden olabilir.

2015 yılında Google araştırmacıları, RowHammer’ın bir bilgisayarın RAM’ine sınırsız erişim elde etmek için nasıl kullanılabileceğini gösterdi. Bu, birçok bilinmeyeni olan oldukça karmaşık bir saldırıdır: Bilgisayarın donmaması ve programın çalışmayı durdurmaması için bir şekilde doğru bellek alanına girmek ve “doğru” veri bozulmasına neden olmak hala gereklidir. Bununla birlikte, böyle bir saldırının teorik olasılığı doğrulandı.

BlackSmith: RowHammer korumalarını atlamak

Veriler bir RowHammer saldırısından nasıl korunur? En basit yol, bir bellek hücre satırından veri okuma talebinden sonra komşu satırlardaki bilgilerin güncellenmesini zorunlu kılmaktır. Bu, verilerin bozulma olasılığını önemli ölçüde azaltır. CPU’lardaki donanım açıklarında olduğu gibi, her koruma yönteminde er ya da geç bir sorun keşfedilir.

2021’de araştırmacılar, belirli koşullar altında RowHammer korumaları yerinde olsa bile arızalara neden olmanın mümkün olduğunu gösteren bir BlackSmith saldırısı gösterdi. Bunu tam olarak nasıl yaptılar? Ya birisi hedef hücrenin yanındaki bellek hücrelerini “çekiçlemek” yerine farklı kombinasyonlar denerse: Hedefin üstündeki ve altındaki satırları yüz binlerce kez sorgulasa ya da belirli bir sırada aynı anda dört satıra saldırsa? İşe yaradı. Neden? Çünkü temel sorun (hafıza hücrelerinin yüksek yoğunluğu) hiçbir yere gitmedi!

RowPress: Artan saldırı etkinliği

Yeni RowPress saldırısı, küçük ama önemli bir değişiklikle, aynı temel prensibi kullanmasına rağmen daha da etkili: Saldırgan, bir satır hücreyi mümkün olduğu kadar uzun süre okumak için açık tutmaya çalışır. Araştırmacılar, bellek çiplerinin ve denetleyicinin nasıl çalıştığına dair, komşu bellek hücresi sıralarını etkileyen daha da fazla rahatsızlığa neden olan başka bir standart özellik bulmayı başardılar. Etkililik açısından (gerekli “çekiçleme” sayısıyla ölçülür – Ne kadar az, o kadar iyi), RowPress, RowHammer’dan onlarca hatta yüzlerce kat daha güçlüdür. Birkaç marjinal örnekte, komşu veriler üzerinde tek bir okuma işleminden sonra istenen bitflip elde edildi.

RAM modüllerinin çalışmasını araştırmak için akış şemasını test edin.

RAM modüllerinin çalışmasını araştırmak için akış şemasını test edin. Kaynak

Bu ne kadar ciddi bir problem? Ev kullanıcılarına dönük bir RowHammer, Blacksmith veya RowPress saldırısı olasılığı çok azdır. Şirketler risk altındadır. Teorik olarak, bu saldırılar genel bulutlarda çalışan sunucuların belleğini hedef alabilir. Ne de olsa sağlayıcılar, kullanıcıların istedikleri herhangi bir kodu çalıştırmaları için bir tür sanal makine tahsis ederek sunucularına erişim sağlar. Bu makinenin sanal ortamından kaçma ve diğer müşterilerin verilerine erişme olanağı olmadığından emin olmalıdırlar. Kabaca konuşursak, böyle bir sanal sistem, bir sunucunun RAM’ine veri okuyabilen ve yazabilen bir programdır; başka bir deyişle — fiziksel bir sunucunun belleğine saldırmak için hazır bir platformdur.

RowPress’i incelemek için kullanılan test düzeneğinin fotoğrafından böyle bir saldırının ne kadar teorik olduğu görülebilir. Bellek modülü ayrı bir panoya taşınmıştır. RAM işlemine ince ayar yapmak için bir tür hata ayıklama aygıtı ona bağlı. Bazı koruma sistemleri devre dışı bırakıldı. En önemlisi, bellek çiplerine sahip modüle bir ısıtıcı takılır ve sıcaklığı 50 hatta 80 santigrat dereceye yükseltir, bu da kendi içinde kazara veya kasıtlı veri bozulma olasılığını artırır.

Donanım saldırısı özellikleri

RowPress’i önceki RowHammer ile karşılaştırdığımızda, bellek erişim yönteminde, saldırganların modül üreticileri tarafından uygulanan korumaları (gerçek bir sistemde, ısıtma veya “hile” yapmadan dahil olmak üzere) atlamasına izin veren küçük bir değişiklik görüyoruz. Araştırmacılar, neyse ki performans üzerinde çok az etkisi olan bu soruna kendi çözümlerini önerdiler. Ancak, çoğu donanım güvenlik açığında olduğu gibi, bunlardan tamamen kurtulmak gerçekçi değildir. Günümüzün bellek çiplerinin yoğunluğunu azaltmak bir çözüm değildir. Diğer yandan, kapasiteleri gittikçe büyümeye devam eder.

“Güvenilir” hata düzeltme uygulamak da sorunu çözmez, çünkü bu RAM’in üçte birini kaplar. Hata düzeltme kodlarına (ECC) dayalı olağan yöntem, saldırıları daha az etkili hale getirir ancak ortadan kaldırmaz. Bu nedenle, RowPress’in gördüğümüz son “çekiç” saldırısı olmayacağını söylemek yanlış olmaz.

İşin olumlu tarafı, bu tür çalışmalar şimdilik büyük ölçüde teorik bir alıştırma olarak kalıyor. Araştırmacılar yeni saldırı vektörleri bulurken cihaz üreticileri de yeni savunmalar buluyor. Elbette, eninde sonunda yanlışlıkla kitlesel sömürü potansiyeline sahip bir güvenlik açığı keşfetmeleri mümkündür. Bununla birlikte, son on yıldaki bu tür çalışmaların geçmişine bakılırsa, bu pek olası görünmüyor.

Ancak bu tür araştırmalar tamamen teorik ve soyut diye de reddedilmemeli: Bugün laboratuvarda çalışan uzmanların yapabildiğini, gerçek siber suçlular yarın ya da beş on yıl sonra yapabilirler. Bulut servis sağlayıcılarının ise son gelişmelerden hemen haberdar olmaları ve güvenlik modellerine sağlam bir şekilde dahil etmeleri gerekiyor.

İpuçları