网易首页 > 网易号 > 正文 申请入驻

CyberFactory:把互联网上的漏洞碎片,炼成能打CTF的开源模型

0
分享至


2026年7月,OpenAI在自己的安全博客上发了一篇文章,标题挺扎眼:和Hugging Face合作处理一次安全事故,起因是模型评估过程中出了漏洞。你可能觉得这种新闻见怪不怪了,但仔细想想会发现一件挺矛盾的事:我们一边在担心AI模型会不会被拿去攻击系统,一边却发现,能真正帮我们防御这些攻击的开源模型,几乎不存在。

这不是危言耸听。闭源模型比如Mythos确实在网络安全任务上表现不错,但它们是黑箱,你没法知道它们是怎么训练出这种能力的,也没法复现。开源阵营呢?GLM、Kimi这些前沿的开放权重模型虽然也展示了不错的安全能力,但同样不告诉你训练方法。剩下的开源方案,大多是针对某个孤立任务做的,比如专门搞CTF(夺旗赛,一种网络安全竞赛形式,参赛者通过攻防技巧获取隐藏的"旗帜"字符串来得分)的,或者专门做漏洞检测的,彼此不成体系。

这篇论文要解决的,就是这个"有能力,没配方"的问题。研究团队做了一套叫CyberFactory的开源框架,试图把从数据构造、轨迹合成到模型训练这一整条链路都打通,并且用这套流程训练出了一个具体的模型,叫OpenAegis(名字来自希腊神话里宙斯和雅典娜的护盾,寓意防御性用途)。

漏洞不会自己讲故事,得靠人喂

要理解CyberFactory在解决什么问题,得先明白一件事:现实世界里的漏洞数据其实是一堆散乱的碎片。

一个CVE(Common Vulnerabilities and Exposures,通用漏洞披露编号,是安全社区给每个已知软件漏洞分配的唯一标识)条目里,你能拿到的往往只是一段模糊的描述、一个受影响的版本范围,可能还带个CWE类型(Common Weakness Enumeration,通用缺陷枚举,是对软件缺陷类型的标准化分类体系,比如"缓冲区溢出"就是一种CWE类型)。但这些信息离"训练一个能自己发现并修复漏洞的AI模型"还差得远:你需要知道具体是哪一次代码提交引入了漏洞、哪一次提交修复了它、用什么样的输入能触发它、触发之后系统表现出什么异常。这些东西CVE报告里通常不会写。

这就好比你收到一张寻人启事,上面只写着"某人在某个时间段的某个城市走丢了",却没有照片、没有具体地址、没有体貌特征。你想去找这个人,光靠这张启事是不够的,你得自己去查监控、走访邻居、比对户籍资料,把这条线索一点点还原成一个可以按图索骥的完整档案。如果没人做这个还原工作,再多的寻人启事堆在那里也只是一堆废纸,没法真正用来找人。CyberFactory做的就是这个"还原档案"的工作,只不过对象换成了漏洞。

具体来说,团队用了三类原始素材。第一类是ARVO(Atlas of Reproducible Vulnerabilities for Open Source Software,一个收录了六千多个可复现的开源软件漏洞的图谱数据库),这类素材质量最好,因为它自带修复前后两个版本的Docker镜像和验证用的PoC(Proof-of-Concept,概念验证,这里特指一段能够触发目标漏洞的具体输入或代码),直接拿来用就行。第二类是OSS-Fuzz(Google维护的一个开源模糊测试平台,专门对开源项目做自动化漏洞挖掘)里的漏洞,这类素材通常只给出了引入漏洞的提交记录,团队得用二分查找的方法去定位对应的修复提交在哪。第三类,也是最难啃的一类,就是直接从CVE数据库里挖出来的"野生"漏洞,这类素材最原始,只有版本范围和类型标签,团队得自己去定位修复提交、构建可执行环境、验证漏洞是否真实存在。

难度依次递增,工作量也依次递增,这也是为什么论文标题里特意强调"来自荒野的实例",因为这批最难处理的CVE恰恰是覆盖面最广、最贴近真实世界的部分。

