Spook.js, новый метод использования уязвимостей Spectre в Chrome

Группа исследователей из американских, австралийских и израильских университетов сообщили, что описал новую технику атаки что позволяет эксплуатировать уязвимости Класс Spectre в браузерах на базе Chromium.

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

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

Еще одно применение метода - атака на плагины браузера, что позволяет при установке подключаемого модуля, управляемого злоумышленником, извлекать данные из других подключаемых модулей.

Spook.js применим к любому браузеру, основанному на движке Chromium, включая Google Chrome, Microsoft Edge и Brave. Исследователи также считают, что этот метод можно адаптировать для работы с Firefox, но поскольку движок Firefox сильно отличается от Chrome, работа по созданию такого эксплойта оставлена ​​на будущее.

Для защиты от атак, связанных со спекулятивным выполнением инструкций через браузер, в Chrome реализована сегментация адресного пространства: изоляция песочницы позволяет JavaScript работать только с 32-битными указателями и разделяет память контроллера в неперекрывающихся стеках по 4 ГБ.

Чтобы организовать доступ ко всему адресному пространству процесса и избежать 32-битного ограничения, исследователи использовали метод смешения типов, который позволяет движку JavaScript обрабатывать объект с неправильным типом, позволяя сформировать 64-битный код, основанный на комбинации двух 32-битных значений.

Суть атаки заключается в том, что при обработке специально созданного вредоносного объекта в движке JavaScript создаются условия, которые приводят к спекулятивному выполнению инструкций, обращающихся к массиву. Объект выбран таким образом, что контролируемые злоумышленниками поля помещаются в область, где используется 64-битный указатель.

Поскольку тип вредоносного объекта не соответствует типу обрабатываемого массива, в обычных условиях такие действия блокируются в Chrome механизмом деоптимизации кода, используемого для доступа к массивам. Чтобы решить эту проблему, код атаки Type Confusion помещается в условный блок «if», который не срабатывает при нормальных условиях, но работает в спекулятивном режиме, если процессор неправильно предсказывает больше ветвлений.

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

Для анализа содержимого кеша в условиях недостаточной точности таймера, доступного в JavaScript, используется метод, предложенный Google, который обманывает стратегию вытеснения данных из кэша Tree-PLRU, используемую в процессорах, и позволяет, увеличивая количество циклов, значительно увеличивают разницу во времени наличия и отсутствия значения в кеше.

Исследователи выпустили прототип эксплойта, который работает в Chrome 89 e.n систем с Intel i7-6700K и i7-7600U. Эксплойт был создан с использованием прототипов кода JavaScript, ранее опубликованного Google для проведения атак Spectre.

Наконец, исследователи отмечают, что удалось подготовить рабочие эксплойты для систем на базе процессоров Intel и Apple M1, которым предоставлена ​​возможность организовать чтение памяти со скоростью 500 байт в секунду и точностью 96%. Предполагалось, что метод будет применим к процессорам AMD, но подготовить полнофункциональный эксплойт не удалось.

источник: https://www.spookjs.com


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.