Лог изменений в V8 помог создать эксплоит для неисправленной уязвимости в Chrome

4 апреля 2019 года

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

Информация об уязвимостях в Chrome до выпуска релиза обрабатывается в закрытых отчётах об ошибках, доступных только небольшой группе основных разработчиков и не публикуемых публично до выхода исправлений. В случае, если уязвимость касается движка V8, исправления вносятся в его кодовую базу отдельно и некоторое время уязвимость становится исправленной в V8, но не исправленной в Chrome. Злоумышленники могут отследить подобные исправления, проанализировать их и использовать для атаки на актуальные выпуски Chrome, воспользовавшись тем, что какое-то время уже засветившаяся в коде V8 проблема остаётся неисправленной в Chrome.

В качестве демонстрации своей теории, исследовали подготовили рабочий прототип эксплоита, позволяющий атаковать полностью обновлённые выпуски Chrome. Эксплоит позволяет запустить системный калькулятор при открытии специально оформленной страницы, но для работы требует запуска браузера с опцией "--no-sandbox" для отключения sandbox-окружения. Эксплоит ограничен одной уязвимостью чтобы разработкой не могли воспользоваться злоумышленники и применить ещё не исправленную уязвимость для совершения злонамеренных действий (для совершения реальной атаки требуется выявление ещё одной уязвимости для выхода из sandbox).

Текущий процесс разработки Chrome включает стадии для тестирования изменений перед их поставкой в финальном релизе. Например, используемая в эксплоите проблема вначале была исправлена в кодовой базе Chromium, после этого перенесена в экспериментальные ветки Chrome Canary и Beta для тестирования перед включением в стабильную ветку. Время тестирования обычно занимает от нескольких дней до нескольких недель, в зависимости от опасности и состояния графика формирования релизов (критические уязвимости, позволяющие обойти sandbox, исправляются вне графика, в противном случае уязвимости ожидают очередной фиксированной даты релиза).

Предложенный эксплоит был подготовлен по следам ошибки в коде обработки Array.prototype.map в JIT-компиляторе TurboFan, которая была исправлена в движке V8 18 марта и была упомянута в логе git, но остаётся неисправленной в Chrome. Информация об исправлении уже несколько недель доступна в системе рецензирования изменений, невзирая на ограничение доступа к исходному сообщению о проблеме в трекере ошибок. В случае, если бы эксплоит по мотивам данной ошибки был создан злоумышленниками, которые дополнительно имели сведения об ещё одной уязвимости для обхода sandbox, то они могли около двух недель применять этот эксплоит для атак на пользователей с самой свежей версией Chrome.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Лог изменений в V8 помог создать эксплоит для неисправленной уязвимости в Chrome», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.