先做减法,再做加法:只留下模型解不出来的题

拿到这些漏洞素材之后,团队没有把所有实例一股脑塞给模型训练,而是先做了一轮筛选,剔除那些"模型闭着眼睛都能做对"的简单题。

具体做法是,先让推理模型去尝试直接生成PoC,如果模型能轻松解出来,这道题就被扔掉,只留下那些模型解不出来、但确实存在解法的实例。这一步在论文里被称为"实例校验"。

这个逻辑其实很像出考卷。如果你是老师,出了一套卷子,结果发现全班都能考满分,这套卷子对区分学生水平就没什么意义,你会把那些送分题换掉,换成学生真正需要动脑筋、且经过努力确实能做对的题目。CyberFactory做的正是这件事:它要保证每一道被留下的题目都"有挑战性但可解决",太简单的题目训练不出真本事,而无解的题目会让模型学到错误的挫败感,两头都不能要。

筛选完实例之后,还得给每道题配上"题干",也就是漏洞描述。这里团队的策略是能省则省:如果原始的修复提交信息(commit message)写得足够清楚,就直接拿来当描述用;如果写得潦草或者信息不全,才会调用LLM结合漏洞证据重新生成一段清晰的描述。这算是一种务实的取巧,毕竟没必要事事都靠AI重写,能用现成的高质量素材就不浪费。

老师带着学生做题,比学生自己瞎撞的效率高得多

光有题目还不够,CyberFactory真正的核心创新,在于它怎么让一个"教师模型"去解题、并把解题过程录下来给"学生模型"学。

这里出现了一个很关键的设计,叫做漏洞分析技能(vulnerability-analysis skill,一套可复用的、与具体任务无关的标准工作流程,指导模型如何检查目标代码、结合领域先验知识来解决问题、并基于执行证据做验证)。

这个技能不是针对某一道具体题目的解法,而是一套通用的做题方法论:先去检查目标程序和它的构建约束条件,再用合适的分析和测试手段去探索可能触发漏洞的输入,验证拿到的证据是否站得住脚,如果验证失败就调整思路重新来。这套流程有点像给一个新手侦探配了一本"办案手册",手册不会直接告诉你"凶手是谁",但会规定你必须按顺序做勘查现场、收集证据、交叉验证这几个步骤,不能想到哪查到哪。

为什么这么设计很重要,看一组对比数据就明白了。团队把这个技能应用到GLM 5.2这个教师模型身上做了个对照实验:不给技能的时候,模型每道题给一个小时的时间去做一次,Pass@1(一次尝试就做对的比例)是43.3%;给了技能之后,每道题只给15分钟,但让模型独立尝试5次,Pass@1反而涨到了46.5%。

这个结果乍看有点反直觉:时间预算从60分钟砍到了15分钟,四分之一都不到,结果却做得更好了。这说明有技能指导的模型不是靠"多耗时间硬撑"提高成功率的,而是每一次尝试的效率本身就高了很多,团队进一步的行为分析也证实了这一点:给了技能之后,模型的"探索覆盖率"(有没有用到领域引导的探索方法)从3.78%飙升到99.85%,"验证覆盖率"(有没有做基于证据的验证)从0.13%涨到98.41%。

翻译成人话就是:没有技能指导的模型,绝大多数时候是在瞎撞,撞上了就撞上了,撞不上就直接提交草率的答案;有了技能指导之后,模型几乎每一次都会按部就班地先探索、再验证,做题的纪律性完全不一样了。

如果没有这套技能会怎样?团队也观察到了一个值得警惕的副作用:注入了技能的GLM 5.2会对这份"先验知识"产生一定程度的依赖,这提示我们,给模型一份操作手册虽然能提高解题效率,但也可能让它在手册之外变得不那么灵活。这算是这个设计里一个诚实的但书,团队并没有回避这一点。

教师做完题,学生不需要抄手册也能学会解题套路

有了这批由"技能引导"生成的高质量解题轨迹之后,下一步就是训练学生模型OpenAegis。

这里有个挺关键的设计选择:OpenAegis在推理阶段并不会拿到那份漏洞分析技能手册,它完全是靠监督微调(Supervised Fine-Tuning,SFT,一种用人工标注或筛选过的高质量样本去调整模型参数的训练方式),把老师解题时展现出来的那套工作流程,内化成了自己参数里的东西。

这就好比一个学徒跟着老师傅学修车,老师傅手把手带着他检查发动机、听异响、拆零件、装回去、再试车,学徒看了足够多遍这样的完整流程之后,哪怕没有老师傅在旁边递手册,他自己上手修车时也会不自觉地按照同样的步骤来做,先听声音再拆零件,而不是直接抡起扳手瞎拆一通。如果这个学徒从没跟老师傅系统学过,只是自己瞎摸索了几次,遇到没见过的故障时大概率会乱来,成功率也没法保证。

论文里做了个很直接的验证,对比了Qwen3.5(也就是OpenAegis的基座模型,没有经过CyberFactory训练)和OpenAegis在解题时的行为模式。结果显示,OpenAegis的探索调用频率从每条轨迹0.01次涨到了1.32次,验证调用频率从0.00涨到了1.05次,几乎复刻了教师模型被注入技能之后的行为变化方向,尽管OpenAegis从头到尾都没见过那份技能手册。这个对应关系恰恰证明了监督微调确实把"怎么做题"这件事学进去了,而不只是记住了"这道题的答案是什么"。

除了做题的思路变了,OpenAegis连使用工具的习惯都变了。经过训练后,它做常规代码检查时,用read指令直接读文件的比例从28.4%降到了7.3%,转而更多用shell指令(从70.1%涨到89.9%),单次操作的调用比例从314%降到13.5%,一次性打包6到10个操作的调用比例则从4.3%涨到30.8%。这说明模型学会了把零散的检查动作打包成更完整的一次性操作,而不是每查一步就停下来问一句"下一步该干嘛"。

这些变化听起来琐碎,但放在实际场景里意义不小。想象你在装修房子,找一个只会一件件搬砖的工人,和找一个会提前规划好一整面墙需要多少砖、一次性搬齐的工人,效率差距是巨大的。前者每搬一块砖都要往返一次仓库,后者一次性把材料备齐再开工,中间浪费的时间和体力完全不是一个量级。

超长任务会把上下文撑爆,得学会"断舍离"

前面聊的都是"怎么做对题",还有一个技术细节值得单独说说,就是模型在做真实漏洞复现任务时,经常会遇到上下文爆掉的问题。

CyberGym(本论文用来评测的基准测试平台,要求AI agent仅凭一段自然语言描述和对应代码库,就去复现一个真实存在的软件漏洞)这个评测环境里,很多任务需要反复检查代码、编译、运行、验证,一来二去整个对话历史很容易逼近256K token的上限(token是语言模型处理文本的最小单位,可以粗略理解为词或字的片段)。

团队的做法是设置了一个压缩触发阈值:当上下文占用达到90%的时候,就把已经积累的所有对话历史压缩成一个"续接状态",只保留已验证的证据、失败过的尝试、还没验证的猜想、生成过的文件、构建状态和待办事项,把冗余的日志和重复的搜索结果都扔掉。压缩完之后,模型带着这个精简版的记忆继续往下做,任务、工具、验证方式全都不变,变的只是记忆的呈现方式。

这跟你收拾一个塞满东西的行李箱有点像。如果你把所有穿过的衣服、用过的票据、买的纪念品全都原样塞回箱子,箱子迟早会因为塞不下而合不上盖,你要么被迫扔掉重要的东西(比如把还没看完的地图硬塞进去导致箱子爆开),要么干脆放弃继续装东西。聪明的做法是定期把已经用不上的东西(脏衣服可以先揉成一团、票据可以先拍照存档丢掉纸质版)清理掉,只留下接下来的行程真正需要的东西,这样箱子才能一直装得下、不至于半路散架。

