1 puan yazan GN⁺ 2024-03-26 | 1 yorum | WhatsApp'ta paylaş
  • TRR azaltımının uygulandığı AMD Zen 2·Zen 3 DDR4 sistemlerinde de Rowhammer bit flip’leri meydana geldi; bu da AMD platformlarının da fiilen bir saldırı yüzeyi olabileceğini gösteriyor
  • Araştırma ekibi, AMD’ye uyarlanmış DRAMA tekniğiyle gizli DRAM adres fonksiyonlarını tersine mühendislikten geçirdi ve sistem adresi yeniden eşlemesi nedeniyle fiziksel adres ofset işlemesinin gerekli olduğunu doğruladı
  • ZenHammer fuzzer’ı, Samsung, Micron ve SK Hynix dahil 10 DDR4 aygıtının Zen 2’de 7’sinde, Zen 3’te 6’sında bit flip oluşturdu; Zen 3 aygıtları Intel Coffee Lake’ten daha savunmasız sonuç verdi
  • Mevcut page table, RSA-2048 açık anahtar bozulması ve sudoers.so saldırıları sırasıyla 7/6/4 aygıtta kurulabildi; istismar edilebilir bit flip bulma ortalama süresi 164/267/209 saniyeydi
  • Zen 4’ün DDR5 değerlendirmesinde 10 aygıttan 1’inde yaklaşık 42.000 bit flip oluştu, ancak kalan 9’unda başarısız olundu; bu da DDR5 için ek desen araştırması gerektiğini gösteriyor

AMD Zen’de de görülen Rowhammer bit flip’leri

  • ZenHammer, TRR azaltımı uygulanan DDR4 aygıtlarında AMD Zen 2 ve Zen 3 sistemlerinde Rowhammer bit flip’leri oluşturuyor
  • Böylece AMD sistemlerinin de Intel sistemleri gibi Rowhammer zafiyetine sahip olabileceği doğrulandı
  • AMD’nin x86 masaüstü CPU pazar payının yaklaşık %36 olduğu düşünüldüğünde, saldırı yüzeyi küçümsenecek kadar küçük değil
  • DRAM aygıtları dağıtıldıktan sonra kolayca düzeltilemediğinden, önceki araştırmalar da Rowhammer saldırılarının birçok ortamda pratik olabildiğini göstermişti

AMD DRAM adres fonksiyonlarının tersine mühendisliği ve hammering optimizasyonu

  • AMD sistemlerine uyacak şekilde DRAMA tekniği uygulanarak gizli DRAM adres fonksiyonları tersine mühendislikten geçirildi
  • Daha kararlı sonuçlar elde etmek için zamanlama rutini değiştirildi
  • Sistem adresi yeniden eşlemesi nedeniyle, DRAM adres fonksiyonlarını geri çıkarmadan önce fiziksel adres ofseti uygulanması gerekti ve bu sayede adres fonksiyonları tamamen geri kazanıldı
  • Ancak yalnızca geri kazanılan adres fonksiyonlarını kullanmak bit flip sayısını sınırlı tuttu
    • Zen 2’de 10 aygıtın yalnızca 5’inde bit flip doğrulandı
    • Zen 3’te 10 aygıtın 0’ında bit flip doğrulandı

Refresh senkronizasyonu ve komut dizileri

  • Önceki çalışmalar SMASH ve Blacksmith gibi, refresh senkronizasyonu bit flip oluşturma açısından önemli bir unsur oldu
  • AMD’de, tekrar etmeyen satırları hedef alarak ardışık zamanlama ölçümleri yapmak, hassas ve güvenilir refresh senkronizasyonu için etkiliydi
  • AMD Zen+/3 sistemlerinde uniform olmayan Rowhammer desenlerinin etkinleştirme oranı Intel Coffee Lake’e göre belirgin biçimde daha düşüktü
  • En iyi hammering komut dizisi, normal yükleme MOV ve CLFLUSHOPT kullanarak aggressor’u önbellekten temizleyen ve aggressor erişiminden hemen sonra flush yapan “scatter” tarzıydı
  • Zen 2’den farklı olarak Zen 3’te flush sonrasında açık bir fence gerekli değildi
  • Fence türü ve fence zamanlama politikası da sonuçları etkiledi; araştırma ekibi aygıt başına 6 saat test edilmek üzere 6 desen tanıma ve önbellek kaçınma politikası önerdi
    • Zen 2’de çoğu aygıtta SP_none en iyi sonuç verdi
    • Zen 3’te çoğu durumda SP_pair daha uygundu

