1 poin oleh GN⁺ 2024-03-26 | 1 komentar | Bagikan ke WhatsApp
  • Bit flip Rowhammer terjadi bahkan pada sistem AMD Zen 2 dan Zen 3 DDR4 yang menerapkan mitigasi TRR, sehingga platform AMD juga dapat menjadi permukaan serangan yang nyata
  • Tim peneliti merekayasa balik fungsi alamat DRAM rahasia dengan teknik DRAMA yang disesuaikan untuk AMD, dan memastikan bahwa pemrosesan offset alamat fisik diperlukan karena remapping alamat sistem
  • Fuzzer ZenHammer memicu bit flip pada 7 dari 10 perangkat DDR4 di Zen 2, dan 6 di Zen 3, termasuk Samsung, Micron, dan SK Hynix; perangkat Zen 3 menunjukkan hasil yang lebih rentan dibanding Intel Coffee Lake
  • Serangan yang ada terhadap page table, kerusakan kunci publik RSA-2048, dan sudoers.so masing-masing dapat dikonfigurasi pada 7/6/4 perangkat, dengan waktu rata-rata untuk menemukan bit flip yang dapat dieksploitasi sebesar 164/267/209 detik
  • Dalam evaluasi DDR5 pada Zen 4, sekitar 42.000 bit flip terjadi pada 1 dari 10 perangkat, tetapi gagal pada 9 perangkat lainnya, sehingga DDR5 memerlukan riset pola tambahan

Bit flip Rowhammer yang terjadi juga pada AMD Zen

  • ZenHammer memicu bit flip Rowhammer pada sistem AMD Zen 2 dan Zen 3 di perangkat DDR4 yang menerapkan mitigasi TRR
  • Telah dikonfirmasi bahwa sistem AMD, seperti halnya sistem Intel, dapat memiliki kerentanan Rowhammer
  • Mengingat pangsa pasar CPU desktop x86 AMD sekitar 36%, permukaan serangannya tidak kecil
  • Perangkat DRAM sulit diperbaiki dengan mudah setelah terlanjur dikerahkan, dan riset sebelumnya menunjukkan bahwa serangan Rowhammer dapat praktis di berbagai lingkungan

Rekayasa balik fungsi alamat DRAM AMD dan optimasi hammering

  • Dengan menerapkan teknik DRAMA yang disesuaikan untuk sistem AMD, tim merekayasa balik fungsi alamat DRAM rahasia
  • Rutinitas timing diubah untuk mendapatkan hasil yang lebih stabil
  • Karena remapping alamat sistem, offset alamat fisik harus diterapkan sebelum memulihkan fungsi alamat DRAM, dan melalui itu fungsi alamat berhasil dipulihkan sepenuhnya
  • Metode yang hanya menggunakan fungsi alamat yang dipulihkan menghasilkan jumlah bit flip yang terbatas
    • Pada Zen 2, bit flip hanya terkonfirmasi pada 5 dari 10 perangkat
    • Pada Zen 3, bit flip terkonfirmasi pada 0 dari 10 perangkat

Sinkronisasi refresh dan urutan instruksi

  • Seperti riset sebelumnya, SMASH dan Blacksmith, sinkronisasi refresh merupakan faktor penting untuk memicu bit flip
  • Pada AMD, melakukan pengukuran timing beruntun terhadap baris yang tidak berulang efektif untuk sinkronisasi refresh yang presisi dan andal
  • Pada sistem AMD Zen+/3, tingkat aktivasi pola Rowhammer non-uniform jauh lebih rendah dibanding Intel Coffee Lake
  • Urutan instruksi hammering optimal menggunakan load biasa MOV dan CLFLUSHOPT untuk mem-flush aggressor dari cache, dengan gaya “scatter” yang melakukan flush segera setelah akses aggressor
  • Berbeda dari Zen 2, pada Zen 3 tidak diperlukan fence eksplisit setelah flush
  • Jenis fence dan kebijakan penjadwalan fence juga memengaruhi hasil, dan tim peneliti mengusulkan 6 kebijakan pengenalan pola dan penghindaran cache lalu mengujinya masing-masing selama 6 jam per perangkat
    • Pada sebagian besar perangkat Zen 2, SP_none adalah yang optimal
    • Pada sebagian besar kasus Zen 3, SP_pair lebih cocok

