ZenHammer – метод атаки для спотворення вмісту пам'яті на платформах AMD Zen

Дослідники зі Швейцарської вищої технічної школи Цюріха розробили метод атаки ZenHammer, що є варіантом атак класу RowHammer для зміни вмісту окремих бітів динамічної оперативної пам'яті (DRAM), адаптований для використання на платформах з процесорами AMD. Попередні методи атак класу RowHammer обмежувалися системами на базі процесорів Intel, але проведене дослідження показало, що спотворення осередків пам'яті також можна досягти на платформах з контролерами пам'яті від компанії AMD.

Робота методу продемонстрована на системах AMD Zen 2 та Zen 3 з пам'яттю DDR4 від трьох провідних виробників (Samsung, Micron та SK Hynix). Атака успішно дозволяє обійти механізм TRR (Target Row Refresh), що реалізується в чіпах пам'яті, націлений на захист від спотворення осередків пам'яті в сусідніх рядках. За оцінкою дослідників системи на базі CPU AMD Zen 3 більш вразливі, ніж системи з процесорами Intel Coffee Lake, та їх простіше та ефективніше атакувати. На системах AMD Zen 2 спотворення осередків вдалося досягти для 7 з 10 протестованих чіпів DDR4, а на системах Zen 3 для 6 з 10. Дослідниками також проаналізовано можливість атаки на системи AMD Zen 4 з пам'яттю DDR5, але розроблений для DDR4 метод атаки вдалося успішно відтворити лише на 1 з 10 протестованих чіпів пам'яті DDR5, при цьому сама можливість атаки не виключається, але вимагає розробки ефективніших шаблонів читання, що підходять для пристроїв DDR5.

Для роботи з чіпами AMD вдалося адаптувати раніше розроблені експлоїти, що змінюють вміст записів у таблиці сторінок пам'яті (PTE, page table entry) для отримання привілею ядра, що обходять перевірку пароля/повноважень через модифікацію пам'яті процесу sudo і пошкоджують відкритий ключ RSA-2048, що зберігається в пам'яті. у OpenSSH для відтворення закритого ключа. Атаку на сторінки пам'яті вдалося відтворити на 7 з 10 протестованих чіпів DDR4, атаку на ключ RSA – на 6 чіпах, а атаку на sudo – на 4 чіпах, при цьому час атаки становив 164, 267 та 209 секунд відповідно.

ZenHammer – метод атаки для спотворення вмісту пам'яті на платформах AMD Zen

Метод також може бути застосований для атаки на систему через браузери, для внесення змін з віртуальних машин або організації атаки по мережі. На GitHub під ліцензією MIT розміщено вихідний код інструментарію DARE для зворотного інжинірингу розкладки адрес у пам'яті DRAM, а також два набори утиліт для fuzzing-тестування спотворення бітів у пам'яті - ddr4_zen2_zen3_pub для чіпів DDR4 (Zen 2 and Zen 3) Zen 5), які можуть використовуватися для перевірки своїх систем на схильність до атаки.

ZenHammer – метод атаки для спотворення вмісту пам'яті на платформах AMD Zen

Для спотворення бітів застосовується метод RowHammer, який ґрунтується на тому, що в пам'яті DRAM, яка є двовимірним масивом осередків, що складаються з конденсатора і транзистора, виконання безперервного читання однієї і тієї ж області пам'яті призводить до флуктуації напруги та аномалій, що викликають невелику втрату заряду сусідніх осередків. Якщо інтенсивність читання велика, то сусідній осередок може втратити досить великий обсяг заряду і черговий цикл регенерації не встигне відновити початковий стан, що призведе до зміни значення збережених в осередку даних. У ході дослідника виявлено особливості механізмів мапінгу фізичної пам'яті, що застосовуються в процесорах AMD, і синхронізації з оновленням пам'яті, що дозволили відтворити низькорівневу адресацію DRAM, визначити адреси сусідніх осередків, розробити методи обходу кешування, обчислити шаблони і частоту операцій, що призводять до втрати заряду.

Для захисту від RowHammer виробники чіпів застосовують механізм TRR (Target Row Refresh), який блокує спотворення осередків у окремих випадках, але не захищає від усіх можливих варіантів атаки. Найбільш ефективним методом захисту залишається використання пам'яті з кодами корекції помилок (ECC), які суттєво ускладнюють, але не виключають проведення атак класу RowHammer. Зменшити можливість успішної атаки також дозволяє збільшення частоти регенерації пам'яті.

Компанія AMD опублікувала звіт про проблему, в якій говориться, що в процесорах AMD використовуються контролери пам'яті, що відповідають специфікаціям DDR, і оскільки успішність атаки залежить в основному від налаштувань системи та DRAM-пам'яті, з питаннями щодо усунення проблеми слід звертатися до виробників пам'яті та систем. З існуючих способів ускладнення здійснення атак класу Rowhammer згадується використання ECC-пам'яті, підвищення частоти регенерації пам'яті, відключення режиму відкладеної регенерації та використання процесорів з контролерами, що підтримують режим MAC (Maximum Activate Count) для DDR4 (1, 2 і 3 покоління AMD EPYC «Naple », «Rome» і «Milan») та RFM (Refresh Management) для DDR5 (4 покоління AMD EPYC).

Джерело: opennet.ru

Додати коментар або відгук