Исследователи из Aleph Security проверили эффективность мер, принятых ведущими производителями браузеров для ограничения атак Spectre по сценарию 1. Как оказалось, привнесенные изменения существенно замедляют извлечение данных из защищенной области памяти, но предотвратить такие попытки они не в состоянии.

Уязвимость Spectre 1 (обход проверки границ массива, CVE-2017-5753), в отличие от прочих брешей класса Spectre-Meltdown, допускает удаленный эксплойт через браузер. Используя вредоносный JavaScript, автор атаки сможет украсть секретные данные — к примеру, куки или сохраненные пароли.

Защиту от атак Spectre 1 авторы проектов Firefox, Chrome, Chromium, V8 (Chrome и Chromium), Webkit (Safari), Edge и IE реализовали еще в январе, но по-разному:

  1. маскированием индексов объектов Array (массивов);
  2. изоляцией сайтов, с запуском отдельного процесса для каждого домена (введена в Chrome);
  3. отключением функции SharedArrayBuffer (в Firefox, Edge);
  4. снижением разрешающей способности таймера (начиная с Firefox 59, результат performance.now округляется до 2 мс);
  5. добавлением джиттера (случайных колебаний) в выход performance.now().

Экспертам, по их словам, удалось обойти меры противодействия Spectre 1 на Edge, Chrome и Safari. Попытка прочесть секретные данные в памяти Firefox с помощью PoC-кода потерпела неудачу — из-за очень низкого разрешения таймера.

Извлечение данных при наличии защиты, как признали исследователи, происходит очень медленно, со скоростью примерно 1 бит/с, однако эксплойт все же возможен. «Исследование показало, что ограничения по времени, введенные в разных браузерах, сильно затормаживают Spectre-подобные атаки, но не способны их предотвратить», — сказано в отчете Aleph.

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

Категории: Главное, Кибероборона, Уязвимости