Hasil evaluasi DDR4 dan kemungkinan eksploitasi

  • Evaluasi dilakukan terhadap 10 perangkat DDR4 DRAM, termasuk Samsung, Micron, dan SK Hynix
  • Fuzzer ZenHammer dijalankan masing-masing selama 3 jam untuk setiap kombinasi jenis fence mfence, sfence dan kebijakan penjadwalan fence
  • Setelah tiap eksekusi, minisweep dilakukan pada rentang 4MiB dengan semua pola yang ditemukan untuk menentukan pola optimal, lalu pola optimal dari kebijakan optimal di-sweep pada area memori kontinu 256MB
  • Hasilnya, bit flip terjadi pada 7 dari 10 perangkat DDR4 DRAM di Zen 2, dan 6 di Zen 3
  • Kemungkinan eksploitasi bit flip dievaluasi dengan tiga serangan dari riset sebelumnya
    • Serangan yang menarget page frame number pada entri page table untuk melakukan pivot ke halaman page table yang dikendalikan penyerang
    • Serangan terhadap kunci publik RSA-2048 yang memungkinkan pemulihan private key terkait yang digunakan untuk autentikasi host SSH
    • Serangan terhadap logika verifikasi kata sandi pada library sudoers.so yang memungkinkan perolehan hak root
  • Serangan yang ada dapat dikonfigurasi masing-masing pada 7/6/4 perangkat, dan waktu rata-rata untuk menemukan bit flip yang dapat dieksploitasi adalah 164/267/209 detik

Evaluasi DDR5, kode publik, dan jadwal presentasi

  • Pada AMD Zen 4, fungsi DDR5 DRAM juga direkayasa balik dan 10 perangkat DDR5 dievaluasi
  • ZenHammer memicu sekitar 42.000 bit flip pada 1 dari 10 perangkat DDR5
  • Ini adalah laporan publik pertama tentang bit flip DDR5 pada sistem komersial umum
  • Pada 9 perangkat DDR5 lainnya, bit flip tidak terjadi, sehingga riset tambahan diperlukan untuk menemukan pola yang lebih efektif bagi perangkat DDR5
  • Rincian lengkapnya dimuat dalam makalah yang akan dipresentasikan di USENIX Security 2024 pada Agustus 2024
  • Kode fuzzer ZenHammer tersedia di GitHub, dan dapat digunakan untuk mengevaluasi apakah bit flip terjadi pada perangkat DRAM di CPU AMD Zen 2/3/4
  • Rowhammer dianggap sebagai masalah yang dikenal di seluruh industri sehingga prosedur disclosure umum dinilai tidak diperlukan, tetapi AMD diberi tahu pada 26 Februari 2024 dan, atas permintaan AMD, informasi tidak dipublikasikan hingga 25 Maret 2024
  • Halaman ini sempat dipublikasikan online secara tidak sengaja pada 21 Maret 2024

