Разработана атака на уязвимость в 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), которая управляет транзисторами доступа, возникают флуктуации напряжения, которые могут привести к аномалии, вызывающей небольшую потерю заряда соседних ячеек. Если интенсивность чтения достаточно большая, то ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить его первоначальное состояние, что приведёт к изменению значения сохранённых в ячейке данных. 

Подпишитесь на новости

Однотонные обои заставляли Windows 7 тормозить при входе

Казалось бы, что может быть проще для компьютера, чем показать рабочий стол, залитый одним цветом? Но ранняя Windows 7 умудрялась превратить даже эту задачу в 30-секундную медитацию на экране «Добро пожаловать». Проблема возникала, если пользователь выбирал вместо картинки однотонные синие, зелёные, чёрные или другие обои.

После ввода пароля Windows могла держать экран приветствия ровно полминуты, хотя система уже была практически готова к работе.

Дело оказалось не в том, что Windows надрывалась, рисуя синий фон. Как объяснил инженер Microsoft Рэймонд Чен, при входе операционная система ждала от компонентов рабочего стола подтверждения готовности. Код, отвечавший за обои, отправлял такой сигнал только после загрузки изображения.

Если пользователь выбирал сплошной цвет, картинка не загружалась — а значит, нужная ветка кода вообще не запускалась. Сигнал WallpaperReady бесследно пропадал, и система ждала его до срабатывания 30-секундного тайм-аута. После этого Windows махала рукой и наконец показывала рабочий стол.

Похожий фокус возникал при одновременном включении групповых политик Normal Wallpaper и Hide all icons on Desktop. Инициализация значков отключалась, но сообщение о её завершении также не отправлялось. Снова ожидание, снова 30 секунд созерцания экрана приветствия.

Microsoft официально подтвердила баг для Windows 7 и Windows Server 2008 R2 и подготовила исправление в ноябре 2009 года. До установки патча пользователям предлагали гениальный по простоте костыль: создать крошечную картинку нужного цвета и поставить её на фон.

Визуально ничего не менялось, зато Windows видела изображение, получала долгожданный сигнал и переставала задумываться при каждом входе.

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