Как стать автором
Обновить

Команда Edge экспериментирует с отключением JIT

Информационная безопасность*JavaScript*Расширения для браузеровБраузерыMicrosoft Edge

Microsoft объявила, что группа по исследованию уязвимостей Edge экспериментирует с новой функцией, получившей название «Super Duper Secure Mode» и предназначенной для улучшения безопасности без значительных потерь производительности.

persona.com
persona.com

Когда параметр включен, новый режим удаляет JIT-компиляцию из конвейера обработки V8, уменьшая поверхность атаки, которую злоумышленники могут использовать для взлома систем пользователей Edge.

На основании данных CVE (Common Vulnerabilities and Exposures), собранных с 2019 года, около 45 % уязвимостей, обнаруженных в движке V8 JavaScript и WebAssembly, были связаны с движком JIT, а более половины всех «обычных» эксплойтов Chrome используют JIT-ошибки.

Руководитель исследования уязвимостей Microsoft Edge Джонатан Норман говорит, что новый режим позволит устранить примерно половину ошибок V8, а оставшиеся эксплойты станет гораздо сложнее использовать. Разработчики отмечают, что эта проблема характерна не только для V8, а для большинства современных движков JavaScript. По их словам, Google, Mozilla, Microsoft и другие компании пытаются снизить этот риск проактивно, вкладывая большие средства в статический анализ, поощрение обнаружения ошибок и фаззинг. Это позволяет быстро выявить некоторые из проблем, но неизбежно приводит к упусканию остальных из вида.

Super Duper Secure Mode может быть включен пользователями предварительных версий Microsoft Edge (включая бета-версию, Dev и Canary) по ссылке edge://flags/# edge-enable-super-duper-secure- .

Режим отключает JIT (TurboFan / Sparkplug) и включает Control-flow Enforcement Technology (CET), аппаратное средство защиты от эксплойтов Intel, разработанное для обеспечения более безопасного просмотра.

В будущем Microsoft также хочет добавить поддержку Arbitrary Code Guard (ACG), еще одного средства защиты, которое предотвратит загрузку вредоносного кода в память.

Лаборатория производительности Edge уже выполнила сотни тестов, чтобы оценить работу нового режима. Тесты сгруппировали по таким категориям, как мощность, запуск, показатели памяти и загрузка страницы.

Большинство из них не показали видимых изменений с отключенной JIT.

Разработчики говорят, что пока режим находится в разработке, и они намерены экспериментировать с ним больше.

JIT внедрили в браузеры в 2008 году для ускорения выполнения определенных задач в JavaScript. Механизмы с поддержкой JIT компилируют JavaScript в машинный код. Этот процесс иногда называют «спекулятивной оптимизацией». Код JavaScript оптимизируется с помощью ряда сложных конвейеров обработки.

Эти изменения приводят к впечатляющему приросту производительности. Разработчикам удалось достичь производительности JavaScript, сопоставимой с C ++.

Приведенная выше схема — это одна фаза всего конвейера обработки V8. Сюда не входят парсеры, интерпретатор, недавно добавленный второй JIT под названием Sparkplug или многие другие компоненты.

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

Теги:microsoft edgejitjit-компиляторv8javascriptпроизводительность javascriptбраузерыэксплойтыбезопасность
Хабы: Информационная безопасность JavaScript Расширения для браузеров Браузеры Microsoft Edge
Всего голосов 11: ↑9 и ↓2+7
Просмотры6.7K
Комментарии Комментарии 12

Похожие публикации

Лучшие публикации за сутки