10.03 // Продемонстрировано использование уязвимости в DRAM-памяти для повышения привилегий в системе
Исследователи безопасности из группы Zero, созданной компанией Google для предотвращения атак, совершаемых с использованием ранее неизвестных уязвимостей, продемонстрировали реальность создания рабочих эксплоитов, использующих уязвимость RowHammer, вызванную особенностями работы современных чипов памяти DRAM.
Изначально проблема с памятью DRAM скептически оценивалась многими экспертами, которые считали, что проблема ограничена лишь возможностью совершения отказа в обслуживании, а применение уязвимости для проведения более серьёзных атак считалось нереалистичным. Исследователи сумели опровергнуть данное мнение и задействовали уязвимость для совершения реальных атак, имеющих критический уровень опасности. Подготовлено два эксплоита, которые можно использовать в обычных условиях на штатном потребительском оборудовании. Первый эксплоит позволяет организовать выполнение кода с правами ядра системы. Второй вариант атаки даёт возможность обойти sandbox-изоляцию Native Client в браузере Chrome (CVE-2015-0565).
В качестве методов блокирования проявления проблемы, кроме внесения изменений на аппаратном уровне, упоминается ряд обходных путей защиты, которые можно применить на уровне ОС или выпустив обновления BIOS и прошивок. Например, повышение частоты обновления DRAM существенно затрудняет проведение атаки, а использование счётчиков производительности CPU позволяет выявлять факты осуществления атак. В Native Client блокировать уязвимость удалось добавив в систему верификации кода запрет на использование инструкции CLFLUSH.
В отчёте также указывается на важность публичного обнародования сведений о выявляемых проблемах. Судя по всему производители знали об уязвимости уже давно, о чём свидетельствуют представленные в стандарте LPDDR4 два метода защиты от уязвимости, но не спешили реализовать исправления и не предупредили пользователей, так как считали уязвимость неопасной и влияющей только на стабильность.
Напомним, что в прошлом году группа исследователей обратила внимание на достаточно простой способ проявления эффекта искажения содержимого отдельных битов памяти DRAM – повреждение отдельных битов DRAM-памяти можно инициировать путём цикличного чтения данных из соседних ячеек памяти (простой цикл с чтением содержимого памяти и очисткой кэша). Проблема обусловлена особенностью работы памяти DRAM, которая формируется как двухмерный массив ячеек, каждая из которых состоит из конденсатора и транзистора.
Состояние сохранённого в ячейке значения определяется тем, заряжен или нет конденсатор. Для поддержания заряда применяется цикл регенерации. При выполнении непрерывного чтения одной и той же области памяти из-за постоянного открытия и закрытия линии WL (Word Line), которая управляет транзисторами доступа, возникают флуктуации напряжения, которые могут привести к аномалии, вызывающей небольшую потерю заряда соседних ячеек. Если интенсивность чтения достаточно большая, то ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить его первоначальное состояние, что приведёт к изменению значения сохранённых в ячейке данных.
Источник: http://www.opennet.ru/opennews/art.shtml?num=41817
комментариев: 11558 документов: 1036 редакций: 4118
Так что,
Надо писать в файл, потом анализировать его содержимое? Или оно в цикле будет крутиться не до бесконечности, потом что-то информативное напишет?
Судя по ссылкам, [1], [2], работает, пока не поймает баг. Если поймает, останавливается и пишет сообщение на экран.
Запрет на чтение списка чужих процессов как-то может на это влиять?
Другой тест больше полчаса в цикле крутится, ничего не находит. Что делать, как пофиксить? SATtva, unknown и остальные, у вас тесты работают?
комментариев: 9796 документов: 488 редакций: 5664
Оригинал новости. Персонального презентационного сайта у этой дыры нет, но вики-страницу уже пилят.
комментариев: 9796 документов: 488 редакций: 5664
Память на дискретных KT315? Сколько квадратных километров занимает гигабайт?
комментариев: 9796 документов: 488 редакций: 5664
Не, пока ещё на замкнутых временных петлях. Скоро можно будет переходить на струны. А так кое-где ещё даже и квантовые модули завалялись.
[/off]
Неинтересно, может ли зловред, запущенный от юзера на вашем ПК, легко получить рута? SATtva'е тоже неинтересно?
Посмотрел, что там пишут:
Не знаю, правильно ли интерпретировал факты этот товарищ. То, что ECC подвержена ошибкам, написано напрямую, а тот факт, что это не проэксплоитить, я не вижу, откуда им взят.
комментариев: 9796 документов: 488 редакций: 5664
комментариев: 1060 документов: 16 редакций: 32
В ECC вроде ошибка в 1 бите может быть исправлена, а в 2 битах обнаружена, но не исправлена – это по идее должно приводить к останову с ошибкой памяти. Соответственно, если в процессе атаки ни разу на этот случай не попасть, то атака будет успешна. Вероятность вроде выглядит невысокой, но тут я ни в чём не уверен. :)
Случаи, вы хотели сказать? Т.е. нужно, чтоб было минимум 3 ошибки (чтобы и не исправлялись и не детектировались).
Поясните для даунов, почему DDR4 решает проблему, хотя даже ECC её не решает. И что можно сказать про софтварные способы коррекции ошибок в памяти (SRAM?)?