CyberFactory:用野生漏洞实例规模化提升网络安全能力 CyberFactory: Scaling Cyber Security Capabilities with Instances from the Wild
将真实CVE转化为可执行数据训练OpenAegis,CyberGym通过率达58.1%
前置知识
PoC 与差分验证 Oracle
PoC(Proof of Concept)是能触发目标漏洞的最小输入。差分验证要求该输入在pre-patch(漏洞)构建上触发sanitizer崩溃,同时在post-patch(修复)构建上不崩溃,即 $V(x)=\mathbb{1}[\mathrm{CRASH}(b^-,x)\wedge\neg\,\mathrm{CRASH}(b^+,x)]$。这排除了因偶然原因崩溃的输入,使解题成功成为机器可自动判定的信号。
本文全部数据构造、轨迹筛选与CyberGym评估都建立在这个oracle之上,不理解它就无法理解可执行、可验证的监督是什么含义。
Pass@1
代码与agent评测的常用指标:每个任务只允许一轮尝试,统计成功提交所占比例。本文中指agent在每任务1小时预算内提交一个满足差分oracle的输入 $x^\star$ 的任务占比,越高越好。
Table 1至Table 3的所有对比都用Pass@1,是理解主结果、上下文消融与技能消融的前提。
ARVO / OSS-Fuzz / 野生CVE
本文的三类漏洞来源,构造难度递增。ARVO提供可直接使用的pre/post-patch Docker镜像对与已验证PoC;OSS-Fuzz只给出引入漏洞的commit,需用二分法定位修复commit;野生CVE只有受影响版本范围与CWE类型等元数据,需自行定位fix commit并构建可执行环境。
Figure 2流水线第一步就是对这三类来源分别适配,理解它们的差异才能理解数据构造的难点与工作量分布。
技能内化(SFT蒸馏工作流)
先用显式的漏洞分析技能文档指导teacher模型按系统流程解题并收集成功轨迹,再对这些轨迹做监督微调(SFT),使被训模型在推理时不提供技能文档也能复现类似流程,即把流程写进模型参数。
这是全文最核心的机制:技能只用于数据合成,OpenAegis推理时不带技能,Figure 3与Table 5专门验证内化是否真的发生。
AddressSanitizer(ASan)
Google开发的内存错误检测工具,编译时插桩,运行时发现越界访问、释放后使用等内存错误并报告crash与调用栈。差分oracle中的CRASH信号通常就是sanitizer报告的失败。
Table 6用ASan编译事件数与ASan输出检查次数衡量模型是否系统性地做插桩验证,是行为分析部分的关键量化证据。
长视野上下文压缩
当对话上下文占用达到阈值(本文取 $\tau=0.9$,即256K上下文的90%)时,把累计轨迹压缩成延续状态:保留已验证证据、失败尝试、开放假设、生成工件、构建状态与待办动作,丢弃冗余日志,再让agent带着同样的任务、工具和验证oracle继续工作。
Table 2显示该策略带来58.1%对52.1%(全历史)的Pass@1差距和11.7个点的上下文耗尽率下降,是方法的必要组成部分。
研究动机
随着LLM编码能力增强,其在网络安全上的潜力受到越来越多的研究关注,闭源模型已展现出非平凡的安全能力;与此同时LLM攻击系统的风险也在受控评测与真实部署中被观察到,论文引用了OpenAI 2026年关于模型评估安全事件的报告,说明对可复现防御性安全方法的需求。但现有开源努力存在三个明确缺口:其一,前沿开放权重模型(GLM-5、Kimi、DeepSeek等)虽展示了强大的安全能力,却不提供可复现的训练方案;其二,开源训练方案(CTF解题、VulnLLM-R、CyberPal.ai、Primus等)各自为战、任务孤立,缺少可规模化的agentic训练数据;其三,规模化训练不只是用简单提示做rollout,需要注入强领域先验作为引导。这些缺口共同指向论文的核心研究问题:如何构建统一且开源的方法来规模化网络安全模型的训练?
本文的目标是本文的目标是构建一个统一的开源框架CyberFactory,把数据构造、轨迹合成与模型训练串成端到端流水线,覆盖三类互补任务:概念验证(PoC)生成、漏洞补丁生成与网络安全问答(CyberQA)。具体而言:把ARVO、OSS-Fuzz和野生CVE等公开漏洞工件转化为可执行、可验证的任务实例;用可复用的漏洞分析技能指导teacher模型合成带工具交互与执行反馈的agentic轨迹;再用这些轨迹训练并发布OpenAegis模型,使其在推理时不依赖技能即可内化该分析流程。量化目标是:在CyberGym基准、每任务1小时预算下显著超越其基座Qwen 3.5-397B-A17B,并在同一评估脚手下超过参数量更大的GLM 5.2与Kimi K2.7基线,同时通过轨迹分析证明模型确实学到了预期的安全分析工作流。
与已有工作不同的是,本文的独特切入角度在于把技能从推理时工具转变为数据生成机制:技能只用于条件化数据合成,不随模型发布,通过监督微调把流程内化进参数。已有工作要么只发布模型权重、要么只提供孤立任务的数据集,CyberFactory则提供可复现的端到端配方,并让监督信号本身是agentic的——teacher需要检查源码、调用工具、与目标环境交互并根据执行反馈修订方案。另一个关键设计是差分验证oracle:$V(x)=\mathbb{1}[\mathrm{CRASH}(b^-,x)\wedge\neg\,\mathrm{CRASH}(b^+,x)]$,候选输入必须在漏洞版本上触发崩溃而在修复版本上不崩溃,使成功成为机器可判定信号而非启发式匹配。此外,流水线还做难度校准——过滤掉推理模型能直接解决的实例,只保留仍有训练价值的挑战性样本,这与常见的一味扩充数据量的思路形成鲜明对比。
核心方法
直觉上,这篇论文想让模型学会安全研究员的系统分析流程,而不是零散地学解题技巧。技术路线是一条五步流水线(Figure 2):第一步适配来源,从ARVO、OSS-Fuzz、野生CVE三类来源获取漏洞;第二步重建实例,构建pre-patch与post-patch一对Docker镜像,把真实漏洞证据变成可执行、可差分验证的实例;第三步校准质量,做行为检查与难度检查,只保留既有挑战又可解的实例;第四步清洗与合成,对实例脱敏生成agent可见任务描述,用漏洞分析技能引导teacher(GLM 5.2)合成轨迹,QA采用answer-first策略保证答案可信;第五步训练与评估,对Qwen 3.5-397B-A17B做全参数SFT得到OpenAegis,在CyberGym上以每任务1小时预算评估。整个过程以差分oracle为机器可判定的成功信号,轨迹合成与推理共用同一压缩协议:上下文用量达到90%时触发结构化压缩,以支撑接近256K token的长视野rollout。
核心创新有三点。第一,差分oracle作为细化信号:$V(x)=\mathbb{1}[\mathrm{CRASH}(b^-,x)\wedge\neg\,\mathrm{CRASH}(b^+,x)]$ 可编程且可判定,agent能对每个候选输入自测,sanitizer trace提供有依据的反馈,把PoC构造变成可执行的提出–验证–修订循环,而非开放式生成。第二,技能引导的轨迹合成:技能编码的是任务无关工作流——检查目标与构建约束、用分析与测试技术探索候选输入、验证证据、失败时修订——而非实例特定解法;技能只在合成时提供给teacher,OpenAegis推理时不给,靠SFT内化。第三,长视野上下文压缩:训练时合成与推理共用同一协议,90%触发时把轨迹压缩为保留已验证证据、失败尝试、开放假设、生成工件、构建状态与待办动作的延续状态,丢弃冗余日志。与已有方法的本质区别在于:此前开源方案缺乏跨任务的可扩展agentic数据,而领域先验的注入位置被从推理侧搬到数据侧。
方法步骤详情
第一步漏洞定位:ARVO最易,直接获得pre/post-patch镜像对与groundtruth PoC;OSS-Fuzz只有引入漏洞的commit,用二分法定位修复commit;野生CVE最难——保留带CWE的CVE、在受影响版本范围内定位fix commit、验证时附加漏洞线索过滤推理模型能直解的实例(线索仅验证用,合成时丢弃)。第二步描述创建:LLM对fix commit message分类,低质量重写、高质量保留。第三步补丁实例沿用CVE-Factory方法。第四步QA用answer-first:答案须来自执行派生(crash位置等)、结构派生(变更函数、调用图)或权威报告,LLM judge校验可溯源、不泄漏、答案唯一。第五步技能引导合成:teacher带技能与环境交互,保留通过验证的轨迹;上下文达90%触发压缩。第六步训练:全参数SFT基座Qwen 3.5三个epoch,序列长131072,全局batch 32,Adam($\beta_1=0.9$、$\beta_2=0.95$),cosine学习率峰值$2\times10^{-5}$、10%预热,BF16、256块GPU。
技术新颖性
技术新颖性体现在四个层面。其一,技能即数据机制:以往技能与工作流研究把技能当作推理时提示或程序,本文证明把可复用领域流程注入合成阶段、再经SFT写进参数,可以让模型在推理时零依赖地复现该流程——Table 5与Figure 3的行为证据(OpenAegis每轨迹1.32次探索、1.05次验证调用,而基座Qwen 3.5仅0.01与0.00次)支撑了内化而非记忆的结论。其二,难度校准机制:用当前推理模型过滤已能直解的实例,保留模型单独解不出、但在领域先验指导下可解的样本,使数据始终保有训练信号。其三,把ARVO、OSS-Fuzz、野生CVE三种异构来源统一进同一可执行、可差分验证的实例格式,并配套行为检查(PoC必须在pre-patch崩溃且post-patch通过)与长视野压缩协议。其四,作者在归因上保持克制:把shell命令聚合等动作整合行为解读为从成功轨迹学到的更广泛行为,而非技能的直接指纹,这种区分增强了行为学结论的可信度。
实验结果
主结果(Table 1):CyberGym 1小时预算下,OpenAegis达58.1% Pass@1,比基座Qwen 3.5-397B-A17B(29.6%)高28.5点,并超过更大的GLM 5.2(43.3%,+14.8点)与Kimi K2.7(51.7%,+6.4点),各模型共用同一脚手与预算。上下文消融(Table 2):90%触发压缩达58.1%、长视野48.7%、耗尽率7.0%,优于全历史52.1%与简单截断。技能消融(Table 3):GLM 5.2带技能5次15分钟尝试达46.5%,胜过不带技能1次60分钟的43.3%。行为证据(Table 4、Figure 3):技能使探索覆盖率3.78%→99.85%、验证覆盖率0.13%→98.41%;OpenAegis无技能仍复现该转变(85.2%轨迹先验引导探索,每轨迹探索/验证调用1.32/1.05次)。工具行为(Figure 4、Table 6):shell调用70.1%→89.9%、read 28.4%→7.3%,每shell操作数2.7→5.5,ASan编译事件155→1795。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| CyberGym PoC生成(每任务1小时预算) | Pass@1 | 58.1%(OpenAegis,397B-A17B) | Qwen 3.5-397B-A17B(初始化基座) | +28.5个百分点(29.6%→58.1%) |
| CyberGym PoC生成(同脚手对比) | Pass@1 | 58.1% | GLM 5.2(744B-A40B) | +14.8个百分点(43.3%→58.1%) |
| CyberGym PoC生成(同脚手对比) | Pass@1 | 58.1% | Kimi K2.7(1T-A32B) | +6.4个百分点(51.7%→58.1%) |
| 长视野任务(>40次工具交互)的上下文管理 | Pass@1 / 上下文耗尽率 | 48.7% / 7.0%(90%触发压缩) | 全历史保留 40.2% / 18.7% | +8.5个百分点 / 耗尽率下降11.7个百分点 |
| teacher数据合成效率(GLM 5.2加技能) | Pass@1 | 46.5%(5次×15分钟尝试) | 43.3%(1次×60分钟尝试) | +3.2个百分点且单次尝试时间降至1/4 |
局限与改进
作者明确承认的局限:评估受限于可获得的CVE工件、基准覆盖范围和固定1小时执行预算;部分目标仍受益于手动输入构造而非fuzzing优先策略;补丁生成与CyberQA两条数据线尚未获得与PoC同等的严格评估——主表只报告CyberGym PoC结果;Table 3的技能对比不是等算力比较(5×15=75分钟对60分钟),作者也只声称吞吐提升而非等算力改进;技能注入的GLM 5.2可能过度依赖所提供的领域先验。我自己的观察:基线全部是开放权重模型,缺少闭源前沿模型对照;58.1%意味着约42%任务仍失败,性能上限受teacher能力与数据分布约束;难度过滤以当前推理模型为准绳,随模型进步数据价值可能衰减;256块GPU全参数SFT一个397B模型的成本与开源可复现的初衷之间存在张力;论文未系统评估双刃剑风险——防御能力增强的模型同样可能降低攻击门槛,仅以一段风险声明带过。
独立分析的弱点
独立分析的弱点与改进方向:其一,证据链单点依赖CyberGym——补丁与CyberQA数据虽已构建却无下游量化结果,多任务统一只是数据层面的宣称,建议至少报告小规模补丁验证率与QA判分;其二,缺少数据消融——主结果无法严格归因到技能引导轨迹本身,因为没有用无技能rollout轨迹做SFT的对照组,这是内化结论的最大软肋,建议补一组去掉技能的合成数据实验;其三,难度过滤引入选择偏差——被过滤掉的模型能直解实例可能包含易学的基础模式,剔除后可能伤害简单任务表现,建议按难度分层训练并分别评估;其四,压缩阈值 $\tau=0.9$ 是经验值且只在一个基准上调节,跨任务鲁棒性未知,建议按熵或工具调用密度等信号自适应触发;其五,1小时预算下单任务评估成本高昂且缺少不同预算下的Pareto曲线,建议报告10/30/60分钟的的成功率以指导实际部署。
未来方向
作者提出的未来方向:扩展漏洞、项目和编程语言的覆盖面(当前以C/C++内存类漏洞为主);为补丁生成与CyberQA补齐同样严格的评测;开发能在互补分析策略(如fuzzing优先与手动构造)之间自适应选择的agent。基于成果可延伸的方向:把差分oracle思想推广到其他具备可判定判据的领域,如模糊测试目标、Web漏洞(CVE-Bench类任务)甚至形式化性质验证;从单一技能走向技能库与按CWE类型路由,用对应技能指导合成可能进一步提升数据质量;在可执行oracle信号上引入强化学习(如GRPO类算法)替代或叠加SFT,可能突破teacher蒸馏的上限;把上下文压缩协议与其他长视野agent训练结合,验证跨域泛化;最后是系统评估双刃剑风险——建立攻击能力红队基准,量化OpenAegis类模型的滥用面,让防御性定位有数据支撑而非停留在动机叙述。
复现评估
开源情况较好:框架代码在GitHub(CSJianYang/CyberFactory),合成实例与模型在HuggingFace(Multilingual-Multimodal-NLP/cyberfactory),数据来源ARVO、OSS-Fuzz、CVEfixes均为公开语料,差分验证协议(pre/post镜像加sanitizer判定)描述明确。复现难度分层看待:数据流水线为中等难度——需要大规模构建Docker镜像、运行差分oracle、调用强teacher模型合成轨迹,工程量大但无保密障碍;训练门槛极高——对397B-A17B模型做全参数SFT需要256块GPU与复杂并行切分(TP=8、CP=2、EP=32、ETP=8),绝大多数实验室无法复制,只能走LoRA或更小基座的近似路线;评估相对容易——agent脚手架、CyberGym公开基准加每任务1小时预算,少量GPU即可跑通推理侧。作者同时明确声明OpenAegis包含风险,应在预期用途上验证后使用。总体上是推理与数据可复现、训练难以复现的典型开源发布形态。
论文图表
概览图分左右两半:左侧展示来自野外的证据(fix commit的unsafe copy改bounds check、crash类型/报告/位置、ARVO、OSS-Fuzz与野生CVE),经重建与校准(候选PoC在pre-patch上CRASH、post-patch上PASS,形成有挑战且可解的实例);右侧展开三大任务——EXPLOIT(PoC生成:易受攻击行为加差分验证通过)、REMEDIATION(补丁生成:安全修复加函数保持)、KNOWLEDGE(CyberQA:CVE依据加技术解释)。
一张图讲清论文全貌:输入是什么证据、如何差分验证、最终产出哪三类监督数据,是理解论文定位与数据形态的最佳导读。