
Суть RowPress показана на этом трудночитаемом графике. Исследователи из ETH Zurich слегка изменили метод атаки: они последовательно, сотни и тысячи раз подряд, обращались к ячейкам памяти так, чтобы контроллер держал «открытым» соответствующий ряд ячеек максимально долго. То есть, по сути, они применили новый порядок обращения к данным. Именно это усовершенствование привело к значительному уменьшению количества операций, необходимых для того, чтобы в соседнем ряду произошел сбой и значение целевой ячейки изменилось. Эффективность атаки таким образом удалось повысить в десятки и сотни раз. В некоторых случаях повреждение данных удавалось вызвать после всего одной активации соседнего ряда ячеек. Самое главное, что работоспособность RowPress была продемонстрирована на вполне актуальных модулях памяти DDR4, которые защищены от предыдущих атак RowHammer.
И RowPress, и RowHammer (этот метод позднее
RowPress не только обходит защиту от RowHammer, но также показывает более высокую эффективность: для достижения результата при прочих равных требуется меньше обращений к памяти. В задачи авторов работы не входила демонстрация практической атаки. Более того, для большинства экспериментов создавались искусственные условия, облегчающие тестирование. В том числе модули памяти принудительно нагревались до 50 (в некоторых случаях — до 80) градусов, что повышало вероятность сбоев. Впрочем, был проведен и эксперимент, максимально приближенный к реальным условиям (использовалась система с процессором Intel Core i5 10-го поколения и 16-гигабайтный модуль памяти с защитой от RowHammer). В нем с помощью атаки RowPress был достигнут успех (повреждение памяти), в то время как атака RowHammer результатов не достигла.
Применение RowHammer или RowPress в реальных атаках выглядит высшим пилотажем. Нужно одновременно:
- допустить выполнение произвольного кода на целевой системе, пусть и с низкими привилегиями;
- нацелить вредоносную программу на работу с ячейками памяти по соседству с целевыми, там, где повреждение данных может вызвать какой-то полезный эффект;
- мириться с тем, что это повреждение будет более-менее случайным (изменится значение какой-то ячейки в ряду, одной или нескольких, либо не изменится вовсе).
И пока выходит так, что он остается доступным, несмотря на принимаемые меры. Это, увы, главная особенность аппаратных уязвимостей: от них нельзя полностью избавиться. В той же защите от RowHammer, например, в 2020 году
Что еще произошло
Эксперты «Лаборатории Касперского»
Компания Trend Micro
Серьезная, активно эксплуатируемая дыра