DDR4 değerlendirme sonuçları ve istismar edilebilirlik

  • Değerlendirme, Samsung, Micron ve SK Hynix dahil 10 DDR4 DRAM aygıtı üzerinde yapıldı
  • ZenHammer fuzzer’ı, her fence türü mfence, sfence ve her fence zamanlama politikası kombinasyonu için 3 saat çalıştırıldı
  • Her çalıştırmadan sonra, bulunan tüm desenlerle 4MiB aralıkta minisweep yapılarak en iyi desen belirlendi ve en iyi politikanın en iyi deseni 256MB’lık bitişik bellek bölgesinde sweep edildi
  • Sonuçta 10 DDR4 DRAM aygıtının Zen 2’de 7’sinde, Zen 3’te 6’sında bit flip oluştu
  • Bit flip’lerin istismar edilebilirliği, önceki çalışmadaki üç saldırıyla değerlendirildi
    • page table entry içindeki page frame number’ı hedef alarak saldırganın kontrol ettiği bir page table sayfasına pivot etme saldırısı
    • SSH ana makine kimlik doğrulamasında kullanılan ilgili özel anahtarın kurtarılabilmesini sağlayan RSA-2048 açık anahtar saldırısı
    • root yetkisi elde etmeyi mümkün kılan sudoers.so kütüphanesinin parola doğrulama mantığını hedef alan saldırı
  • Mevcut saldırılar sırasıyla 7/6/4 aygıtta kurulabildi ve istismar edilebilir bit flip bulma ortalama süresi 164/267/209 saniyeydi

DDR5 değerlendirmesi, açık kod ve duyuru takvimi

  • AMD Zen 4 üzerinde DDR5 DRAM fonksiyonları da tersine mühendislikten geçirildi ve 10 DDR5 aygıtı değerlendirildi
  • ZenHammer, 10 DDR5 aygıtından 1’inde yaklaşık 42.000 bit flip oluşturdu
  • Bu, genel ticari sistemlerde DDR5 bit flip’lerinin kamuya açık olarak raporlandığı ilk örnek
  • Kalan 9 DDR5 aygıtında bit flip oluşmadığı için, DDR5 aygıtlarında daha etkili desenler bulmaya yönelik ek araştırma gerekiyor
  • Tüm ayrıntılar, Ağustos 2024’te USENIX Security 2024 kapsamında sunulacak makalede yer alıyor
  • ZenHammer fuzzer kodu GitHub üzerinden sunuluyor ve AMD Zen 2/3/4 CPU’larda DRAM aygıtlarının bit flip üretip üretmediğini değerlendirmek için kullanılabiliyor
  • Rowhammer’ın sektör genelinde bilinen bir sorun olduğu ve bu nedenle olağan bir açıklama prosedürünün gerekli olmadığı değerlendirilse de, AMD 26 Şubat 2024’te bilgilendirildi ve AMD’nin talebi üzerine 25 Mart 2024’e kadar kamuya açıklanmadı
  • Bu sayfa yanlışlıkla 21 Mart 2024’te kısa süreliğine çevrimiçi yayımlandı

