Группа исследователей из Aleph Security нашла ряд атак, использующих уязвимость Spectre, которые позволяют обойти средства защиты популярных браузеров. В отчете речь идет о Spectre v1 (CVE-2017-5753) — это разновидность уязвимости Spectre, которую можно эксплуатировать через браузер.
Защита от нее была реализована еще до публикации Aleph Security (V8 — Chome&Chromium, Chrome, Chromium, Firefox, Edge/IE, Safari Webkit), так как исследователи заблаговременно связались с разработчиками. Принципы защиты разнятся от браузера к браузеру, но в основном используются изоляция сайтов (проекты на базе Chromium), снижение точности и добавление большего разброса значений для таймеров
performance.now()
, и отключение функции SharedArrayBuffer
(Firefox, Edge). В своей работе специалисты Aleph Security смогли обойти большинство этих механизмов защиты и получить доступ к защищенным областям памяти, что, в теории, позволяет перехватить любые данные, которыми оперируют страницы браузера, например файлы cookie и сохранённые пароли. Атака проводится через спекулятивное выполнение вредоносного JavaScript-кода. В выводах исследования было сказано, что реализованные разработчиками браузерами меры лишь замедляют течение атаки, но не исключают ее целиком. Принятие более эффективных мер приведет к общему снижению производительности, что негативно отразится на конечных пользователях.
Следует отметить, что атака была успешно осуществлена на Google Chrome (55,2% пользователей), Safari (13,5%) и Edge (на него, в паре с IE, приходится 6,1% рынка). В то же время атака на Firefox (5,4% пользователей) оказалась не состоятельной, так как инженеры Mozilla недавно сократили время таймера
performance.now()
до 2 мс. При этом исследователи отметили, что Firefox не полностью безопасен — просто их решение по проведению атак в этом случае требует доработки. Таким образом описанной атаке подвержены более 70% пользователей интернета.В проведённом эксперименте скорость доступа к данным составила 1 бит в секунду, так что о практической реализации говорить рано. Исследователи поясняют, что их целью было не создание прикладных инструментов для реальных атак, а аудит надёжности используемых средств защиты от таковых.
Spectre — одна из двух обнаруженных в январе 2018 года уязвимостей, которая распространяется практически на все современные платформы и открывает принципиальную возможность доступа к изолированным участкам памяти, а значит — к данным, которыми оперируют запущенные программы. Как и вторая уязвимость, Meltdown, Spectre использует особенности спекулятивного выполнения команд, однако, в отличие от Meltdown, говорить о стопроцентной защите от Spectre сложно, ввиду ее более фундаментальной природы, что и продемонстрировала в очередной раз работа специалистов из Aleph Security.
В отличие от Meltdown, которой подвержены только процессоры Intel и ARM-ядра, уязвимость Spectre работает и на процессорах AMD. Как и в случае с Meltdown, все производители ПО выпустили срочные патчи для противодействия Spectre, однако, так как она имеет аппаратную, а не софтверную природу, окончательного решения проблемы в ближайшем будущем ждать не приходится.