Google демонстрирует использование уязвимостей Spectre с помощью JavaScript в браузере

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

Эксплойты могут использоваться для доступа к памяти процесса. который обрабатывает веб-контент в текущей вкладке. Для проверки работы эксплойта был запущен веб-сайт с дырявой страницей, а код, описывающий логику работы, опубликован на GitHub.

Предлагаемый прототип предназначен для системы атаки с Процессоры Intel Core i7-6500U в среде Linux и Chrome 88, хотя это не исключает возможности внесения изменений для использования эксплойта в других средах.

Метод работы не зависит от процессоры Intel: после соответствующей адаптации Было подтверждено, что эксплойт работает в системах с процессорами сторонних производителей, включая Apple M1 на базе архитектуры ARM. После незначительных изменений эксплойт также работает в других операционных системах и других браузерах, основанных на движке Chromium.

В среде, основанной на стандартных процессорах Chrome 88 и Intel Skylake, мы добились утечки данных из процесса, отвечающего за рендеринг веб-контента на текущей вкладке Chrome (процесс рендеринга) со скоростью 1 килобайт в секунду. Кроме того, были разработаны альтернативные прототипы, например эксплойт, который позволяет за счет снижения стабильности увеличить скорость утечки до 8 кБ / с при использовании таймера performance.now () с точностью до 5 микросекунд (0.005 миллисекунды). ). Также был подготовлен вариант, работающий с точностью таймера до одной миллисекунды, который можно было использовать для организации доступа к памяти другого процесса со скоростью около 60 байт в секунду.

Опубликованный демонстрационный код состоит из трех частей:

  • Первая часть откалибровать таймер, чтобы оценить время работы операций, необходимых для извлечения данных, которые остаются в кэше процессора в результате спекулятивного выполнения инструкций процессора.
  • Вторая часть Определяет схему памяти, используемую при выделении массива JavaScript.
  • Третья часть напрямую использует уязвимость Spectre для определения содержимого памяти текущего процесса в результате создания условий для спекулятивного выполнения определенных операций, результат которых отбрасывается процессором после определения неудачного прогноза, но следы выполнения заселяются в общий кеш и могут быть восстановлены с помощью методы для определения содержимого кеша с использованием сторонних каналов, которые анализируют изменение времени доступа к кэшированным и некэшированным данным.

Предлагаемый способ эксплуатации исключает высокоточные таймеры доступный через API-интерфейс performance.now () и без поддержки типа SharedArrayBuffer, который позволяет создавать массивы в разделяемой памяти.

Эксплойт включает в себя устройство Spectre, которое вызывает контролируемое выполнение спекулятивного кода, и анализатор утечки побочного канала, который определяет, какие данные были кэшированы во время спекулятивного выполнения.

Гаджет реализован с использованием массива JavaScript, в котором предпринимается попытка доступа к области за пределами буфера, который влияет на состояние блока предсказания ветвления из-за наличия проверки размера буфера, добавленной компилятором (процессор предположительно выполняет доступ заранее, но возвращает состояние после проверки).

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

Google опубликовал прототип эксплойта, чтобы показать возможность атак использование уязвимостей класса Spectre и поощрять веб-разработчиков использовать методы, сводящие к минимуму риски таких атак.

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

источник: https://security.googleblog.com


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

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

*

*

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