Команда исследователей из Амстердамского свободного университета представила миру 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-атак.

Процессор Архитектура Год
Intel Xeon E3-1240 v5 Skylake 2015
Intel Core i7-6700K Skylake 2015
Intel Celeron N2840 Silvermont 2014
Intel Xeon E5-2658 v2 Ivy Bridge EP 2013
Intel Atom C2750 Silvermont 2013
Intel Core i7-4500U Haswell 2013
Intel Core i7-3632QM Ivy Bridge 2012
Intel Core i7-2620QM Sandy Bridge 2011
Intel Core i5 M480 Westmere 2010
Intel Core i7 920 Nehalem 2008
AMD FX-8350 8-Core Piledriver 2012
AMD FX-8320 8-Core Piledriver 2012
AMD FX-8120 8-Core Bulldozer 2011
AMD Athlon II 640 X4 K10 2010
AMD E-350 Bobcat 2010
AMD Phenom 9550 4-Core K10 2008
Allwinner A64 ARM Cortex A53 2016
Samsung Exynos 5800 ARM Cortex A15 2014
Samsung Exynos 5800 ARM Cortex A7 2014
Nvidia Tegra K1 CD580M-A1 ARM Cortex A15 2014
Nvidia Tegra K1 CD570M-A1 ARM Cortex A15; LPAE  2014

 

Более подробно о ASLR⊕Cache можно почитать в двух представленных группой отчетах: здесь и здесь (PDF). Кроме того, ниже можно увидеть демонстрацию атаки на видео. Первый ролик показывает атаку, реализованную из-под Firefox на 64-битой Linux-машине. Второй ролик демонстрирует более быстрый вариант AnC.



Оставить мнение