ASLR-защиту можно взломать, атаковав процессор с помощью JavaScript-кода

Команда исследователей из Амстердамского свободного университета представила миру JavaScript-атаку, которая способна «пробить» ASLR-защиту и представляет опасность для разных микропроцессорных архитектур, в том числе таких производителей, как Intel, AMD, ARM, Allwinner и Nvidia. Атака, как теперь принято, получила собственное имя: ASLR⊕Cache или AnC.

ASLR (Address Space Layout Randomization или рандомизация размещения адресного пространства) – это защитный механизм, поддерживаемый практически всеми современными операционными системами, включая Windows, Linux, macOS, iOS и Android. По сути, ASLR случайным образом изменяет расположение в адресном пространстве различных важных структур данных: образов исполняемых файлов, подгружаемых библиотек, хипа и так далее. Зачастую, для успешной реализации атаки, злоумышленнику необходимо знать, где именно в адресном пространстве происходит выполнение кода того или иного приложения, а ASLR призван защитить систему от таких атак.

Методика, созданная специалистами Амстердамского свободного университета, концентрируется вокруг блока управления памятью (memory management unit, MMU) который отвечает за управление доступом к памяти, запрашиваемым ЦП. По сути, задачи MMU заключаются в управлении виртуальной памятью (трансляции адресов виртуальной памяти в адреса физической памяти), защите памяти, управлении кеш-памятью, арбитражем шины, а также переключением блоков памяти в ряде архитектур.

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

«Мы разработали side-channel атаку, кеш-атаку на EVICT+TIME, которая может определить, какие страницы в таблице страниц была задействованы в ходе обращения MMU», — пишут специалисты.

Исследователи утверждают, что AnC-атака достаточно универсальна, в частности, она будет работать как с Chrome, так и с Firefox. Более того, AnC-атаки могут быть использованы для «возвращения к жизни» других кеш-атак, хотя уязвимости, лежащие в их основе, казалось бы, давно устранены. Исследователи полагают, что защититься от подобных неприятностей могут лишь сами пользователи. Для этого достаточно установить специальное расширение, вроде NoScript, которое запретит выполнение недоверенного JavaScript-кода в браузере.

Также был представлен список процессоров и архитектур, которые были протестированы исследователями и признаны уязвимыми для AnC-атак.

Более подробно о ASLR Cache можно почитать в двух представленных группой отчетах: здесь и здесь (PDF). Кроме того, ниже можно увидеть демонстрацию атаки на видео. Первый ролик показывает атаку, реализованную из-под Firefox на 64-битой Linux-машине. Второй ролик демонстрирует более быстрый вариант AnC.
AnC or ASLR^Cache demonstration in Firefox — https://www.youtube.com/watch?v=qGuZjOoArRw
Fast version of AnC — https://www.youtube.com/watch?v=aILISvZlBAU

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *