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