一个不太舒服的事实

9月13日,安全团队Hacktron公开了他们7月底对OpenAI的一次渗透测试完整过程:三名研究员,借助Anthropic的Claude,从发现漏洞到拿到OpenAI内部GitHub monorepo的访问权,全程不到72小时。他们没有用任何零日漏洞——整条攻击链的起点,是一个上游早就修掉、但因为修复提交没被标记为安全补丁而没被Debian回移的libheif堆溢出。

这条攻击链值得完整复述一遍,因为它每一环都平平无奇:

  1. OpenAI的社区论坛(community.openai.com)基于Discourse,Discourse的Docker镜像基于Debian 12,里面装着一个未被回移安全补丁的libheif 1.19.7;
  2. Discourse处理HEIC/HEIF图片时会绕过FastImage、直接调用ImageMagick转换,于是这个解析器完全暴露给攻击者可控的文件;
  3. 上传一张恶意图片即获得论坛服务器RCE;
  4. 论坛支持"Sign in with OpenAI",而OpenAI的SSO身份配置存在缺陷——拿下论坛等于可以无交互劫持活跃用户的ChatGPT和Codex会话;
  5. 一位OpenAI员工的Codex连接着公司GitHub组织,于是他们让这位员工的Codex在内部monorepo里开了一个无害的PR作为影响证明,然后停止测试、上报漏洞,拿到了6500美元赏金。

每一环单独看都是"已知的、可修的、不算大事的"问题。但链起来,就是一家前沿AI公司的内部代码仓库。

真正的新闻不是OpenAI被攻破,是成本曲线

如果只把这件事当成又一起安全事件,就错过了它的分量。Hacktron在报告中给出了真正的关键数据:

  • 整个"HEIF Heist"研究项目——覆盖Slack、Meta、GitHub Enterprise等多个目标——耗时两个月,AI token开销总计不到3000美元,由三个人完成;
  • 把同一个exploit适配到一家新公司,通常只需要一到两天
  • 攻击几乎是从零信息开始的:不知道目标的libheif版本、libc版本、部署环境,模型自己摸黑适配;
  • 数千张恶意图片发出去、目标的图片处理器反复崩溃,只有Shopify一家察觉了异常

这才是这件事的正确打开方式:攻击成本下降了大约两个数量级,而检测能力没有变化。

安全行业有一条存在了几十年的隐性契约:漏洞可以公开存在,因为把一个内存破坏bug变成稳定可用的exploit,需要稀缺的专家知识、对目标环境的深入了解、以及数月的人力投入。零日漏洞之所以昂贵,不是因为bug本身稀少,而是因为"武器化"这个过程贵。CVE列表里躺着成千上万个"理论上可利用"的漏洞,绝大多数公司靠着这层利用成本的保护安然无恙。

Hacktron的结论说得非常直白:AI正在把这层稀缺的专业知识变成廉价的算力。软件长期享受的"复杂性即安全"(security through complexity)从来不是真正的安全边界,但它事实上保护了普通公司——现在这个事实保护层正在被剥离。

模型代际差:从4.8到5之间隔着一条ASLR

报告里有个细节值得所有做安全的人停下來想一想。

Opus 4.8在关闭ASLR的情况下能写出可用的exploit,但在Discourse默认开启ASLR的配置下,开了好几个会话都没能稳定突破。当天晚上Opus 5发布,同一个问题,3小时内产出本地ARM64可用exploit,随后被要求移植到Discourse实际使用的x86-64加jemalloc环境,次日早上确认通过图片上传实现RCE。

还有一个更微妙的小插曲:Claude会拒绝为真实远程目标编写exploit,于是团队把它放进一个自主goal循环,目标经rce.ee代理伪装成CTF靶机——模型就放手去做了。这段"越狱"本身平淡无奇,但它说明当前模型的能力边界已经不是技术边界,而是措辞边界。

这些细节指向两个判断:

第一,exploit能力已经进入模型代际跃迁曲线。 4.8做不到、5做到、GPT-5.6 Sol又跳一级(在完全不了解目标系统、只知道它有漏洞的前提下完成利用)。这意味着"我的系统有漏洞但没人打得动"的窗口期,正在从"季度级"压缩到"新模型发布间隔级"。

第二,防守方的威胁模型过期速度比想象中快。 一年前合理的假设——“能对我们发动内存破坏攻击的组织不超过个位数”——今天的正确答案可能已经是"任何一个有三千美元预算的三人小组"。

