На конференции 38C3 представлен фреймворк FlippyRAM, предназначенный для проверки наличия уязвимостей, позволяющих совершить атаки класса Rowhammer для изменения содержимого оперативной памяти. Код инструментария написан на С++ и распространяется под лицензией MIT. Для упрощения тестирования сформирован готовый live-дистрибутив (1 ГБ), позволяющий провести проверку, загрузившись с USB Flash, а также образ контейнера для Docker.
Целью проекта является привлечение пользователей к участию в исследовании, пытающемся собрать статистику о том, насколько уязвимости класса Rowhammer проявляются в системах, находящихся в обиходе. Данные о результате тестирования могут быть отправлены как из загруженного дистрибутива, так и вручную добавлены на сайт исследования.
Метод атаки Rowhammer был предложен 10 лет назад, после чего между исследователями безопасности и производителями оборудования началась игра в “кошки-мышки” – производители чипов памяти пытались блокировать уязвимость, а исследователи находили новые способы её обхода. Помимо чипов DDR3 на системах Intel x86, были выявлены методы атаки на чипы DDR4 и DDR5, системы с процессорами AMD и ARM, варианты обхода коррекции ошибок ECC, способы совершения атаки по сети и через выполнение JavaScript-кода в браузере.
Атака RowHammer позволяет исказить содержимое отдельных битов памяти DRAM путём цикличного чтения данных из соседних ячеек памяти. Так как память DRAM представляет собой двухмерный массив ячеек, каждая из которых состоит из конденсатора и транзистора, выполнение непрерывного чтения одной и той же области памяти приводит к флуктуации напряжения и аномалиям, вызывающим небольшую потерю заряда соседних ячеек. Если интенсивность чтения большая, то соседняя ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить её первоначальное состояние, что приведёт к изменению значения сохранённых в ячейке данных. Для защиты от RowHammer производители чипов добавили механизм TRR (Target Row Refresh), который блокирует искажение ячеек в частных случаях, но не защищает от всех возможных вариантов атаки.