Batasan praktis dari FAQ

  • Alasan sistem AMD sebelumnya kurang banyak dibahas adalah karena dalam riset Rowhammer awal, jumlah bit flip pada sistem Intel jauh lebih banyak, riset lanjutan juga terutama berfokus pada Intel, dan informasi mikroarsitektur CPU Intel lebih banyak diketahui dibanding AMD
  • Dari 10 perangkat DDR4, bit flip tidak terjadi pada 3 perangkat di Zen 2 dan 4 perangkat di Zen 3, tetapi karena jumlah bit flip pada perangkat-perangkat ini juga sedikit di Intel Coffee Lake, diperkirakan bit flip dapat muncul jika fuzzer disetel lebih lanjut
  • Alasan perangkat evaluasi dibatasi menjadi 10 adalah karena jumlah peralatan AMD Zen 2/3 di laboratorium terbatas dan sebagian eksperimen memakan waktu lama; subset acak tersebut mencakup perangkat dari ketiga pemasok DRAM
  • Mengenai alasan JEDEC belum memperbaiki masalah ini, dijelaskan bahwa penyelesaian Rowhammer memang sulit tetapi bukan mustahil, seperti ditunjukkan dalam riset sebelumnya ProTRR dan REGA
  • Riset sebelumnya tentang DDR3 menunjukkan bahwa ECC tidak mampu mencegah Rowhammer, dan karena jumlah bit flip pada perangkat DDR4 saat ini lebih banyak, ECC dinilai bukan perlindungan penuh melainkan hanya membuat eksploitasi menjadi lebih sulit
  • Metode menggandakan refresh rate memiliki overhead performa dan peningkatan konsumsi daya, dan dalam riset sebelumnya seperti Mutlu et al. dan Frigo et al., metode ini terbukti sebagai solusi lemah yang tidak memberikan perlindungan penuh

