На прошлой неделе исследователи из Швейцарской высшей технической школы Цюриха опубликовали работу, в которой показали новый метод атаки на ячейки оперативной памяти. Метод RowPress развивает идеи атаки RowHammer, впервые показанной в 2014 году ещё на модулях памяти стандарта DDR3. Если предельно упростить описание этой атаки, RowHammer вызывает сбои в ячейках памяти путём многократных операций чтения соседних ячеек. Вызванная таким «постукиванием» перемена значения в целевой ячейке с единицы на ноль или наоборот может эксплуатироваться для, например, доступа к защищённым данным в оперативной памяти.

Суть RowPress показана на этом трудночитаемом графике. Исследователи из ETH Zurich слегка изменили метод атаки: они последовательно, сотни и тысячи раз подряд, обращались к ячейкам памяти так, чтобы контроллер держал «открытым» соответствующий ряд ячеек максимально долго. То есть, по сути, они применили новый порядок обращения к данным. Именно это усовершенствование привело к значительному уменьшению количества операций, необходимых для того, чтобы в соседнем ряду произошел сбой и значение целевой ячейки изменилось. Эффективность атаки таким образом удалось повысить в десятки и сотни раз. В некоторых случаях повреждение данных удавалось вызвать после всего одной активации соседнего ряда ячеек. Самое главное, что работоспособность RowPress была продемонстрирована на вполне актуальных модулях памяти DDR4, которые защищены от предыдущих атак RowHammer.

И RowPress, и RowHammer (этот метод позднее адаптировали для чипов DDR4) можно отнести к аппаратным атакам. Атакующая программа задействует какую-то особенность «железа», причём избавиться от этого аппаратного недостатка крайне сложно. Атаки на оперативную память, таким образом, имеют нечто общее с уязвимостями типа Spectre в процессорах. В случае с памятью фундаментальной проблемой является высокая плотность ячеек памяти, из-за которой многократные запросы к одной области памяти (куда у атакующей программы есть доступ) могут повреждать соседние области (к которым доступа нет).

RowPress не только обходит защиту от RowHammer, но также показывает более высокую эффективность: для достижения результата при прочих равных требуется меньше обращений к памяти. В задачи авторов работы не входила демонстрация практической атаки. Более того, для большинства экспериментов создавались искусственные условия, облегчающие тестирование. В том числе модули памяти принудительно нагревались до 50 (в некоторых случаях — до 80) градусов, что повышало вероятность сбоев. Впрочем, был проведён эксперимент, максимально приближенный к реальным условиям (использовалась система с процессором Intel Core i5 10-го поколения и 16-гигабайтный модуль памяти с защитой от RowHammer). В нём с помощью атаки RowPress был достигнут успех (повреждение памяти), в то время как атака RowHammer результатов не достигла.

Применение RowHammer или RowPress в реальных атаках выглядит “высшим пилотажем”. Нужно одновременно:

  • допустить выполнение произвольного кода на целевой системе, пусть и с низкими привилегиями
  • нацелить вредоносную программу на работу с ячейками памяти по соседству с целевыми, там, где повреждение данных может вызвать какой-то полезный эффект
  • мириться с тем, что это повреждение будет более-менее случайным (изменится значение какой-то ячейки в ряду, одной или нескольких, либо не изменится вовсе)

Такая практическая атака была продемонстрирована в 2015 году: с помощью RowHammer был получен неограниченный доступ к оперативной памяти в ОС Linux. Вполне вероятно, что будут появляться и другие работающие методы атаки на оперативную память, — главное, чтобы основной вектор атаки был доступен.

И пока выходит так, что он остаётся доступным, несмотря на принимаемые меры. Это, увы, главная особенность аппаратных уязвимостей: от них нельзя полностью избавиться. В той же защите от RowHammer, например, в 2020 году была обнаружена лазейка. Авторы работы RowPress обсуждают потенциальные методы противодействия новому методу атаки, включая адаптацию существующей защиты от RowHammer. Примечательно, что память с коррекцией ошибок ECC затрудняет атаку, но не исключает её полностью. К счастью, предложенные методы защиты от RowPress лишь незначительно сказываются на производительности.

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставь комментарий! Поделись своим мнениемx