SSS’deki pratik sınırlamalar

  • AMD sistemlerinin daha önce daha az ele alınmasının nedeni, ilk Rowhammer araştırmalarında Intel sistemlerinde bit flip sayısının çok daha fazla olması, sonraki çalışmaların da ağırlıklı olarak Intel’e odaklanması ve Intel CPU mikro mimarisi hakkında AMD’ye kıyasla daha fazla bilginin bulunmasıydı
  • 10 DDR4 aygıtının Zen 2’de 3’ünde, Zen 3’te 4’ünde bit flip oluşmadı; ancak Intel Coffee Lake’te de bu aygıtlarda bit flip sayısı düşük olduğundan, fuzzer daha fazla ayarlanırsa bit flip’lerin ortaya çıkabileceği düşünülüyor
  • Değerlendirilen aygıt sayısının 10’la sınırlı kalmasının nedeni, laboratuvardaki AMD Zen 2/3 ekipmanlarının sınırlı olması ve bazı deneylerin uzun sürmesiydi; rastgele alt kümede üç DRAM tedarikçisinin aygıtları da yer aldı
  • JEDEC’in sorunu hâlâ çözememiş olmasıyla ilgili olarak, Rowhammer’ı çözmenin zor ama imkânsız olmadığı; önceki ProTRR ve REGA çalışmalarında bunun gösterildiği belirtiliyor
  • DDR3 üzerine önceki araştırma, ECC’nin Rowhammer’ı engelleyemediğini göstermişti; mevcut DDR4 aygıtlarında bit flip sayısı daha fazla olduğundan ECC’nin tam koruma değil, yalnızca istismarı daha zor hâle getiren bir önlem olduğu değerlendiriliyor
  • Refresh oranını iki katına çıkarma yaklaşımı ise performans yükü ve artan güç tüketimi getiriyor; ayrıca Mutlu et al. ve Frigo et al. gibi önceki çalışmalar bunun tam koruma sağlamayan zayıf bir çözüm olduğunu gösteriyor