1 komentar

 
GN⁺ 2024-03-26
Pendapat di Hacker News
  • Saya adalah salah satu penulis asli eksploit Rowhammer. ECC masih sangat efektif untuk mengubah masalah ini, secara umum, dari isu keamanan menjadi isu keandalan
    Jika Anda pemilik server pribadi, selama server memiliki ECC dan Anda berharap bisa menyadari mesin berhenti karena error ECC yang tidak dapat dikoreksi, dampak keamanannya tidak besar
    Namun jika Anda penyedia cloud yang menawarkan VM di host multi-tenant, model ancamannya bisa berbeda
    Bagaimanapun, mesin tanpa ECC harus dihindari. TRR sudah merupakan pertahanan yang gagal bahkan ketika Rowhammer baru diketahui, dan selama keekonomian manufaktur DRAM tidak berubah, bit flip DRAM tidak akan hilang

    • Kalau memungkinkan, saya ingin memakai memori ECC. Dulu saya memakai TR 2920x yang memiliki ECC, tetapi sekarang saya memakai Ryzen 7950x non-ECC
      Yang didukung Ryzen hanyalah ECC unbuffered, yang lebih lambat atau lebih mahal daripada memori non-ECC berkapasitas sama, atau keduanya
      Lini Threadripper terbaru mendukung Registered ECC, tetapi bagi pengguna rumahan seperti saya, biaya, jumlah thread, dan lane PCIe semuanya berlebihan
    • Jika “selama keekonomian manufaktur DRAM tidak berubah, bit flip DRAM tidak akan hilang”, tampaknya itu sudah cukup menjadi argumen untuk mewajibkan memori ECC di semua komputer
      Risiko keamanannya terlalu besar dan semuanya terlalu terintegrasi, sehingga sulit menunda perubahan ini. Bahkan gamer yang memakai komputer murni untuk bermain gim pun kemungkinan menyimpan informasi penting di mesin itu; saya tidak paham mengapa perubahan ini belum terjadi sampai sekarang
    • Saya pernah mendengar bahwa DDR2 kebal terhadap Rowhammer, dan penasaran apakah itu benar, atau hanya karena belum ada yang menelitinya dengan benar
      Saya juga penasaran apakah yang benar-benar kebal hanya SRAM
    • AMD kini juga mengikuti segmentasi pasar ala Intel dan menonaktifkan ECC pada sebagian besar CPU Ryzen
      Hanya Pro dan Threadripper yang dijamin, sementara sebagian Ryzen desktop hanya bisa di sebagian motherboard
    • Ada beberapa pertanyaan yang belum saya temukan jawabannya secara memuaskan di makalah-makalah sebelumnya. Apakah mesin patrol read modern dipandu oleh pola akses memori agar dapat merespons serangan ala Rowhammer?
      Seberapa agresif mesin patrol read harus memindai DRAM agar bisa mendahului bit flip yang dipicu Rowhammer dengan aman?
      Jika ada word ECC yang lebih besar daripada 64+8 tradisional dan koreksi error multi-bit, apakah itu mengubah keadaan hingga memungkinkan sistem yang lebih andal dibuat bahkan dengan DRAM yang memiliki kerentanan pola?
  • Ungkapan seperti “ECC tidak bisa mencegah Rowhammer” sangat menyesatkan. Makalah yang dikutip pun mengatakan, “bahkan ketika deteksi ECC digunakan dengan benar, 0,65%–7,42% dari seluruh bit flip menyebabkan korupsi senyap… pada konfigurasi AMD-1, error yang tidak dapat dikoreksi membuat sistem crash”
    Agar penyerang mendapatkan satu bit flip yang dapat dieksploitasi, ia harus menyebabkan puluhan kali mesin berhenti. Puluhan kali mesin berhenti bukanlah sesuatu yang bisa luput dari perhatian
    Bagus bahwa mereka menyoroti betapa buruknya respons JEDEC terhadap Rowhammer, tetapi sebagai solusi jangka pendek, ECC tidak boleh diremehkan

    • Saya penasaran apakah tim operasi yang mengelola sistem memiliki prosedur untuk menyimpulkan bahwa fenomena itu adalah serangan, bukan sekadar hardware yang tidak stabil
    • Kalau menargetkan mesin tertentu, mungkin begitu. Namun jika eksploit disebar seperti tembakan shotgun ke ribuan mesin, Anda tetap bisa mendapatkan botnet. Skalanya saja yang sedikit lebih kecil
    • Salah satu alasan saya membeli ECC untuk desktop rumah adalah sebagai pertahanan Rowhammer
      Platformnya Zen2 TR, dan saat melihat kalimat itu saya sempat terkejut. Ungkapannya cukup menyesatkan
    • Saya penasaran apakah ada rekomendasi perangkat klien yang memiliki memori ECC
  • Saya penasaran apakah isu keamanan hardware seperti Rowhammer, Spectre, dan Meltdown benar-benar berisiko bagi orang biasa
    Saya memahami Spectre dan Meltdown bermasalah untuk serangan seperti keluar dari VM, tetapi itu tampak seperti hal yang perlu dipikirkan insinyur AWS, bukan pengguna pribadi

    • Solusinya adalah mematikan JavaScript dan tidak menjalankan aplikasi yang tidak tepercaya
      Lalu karena sudah terputus dari masyarakat modern, pergilah ke pondok di hutan dan hidup mandiri
    • Dari sudut pandang peneliti keamanan hardware yang berbicara blak-blakan, kerentanan yang benar-benar dieksploitasi dan berdampak pada pengguna rata-rata jauh lebih biasa dan kebanyakan berbasis software
    • Semua orang seharusnya memasang ekstensi daftar izin skrip dalam bentuk apa pun, dan hanya menjalankan JavaScript dari situs web yang benar-benar mereka percayai
      Secara pribadi saya suka NoScript. Di Chrome saya tidak terlalu yakin harus memilih apa
      Selain itu… bukankah kita tidak sering menjalankan program sembarang dari internet?
      Bug semacam ini masih baru menggores permukaan. Hardware modern terlalu kompleks sehingga sulit percaya kita bisa menemukan semuanya
    • Rowhammer juga memiliki implementasi JavaScript yang dapat dijalankan di browser: https://github.com/IAIK/rowhammerjs
    • Dari sudut pandang keamanan, browser web adalah semacam hypervisor VM, dan setiap situs web seolah memiliki VM-nya sendiri
      Jadi semua orang bisa terdampak
  • Saya sebelumnya hanya memahami serangan bit flip DDR secara sangat samar, tetapi setelah melihat makalah Hammertime yang asli, ternyata benar-benar mudah dibaca
    Saya belum membacanya sampai selesai, tetapi penjelasannya bagus dan mudah dipahami. Saya sudah berkali-kali mendengar istilah bit flip, tetapi belum pernah benar-benar memahaminya; setelah melihat ini, saya mulai menangkap idenya
    https://comsec.ethz.ch/wp-content/files/hammertime_raid18.pd...
    Rasanya seperti mengikuti satu kelas pengantar elektro. Saya sama sekali tidak tahu bahwa ini terkait dengan cacat manufaktur perangkat keras yang nyata
    Nama Rowhammer juga baru terasa masuk akal setelah itu. Mungkin saya yang terlalu ketinggalan dan ini sudah diketahui semua orang
    “Karena kepadatan ekstrem pada array DRAM modern, cacat manufaktur kecil dapat menciptakan kopling listrik yang lemah di antara sel-sel yang berdekatan. Jika digabungkan dengan kapasitansi yang sangat kecil pada sel-sel ini, setiap kali sebuah baris DRAM dibaca dari bank, sel memori pada baris yang berdekatan kehilangan sedikit muatan. Jika ini terjadi cukup sering di antara dua siklus refresh, sel yang terdampak dapat kehilangan muatan cukup banyak hingga nilai bit yang tersimpan terbalik; ini disebut ‘disturbance error’, atau belakangan ini Rowhammer”

    • Jika hanya melihat penjelasan ini, terdengar seperti sifat mendasar yang tak terhindarkan saat membuat DRAM, tetapi sebenarnya tidak demikian
      Ini karena produsen DRAM mendorong batasnya sampai ekstrem. Ini soal mengejar laba
      Tidak berbeda dengan Ford yang menilai biaya penyelesaian gugatan terkait cedera dan kematian pada Pinto lebih rendah daripada biaya memperbaiki desain kendaraan
  • Saya penasaran apakah Secure Memory Encryption membantu dalam hal ini
    https://www.amd.com/en/developer/sev.html

    • Memang membantu, tetapi bisa mengorbankan stabilitas secara signifikan
      Satu bit flip saja bisa menjadi kesalahan fatal
  • Saya sangat kurang paham soal keamanan perangkat keras, jadi saya penasaran apakah ini salah satu dari banyak kerentanan tak terelakkan yang muncul dari optimisasi CPU dan dalam praktiknya termasuk yang kecil kemungkinan untuk dieksploitasi

    • Justru bisa dibilang lebih buruk. Ini muncul dari fisika DRAM
      Ini terjadi pada level yang jauh lebih rendah daripada kasus tepi fitur yang membocorkan informasi lewat side channel
      Data disimpan sebagai muatan kecil di dalam kisi, dan jika Anda membalik banyak titik kisi di dekatnya, Anda bisa membuat sebagian muatan bocor ke arah muatan target
      Semakin kecil muatannya dan semakin dekat jaraknya, semakin mudah serangan Rowhammer dilakukan. Pada saat yang sama, semakin kecil dan dekat muatan tersebut, RAM menjadi semakin cepat, murah, padat, dan efisien
      Ada mitigasinya, tetapi batasnya sudah didorong sejauh mungkin
    • Ini adalah masalah RAM, bukan masalah CPU
  • Saya penasaran apakah ini tetap bekerja meskipun enkripsi memori penuh, poisoning, dan address XOR diaktifkan

    • Dengan enkripsi memori, ini tidak akan berujung pada pengambilalihan sistem, melainkan hanya crash sistem
      Jadi menggunakan enkripsi memori membuatnya lebih aman
  • Jika “ZenHammer tidak berhasil memicu flip pada 9 dari 10 perangkat… diperlukan penelitian tambahan untuk menemukan pola yang lebih efektif pada perangkat DDR5”, sepertinya DDR5 masih punya sedikit waktu
    Saya penasaran apakah ada yang tahu apakah ini juga memengaruhi LPDDR5x

    • Antarmuka DRAM cukup terpisah dengan baik dari array memori itu sendiri
      Jadi apakah itu DDR5, LPDDR5(x), GDDR6(x), atau HBM3(e) bukanlah pertanyaan utamanya
      Yang penting adalah detail implementasi yang bergantung pada kebijakan produsen, seperti on-die ECC
  • Zen 2 dan 3 disebutkan, tetapi saya penasaran apakah ada informasi tentang Zen 1
    Apakah ini berlaku sama saja?