团队还专门做了阈值的消融实验,测试了80%、90%、95%三个触发点。结果显示90%是最优的:触发太早(80%)压缩次数太频繁,反而干扰了正常的解题节奏;触发太晚(95%)会导致压缩请求本身和后续的工具调用没有足够的空间展开。用了90%这个阈值之后,整体Pass@1达到58.1%,需要40次以上工具交互的长程任务上,Pass@1比对照组高出8.5个百分点,因为上下文耗尽而失败的比例也下降了11.7个百分点。相比之下,如果什么都不压缩,直接让完整历史一直堆到底,整体Pass@1只有52.1%;如果用最简单粗暴的截断方式(直接砍掉早期记录),效果反而更差,只有45.6%,因为简单截断可能一不小心就把关键证据也砍掉了。

最终成绩单:58.1%意味着什么

说了这么多设计思路,最终落地效果到底怎么样?

在CyberGym这个一小时任务预算的评测里,OpenAegis拿到了58.1%的Pass@1成绩,相比它的基座模型Qwen 3.5的29.6%,直接翻了近一倍,绝对提升28.5个百分点。这个提升幅度是整篇论文里最大的一组对比数据,意味着同样一个397B参数规模的模型,光是经过CyberFactory这套流程的训练,解题能力就能翻番。

更让人意外的是,OpenAegis还打赢了参数规模远大于它的两个通用型模型:GLM 5.2(744B总参数)和Kimi K2.7(1T总参数)。GLM 5.2的Pass@1是43.3%,Kimi K2.7是51.7%,OpenAegis分别领先它们14.8和6.4个百分点,而且用的还是同样的评测脚手架、同样的工具接口、同样的一小时预算,没有任何"作弊"式的额外优势。

这说明了一件事:在网络安全这种高度专业化的任务上,参数规模不是万能的,针对性的训练数据和训练流程可能比单纯堆大模型更有效。这也呼应了论文开篇提出的那个问题:与其等着更大的模型自然而然地学会安全技能,不如直接设计一套流程把这种能力"炼"出来。

下面这张表是核心结果的汇总:

| 模型 | 参数规模 | Pass@1 |

| Qwen 3.5 | 397B-A17B | 29.6% |

| Kimi K2.7 | 1T-A32B | 51.7% |

| GLM 5.2 | 744B-A40B | 43.3% |

| OpenAegis | 397B-A17B | **58.1%** |

除了PoC生成任务,CyberFactory的训练数据还覆盖了另外两类任务:漏洞修复(patch generation,让模型学会在保证功能不变的前提下修补安全漏洞)和网络安全问答(CyberQA)。针对问答数据,团队采取了一种叫"答案优先"的策略:先确定一个可信来源给出的标准答案,比如崩溃发生的具体位置、代码里哪个函数被改动过、权威报告里直接写明的结论,再让LLM把这些信息包装成问题和答案的形式,而不是让LLM自己凭空编答案。生成完之后还要过一道LLM裁判的关卡,检查答案是否能追溯回原始来源、问题里有没有意外泄露答案、一个问题是否只对应一个确定的答案,不合格的样本要么重新生成一次,要么直接丢弃。这套流程保证了问答数据的可信度建立在原始证据之上,而不是模型自己的臆测。

写在后面

读完这篇论文,最触动我的其实不是那个58.1%的成绩,而是团队做的一个"减法"实验:把技能手册塞给GLM 5.2之后,团队诚实地记录了一个副作用,模型会对这份先验知识产生依赖。这个细节很容易被忽略,但它其实揭示了一个更普遍的问题:任何一套"标准操作流程",无论设计得多精巧,一旦给了模型,都有可能变成一种拐杖,让模型在没有拐杖的场景里反而站不稳。团队没有回避这个问题,也没有把它藏起来,这种诚实感在论文里其实不算常见。

还有一点值得单独拿出来聊聊:整个筛选实例的逻辑,本质上是在做"难度校准",先让候选模型试做一遍,把它能轻松解决的题目直接踢出训练集。这个做法背后其实藏着一个更深的问题,你用来筛选难度的那个"候选模型"本身的能力边界,会不会反过来定义了整个数据集的难度分布?如果筛选用的模型本身能力有限,那些它做不出来、但换一个更强模型分分钟能解的题目,会不会被误判成"有价值的难题"留下来?论文没有细谈这个潜在的循环依赖,但这确实是个值得继续追问的地方。

