88%对20%。这两个数字摆在一起,足够让任何对AI智能体做漏洞研究的人冷静下来。UC Berkeley等机构扔出的CyberBinGym基准,把AI智能体放进一个极不友好的1-day漏洞场景:没有源码,没有漏洞描述,没有触发输入,桌上只有两个被strip过的二进制——漏洞版和补丁版。能不能从这堆机器码里把漏洞抠出来,再把它变成可审计的利用,成了这场考试的终极考题。
一场没有源码、没有提示、没有PoC的考试
“三无”条件不是刁难
真实入侵里,攻击者最舒服的时刻是拿到源码、拿到PoC、拿到一份写得明明白白的漏洞公告。可真正值钱的1-day,往往不给你这些。补丁已经发布,部署却严重滞后,攻击者手里可能只搞到两个二进制:一个是带漏洞的旧版本,一个是修好的新版本。剩下的活,全靠自己从差异里反推。CyberBinGym把“无源码、无描述、无触发输入”写成硬约束,等于把智能体从资料齐全的实验室拽进了真实的前线。没有函数名,没有调试符号,编译器优化还会把指令顺序打乱。这种条件下做二进制逆向,资深工程师也得掉几根头发。
53个项目、100道题,考的是通用能力
样本覆盖53个开源项目、100个任务。这个设计很关键。挑一个著名CVE反复调参,分数再高也说明不了什么。跨项目、跨语言、跨构建系统、跨漏洞类型,才能把“背题库”的路堵死。开源项目意味着代码库的真实复杂度:依赖多、编译选项杂、补丁风格各异。智能体不能靠某一种固定套路通吃。它得在陌生代码库里自己找锚点,从补丁的细微改动中判断哪里被修了、为什么被修、原来错在哪。100道题不算多,但足够把过拟合的模型打出原形。
88%与20%之间
恢复漏洞这一步,模型已经跨过去了
Codex在恢复环节做到88%。别小看这个数字。在stripped二进制上做补丁差异分析,函数边界模糊,符号信息被抹掉,编译器还会把相似的代码块合并或重排。模型要能识别出补丁到底改了哪几个基本块、控制流在哪里分叉、哪个可疑函数被加了边界检查。这已经接近中级逆向工程师的日常。过去这类工作靠人盯着反汇编窗口一行行啃,现在智能体能在相当比例的任务里自己走到“我怀疑这里有问题”的位置。这是实打实的进步,但它只完成了前半程。
真正难的是把恢复变成利用
20%。这个数字才是冷水。恢复漏洞只是知道“这里可能有问题”,利用要回答一连串更硬的问题:怎么触发,输入从哪进,数据能不能被控制,控制到什么程度,目标环境开了哪些缓解,怎么稳定复现而不是碰巧崩溃。这是一条从静态证据到动态行为的链。智能体得自己设计实验、读崩溃现场、调整输入、再试。大多数模型在这里断掉,不是因为不懂漏洞模式,而是因为不会做连续的决策。它们擅长从一段代码里读出“这里有溢出”,不擅长在几十次失败后仍然有章法地逼近一个可用的利用路径。
“可审计”三个字,淘汰了大多数演示
CyberBinGym强调可审计利用,不是“碰巧crash”或者“拿到shell截个图”。审计意味着每一步有依据、可复现、能解释。很多自动利用生成系统能打出exploit,但过程是黑箱,靠暴力搜索或者运气,这在评测里拿不到分。这个约束把“演示效果”和“真实能力”切开了。安全圈见过太多demo:视频里一跑就通,换个环境就哑火。可审计的要求逼着智能体把推理链摆到桌面上,也逼着评测者去看它到底是怎么想的,而不只是看它最后有没有打通。
硬化编译:又一道墙
门槛抬高了,但不是不可逾越
硬化编译进一步压缩了成功率。栈保护、地址随机化、控制流完整性、fortify之类的选项,单独拎出来都不是无敌的,叠在一起就麻烦了。智能体不仅要理解漏洞本身,还得判断目标二进制开了哪些防护、哪些能绕过、绕过的代价多大。墙更高,但并非绝对。问题在于,模型每多一层防护要处理,推理步数就往上翻,出错概率也跟着涨。原本20%的利用率,在硬化条件下只会更难看。这不是说利用不可能,而是说自动化链路变得更长、更脆。
攻防成本的天平又歪了一点
防守方打开一个编译选项,攻击方可能要付出成倍的推理和实验成本。这种不对称是安全工程的老朋友。AI智能体把攻击侧的自动化程度抬高了,硬化编译又把成本压回去一部分。双方都在加速,但加速的方向不一样:一边在降低“发现和利用”的人力门槛,一边在抬高“成功利用”的技术门槛。CyberBinGym测出来的那组数字,正好卡在这个拉锯的位置上。它提醒防守方,硬化编译不是万能药,但确实还在起作用;也提醒攻击侧的研究者,别把恢复率当成胜利宣言。
评测坐标系该重画了
老基准漏掉了最贵的一段路
不少漏洞基准只问“能不能定位漏洞”,或者“能不能生成一个崩溃输入”。这相当于把马拉松截成前五公里,然后宣布选手跑得很快。定位和崩溃只是入口,真正昂贵的是从入口走到稳定利用的那段路。CyberBinGym把恢复和利用拆开,等于把后半程的坡度也标了出来。这个拆分不花哨,但很要命。它让“88%”和“20%”同时出现在一张表里,读者立刻知道瓶颈不在发现,而在闭环。
分开度量,才能看清水位
如果只报一个综合分,恢复环节的高分会把利用环节的短板盖住。拆开之后,研究者知道该改哪个模块:是补二进制理解,还是补实验规划,还是补对缓解机制的知识。对智能体开发者来说,这种颗粒度比一个笼统的排名有用得多。对防守方来说,也能更清楚地判断威胁到底到了哪一步:是只能找到补丁改了什么,还是已经能稳定打出利用。两种威胁等级,应对策略完全不同。
冷水之后,线索在哪
别再拿“找到漏洞”当终点
安全行业有个老习惯:把“发现”当成成果,把“利用”留给红队。可真实攻防里,不能完成利用的发现,价值有限。对AI智能体也一样,恢复率高不是护城河,闭环能力才是。CyberBinGym的20%像一盆冷水,浇的是那些把“模型能看懂补丁”直接等同于“模型能打”的叙事。看懂和打通之间,隔着触发、控制、绕过、稳定复现,每一步都能让智能体卡住。把这段距离量出来,比再刷一个恢复率纪录更有意义。
瓶颈正从知识转向决策
模型不缺漏洞模式的知识。缓冲区溢出、整数回绕、释放后使用,这些概念它见过太多。缺的是在不确定环境里做实验、读反馈、改策略的决策链。20%的利用率指向的不是“再多喂点CVE”,而是“让智能体学会像人一样提假设、做验证、失败了换条路”。这也解释了为什么单纯扩大模型规模未必能跨过这道坎。知识可以堆出来,决策链得靠交互和试错磨出来。下一个值得盯的突破点,大概率不在预训练语料里,而在智能体怎么组织自己的行动序列。
CyberBinGym最有价值的地方,不是给AI判了死刑,而是把“看起来很强”和“真的能打”之间的那段距离量了出来。88%的光鲜和20%的冷峻,都是坐标。下一个问题很简单:当模型学会把恢复、触发、利用串成一条可审计的链,硬化编译还能挡多久?

