Разработана атака на уязвимость в DRAM-памяти с использованием JavaScript

Разработана атака на уязвимость в DRAM-памяти с использованием JavaScript

Группа исследователей из Корнелльского университета (США) разработала технику проведения атаки с использованием уязвимости RowHammer в современных чипах памяти DRAM, примечательную необходимостью запуска только высокоуровневого кода на языке JavaScript.

При помощи нового метода атака может быть проведена через размещение JavaScript-кода на любом сайте, без необходимости выполнения на стороне жертвы заданных машинных инструкций.

Так как из JavaScript-кода невозможно явно выполнить машинные инструкции CLFLUSH, для очистки процессорного кэша в представленной реализации используются косвенные методы вытеснения данных из кэша. По сравнению с предложенными ранее типовыми алгоритмами вытеснения из кэша эффективность нового метода значительно выше и может достигать 99.99%. Для обращения к фиксированным ячейкам памяти используется особенность браузеров выделять страницы памяти для больших типизированных массивов JavaScript, пишет opennet.ru.

В текущем прототипе эксплоита пока удалось добиться только повреждения памяти как таковой, без доведения атаки до получения прав root. Эксплоит был продемонстрирован на ноутбуке Lenovo x230 (Ivy Bridge) и был работоспособен только при увеличении в настройках интервала регенерации памяти, что иногда делается любителями компьютерных игр для увеличения производительности. С одной стороны для атаки требуются специфичные условия, но с другой стороны заставляет задуматься сам факт совершения атаки подобного уровня на JavaScript. Кроме того, опасность атаки усиливается возможностью её проведения извне, без получения прямого доступа к системе - размещение вредоносного JavaScript-кода на популярных ресурсах может привести к единовременному охвату очень большого числа пользователей.

Напомним, что атака RowHammer вызвана эффектом искажения содержимого отдельных битов памяти DRAM, повреждение которых может быть инициировано через цикличное чтение данных из соседних ячеек памяти (простой цикл с чтением содержимого памяти и очисткой кэша). Проблема обусловлена особенностью работы памяти DRAM, которая формируется как двухмерный массив ячеек, каждая из которых состоит из конденсатора и транзистора. Состояние сохранённого в ячейке значения определяется тем, заряжен или нет конденсатор. Для поддержания заряда применяется цикл регенерации. При выполнении непрерывного чтения одной и той же области памяти из-за постоянного открытия и закрытия линии WL (Word Line), которая управляет транзисторами доступа, возникают флуктуации напряжения, которые могут привести к аномалии, вызывающей небольшую потерю заряда соседних ячеек. Если интенсивность чтения достаточно большая, то ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить его первоначальное состояние, что приведёт к изменению значения сохранённых в ячейке данных. 

Новый вектор ProAttack позволяет незаметно внедрять бэкдоры в LLM

Промпт-инжиниринг давно стал нормой при работе с большими языковыми моделями. Но, как выясняется, вместе с удобством он приносит и новую поверхность атаки. Исследователи представили вектор под названием ProAttack, который позволяет внедрять бэкдор в модель через промпты, причём делать это почти незаметно.

В тестах атака показывала эффективность, близкую к 100%, причём без классических красных флагов вроде странных токенов или подмены меток.

В обычных атаках на NLP-модели злоумышленники добавляют в данные подозрительные слова или фразы и меняют метки. Такие вещи уже научились отслеживать. 

ProAttack идёт другим путём. Вместо явных «триггеров» он использует разные промпты для обучающих данных:

  • для части данных (целевая категория) — вредоносный промпт;
  • для остальных — обычный, чистый.

 

При этом сами тексты выглядят нормально, а метки остаются корректными. В итоге модель учится ассоциировать конкретный промпт с нужным злоумышленнику результатом.

А дальше всё просто: на этапе использования достаточно подать вход с этим промптом, и бэкдор срабатывает.

Особенно опасно, что атака остаётся эффективной даже при небольшом количестве данных. В ряде случаев хватало буквально нескольких (около шести) «отравленных» примеров, чтобы внедрить бэкдор.

Метод протестировали на разных задачах, включая даже медицинские сценарии (например, суммаризацию радиологических отчётов). И там он тоже показал высокую эффективность, практически не ухудшая качество работы модели.

Исследователи проверили ProAttack против популярных методов защиты — ONION, SCPD, back-translation и fine-pruning. Ни один из них не смог полностью остановить атаку.

В качестве возможного решения предлагается использовать LoRA (parameter-efficient fine-tuning). Идея в том, что такие методы ограничивают количество параметров, которые модель может менять при дообучении. А значит, ей сложнее запомнить связь между триггером и целевым результатом.

RSS: Новости на портале Anti-Malware.ru