论文末尾也坦诚地写了几处局限:目前的评测受限于现有CVE素材的覆盖范围和固定的一小时预算,某些目标其实更适合人工构造输入,而不是模糊测试优先的策略;漏洞修复和CyberQA两个任务还没有做同等严格程度的评测;未来还需要把语言和项目覆盖面进一步拓宽。这些留白算是给整个方向留了不少可以继续挖的坑。

Q&A

Q1:CyberFactory是什么?

A:CyberFactory是一套开源的网络安全模型训练框架,把互联网上真实存在的CVE漏洞、ARVO和OSS-Fuzz里的漏洞素材转化成可执行、可验证的训练任务,涵盖漏洞复现、补丁生成和安全问答三类任务。

Q2:OpenAegis模型表现怎么样?

A:在CyberGym评测中,OpenAegis一小时预算下拿到58.1%的Pass@1成绩,比基座模型Qwen 3.5提升28.5个百分点,还超过了参数规模更大的GLM 5.2和Kimi K2.7。

Q3:OpenAegis推理时需要那个漏洞分析技能手册吗?

A:不需要。这份技能手册只在生成训练数据阶段用来指导教师模型解题,OpenAegis通过监督微调把这套解题流程内化到了自己的参数里,推理时不依赖手册也能复现同样的工作方式。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国女篮如果战胜波多黎各,进入世界杯八强,将会收获5大利好

中国女篮如果战胜波多黎各,进入世界杯八强,将会收获5大利好

宝哥精彩赛事
2026-09-08 08:59:23
太子奶创始人李途纯去世,其子回应:或突发心梗,事发时无人在其身边

太子奶创始人李途纯去世,其子回应:或突发心梗,事发时无人在其身边

红星新闻
2026-09-08 16:48:21
承认吧,如今很多家庭已经供不起一个大学生本科四年的全部开销了

承认吧,如今很多家庭已经供不起一个大学生本科四年的全部开销了

天天热点见闻
2026-09-07 06:10:14
金灿荣连发文章警示人口下滑:中国面对的是西方10亿人口竞争

金灿荣连发文章警示人口下滑:中国面对的是西方10亿人口竞争

六子吃凉粉
2026-09-08 10:53:12
普京给咱出了气!俄方打出关键一拳,日本抗议没用,多国开团秒跟

普京给咱出了气!俄方打出关键一拳,日本抗议没用,多国开团秒跟

面包夹知识
2026-09-08 18:42:10
抖音回应“自称被4岁男童‘摸臀’女子账号被禁止关注”:避免因争议行为获取流量后与商业利益捆绑,相关账号被暂停营利权限

抖音回应“自称被4岁男童‘摸臀’女子账号被禁止关注”:避免因争议行为获取流量后与商业利益捆绑,相关账号被暂停营利权限

蓬勃新闻
2026-09-08 20:14:35
德国选择党领袖公开发声:德国实际上已经破产了,法国也快玩完了,谁来收拾欧盟这个烂摊子?

德国选择党领袖公开发声:德国实际上已经破产了,法国也快玩完了,谁来收拾欧盟这个烂摊子?

极目新闻
2026-09-08 09:05:24
9月8日,人社部与财政部正式出炉关于2026年调整退休人员基本养老金的通知文件了吗?

9月8日,人社部与财政部正式出炉关于2026年调整退休人员基本养老金的通知文件了吗?

扶苏聊历史
2026-09-08 14:31:21
全网羡慕的“苏DWE985”送女儿上哈工大是假的?警方发话了

全网羡慕的“苏DWE985”送女儿上哈工大是假的?警方发话了

现代快报
2026-09-08 16:42:41
律师公开广西朱广成涉黑案中大规模刑讯逼供细节:有人被逼到撞墙自杀,有人在庭审期间死亡