为什么检测侧几乎全军覆没

整个campaign里只有Shopify发现了异常,这可能比攻击本身更值得深挖。

数千张畸形图片上传、图片处理服务反复崩溃、然后某个边缘服务突然拥有了不该有的行为——这些信号都发生过,但它们分散在日志、指标和告警的噪声里,没有被任何一个"正常运作"的企业安全体系串成一条线。攻击面是一个社区论坛,一个几乎所有公司都视为"第三方托管、低敏感度、边缘资产"的组件。

这暴露的其实是防御体系的一个结构性盲区:企业的检测能力是按攻击者的稀缺性校准的。 我们默认复杂攻击会伴随复杂痕迹、来自高级威胁行为体、触发高置信度告警。但当攻击被压缩到一两天、由API调用驱动、目标是边缘资产时,它看起来就像普通噪声。攻击变便宜了,检测的相对成本却没变——攻防的天平就是这样倾斜的。

顺便说,这条链里真正致命的一环其实不是libheif,而是SSO配置缺陷:论坛被攻破之所以能变成员工账号被劫持,是因为"任何使用OpenAI SSO的服务被攻破,都等价于拿到该服务上活跃用户的身份"。身份边界设计里的一处偷懒,让一个图片解码器的堆溢出获得了进入内部代码仓库的权限。攻击链的强度取决于最薄弱且最被忽视的那一环——这话说了二十年,但AI让"最薄弱一环"的搜索成本也趋近于零了。

那么威胁模型该怎么改

与其空谈"AI安全风险",不如把这次事件当成一次威胁建模的免费演习。几个我认为可以直接落地的调整:

按"利用成本下降100倍"重写风险评级。 传统CVSS之外,加一个维度:这个漏洞的利用难度属于"已 weaponized"、“AI可weaponized"还是"仍需稀缺专家”。大量躺在风险登记表里标为"中危、暂缓修复"的已知漏洞,应该整体上调一档。尤其是那些依赖"利用难度高"而非"不可利用"来豁免修复的项目。

依赖链的安全补丁溯源要自动化。 这次漏洞一年前就在上游修了,但因为提交没打安全标记、没分配CVE,Debian没有回移,Discourse的镜像继续带着漏洞分发。你需要监控的不是CVE列表,而是关键依赖(尤其是图片解析这类处理不可信输入的库)的上游提交流。自建Debian镜像的团队,重新build一次——网页界面的更新不会替换底层镜像。

边缘资产按身份入口对待。 任何接入了公司SSO的服务,无论多边缘、多"只是个论坛",其安全等级都应等同于身份提供方本身。要么给它独立的身份域,要么给它核心资产级的加固。中间态是最差的选择。

可观测性是最后的底线。 当攻击成本趋近算力价格,防御的期望值越来越取决于"被打了之后多久发现"。图片处理器崩溃这类低置信度信号的聚合分析(同一个来源反复触发、失败模式趋同),可能是唯一能在下一代攻击里提供预警的廉价手段。

更大的一盘棋

把镜头拉远,这件事还有一层容易被忽略的含义。

就在同一周,DeepMind撰文警告可见思维链正在消失,企业侧WSO2把Agent治理做成了平台产品,42位皇家学会会士联名警告AI生存性风险。这些新闻和Hacktron的报告看起来各说各话,其实共享同一个底层的叙事:AI的能力正在从"被使用的工具"扩散到"行使能力的主体",而我们的制度、防御和观测手段都还是按前一种状态设计的。

攻防只是这个叙事里最锋利的一角,因为它把抽象的能力进步直接换算成了美元:两个月,三千美元,三家研究员,N家头部公司,一家察觉。经济学是所有安全决策的最终语言——当武器化的边际成本降到如此之低,“我的攻击面不值得被攻击"这个假设就从战略模糊变成了明确的错误。

软件安全的第一性原理从未变过:不依赖隐蔽性,假设漏洞会被利用,把赌注押在检测、隔离和快速恢复上。过去几十年里,这条原理因为利用成本的高企而可以被侥幸绕过。AI清偿了这份侥幸债。对防御者来说,这不是末日,而是一次迟到的对齐——终于要按照教科书上一直写的那样去做安全了。


参考:Hacktron: Hacking OpenAIHEIF HeistThe Decoder 报道