← На главную

Google превращает Chrome в тихую крепость: AI ловит ошибки памяти

31.07.2026 07:29 · hackernews

Google хочет, чтобы Chrome всегда оставался свежим — динамически получал патчи и перезапускался в моменты минимального простоя. Пока это будущее строится, пользователям советуют просто нажимать кнопку обновления в правом верхнем углу. Для компаний есть чёткие рычаги: политика RelaunchNotification постепенно подталкивает сотрудников к перезапуску браузера вплоть до принудительного, канал Chrome Extended Stable даёт время на проверку обновлений в жёстких средах, а панель Chrome Enterprise Core или Premium позволяет отслеживать версии браузера по всему парку и управлять ими.

Борьба с уязвимостями идёт не только по отдельным багам, но и по целым классам ошибок. Главный фронт — безопасность памяти. В C++ коде, из которого всё ещё состоит почти весь Chromium, работают три линии защиты. MiraclePtr и MiracleObject нейтрализуют Use-After-Free: технологию расширяют на библиотеки Skia, ANGLE, Dawn и на GPU-процессы, надеясь закрыть до 90% UAF в главном потоке графики, пусть и ценой небольшого проседания производительности. Параллельно идёт «спанизация» — миграция указателей и размеров на std::span, чтобы компилятор жёстко отлавливал выходы за границы; уже 97% кода Chromium чист от unsafe-buffer предупреждений, и требования двигают вниз, в Skia, ANGLE и Dawn. Добавляется checked math для операций с памятью и более строгое разделение куч, отделяющее типы с указателями от обычных данных — так UAF сложнее превратить в атаку.

В долгую ставка на Rust. Собирается централизованный Rust SDK, который даст прямой доступ к фундаментальному API Chromium, чтобы разработчикам не приходилось преодолевать трение экосистемы. Rust направят на «гнёзда багов» — парсеры, кодеки изображений, шрифтовые стеки, — и на новые компоненты в высокопривилегированных процессах вроде главного процесса браузера, где можно обойтись без тяжёлых песочниц. Изучается и вариант переписать верхнеуровневый UI на HTML, CSS и TypeScript, чтобы ослабить зависимость от C++ фреймворков.

AI отлавливает уязвимости ещё на подлёте. Модели, встроенные прямо в CI/CQ, сканируют каждый дифф: предлагают спанизацию, подсвечивают висячие указатели, проверяют числовую безопасность. LLM непрерывно анализируют семантику изменений и ловят скрытые риски, которые возникают из-за неочевидных взаимодействий в кодовой базе — то, мимо чего проходят классические статические анализаторы.

Chrome — крупнейший опенсорс-проект с более чем 2300 сторонними зависимостями, среди которых V8, BoringSSL, Skia, ANGLE, Dawn. Около 1700 из них поставляются пользователям — от Android до облачных платформ. Автоматические пайплайны сканируют уязвимости через базы NVD, OSV и внутренние фиды Google, но этого уже мало. Поэтому все зависимости переводятся на автообновление до свежих upstream-версий с оглядкой на сигналы безопасности от проекта GOSSIP. Вокруг экосистемы выстроена поддержка: Google вместе с другими пожертвовал $12,5 млн проекту Alpha-Omega, чтобы мейнтейнеры быстро затыкали дыры, и стоял у истоков проекта Akrites, который разгружает мейнтейнеров через централизованную обработку отчётов об уязвимостях.

Рост числа найденных и закрытых багов не признак провала. Каждая исправленная ошибка отнимает у атакующего точку опоры. Задача — доставлять фиксы быстрее, чем их начнут эксплуатировать. Ускоренные релизы, динамические патчи и перезапуски в удачный момент должны превратить браузер в постоянно защищённую среду, которая не дёргает пользователя. AI обострил ландшафт угроз, но вместе с глубокими структурными изменениями он же даёт преимущество защитникам, и Chrome становится безопаснее с каждым обновлением.

Читать оригинал →