10 月 21 日晚,如果你有浏览社交媒体的习惯,可能会注意到一股奇怪的“断网潮”。几乎在同一时间,全球多国的重要基础设施网站纷纷宣布临时关闭。芬兰政府下线了所有对外网络服务,荷兰国家网络安全中心撤下了官网,鹿特丹港、荷兰足协、五大政党网站以及多家医院紧随其后。法国内政部要求各省网站暂时下线,德国联邦 IT 服务商关闭了多个站点,比利时外交部、维基媒体基金会和任天堂也相继停掉了部分服务。这些网站并非遭到黑客入侵,而是出于预防目的主动关闭的。
起因是 PHP 语言的一个新漏洞组合,被安全公司命名为 PHP2Shell。PHP 是全球最流行的网站后端语言,据 W3Techs 统计,约七成网站运行在它之上。这两个漏洞允许攻击者在无需登录的情况下远程控制整台服务器。虽然 AI 发现漏洞早已不是新闻,但这是首次有 AI 挖出的漏洞导致多国政府同一天关闭网站。它宣告了网络安全领域一条不成文规则的终结:许多漏洞之所以安全,只是因为攻击它们成本太高。PHP 官方将漏洞严重程度评为 9.2 分(满分 10 分),安全公司 WatchTowr 直接给出了满分。
漏洞源于 PHP 最底层的内存管理问题,与网站具体代码编写的好坏无关。PHP 官方表示所有处理网页请求的 PHP 版本均受影响,Cloudflare 指出受影响版本可追溯至十余年前的 PHP 5.4。PHP 基金会负责人将其与 2014 年的“心脏出血”漏洞相比,认为是十多年来最严重的 PHP 安全问题。漏洞原处于保密期,但 10 月 20 日泄露消息后,PHP 官方紧急提前至 21 日发布补丁。补丁发布前,攻击尝试已现端倪。Cloudflare 首席技术官在补丁发布前六小时警告早期攻击已出现。美国国家安全局、英国国家网络安全中心等机构建议来不及打补丁的系统直接下线,这才出现了开头那一幕。
PHP2Shell 的反常之处在于它并不新,源头甚至可追溯至 2004 年。早在 20 年前,安全研究员 Stefan Esser 就发现过类似的内存耗尽问题。2020 年有人提交过相关 Bug 报告,但因未被证实可利用而未被修复。2024 年的一次审计也发现了相关问题,但最终不了了之。这类漏洞在 PHP 里躺了十多年,多次被人摸到边却一直未被利用。独立安全作者 Nick Rogers 将这种状态称为“security by exhaustion”,意指漏洞之所以安全,纯粹是因为攻击者太累了,不愿付出高昂成本去挖掘。
改变这一切的是 OpenAI 今年 6 月启动的“Patch the Planet”计划。安全公司 Calif 参与其中,利用 AI Agent 审计 PHP 内核代码。AI 发现漏洞后,能将方法总结为“技能文件”复用,从而迅速找到第二个漏洞。Calif 使用的是 GPT-5.6 Sol 等公开模型。几乎同时,Wiz 公司借助 Gemini 4 Argon 和 GPT-5.6 Sol 独立发现了同一组漏洞。Wiz 称,一名研究员一周完成的工作,前沿 AI 几小时内即可完成。两家公司三周内撞上同一漏洞,证明了 AI 正在改变网络防御格局,将漏洞发现的边际成本推向零。
将时间线拉回过去两年,AI 发现漏洞已从“能找到”演变为“让政府关站”。2024 年 11 月,Google 的 Big Sleep 在 SQLite 中发现漏洞;4 月,Anthropic 的 Claude 在 OpenBSD 找到 27 年前的漏洞。2024 年 7 月,AI 发现的 WordPress 漏洞被大规模利用。AI 对安全的影响已从圈内技术新闻变为社会现实。攻击者也在利用 AI,PHP2Shell 公开当天,攻击工具已出现。Anthropic 报告称,国家背景组织利用 AI 自动化完成 80% 至 90% 的攻击操作。Google 亦报告攻击者成功利用 AI 造出零日攻击。AI 将复杂的攻击成本转嫁回防守方,过去需要一个团队的攻击,现在一个人加几个 Agent 即可。
PHP2Shell 的提前泄露将“防守窗口”压缩至几个小时。OpenAI 预测未来几个月类似发现会急剧增加。Google 发布的 Chrome 156 修复了 353 个漏洞,一年前单版本修复数仅为 20 多个。Chrome 156 修复的 6 个最高等级漏洞中,有 5 个来自 AI 公司报告。AI 发现漏洞的方法可复制,过去顶尖研究员的经验无法复制,现在可以打包成文件交给无数 Agent 并行处理。互联网底层堆积了数十年的老代码,像 PHP2Shell 这样“太累人而不被利用”的漏洞还有多少?过去靠“太累了”保护的安全,正在消失。
政府网站因 AI 挖出的漏洞集体关门,这可能是第一次,但看起来,很难是最后一次。
