Mozilla 如何用 Agent 工作流加速 Firefox 安全修复
原文链接:https://www.chatprd.ai/how-i-ai/how-mozilla-fixed-500-security-bugs-with-mythos

从让模型找 Bug 到让系统持续变安全:Mozilla 的 AI Agent 安全工程闭环

很多人看到 Mozilla 的案例时,第一反应是:一个叫 Claude Mythos 的模型,帮助 Firefox 在短时间内修复了数百个安全问题。

但这并不是一个“更强模型横空出世,自动把 Bug 都修完”的故事。

真正值得关注的是:Mozilla 没有把大模型当成一个会聊天、会写代码的工具,而是把它放进了一套可以提出假设、调用工具、运行测试、验证结果、生成补丁,并由工程师复核的安全工程闭环中。

这篇文章尝试把这个案例拆成一套普通研发团队也能借鉴的教程:

  • 为什么“让模型报告漏洞”很容易变成噪音;
  • Mozilla 的 Agentic Harness 是怎么工作的;
  • 为什么第一步不是全库扫描,而是先做优先级判断;
  • 发现、验证、修复为什么要拆成不同角色;
  • 普通团队如何从一个小模块开始搭自己的 AI 审计闭环。

1. 先理解问题:AI 报告很多,但真正有用的很少

在开源项目中,维护者一直面对一个成本不对称问题:

让模型对一段 C++ 代码提出“这里可能有漏洞”非常便宜;但工程师要验证它是不是漏洞、能不能被利用、影响范围有多大,却非常昂贵。

这类“看起来合理、实际上不可复现”的报告,会给安全团队带来严重负担。模型可以批量提出猜测,维护者却必须逐条排查。

Mozilla 的思路不是继续优化“报告写得多漂亮”,而是把验收标准改成一个更硬的目标:

不只告诉我可能存在问题;请给出一个可执行、可复现的测试用例,证明问题真实存在。

这个变化非常关键。安全工作不再停留在“语言上的判断”,而进入“能否被工具验证”的阶段。

2. 核心架构:把模型装进 Agentic Harness

Mozilla 为漏洞挖掘构建了一套自定义 Agentic Harness(智能体执行框架)。可以把它理解为:给模型一个明确任务,并提供完成任务所需的实际工具。

模型不再只是阅读代码后给出建议,它还能:

  • 访问目标代码与构建环境;
  • 分析特定文件或函数;
  • 生成 HTML、脚本等测试样例;
  • 启动特制的 Firefox 构建版本;
  • 读取 AddressSanitizer 等工具的执行反馈;
  • 根据失败原因继续修改假设与测试。

Agentic Harness 工作流总览

在这个框架中,一个漏洞发现任务更像是循环实验:

阅读目标代码
  -> 提出可被攻击的假设
  -> 生成最小复现用例
  -> 在测试浏览器中运行
  -> 读取崩溃 / 日志 / 检查器反馈
  -> 调整假设并再次尝试
  -> 产出可复现 PoC

Mozilla 甚至会给模型一个具有引导性的前提:“这个文件里存在安全问题,请把它找出来。”

这并不是要模型凭空编造漏洞,而是为了让它把搜索资源集中在明确目标上,持续构造、测试和淘汰假设。模型如果第一次没有触发异常,不会直接停在“我没有发现问题”,而是会根据测试结果继续尝试。

这也是 Agent 工作流与普通代码问答最本质的区别:

答案不是最终交付物,经过执行验证的结果才是。

3. 第一步不是扫描全部代码,而是先决定“该查哪里”

Firefox 拥有海量代码。即使模型可以持续运行,也不可能让它以同样成本扫描每一个文件。

因此,Mozilla 在漏洞挖掘前先设置了一个“LLM 裁判”角色,为候选文件打分。这个裁判并不直接找漏洞,而是回答两个问题:

  1. 风险可能性:这个文件出现内存安全问题的概率有多高?
  2. 可达性:恶意网页是否容易触发到这段代码?

例如,体量大、位于网页内容可直接触达路径上的核心文件,通常会排在更前面。经过排序后,真正消耗算力的漏洞挖掘 Agent 才进入这些高价值目标。

在这里插入图片描述

这套做法的价值不局限于安全领域。对于大型工程团队,它同样可以用来判断:

  • 哪些模块最值得做性能优化;
  • 哪些遗留代码风险最高;
  • 哪些 UI 页面最可能存在体验或可访问性问题;
  • 哪些依赖升级最需要人工优先审查。

在大代码库里,AI 的第一份工作未必是“解决问题”,也可以是把人和算力带到最值得解决的问题上

4. 漏洞发现之后,还必须有独立验证与修复闭环

发现崩溃并不等于确认真实漏洞,更不等于完成修复。

Mozilla 在主 Agent 之后增加了独立验证环节。验证 Agent 会检查:

  • 测试是否依赖开发环境中的特殊开关;
  • 模型是否为了制造成功而改动了不该改的代码;
  • 漏洞路径是否符合真实攻击条件;
  • 复现步骤是否稳定;
  • 结果是否能被安全工程师理解和复核。

只有通过验证的结果,才会进入补丁阶段。

随后,修复 Agent 会尝试生成代码补丁,并由系统自动执行一轮关键回归:

