Группа исследователей из Бингемтонского и Калифорнийского университетов опубликовали технику атаки, позволяющую восстановить раскладку памяти при использовании механизма защиты ASLR (Address space layout randomization) на системах с процессорами Intel. Атака успешно продемонстрирована на системе с Linux и процессором Intel Haswell для предсказания рандомизированных адресов как для ядра, так и для пространства пользователя. В результате эксперимента смещение ASLR в ядре Linux удалось восстановить за 60 мс. Исследователи считают, что атака не специфична для Linux и также может быть применена к реализациям ASLR в Windows и macOS.

Метод является разновидностью атак по сторонним каналам (side-channel attacks) и основан на косвенном определении адресов, на которые осуществляется переход в процессе ветвления в коде программы, через инициирование коллизий в буфере предсказания ветвлений (Branch Target Buffer, BTB), используемом в процессоре для предсказания переходов и хранения таблицы истории переходов.

Циклично формируя переходы по различным адресам памяти атакующий отслеживает возникновение коллизии хэша, используемого в качестве индекса при записи в таблицу BTB. Далее, подобная коллизия отслеживается в процессе с ASLR. В результате оценки времени срабатывания перехода, единичные факты существенного увеличения времени отклика воспринимаются как признак коллизии, что позволяет определить местоположение известных команд перехода в адресном пространстве ядра или другого пользовательского процесса, пользуясь тем, что команды перехода по разным виртуальным адресам в результате коллизии хэша могут быть сопоставлены с одной и той же записью в BTB, ссылающейся на один целевой адрес перехода.



Источник: http://www.opennet.ru/opennews/art.shtml?num=45350