ETH Zurich, Vrije Universiteit Amsterdam va Qualcomm tadqiqotchilari jamoasi dinamik tasodifiy kirish xotirasidagi (DRAM) individual bitlarning tarkibini o'zgartirish imkonini beruvchi yangi RowHammer sinfidagi hujum usulini nashr etdilar. Hujumga Blacksmith kod nomi va CVE-2021-42114 identifikatori berildi. Ilgari ma'lum bo'lgan RowHammer sinfidagi usullardan himoyalangan ko'plab DDR4 chiplari bu muammoga zaifdir. GitHub-da zaifliklarni tekshirish uchun tizimlar to'plami nashr etildi.
Eslatib o'tamiz, RowHammer qo'shni xotira kataklaridan ma'lumotlarni tsiklik ravishda o'qish orqali alohida xotira bitlarining tarkibini buzadi. DRAM xotirasi har biri kondensator va tranzistordan iborat ikki o'lchovli katakchalar massivi bo'lgani uchun, bir xil xotira mintaqasini doimiy ravishda o'qish kuchlanish o'zgarishi va anomaliyalarga olib keladi, bu esa qo'shni katakchalarda zaryadning ozgina yo'qolishiga olib keladi. Agar o'qish intensivligi yuqori bo'lsa, qo'shni katakcha sezilarli miqdorda zaryadni yo'qotishi mumkin va keyingi yangilanish sikli asl holatini tiklashga ulgurmaydi, bu esa katakchada saqlangan ma'lumotlar qiymatini o'zgartiradi.
RowHammerdan himoya qilish uchun chip ishlab chiqaruvchilari qo'shni qatorlardagi kataklarning buzilishidan himoya qiluvchi TRR (Target Row Refresh) mexanizmini taklif qilishdi. Biroq, bu himoya "noma'lumlik orqali xavfsizlik" tamoyiliga asoslanganligi sababli, u muammoning asosiy sababini bartaraf etmadi, balki faqat ma'lum, aniq holatlardan himoya qildi, bu esa himoyani chetlab o'tish yo'llarini topishni osonlashtirdi. Masalan, may oyida Google Half-Double usulini taklif qildi, unga TRR himoyasi ta'sir qilmadi, chunki hujum nishonga bevosita tutashgan bo'lmagan kataklarga ta'sir qildi.
Yangi Blacksmith usuli TRR himoyasini chetlab o'tishning boshqa usulini taklif etadi, bu zaryad oqishini keltirib chiqarish uchun turli chastotalardagi ikki yoki undan ortiq tajovuzkor qatorlarga nomuvofiq kirishga asoslangan. Zaryad oqishiga olib keladigan xotiraga kirish naqshini aniqlash uchun ma'lum bir chip uchun hujum parametrlarini avtomatik ravishda tanlaydigan, hujayralarga kirish tartibini, intensivligini va tizimliligini o'zgartiradigan maxsus fuzzer ishlab chiqildi.
Bu yondashuv, bir xil hujayralarni nishonga olmaydigan bo'lib, mavjud TRR himoya usullarini samarasiz qiladi. Bu usullar, u yoki bu shaklda, hujayralarga takroriy kirishlar sonini sanashga va ma'lum qiymatlarga erishilganda, qo'shni hujayralarni qayta zaryadlashni boshlashga asoslangan. Blacksmithda kirish naqshlari maqsadli hujayraning turli tomonlaridagi bir nechta hujayralarga tarqaladi, bu esa chegaralarga yetmasdan zaryad oqishini ta'minlaydi.
Bu usul ilgari taklif qilingan TRR bypass usullariga qaraganda ancha samaraliroq bo'lib chiqdi - tadqiqotchilar Samsung, Micron, SK Hynix va noma'lum ishlab chiqaruvchidan yaqinda sotib olingan 40 ta DDR4 xotira chiplarining barchasida bitlarni buzishga muvaffaq bo'lishdi (ishlab chiqaruvchi to'rtta chipda ko'rsatilmagan). Taqqoslash uchun, ilgari xuddi shu tadqiqotchilar tomonidan taklif qilingan TRRespass usuli o'sha paytda sinovdan o'tgan 42 ta chipdan atigi 13 tasi uchun samarali bo'lgan.
Blacksmith usuli odatda bozordagi barcha DRAM chiplarining 94 foiziga qo'llanilishi kutilsa-da, tadqiqotchilarning ta'kidlashicha, ba'zi chiplar boshqalarga qaraganda zaifroq va hujum qilish osonroq. Ushbu chiplarda xatolarni tuzatish kodlari (ECC) va xotirani ikki marta yangilashdan foydalanish to'liq himoyani ta'minlamaydi, lekin ekspluatatsiyani murakkablashtiradi. Shunisi e'tiborga loyiqki, zaiflikni mavjud chiplarda bloklab bo'lmaydi va yangi apparat himoyasini talab qiladi, ya'ni hujum ko'p yillar davomida saqlanib qoladi.
Blacksmith yordamida xotira sahifasi jadvali yozuvidagi (PTE) yozuvlar tarkibini o'zgartirish, yadro imtiyozlarini olish, OpenSSH da saqlangan ommaviy RSA-2048 kalitiga zarar yetkazish kabi amaliy misollar keltirilgan (siz ommaviy kalitni boshqa birovning kalitiga olib kirishingiz mumkin). virtual mashina (tajovuzkorning jabrlanuvchining virtual mashinasiga ulanish uchun shaxsiy kalitiga mos keladi) va root imtiyozlarini olish uchun sudo jarayonining xotirasini o'zgartirish orqali imtiyozlarni tekshirishni chetlab o'tish. Chipga qarab, bitta maqsad bitini o'zgartirish 3 soniyadan bir necha soatgacha davom etishi mumkin.

Bundan tashqari, Antmicro tomonidan Google uchun ishlab chiqilgan RowHammer hujumlariga qarshi xotira himoyasi usullarini sinab ko'rish uchun LiteX Row Hammer Tester ochiq kodli tizimi diqqatga sazovordir. Ushbu tizim DRAM chipiga to'g'ridan-to'g'ri yuboriladigan buyruqlarni to'liq boshqarish uchun FPGA dan foydalanadi va xotira kontrollerining ta'sirini yo'q qiladi. FPGA bilan o'zaro ishlash uchun Python asboblar to'plami mavjud. FPGA asosidagi shlyuz ma'lumotlar paketi modulini (xotiraga kirish naqshlarini aniqlaydi), Payload Executorni, LiteDRAM asosidagi kontrollerni (qatorlarni faollashtirish va xotirani yangilashni o'z ichiga olgan barcha DRAM bilan bog'liq mantiqni boshqaradi) va VexRiscv protsessorini o'z ichiga oladi. Loyiha ishi Apache 2.0 litsenziyasi ostida litsenziyalangan. Lattice ECP5, Xilinx Series 6, 7, UltraScale va UltraScale+ kabi turli xil FPGA platformalari qo'llab-quvvatlanadi.
Manba: opennet.ru
