Специалисты по безопасности из Швейцарии обнаружили новую разновидность атаки на оперативную память DRAM, от которой сегодня нет защиты. Новая атака пока не реализована в виде эксплоита и ещё не использовалась злоумышленниками, но производители памяти должны срочно искать защиту, иначе будет поздно.
Исследователи из Швейцарской высшей технической школы Цюриха (ETH Zürich) во главе с профессором Онуром Мутлу (Onur Mutlu) изучали так называемые атаки ошибок чтения в процессе воздействия на модули оперативной памяти DRAM. На данные в ячейках могут влиять как естественные причины, например, попадание высокоэнергетических космических частиц, так и специально организованное воздействие. И если с природными явлениями можно смириться и научиться им противодействовать, используя коды коррекции ошибок, то злонамеренному воздействию противостоять намного сложнее.
Впервые научно о возможности целевого и непрямого изменения данных в ячейках памяти исследователи рассказали в 2015 году. Атака получила название RowHammer. Как следует из названия, серия запросов как молоточком долбила по определённой строке в банке памяти, и это вызывало изменение данных в ячейках, находящихся по соседству.
Механизм атаки базировался на том, что определённые ячейки памяти перегружались запросами настолько, что вызванные этими операциями токи утечек меняли заряды в физически расположенных рядом ячейках. Тем самым, например, можно было атаковать защищённые области памяти, не обращаясь к ней напрямую. Позже было показано, как с помощью атаки RowHammer можно похищать 2048-битные RSA-ключи из защищённой области.
Производители приняли меры, которые помогли защититься от атак типа RowHammer. В частности, у памяти поколения DDR4 есть своеобразный счётчик числа обращений к одной строке — технология Target Row Refresh или TRR, которая при превышении определённого порога перезаписывает ячейки в соседних строках на случай, если в какой-то из ячеек произошло искажение бита. И хотя в 2021 году появился вариант атаки RowHammer, который преодолевает защиту TRR, в целом, этот механизм защищает от широкого спектра подобных атак.
Новый вид атак RowPress ставит крест на всех предыдущих методах защиты от злонамеренного изменения данных в ячейках памяти DRAM. Он использует совсем другой принцип и поэтому опасен. Вместо длительных серий активации строки-агрессора, как это делает RowHammer, атака RowPress просто держит строку открытой дольше определённого времени. Но результат тот же — строка-жертва, на которую никак напрямую не воздействуют, меняет состояния ячеек памяти на нужное злоумышленнику.
Исследователи подчёркивают, что на основе RowPress пока нет готовых рецептов для атаки. Однако потенциальная возможность изменения данных в ячейках DRAM с её помощью открывает окно возможностей, в которое рано или поздно проникнет нарушитель.
Главная беда в том, что атака RowPress менее затратная, чем RowHammer. Для её проведения — для изменения данных в строках-жертвах — необходимо в 10–100 раз меньше активаций, чем в случае использования RowHammer. Такую атаку намного сложнее обнаружить. Для противодействия ей, считают исследователи, понадобятся свои схемотехнические решения и это снизит среднюю производительность DRAM как минимум на 2 % и намного сильнее для ряда приложений.
Готовы ли производители пойти на такие жертвы? Компания Samsung ответила, что изучает возможность защиты модулей памяти DDR4 от нового вида атаки. Компании Micron и SK Hynix на момент написания новости комментарии не предоставили.
Исследователи проанализировали 164 современных модуля компьютерной памяти и убедились, что все они в той или иной мере подвержены уязвимости RowPress. Это совершенно новый механизм воздействия на память, который в сочетании с атакой RowHammer расширяет список и диапазон опасностей. В комбинации RowPress и RowHammer обещают оказаться очень и очень опасными. Также выяснилось, что чем выше температура чипов DRAM, тем легче проходит атака RowPress. Наконец, атака RowPress тем легче, чем более тонкие техпроцессы использовались для производства модулей памяти.
Теоретически защититься от RowPress можно простым сокращением разрешённого времени открытия строки. Исследователи показали, что это время не должно превышать 30 мс. Если строка остаётся открытой дольше этого времени, то происходит, как минимум, одно переключение бита. Производители памяти должны опытным путём найти оптимальную длительность открытия строки, чтобы это не сильно снижало производительность DRAM и не давало бы шансов на проведение атаки RowPress.
Источник: