Google добавляет в Chrome песочницу V8, чтобы повысить устойчивость браузера перед проблемами памяти. Большинство таких проблем оказывались связаны с javascript-движком.
«Практически все уязвимости, найденные и эксплуатируемые в V8 на сегодня, имеют одну общую черту: повреждение памяти обязательно происходит внутри хипа V8, поскольку компилятор и runtime почти всегда оперируют исключительно экземплярами V8 HeapObject», — отметили в Google. При этом обычные средства защиты, а том числе аппаратные механизмы безопасности или переход на более безопасный для памяти язык, не помогают.
Песочница для V8 изолирует память хипа, чтобы предотвратить повреждение других частей памяти процесса. Из-за отсутствия аппаратного обеспечения для этих целей Google выбрала программный подход.
«Основная идея программной песочницы заключается в замене всех типов данных, которые могут обращаться к памяти вне её, на совместимые альтернативы. В частности, все указатели (как на объекты в хипе V8, так и в других местах) и 64-битные размеры должны быть удалены, поскольку злоумышленник может повредить их, чтобы впоследствии получить доступ к другой памяти», — объясняют разработчики.
При атаках злоумышленники не смогут выйти из песочницы и добраться до других частей памяти процесса.
Google внедрила песочницу в Chrome 123 для тестирования. Также её добавили в bug bounty программу Chrome Vulnerability Rewards Program.
Как отмечается, на песочницу V8 приходится лишь 1% потребления ресурсов при типичных рабочих нагрузках, а значит, она может быть включена по умолчанию на совместимых платформах. В течение последних двух недель песочница V8 была активна по умолчанию в 64-битных версиях Chrome для Android, ChromeOS, Linux, macOS и Windows для проверки стабильности и сбора статистики по производительности.
Источник новости: habr.com