Google Chrome AI 驱动的安全漏洞修复
Google 已在 Chrome 浏览器的整个漏洞生命周期中集成了大语言模型(LLM),以规模化发现和修复安全漏洞。在 Chrome Stable 发行里程碑 149 和 150 中,Google 修复了 1,072 个安全漏洞,这一数量超过了此前 23 个里程碑累计修复的总数。
AI 驱动的漏洞发现
Google 使用多层次的 AI 方法来识别传统模糊测试可能遗漏的漏洞。这包括使用专用代理和完整的知识库,以提升检测准确性并降低误报率。
发现流水线
- Agent Harnesses: Google 利用 Gemini 驱动的代理扫描更广泛的 Chrome 代码库。此方法成功识别出一个已在代码库中存在超过 13 年的沙箱逃逸漏洞。
- Knowledge Integration: 为了将 LLM 的推理能力扩展到初始训练数据之外,Google 构建了一个包含所有已识别 CVE 以及 Chrome 完整 Git 历史的知识库。
- Contextual Guidance: 团队鼓励使用
SECURITY.md文件帮助模型了解信任边界和威胁模型。专门的 “critic” 代理会读取这些文件以验证发现。 - Model Interoperability: 系统同时支持开源权重模型和专有模型,以利用不同架构的独特优势。
安全防护措施
为防止 AI 行为异常,Google 实施了严格的环境控制:
- Isolated Execution: AI 仅在锁定的机器上离线分析源代码,且不具备一般互联网访问权限。
- Network Interception: 所有网络请求均被拦截,并依据发起应用和目标进行严格的白名单过滤。
- Restricted Access: 子代理被禁止修改本地系统或访问指定源代码目录之外的文件。
自动化分流与修复
随着发现的漏洞数量增加,Google 将原本需要 5 到 30 分钟人工分流的流程,转为融合规则系统与 AI 的自动化流水线。
四阶段分流流程
- Noise Filtering: 自动检查垃圾信息、重复报告以及基本漏洞标准。
- Reproduction: 系统在受影响的操作系统和浏览器版本上验证概念验证(PoC),并将堆栈跟踪附加到报告中。
- Metadata Enrichment: AI 根据明确的严重性指南分配严重等级,并识别漏洞首次出现的时间点。
- Automatic Assignment: 将问题路由至相应组件和负责人。
多代理修复工作流
Google 使用一系列专用代理生成并验证修复方案:
- Fixing Agent: 根据问题上下文生成多个候选修复。
- Critic Agent: 评估候选修复的功能性以及是否符合 Chromium 与 Google 的风格指南。
- Test-Writing Agents: 在人工开发者审查修复之前,自动为所有受支持平台和配置生成测试,可能节省数周的手动工作量。
缩小“补丁间隙”
为减轻 “N 天” 攻击——攻击者在补丁公开但用户尚未应用时利用漏洞——Google 正在加快交付节奏。
- Release Frequency: Google 正在试点每周两次安全发布,朝着两周一次的主要里程碑节奏迈进。
- Dynamic Patching: Google 正在研究 “动态补丁”,实时替换后台子进程(如 Renderer 和 GPU)的二进制文件,免除完整浏览器重启的需求。
- Auto-Restart Optimization: 在 macOS 上,Chrome 150 现在会在应用处于 “无窗口” 状态(后台运行且所有窗口已关闭)时自动重启以应用更新。
长期结构性防御
Google 将 AI 驱动的补丁与根除整类漏洞的策略相结合,重点关注内存安全。
C++ 加固
- MiraclePtr & MiracleObject: 这些工具用于中和 Use-After-Free(UAF)漏洞。MiracleObject 旨在中和 GPU 主线程上高达 90% 的 UAF 漏洞。
- Spanification: Chrome 正在将传统的指针+大小结构迁移到
std::span类型,以消除越界(OOB)错误;97% 的内部代码已在严格的 unsafe-buffer 警告下编译通过。
向 Rust 迁移
Google 正在有策略地将高风险代码段(如图像编解码器和字体栈)替换为 Rust,实现编译期内存安全保证,降低对运行时缓解措施和沙箱的依赖。
社区观点与批评
虽然 Google 报告了显著的生产力提升,但技术社区对 AI 在安全领域的依赖提出了若干质疑:
“这些自动化修复中有多少被回滚?有多少引入了新 bug?发现代理的误报率是多少?文章只列出了成功的数字,却没有提及可能出现的问题。”
其他批评者认为,漏洞激增是 C++ 本身固有缺陷的表现,而非 AI 的胜利,唯一的永久解决方案是全面迁移到内存安全语言。还有人担心 “打地鼠” 效应——AI 在修复旧漏洞的同时可能引入新漏洞,以及 Google 内部 AI 能力的提升可能最终削弱开源、众包漏洞挖掘的激励。