律师公开广西朱广成涉黑案中大规模刑讯逼供细节:有人被逼到撞墙自杀,有人在庭审期间死亡

追月数星
2026-09-08 14:09:40
高一女生在学校组织“军训”中遭强制猥亵:涉事“教官”有犯罪记录,已被刑拘

高一女生在学校组织“军训”中遭强制猥亵:涉事“教官”有犯罪记录,已被刑拘

澎湃新闻
2026-09-08 20:14:33
加拿大开美国盟友“反击”先例,最高50%关税落地,特朗普下一拳要打哪里?

加拿大开美国盟友“反击”先例,最高50%关税落地,特朗普下一拳要打哪里?

上观新闻
2026-09-08 16:52:43
申军良给“梅姨”写了封信:拐了这么多孩子,能睡得着吗?“梅姨”落网细节曝光:出租屋内被抓,生活拮据靠捡废品为生

申军良给“梅姨”写了封信:拐了这么多孩子,能睡得着吗?“梅姨”落网细节曝光:出租屋内被抓,生活拮据靠捡废品为生

封面新闻
2026-09-08 18:09:04
12小时仅50块?学生爆料被学校派去做鲜花饼,因不满薪资往饼里吐痰

12小时仅50块?学生爆料被学校派去做鲜花饼,因不满薪资往饼里吐痰

齐天候
2026-09-08 20:46:49
晚上6点!CCTV5直播国足生死战,全主力PK全主力,胜率或仅50%

晚上6点!CCTV5直播国足生死战,全主力PK全主力,胜率或仅50%

篮球圈里的那些事
2026-09-08 16:40:55
“青岛保时捷女销冠”发文称自己现在排名全球第一;曾两年卖出340台保时捷,多次登上全国热搜

“青岛保时捷女销冠”发文称自己现在排名全球第一;曾两年卖出340台保时捷,多次登上全国热搜

洪观新闻
2026-09-08 10:25:03
百万粉丝吃播网红“干饭莹莹猝然离世,年仅24岁!从发文提醒到去世仅3天…

百万粉丝吃播网红“干饭莹莹猝然离世,年仅24岁!从发文提醒到去世仅3天…

大风新闻
2026-09-08 08:59:07
中国女篮VS波多黎各,开球时间确定,宫鲁鸣纠错,张子宇重新定位

中国女篮VS波多黎各,开球时间确定,宫鲁鸣纠错,张子宇重新定位

体育大学僧
2026-09-08 11:04:36
南通烤肉店老板老陶深夜跳江身亡!6家门店,一个爱好毁掉一切

南通烤肉店老板老陶深夜跳江身亡!6家门店,一个爱好毁掉一切

天天热点见闻
2026-09-08 06:33:00
宇树王兴兴机场被偶遇,低头看手机神情严肃

宇树王兴兴机场被偶遇,低头看手机神情严肃

鞭牛士
2026-09-08 11:02:04
2026-09-08 21:44:49
科技行者 incentive-icons
科技行者
科技正在如何变革商业世界
9789文章数 568关注度
往期回顾 全部

科技要闻

小米再次背水一战

头条要闻

高一女生在"军训"中遭强制猥亵:他掀我衣服说想亲我

头条要闻

高一女生在"军训"中遭强制猥亵:他掀我衣服说想亲我

体育要闻

韩旭:我一定会再次走出去

娱乐要闻

郭德纲被处罚,郭麒麟被曝恋情瓜

财经要闻

智谱六连跌失守1000大关,发生了什么?

汽车要闻

领克20 领克的纯电小钢炮这次更运动了

态度原创

手机
游戏
房产
旅游
亲子

手机要闻

iOS 27代码再曝新线索 苹果首款折叠屏iPhone或将重新启用Touch ID

曝又一《怪物猎人》或将登陆NS2!任天堂发布会见?

房产要闻

真快啊!海口这个超级城更,又有大动作!

旅游要闻

礼敬师恩!本周济宁这些景区对全国教师免门票

亲子要闻

市民走进一妇婴:沉浸式探秘妇婴服务,解锁全周期健康守护新体验

无障碍浏览 进入关怀版