应用补丁
  -> 重新构建 Firefox
  -> 运行原始 PoC
  -> 确认崩溃是否消失
  -> 交由人工安全工程师审查

在这里插入图片描述

这层机制尤其重要,因为一个目标极强的 Agent 可能会为了“找到漏洞”而采取不符合实际安全条件的路径。独立验证器就是对抗这种偏差的护栏。

而在最后一步,人类工程师仍不可替代。模型或许能给出一个局部修复,但资深工程师可以进一步判断:

  • 同类缺陷是否存在于另外几个模块?
  • 是否应当修改抽象层,而不是只修补一个触发点?
  • 这个补丁会不会引入新的兼容性风险?
  • 修复是否符合项目长期架构方向?

于是,AI 负责完成大量重复、耐心且可验证的搜索工作;人类负责系统性设计与架构判断。

5. 为什么这套方法能真正提高安全产出?

Mozilla 的案例说明,提升不来自单一模型能力,而来自四个能力叠加。

5.1 目标足够清晰

每个 Agent 都知道自己是做优先级判断、找漏洞、验漏洞还是修漏洞。角色越清楚,输出越容易被验证。

5.2 工具能够闭环

模型可以构建、运行、检测、读取日志,而不是只停留在文本层。没有工具反馈,模型只能产生猜测;有了反馈,模型才能进行实验。

5.3 结果必须可复现

没有 PoC、没有运行证据,就不算完成发现。可复现性把“看起来像”变成了“确实发生”。

5.4 人类把控系统性修复

自动化处理局部发现,人类负责安全边界、修复范围和最终合入。AI 没有绕开研发流程,而是增强了 DevSecOps 流程。

从这个角度看,AI 并没有直接替代安全研究员,而是压缩了安全研究中最耗时的部分:浏览代码、形成假设、编写测试、反复运行、整理证据。

安全团队的工作重心,也会从“有没有时间把每一份线索查完”,逐渐转向“如何设计更可靠的验证环境、如何提升修复的系统性、如何管理持续涌入的高质量发现”。

6. 普通团队如何借鉴:从一个小闭环开始

不需要拥有 Firefox 这样规模的代码库,团队也可以从一个小范围开始建立自己的 AI 审计闭环。

步骤 1:选一个高风险、边界清楚的目标

优先选择这些模块:

  • 支付;
  • 权限校验;
  • 文件上传;
  • 账号登录;
  • 数据导出;
  • 长期没人愿意碰的遗留模块。

不要一开始就要求 AI “审计整个系统”。目标越大,验证成本越容易失控。

步骤 2:让模型获得真实反馈

至少连接一类反馈源:

  • 静态扫描;
  • 单元测试;
  • 集成测试;
  • 运行日志;
  • 沙箱环境;
  • 构建失败信息;
  • 安全扫描工具输出。

没有工具反馈,模型只能写分析;有了反馈,模型才能迭代。

步骤 3:把“可复现”设为最低验收标准

每一个发现至少应包含:

  • 触发条件;
  • 测试用例;
  • 执行结果;
  • 影响说明;
  • 最小化复现步骤;
  • 修复前后的对比证据。

步骤 4:让验证角色与发现角色分离

不要让同一个 Agent 既负责发现又负责宣布成功。独立验证可以明显降低误报、投机式路径和环境依赖问题。

步骤 5:让补丁进入既有研发流程

补丁可以由 AI 提议,但必须经过:

  • 自动测试;
  • 代码评审;
  • 发布检查;
  • 负责人确认;
  • 线上监控或回滚预案。

Agent 应增强现有 DevSecOps 流程,而不是绕开它。

7. 可以跟踪哪些指标?

如果你要在团队里试点这类流程,可以先跟踪几项简单指标:

指标 目的
每小时计算资源产出的有效发现数 判断算力是否用在高价值目标上
发现结果的可复现率 判断 Agent 输出是否从猜测进入证据
误报率与人工复核耗时 判断验证环节是否有效
补丁通过回归测试的比例 判断修复 Agent 是否可靠
从发现到修复发布的周期 判断端到端闭环是否真的提速

这些指标不需要一开始就很复杂。关键是先把“模型输出很多内容”转成“系统持续产生可验证结果”。

结语:模型不是答案,验证系统才是护城河

Mozilla 的案例最重要的启示,是把对 AI 的关注点从“哪个模型更聪明”转向“我们是否为模型设计了正确的任务、工具、反馈和护栏”。

模型能力会持续升级,但真正可积累的组织能力,是将模型接入工程系统之后形成的流程资产:

  • 优先级机制;
  • 执行环境;
  • 测试工具;
  • 验证规则;
  • 漏洞分流;
  • 补丁审核;
  • 发布机制。

当 AI 能够提出假设、动手验证、接受失败、继续迭代,并把结果交给工程师做更高层判断时,它才不再只是一个聊天助手,而开始成为软件研发与安全体系中的生产力。


参考资料

  1. ChatPRD,How Mozilla Fixed 500 Security Bugs with Claude Mythos,2026-06-21。
  2. Mozilla Hacks,Brian Grinstead、Christian Holler、Frederik Braun,Behind the Scenes Hardening Firefox with Claude Mythos Preview,2026-05-07。
  3. Mozilla Blog,Bobby Holley,The zero-days are numbered,2026-04-21。
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