1 yorum

 
GN⁺ 2024-03-26
Hacker News yorumları
  • Orijinal Rowhammer exploit'inin ortak yazarlarındanım. ECC, bu sorunu genel olarak bir güvenlik meselesinden bir güvenilirlik meselesine dönüştürmekte hâlâ çok etkili
    Kişisel bir sunucu sahibiyseniz, sunucuda ECC varsa ve düzeltilemeyen ECC hatası nedeniyle makinenin durmasını fark edebileceğinizi varsayıyorsanız, güvenlik etkisi büyük değildir
    Ancak çok kiracılı bir host üzerinde VM sağlayan bir bulut işletmecisiyseniz tehdit modeli değişebilir
    Her iki durumda da ECC'siz makinelerden kaçınmak gerekir. TRR, Rowhammer yeni duyulduğunda bile zaten başarısız bir savunmaydı; DRAM üretim ekonomisi değişmediği sürece DRAM bit flip'leri ortadan kalkmayacak

    • Mümkünse ECC bellek kullanmak isterim. Eskiden ECC'li bir TR 2920x kullanıyordum, ama şimdi ECC olmayan Ryzen 7950x kullanıyorum
      Ryzen'in desteklediği tek şey unbuffered ECC; bu da aynı kapasitedeki ECC olmayan bellekten daha yavaş ya da daha pahalı, ya da ikisi birden
      En yeni Threadripper serisi Registered ECC destekliyor, ancak benim gibi ev kullanıcısı için maliyet, thread sayısı ve PCIe lane'leri açısından fazla kaçıyor
    • “DRAM üretim ekonomisi değişmediği sürece DRAM bit flip'leri ortadan kalkmayacak”sa, bu tüm bilgisayarlarda ECC belleğin zorunlu kılınması için yeterli bir gerekçe gibi görünüyor
      Güvenlik riski çok büyük ve her şey fazlasıyla entegre; bu değişimi ertelemek zor. Sırf oyun için bilgisayar kullanan oyuncular bile önemli bilgileri o makinede tutacaktır; bugüne kadar bu değişikliğin yapılmamış olmasını anlamıyorum
    • DDR2'nin Rowhammer'a bağışık olduğunu duydum; bunun gerçekten böyle mi olduğunu, yoksa kimsenin düzgün araştırmadığı için mi böyle sanıldığını merak ediyorum
      Gerçekten bağışık olanın yalnızca SRAM olup olmadığını da merak ediyorum
    • AMD de artık Intel tarzı pazar segmentasyonunu izleyerek çoğu Ryzen CPU'da ECC'yi devre dışı bırakıyor
      Yalnızca Pro ve Threadripper garanti ediliyor; bazı masaüstü Ryzen'lerde ise yalnızca bazı anakartlarda mümkün
    • Mevcut makalelerde tatmin edici yanıt bulamadığım sorular var. Modern patrol read engine'ler, Rowhammer tarzı saldırılara karşı koyacak şekilde bellek erişim örüntülerinden yönlendirme alıyor mu?
      Rowhammer'ın tetiklediği bit flip'lerinin güvenli biçimde önüne geçmek için patrol read engine DRAM'i ne kadar agresif taramalı?
      Geleneksel 64+8'den daha büyük ECC word'leri ve çok bitli hata düzeltme varsa, örüntü zafiyeti bulunan DRAM'lerle bile daha güvenilir sistemler oluşturulabilecek kadar tablo değişir mi?
  • “ECC Rowhammer'ı engelleyemez” tarzı ifadeler çok yanıltıcı. Alıntılanan makale de “ECC algılama doğru kullanıldığında bile toplam bit flip'lerinin %0,65 ila %7,42'si sessiz bozulmaya yol açar… AMD-1 yapılandırmasında düzeltilemeyen hata sistemi çökertir” diyor
    Bir saldırganın istismar edilebilir tek bir bit flip elde etmesi için makineyi onlarca kez durdurması gerekir. Onlarca makine durması fark edilmeden kalabilecek bir şey değildir
    JEDEC'in Rowhammer'a yanıtının berbat olduğuna dikkat çekmek iyi, ama kısa vadeli çözüm olarak ECC küçümsenmemeli

    • Sistemi yöneten operasyon ekibinin bu olguyu yalnızca kararsız donanım değil, bir saldırı olarak değerlendirebileceği bir prosedür olup olmadığını merak ediyorum
    • Belirli bir makine hedefleniyorsa evet, ama exploit'i binlerce makineye saçma tüfek gibi yayarsanız yine de bir botnet elde edebilirsiniz. Sadece ölçeği biraz küçülür
    • Evdeki masaüstüme ECC almamın nedenlerinden biri Rowhammer savunmasıydı
      Zen2 TR platformu; o ifadeyi görünce bir an yüreğim ağzıma geldi. Epey yanıltıcı bir ifade
    • ECC bellek bulunan istemci cihaz önerisi olup olmadığını merak ediyorum
  • Sıradan biri için Rowhammer, Spectre, Meltdown gibi donanım güvenliği sorunlarının gerçek bir risk olup olmadığını merak ediyorum
    Spectre ve Meltdown'ın VM escape gibi saldırılarda sorun olduğunu anlamıştım; bu AWS mühendisinin dert etmesi gereken bir şey gibi görünüyordu, bireysel kullanıcı için değil

    • Çözüm JavaScript'i kapatmak ve güvenilmeyen uygulamaları çalıştırmamak
      Sonra da modern toplumla bağınız kopmuş olacağı için ormandaki kulübeye gidip kendi kendinize yeterek yaşarsınız
    • Soğukkanlı konuşan bir donanım güvenliği araştırmacısı olarak, ortalama kullanıcıyı etkileyen gerçek istismar zafiyetleri çok daha sıradan ve çoğunlukla yazılım tabanlı
    • Herkesin bir tür script allowlist eklentisi kurması ve yalnızca gerçekten güvendiği web sitelerinin JavaScript'ini çalıştırması gerekir
      Şahsen NoScript'i seviyorum. Chrome'da ne seçmek gerekir pek bilmiyorum
      Onun dışında… internette rastgele programları sık sık çalıştırmıyorsunuzdur, değil mi?
      Bu tür hatalarda henüz yüzeyi kazımış durumdayız. Modern donanım o kadar karmaşık ki hepsini bulabileceğimize inanmak zor
    • Rowhammer'ın tarayıcıda çalıştırılabilen bir JavaScript implementasyonu da var: https://github.com/IAIK/rowhammerjs
    • Güvenlik açısından web tarayıcısı bir tür VM hipervizörüdür; her web sitesinin kendi VM'i var sayılır
      Bu yüzden herkes etkilenebilir
  • DDR bit flip saldırılarını çok belli belirsiz anlıyordum; orijinal Hammertime makalesine bakınca aslında okuması kolaymış.
    Henüz tamamını okumadım ama anlaşılır biçimde iyi açıklıyor. “Bit flip” sözünü sayısız kez duymuştum ama doğru düzgün hiç anlamamıştım; bunu görünce kafamda oturdu.
    https://comsec.ethz.ch/wp-content/files/hammertime_raid18.pd...
    Elektrik-elektronik giriş dersi almış gibi oldum. Bunun gerçek donanım üretim kusurlarıyla ilgili olduğunu hiç bilmiyordum.
    Rowhammer adı da ancak o zaman anlam kazandı. Ben çok geride kalmış olabilirim ve bunlar herkesin bildiği şeyler olabilir.
    “Modern DRAM dizilerinin aşırı yoğunluğu nedeniyle küçük üretim kusurları, bitişik hücreler arasında zayıf elektriksel kuplaj oluşturabilir. Bu hücrelerin son derece küçük kapasitansıyla birleştiğinde, bir DRAM satırı bankadan her okunduğunda bitişik satırdaki bellek hücreleri az miktarda yük kaybeder. İki yenileme döngüsü arasında bu yeterince sık gerçekleşirse, etkilenen hücre depolanan bit değerinin tersine döneceği kadar yük kaybedebilir; buna ‘disturbance error’ ya da daha yakın dönemde Rowhammer denir.”

    • Sadece bu açıklamaya bakınca, DRAM üretirken kaçınılmaz bir öz gibi geliyor; ama öyle değil.
      Bunun nedeni DRAM üreticilerinin sınırları aşırı zorlaması. Kâr arayışı yani.
      Yaralanma ve ölümle ilgili Pinto dava uzlaşma maliyetinin, araç tasarımını düzeltme maliyetinden düşük olduğuna karar veren Ford’dan farklı değil.
  • Secure Memory Encryption bunun için işe yarar mı merak ediyorum.
    https://www.amd.com/en/developer/sev.html

    • İşe yarar, ama kararlılıktan büyük ölçüde ödün verilebilir.
      Tek bir bit flip bile ölümcül bir hata olabilir.
  • Donanım güvenliğini pek bilmiyorum; bunun CPU optimizasyonlarından doğan çok sayıdaki kaçınılmaz açıktan biri olup olmadığını ve pratikte uygulanabilirliği düşük bir sınıfa mı girdiğini merak ediyorum.

    • Hatta daha kötü olduğu söylenebilir. Bu, DRAM’in fiziğinden kaynaklanıyor.
      Bir yan kanaldan bilgi sızdıran işlevlerin sınır vakalarından çok daha düşük bir seviyede gerçekleşiyor.
      Veri, ızgara içindeki küçük yükler olarak saklanıyor; yakındaki ızgara noktalarını çokça tersine çevirirseniz, hedef yük tarafına bir miktar yük sızdırabilirsiniz.
      Yük ne kadar küçük ve birbirine ne kadar yakınsa Rowhammer saldırısı o kadar kolaylaşır. Aynı zamanda yük ne kadar küçük ve yakınsa RAM o kadar hızlı, ucuz, yoğun ve verimli olur.
      Hafifletmeler var ama zaten sınırlar sonuna kadar zorlanmış durumda.
    • Bu bir RAM sorunu, CPU sorunu değil.
  • Tam bellek şifreleme, poisoning ve adres XOR açıkken bunun hâlâ çalışıp çalışmadığını merak ediyorum.

    • Bellek şifreleme varsa bu sistemin ele geçirilmesine yol açmaz, sadece sistem çöker.
      Bu yüzden bellek şifreleme kullanmak daha güvenli.
  • “ZenHammer 10 cihazın 9’unda flip oluşturamadı… DDR5 cihazlarda daha etkili desenler bulmak için ek araştırma gerekiyor” deniyorsa, DDR5 için hâlâ biraz zaman var gibi görünüyor.
    Bunun LPDDR5x’i de etkileyip etkilemediğini bilen var mı merak ediyorum.

    • DRAM arayüzü, bellek dizisinin kendisinden oldukça iyi ayrılmış durumda.
      Bu yüzden DDR5, LPDDR5(x), GDDR6(x), HBM3(e) hangisi olduğu asıl soru değil.
      Önemli olan, on-die ECC gibi üreticinin takdirine kalan uygulama ayrıntıları.
  • Zen 2 ve 3’ten bahsediliyor; Zen 1 hakkında bilgi var mı merak ediyorum.
    Yoksa aynı şekilde mi geçerli?