强化 Firefox:Mozilla 如何利用 Claude Mythos 消除数百个安全漏洞
多年来,开源维护者与 AI 生成的漏洞报告之间的关系一直紧张。早期大型语言模型(LLM)尝试寻找安全漏洞时,常常产生所谓的“垃圾”报告——看似合理却根本错误,给开发者带来不对称的成本,因为他们必须花费数小时来驳斥这些琐碎的幻觉。
然而,Mozilla 最近宣布了一场范式转变。通过将 Claude Mythos Preview 等模型不断进化的能力与先进的代理化工具相结合,Mozilla 在 Firefox 中识别并修复了前所未有数量的潜在安全漏洞。这一努力标志着从静态分析转向动态、AI 驱动的硬化流水线,不仅能够假设漏洞,还能通过可复现的测试用例加以证明。
AI 漏洞狩猎的演进
Mozilla 的探索始于使用 GPT-4 和 Sonnet 3.5 等模型进行简单的静态分析。虽然前景可观,但这些早期实验受到高误报率的困扰,难以在大规模部署中实用。突破来自于实现了 代理化工具。
与标准的 LLM 提示不同,代理化工具与项目现有基础设施集成——在本例中是 Mozilla 的模糊测试系统。这使得 AI 能够:
- 假设:识别代码中潜在的漏洞。
- 测试:创建并运行可复现的测试用例,以查看漏洞是否真的触发。
- 验证:排除不可复现的猜测,确认真实漏洞。
一旦该循环得到优化,Mozilla 通过在临时虚拟机上并行化任务来扩展该过程,每个虚拟机针对特定文件并将发现写入集中式存储桶。这将 LLM 从单纯的顾问转变为安全漏洞生命周期的功能部件,能够与去重、分流和发布流程集成。
深入探讨:AI 发现了什么
所发现漏洞的多样性凸显了 AI 在复杂、多进程浏览器引擎代码上进行推理的能力。许多漏洞属于“沙箱逃逸”,这类漏洞对传统模糊测试器而言极其难以检测,因为它们需要特定的逻辑缺口,而非简单的内存损坏。
一些值得注意的例子包括:
- 逻辑与边缘情况:一个存在 15 年的
<legend>元素漏洞,由对递归栈深度限制和循环收集的精细编排触发。 - IPC 漏洞:跨进程通信(IPC)中的竞争条件,使受损的内容进程能够操纵父进程中的 IndexedDB 引用计数,从而触发使用后释放(UAF)漏洞。
- 内存安全:一个原始 NaN 跨越 IPC 边界,伪装成带标签的 JS 对象指针,生成用于沙箱逃逸的伪对象原语。
- 遗留代码:一个存在 20 年的 XSLT 漏洞,因可重入的
key()调用导致哈希表重新散列,在指针仍在使用时释放了其底层存储。
有趣的是,Mozilla 还观察到 AI 未能发现某些漏洞。模型多次尝试利用原型污染进行沙箱逃逸,却被 Mozilla 之前实施的默认冻结原型的架构改动所阻止。这对其已有的深度防御策略提供了有价值的验证。
扩展流水线
Mozilla 的方法将 LLM 视为可替换的原语。先构建流水线后,他们能够无缝升级到 Claude Mythos Preview,从而提升系统发现漏洞、创建概念验证(PoC)以及阐述漏洞病理的能力。
影响规模从数字上可见。仅在 2026 年 4 月,Mozilla 就修复了 423 个安全漏洞。其中,271 个是由 Claude Mythos Preview 为 Firefox 150 版本识别的。这 271 个漏洞的严重程度分布为:
- sec-high:180
- sec-moderate:80
- sec-low:11
行业影响与反思
该流水线的成功引发了关于软件安全未来的更广泛讨论。一些开发者认为这标志着传统零日漏洞时代的终结,而另一些人则对人为因素表示担忧。
社区讨论提出了若干关键观点:
- 人为因素:担心项目可能开始忽视人工提交的漏洞报告,转而偏好 AI 生成的报告,从而导致长期存在的手工报告被忽略。
- 工具转变:有人猜测代理化 AI 可能最终取代传统的静态分析工具,而后者往往速度慢且易产生误报。
- 可持续性:部分观察者质疑如此大规模的清理是否可持续,还是仅仅是由与 AI 提供商合作驱动的“一次性营销案例”。
对开发者的启示
Mozilla 鼓励其他软件项目现在就开始实现类似的工具。核心的“内部循环”很简单:确定一段代码,提示模型寻找漏洞,并要求其构建测试用例以证明。提前搭建此基础设施,团队即可立即受益于当前模型,并在更强大的模型发布时自动提升安全姿态。
展望未来,Mozilla 计划将此分析直接集成到持续集成(CI)系统中,在补丁合入代码树时进行扫描,从根本上防止新漏洞的引入。