Phoenix: DDR5 belleğe karşı Rowhammer saldırısı

İsviçre’deki araştırmacılar, DDR5 bellek modüllerine saldırmanın bir yolunu buldu.

Phoenix: DDR5'e karşı çalışan Rowhammer

2025 yılının Eylül ayında, ETH Zürih (İsviçre Federal Teknoloji Enstitüsü) araştırmacıları tarafından, DDR5 bellek modülleri üzerinde çalışan Rowhammer saldırısının bir modifikasyonu olan Phoenix’i tanıtan bir makale yayınlandı. Yazarlar, yeni saldırının test edilen 15 modüle karşı etkinliğini göstermekle kalmadı, aynı zamanda; bellekten veri okuma ve yazma, bellekte depolanan özel şifreleme anahtarını çalma ve Linux’un sudo yardımcı programı korumalarını atlatarak ayrıcalıkları yükseltme olmak üzere, üç pratik kullanım örneği de önerdi.

Rowhammer saldırısı: Kısa bir tarihçe

Bu oldukça karmaşık çalışmayı anlamak için, önce Rowhammer’ın tarihçesini kısaca gözden geçirmemiz gerekir. Rowhammer saldırısı ilk olarak 2014 yılında yayınlanan bir araştırma makalesinde tanımlanmıştır. O zamanlar, Carnegie Mellon Üniversitesi ve Intel’den araştırmacılar, bellek hücrelerinin sıralarına tekrar tekrar erişmenin, bitişik bellek hücrelerinin değerinin değişmesine neden olabileceğini göstermişlerdi. Bu komşu hücreler kritik veriler içerebilir ve bu verilerin değiştirilmesi ciddi sonuçlara (örneğin ayrıcalık yükseltme) yol açabilir.

Bunun nedeni, bellek yongasındaki her hücrenin esasen bir kondansatör (elektrik yükünü sadece kısa bir süre tutabilen basit bir bileşen) olmasıdır. Bu nedenle bu bellekler geçicidir; bilgisayar veya sunucu kapatıldığında veriler kaybolur. Aynı nedenden dolayı, hücrelerdeki yük sık sık yenilenmelidir, o bellek bölgesine kimse erişmiyor olsa bile.

Bellek hücreleri izole değildir; satır ve sütunlar halinde düzenlenmiştir ve birbirleriyle etkileşime girerek parazite neden olabilirler. Bir satıra erişim, komşu satırı etkileyebilir; örneğin, bir satırı yenilemek başka bir satırdaki verileri bozabilir. Yıllar boyunca, bu etki yalnızca bellek üreticileri tarafından biliniyordu, onlar da güvenilirliği artırmak adına bu etkiyi en aza indirgemek için ellerinden geleni yaptılar. Ancak hücreler küçülüp birbirine daha sıkı bir şekilde yerleştirildikçe, “sıralı çekiçleme” etkisi gerçek dünyadaki saldırılarda kullanılabilir hale geldi.

Rowhammer saldırısı gösterildikten sonra, bellek geliştiricileri savunma mekanizmaları geliştirmeye başladı ve bunun sonucunda Target Row Refresh (TRR) donanım teknolojisi ortaya çıktı. TRR teoride basittir; satırlara agresif erişimi izler ve tespit edildiğinde, bitişik satırları zorla yeniler. Uygulamada bu, pek etkili olmadı. 2021 yılında araştırmacılar, daha sofistike bellek hücresi erişim modelleri kullanarak TRR’yi atlatan Blacksmith saldırısını tanımladılar.

Geliştiriciler yeniden uyum sağladılar; DDR5 modüllerinde Rowhammer benzeri saldırılara karşı daha da gelişmiş savunma mekanizmaları eklediler ve zorunlu yenileme hızını artırdılar. Yeni saldırıların önlenmesi için üreticiler, hangi önlemlerin alındığını açıklamaktan kaçındılar. Bu, birçok kişinin DDR5’in Rowhammer sorununu etkili bir şekilde çözdüğüne inanmasına neden oldu. Ancak, geçen yıl, aynı ETH Zürih’ten araştırmacılar DDR5 modüllerine başarılı bir şekilde saldırmayı başardılar. Ancak belirli koşullar gerekliydi: Bellek, AMD Zen 2 veya Zen 3 işlemcilerle eşleştirilmeliydi ve bu durumda bile bazı modüller etkilenmedi.

Yeni saldırının özellikleri

Phoenix’i geliştirmek için araştırmacılar TRR mekanizmasında tersine mühendislik uyguladılar. Çeşitli bellek satırı erişim modellerindeki davranışını analiz ettiler ve bitişik satırlar için korumanın tetiklenip tetiklenmediğini kontrol ettiler. TRR’nin önemli ölçüde daha karmaşık hale geldiği ve önceden bilinen erişim modellerinin artık işe yaramadığı ortaya çıktı. Koruma artık bu modelleri potansiyel olarak tehlikeli ibaresiyle doğru bir şekilde işaretliyor ve bitişik satırları zorla yeniliyor. Sonuç olarak, araştırmacılar 128 TRR izlemeli bellek erişiminden sonra, savunmaların daha zayıf olduğu 64 erişimlik bir “fırsat penceresi” ortaya çıktığını keşfettiler. Koruma sistemi tamamen başarısız olduğu için değil, ancak hedef bellek hücresindeki değer değişikliğini önlemek için verdiği yanıtlar yetersiz olduğu için. İkinci pencere, 2608 yenileme aralığı boyunca bellek hücrelerine erişildikten sonra görünür.

