Группа исследователей из Корнелльского университета (США) разработала (http://arxiv.org/abs/1507.06955) технику проведения атаки с использованием уязвимости RowHammer (https://www.opennet.ru/opennews/art.shtml?num=41340) в современных чипах памяти DRAM, примечательную необходимостью запуска только высокоуровневого кода на языке JavaScript. При помощи нового метода атака может быть проведена через размещение JavaScript-кода на любом сайте, без необходимости выполнения на стороне жертвы машинных инструкций CLFLUSH.
Так как из JavaScript-кода невозможно явно выполнить специальные машинные инструкции, для очистки процессорного кэша в представленной реализации используются косвенные методы вытеснения данных из кэша. По сравнению с предложенными ранее типовыми алгоритмами вытеснения из кэша эффективность нового метода значительно выше и может достигать 99.99%.
Ограничением разработанного прототипа эксплоита является невозможность доведения атаки до получения прав root, так как содержимое ячеек памяти изменяется непредсказуемым образом. При этом, с другой стороны, опасность атаки усиливается возможностью её проведения извне, без получения прямого доступа к системе - размещение вредоносного JavaScript-кода на популярных ресурсах может привести к единовременному охвату очень большого числа пользователей.
Напомним, что атака RowHammer вызвана эффектом искажения содержимого отдельных битов памяти DRAM, повреждение которых может быть инициировано через цикличное чтение данных из соседних ячеек памяти (простой цикл с чтением содержимого памяти и очисткой кэша). Проблема обусловлена особенностью работы памяти DRAM, которая формируется как двухмерный массив ячеек, каждая из которых состоит из конденсатора и транзистора. Состояние сохранённого в ячейке значения определяется тем, заряжен или нет конденсатор. Для поддержания заряда применяется цикл регенерации. При выполнении непрерывного чтения одной и той же области памяти из-за постоянного открытия и закрытия линии WL (Word Line), которая управляет транзисторами доступа, возникают флуктуации напряжения, которые могут привести к аномалии, вызывающей небольшую потерю заряда соседних ячеек. Если интенсивность чтения достаточно большая, то ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить его первоначальное состояние, что приведёт к изменению значения сохранённых в ячейке данных.
URL: http://arstechnica.com/security/2015/08/dram-bitflipping-exp.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=42730