Компания Google внедрила в свой браузер с открытым исходным кодом Chromium нововведение, призванное бороться с уязвимостями, связанными с повреждением памяти (” data-html=”true” data-original-title=”Memory corruption” >Memory Corruption). Интегрированная в веб-обозреватель песочница “V8 Sandbox” призвана минимизировать риски, связанные с наиболее распространёнными уязвимостями движка JavaScript V8.
По словамтехнического руководителя по безопасности V8 Самуэля Гросса, основная задача новой песочницы – предотвратить распространение повреждения памяти внутри рабочего процесса. Песочница ограничивает код, выполняемый движком V8, работая в изолированной части виртуального адресного пространства процесса.
Значительная часть zero-day уязвимостей, с которыми Google столкнулась с 2021 по 2023 год, была связана именно с V8. Специализированная песочница предполагает, что атакующий может изменять любую часть памяти внутри адресного пространства песочницы, однако это не приведёт к выходу злонамеренной активности за её пределы.
Гросс подчеркнул, что переход на использование языков программирования, обеспечивающих безопасность памяти, например, Rust, или применение аппаратных подходов к безопасности памяти не решает проблему уязвимостей V8 из-за тонких логических ошибок, которые могут быть эксплуатированы хакерами.
Новая мера безопасности предназначена для изоляции памяти кучи (Heap Memory) движка V8 таким образом, чтобы любое повреждение памяти не могло распространиться за пределы установленных границ. Для этого вводятся альтернативные типы данных, не позволяющие доступ к памяти вне песочницы. Песочница активируется отдельной настройкой “v8_enable_sandbox” в параметрах GN.
Тестирование показало, что нововведение вносит нагрузку около 1% на типичные рабочие процессы, что позволяет уже в скором времени внедрить его непосредственно в Google Chrome. Специалисты предполагают, что это произойдёт уже в 123-ей версии браузера на различных платформах, включая Android, ChromeOS, Linux, macOS и Windows. В настоящий момент для работы песочницы необходима 64-битная система с возможностью резервирования одного терабайта виртуального адресного пространства, однако разработчики планируют снизить требования в будущем.
Инициатива является частью усилий Google по повышению безопасности памяти и защите от уязвимостей. Ранее компания подчеркнула роль Kernel Address Sanitizer (KASan) в обнаружении ошибок памяти в машинном коде, и сообщила, что сама пользуется для этих целей инструментами на основе компилятора.
Подход Google, в целом, демонстрирует весьма ответственное отношение к обеспечению безопасности своих продуктов, а новая песочница для V8 – наглядный тому пример.