Обнаружен простой JS-эксплойт, который обходит защиту ASLR процессоров 22 архитектур
Новости Отредактировано
Эксперты безопасности обнаружили уязвимость в механизме защиты памяти ASLR. Опасна она прежде всего потому, что её невозможно устранить.
5К открытий5К показов
Эксперты безопасности обнаружили в процессорах уязвимость, которая может сделать все меры защиты миллионов устройств от хакеров бессмысленными вне зависимости от операционной системы и запущенных приложений. Но самое главное — программно исправить её нельзя.
Уязвимость кроется в принципе работы блока управления памятью, элемента многих процессоров: он устроен таким образом, что позволяет обходить защиту Address Space Layout Randomization (ASLR).
Что такое ASLR?
ASLR — это критически важная система защиты, используемая во всех современных ОС: Windows, Linux, macOS, Android и BSD. Вкратце, ASLR — это механизм защиты памяти, который рандомизирует место исполнения программы в памяти. Это усложняет загрузку зловредов в конкретные места в памяти при эксплуатации переполнений или схожих багов.
Простыми словами — это всё равно, что грабить дом с закрытыми глазами. Но группа исследователей из Амстердамского свободного университета, известная как VUsec, разработала способ атаки, которые позволяет обойти защиту ASLR на процессорах популярных производителей (Intel, AMD, ARM, Allwinner, Nvidia и других) как минимум 22 различных архитектур.
Атака, названная ASLR Cache, или AnC, опасна ещё и тем, что для её исполнения нужен всего лишь простой JS-код. Он идентифицирует адреса памяти, в которых исполняются системные компоненты и приложения. Таким образом, попасть под удар можно, всего лишь посетив заражённый сайт. Вот пример атаки:
И как устроен этот эксплойт?
Уязвимость кроется в способе общения между микропроцессорами и памятью. Блок управления памятью, имеющийся во всех современных процессорах, ответственный за разметку памяти для программ, постоянно проверяет директорию, называемую таблицей страниц, чтобы следить за этой разметкой.
Для повышения скорости и эффективности устройства обычно хранят таблицу страниц в кеше процессора. Но часть кеша также доступна непроверенным приложениям, в том числе и браузерам.
Таким образом, JS-код, запущенный в браузере после посещения заражённого сайта, тоже имеет доступ к кешу, что позволяет злоумышленникам получить информацию о расположении программных компонентов в виртуальной памяти. Используя эти данные, хакеры могут читать данные из различных участков памяти, что в сочетании с использованием более продвинутых эксплойтов может привести к получению полного контроля над системой.
Исследователи успешно провели атаки в последних версиях Chrome и Firefox на процессорах 22 различных архитектур, причём атака заняла всего лишь полторы минуты — несмотря на встроенную в браузеры ASLR-защиту. Команда VUsec опубликовала два доклада [1, 2], описывающих эту атаку, а также видео с демонстрацией атаки в браузере Firefox, установленном на 64-разрядную Linux-машину:
И что же делать?
Команда сообщила об уязвимости всем необходимым производителям и разработчикам — Intel, AMD, Samsung, Nvidia, Microsoft, Apple, Google и Mozilla — более трёх месяцев назад, но публичное заявление сделала лишь сегодня.
Единственным способом защититься от AnC-атак является включение таких плагинов, как NoScript в Firefox и ScriptSafe в Chrome. Они блокируют исполнение стороннего JS-кода в браузере.
5К открытий5К показов