Araştırmacılar daha sonra bu savunmasız noktaları ayrıntılı olarak inceleyerek, savunma mekanizmalarını devre dışı bırakırken bellek hücrelerine son derece hedefli bir saldırı gerçekleştirdiler. Basitçe söylemek gerekirse, saldırı şu şekilde işler: Kötü amaçlı kod, TRR mekanizmasını yanlış bir güvenlik hissine kapılmaya yönlendiren bir dizi sahte erişim gerçekleştirir. Ardından saldırının aktif aşaması gerçekleşir ve bu aşama sonunda hedef hücre değerini değiştirir. Sonuç olarak, ekip, saldırının pazar liderlerinden biri olan SK Hynix tarafından üretilen test edilmiş 15 DDR5 modülünün tümünde güvenilir bir şekilde işe yaradığını doğruladı.

Üç gerçek dünya saldırı senaryosu

Gerçekçi bir saldırı, kesin olarak tanımlanmış bir bellek bölgesindeki bir değeri değiştirmelidir ki bu zor bir görevdir. İlk olarak, saldırganın hedef yazılım hakkında ayrıntılı bilgiye sahip olması gerekir. Birden fazla geleneksel güvenlik kontrolünü atlatmaları gerekir ve hedefi sadece bir veya iki bit kaçırmak başarılı bir saldırı yerine sistemin çökmesine neden olabilir.

İsviçreli araştırmacılar, Phoenix’in gerçek dünyada hasara yol açabileceğini kanıtlamaya çalıştılar. Üç saldırı senaryosunu değerlendirdiler. Birincisi (PTE), RAM verilerinin keyfi okuma/yazma koşullarını oluşturmak için sayfa tablosuna erişmeyi içeriyordu. İkincisi (RSA), bellekten bir RSA-2048 özel şifreleme anahtarı çalmayı amaçlıyordu. Üçüncüsü (sudo), ayrıcalık yükseltme amacıyla standart Linux sudo yardımcı programının korumalarını atlatmayı içeriyordu. Çalışmanın nihai sonuçları bu tabloda gösterilmiştir:

Phoenix saldırı etkinliği.

Phoenix saldırısının etkinliği. Kaynak

Bazı modüllerde ilk saldırı varyantı (128 yenileme aralığı) etkili olurken, diğerlerinde yalnızca ikinci yöntem (2608 aralık) işe yaradı. Bazı deneylerde RSA anahtar hırsızlığı ve sudo istismarları başarılı olamadı. Ancak, tüm modüller için rastgele bellek okuma/yazma yöntemi bulundu ve bu tür saldırılar için istismar süresi yaklaşık beş saniye ile yedi dakika arasında olmak üzere nispeten kısaydı. Bu, Rowhammer saldırılarının, son derece sınırlı bir dizi senaryoda da olsa, gerçek bir risk oluşturduğunu göstermek için yeterlidir.

Alaka düzeyi ve karşı önlemler

Phoenix saldırısı, Rowhammer tarzı saldırıların DDR4 ve DDR3’te olduğu kadar DDR5 modüllerine de aynı derecede etkili bir şekilde gerçekleştirilebileceğini göstermektedir. Sadece tek bir tedarikçinin modülleri test edilmiş ve araştırmacılar bu tedarikçinin TRR algoritmasında düzeltilmesi kolay bir zayıflık keşfetmiş olsa da bu, bellek modüllerinin güvenlik araştırmalarında önemli bir adımdır.

Yazarlar, Rowhammer tipi saldırılara karşı çeşitli önlemler önerdiler. İlk olarak, tüm hücrelerde zorunlu yenileme aralığını azaltmak saldırıyı önemli ölçüde engelleyebilir. Bu, güç tüketimini ve çip sıcaklığını artırabilir, ancak basit bir çözümdür. İkincisi, hata düzeltme kodu (ECC) içeren bellek kullanılabilir. Bu, Rowhammer saldırılarını karmaşıklaştırır, ancak, biraz da paradoksal bir şekilde, bunları tamamen imkansız hale getirmez.

Bu bariz önlemlerin ötesinde, yazarlar iki önlem daha belirtmektedir. İlki, halihazırda uygulanmakta olan Hassas Yenileme Modu koruma yöntemidir. İşlemcinin bellek denetleyicisine entegre edilmiş olan bu özellik, Rowhammer saldırılarına karşı direnç sağlamak için bellek hücresi yenileme davranışını değiştirir. İkincisi ise, araştırmacılar bellek modülü ve çip geliştiricilerini, özel güvenlik önlemlerine (“belirsizlik yoluyla güvenlik”) güvenmekten vazgeçmeye çağırırlar. Bunun yerine, kriptografide yaygın olarak kullanılan bir yaklaşımı benimsemeyi önerirler. Bu yaklaşımda güvenlik algoritmaları kamuya açıktır ve bağımsız testlere tabi tutulur.

İpuçları