论文链接:CyberFactory: Scaling Cyber Security Capabilities with Instances from the Wild 代码仓库:GitHub: CSJianYang/CyberFactory | 模型/数据:HuggingFace: Multilingual-Multimodal-NLP/cyberfactory 发表时间:2026年8月 机构:北京航空航天大学(第一作者 Jian Yang 等)+ ELLIS(欧洲机器学习研究机构)+ IQuest Research(企业) + 新加坡管理大学。典型的"高校主导 + 企业参与"产学研合作,同时开源了管线、数据与模型三者。 领域标签:cs.CR / AI安全 / 防御性安全工程 / 可验证训练

一、论文背景

LLM 的网络安全能力为什么重要,又卡在哪里?

随着 LLM 编码能力增强,其在网络安全场景的潜力受到关注:自动分析软件漏洞、生成触发漏洞的概念验证输入、修补缺陷、回答安全知识问题。这些是防御性安全的核心工作流——帮助开发者在攻击者之前发现并修复漏洞。闭源模型(如 Mythos)已展现不俗能力,但存在一个透明度问题:它们不告诉你能力是怎么训练出来的。

开源阵营的三重困境(论文开篇的三段论):

  1. 前沿开源权重模型(GLM-5、Qwen、DeepSeek-V4 等)安全能力强,但不提供可复现的训练方案——只发布权重,不发布配方;
  2. 开源安全解决方案散落在 CTF、漏洞检测、修补等孤立任务上,各自为战,缺乏统一的 agentic 数据管线;
  3. 规模化 agent rollout 需要强领域先验注入——简单 prompt 撒出去的 rollouts 大量预算浪费在临时性的输入构造和重复尝试上,没有一致的分析流程。

核心问题:如何构建一个统一且开源的方法来规模化训练网络安全模型?

这里的关键概念逐一解释:

  • PoC(Proof of Concept)生成:给定漏洞的自然语言描述和代码库,合成一个能触发该漏洞的具体输入——安全工程师验证漏洞可利用性的标准动作;
  • 差分验证:PoC 必须在打补丁前的构建上崩溃、打补丁后的构建上不崩溃——两侧都满足才能证明触发的是目标漏洞而非巧合崩溃;
  • 技能:编码任务无关工作流的可复用"操作手册"——论文用它引导(而非替代)教师模型走"源码检查 → 领域先验求解 → 证据验证"的流程。

二、论文定位和关联工作

谱系一:网络安全能力基准(测什么)

  • CyBench/NYU CTF:竞赛衍生挑战,执行性好但离真实安全工作有距离;CyberGym(Wang et al., 2026b)让 agent 从描述+代码库复现 1,507 个真实漏洞,是本论文的评估基准;CyberGym-E2E 覆盖发现-PoC-补丁全生命周期;ExploitGym 测触发输入到可用攻击的转化。共同点:只测能力,不产出训练方案。

谱系二:可复现漏洞数据集(数据从哪来)

  • CVEfixes/Big-Vul 类工作链接 CVE 摘要与代码修复;MAGMA 为已知 bug 提供真值可达性 oracle;ARVO(Mei et al., 2026)在 OSS-Fuzz 上恢复 6,100+ 真实漏洞——是本论文最易用的数据源;From-the-wild CVE 难度最高(只有受影响版本范围与 CWE 元数据)。缺口:数据集不等于训练管线,更不等于 agentic 监督。

谱系三:真实软件任务训练(怎么训)

  • SWE-bench/SWE-gym 证明执行任务+验证器反馈可训练开放编码模型;SWE-agent 展示 agent-计算机接口如何塑造仓库级行为。缺口:这些是通用编码,不是安全专属。

谱系四:安全修复与问答(单点能力)

  • VulRepair(T5 修补)、SecQA/CyberMetric(知识问答)——各自孤立。CyberFactory 把这些此前分离的监督形式接入同一多任务数据管线。
维度基准路线(CyberGym 等)数据集路线(ARVO 等)CyberFactory
产出物评测集漏洞实例库数据构造+轨迹合成+训练的全链配方
任务覆盖单一静态工件PoC/修补/QA 三任务统一
监督形态判分无监督agentic 轨迹(工具交互+执行反馈)
开源程度基准公开数据公开管线+数据+模型全开源

定位结论:CyberFactory 是首个把"野外 CVE 证据 → 可执行可验证实例 → 技能引导 agentic 轨迹 → 专用模型"串成一条开源流水线的框架,填补"权重开源但配方不开源"的空白。

三、问题定义

具体问题:从碎片化的真实漏洞工件(CVE 记录、fix commit、崩溃报告)出发,规模化合成能训练出强网络安全模型的监督数据。

核心洞察的抽象:网络安全训练的瓶颈不是数据量(CVE 数以十万计),而是每个训练信号的可验证性。论文把问题抽象为:

找到可编程判定的 oracle V(x) = 1[CRASH(b⁻, x)] ∧ 1[¬CRASH(b⁺, x)](式1)——候选输入 x 必须让补丁前构建 b⁻ 触发 sanitizer 失败、补丁后构建 b⁺ 不触发。一旦 oracle 可编程判定,PoC 构造就从开放式生成变成 propose–verify–refine 循环:agent 可在无人监督下测试每个候选,verdict 与 sanitizer trace 提供有根据的修改反馈。

用表格类比深度学习:

CyberFactory深度学习对应物
差分 oracle V(x)(式1)损失函数(可微、可自动评估)
propose–verify–refine 循环前向-反向-更新循环
漏洞分析技能优化器的归纳偏置(如动量)
技能引导的教师轨迹知识蒸馏的教师信号
SFT 内化蒸馏后的学生推理(不再需要教师)
上下文压缩梯度检查点(长序列的内存管理)

形式化:给定实例分布(漏洞描述+代码库),求策略 π 与数据合成流程 F,使得 E[V(x*)] 最大且 F 可复现——约束是监督必须 agentic(工具交互、执行反馈、迭代修正)且训练后的模型不依赖技能推理。

精妙之处:评估即训练信号——CyberGym 的判定 oracle 与训练时 agent 自我验证用的是同一个式(1),训练与部署不存在分布漂移;技能被定位为"数据生成机制"而非"推理依赖",从而避免了部署时携带厚重提示的成本。

四、问题解法

管线分五步:适配来源 → 重构实例 → 校准质量 → 清洗合成 → 训练评估。

4.1 创建 PoC 构造实例(来源与差分验证)

三个数据源按实例构造难度递增:

  • ARVO(最易):直接提供 pre-patch/post-patch Docker 镜像对与真值 PoC;
  • OSS-Fuzz:只有引入漏洞的 commit,用与 ARVO 相同的二分搜索定位修复 commit,重建镜像对;
  • From-the-wild CVE(最难):只给受影响版本范围 + CWE 类型。三步流水线:①保留有 CWE 分类的 CVE;②从版本范围定位 fix commit,产出补丁前/后镜像;③实例验证——筛掉推理模型直接生成 PoC 就能解决的实例,只保留对模型仍有挑战性的(漏洞类型、崩溃信息等辅助信号仅用于验证阶段,数据合成与训练时丢弃——防止标签泄漏)。

描述生成:LLM 先给 fix commit message 分类;低质量的用漏洞证据+fix commit 重写描述,高质量的保留原文——保证任务提示的信息量。

4.2 修补与问答(同一管线的另两个任务)

  • Patch 生成:沿用 CVE-Factory 方法,基于 CVE 记录与神经修补形式——安全修复且功能保持;
  • CyberQA(答案优先的可信问答):答案必须来自可信来源——执行派生结果(崩溃位置、测试结果)、结构派生事实(变更函数、调用图关系)、权威报告直取文本。LLM 只负责把剩余上下文改写成问答对。每条自动检查:答案可溯源、与原值一致、问题不泄漏答案、问题唯一确定答案——模糊或无效样本重生成一次或丢弃。答案的正确性来自来源本身,而非 LLM。

4.3 技能引导的轨迹合成(论文的灵魂)

裸 rollout 的问题:实例只定义目标,不定义路径。直接撒 rollout 会把大量预算花在临时输入构造和无效重复上。

技能设计:一个可复用的"漏洞分析技能"编码任务无关的工作流——

  1. 检查目标及其构建约束(源码检查);
  2. 用合适的分析与测试技术探索候选输入(领域先验求解);
  3. 验证所得证据(证据验证);
  4. 验证失败时修正路径(迭代修正)。

模型仍须通过与环境的交互识别并触发每个漏洞——技能是"怎么干活的手册",不是"答案清单"。只保留最终输出满足任务验证标准的轨迹。技能仅用于约束数据合成,不提供给 OpenAegis 推理。

4.4 长程上下文压缩

CyberGym rollout 可逼近 256K token 上下文限制。当上下文用量达 90% 时触发结构化压缩:把累积轨迹压成"延续状态"——保留已验证证据、失败尝试、开放假设、生成工件、构建状态、待办动作,丢弃冗余日志与搜索结果。agent 携带同样任务/工具/oracle 恢复执行——只改工作记忆的表示。压缩协议在训练时合成与推理时同构使用。

4.5 训练 OpenAegis

Qwen3.5-397B-A17B checkpoint 初始化,全参数 SFT 三轮;序列打包至 131,072 token;Adam(β₁=0.9, β₂=0.95)、余弦学习率(峰值 2×10⁻⁵)、BF16、256 GPU(张量/上下文/专家/专家张量并行 = 8/2/32/8)。

五、评估指标与实验证据

基准与协议:CyberGym(从自然语言描述+代码库合成 PoC),每小时/题预算(足够反复检查源码、编译、执行、验证),所有模型用相同脚手架、工具接口、任务提示、提交逻辑、差分 oracle 与时间预算——评估时无任何模型获得技能。

主指标:Pass@1(差分 oracle 满足的任务比例)。

主结果(CyberGym 一小时预算)

模型参数量Pass@1 (%)
Qwen 3.5(基座)397B-A17B29.6
GLM 5.2744B-A40B43.3
Kimi K2.71T-A32B51.7
OpenAegis(本文)397B-A17B58.1
  • vs 基座 +28.5pp(同骨架,隔离训练效应);
  • vs GLM 5.2 +14.8pp、vs Kimi K2.7 +6.4pp——参数更少仍胜过约 2 倍总参数/2 倍激活参数的通用巨头,且差异无法归因于推理引导或宽松评估。

上下文管理消融

策略总体 Pass@1(%)长程(>40次工具交互)(%)上下文耗尽率(%)
全历史52.140.218.7
简单截断45.636.824.5
90% 压缩58.148.77.0
80% 压缩54.545.510.4
95% 压缩56.847.18.2

长程任务增益最大(+8.5pp),上下文耗尽率降 11.7pp——压缩保留的恰是长程任务最需要的(验证证据与失败尝试)。简单截断比全历史还差——丢什么比丢多少重要。阈值 0.9 是工程甜点:0.8 压得太频,0.95 留给压缩请求与后续工具调用的余量不足。

技能对教师的影响(GLM 5.2)

配置分钟/次尝试次数Pass@1(%)
无技能60143.3
带技能15546.5

技能让教师以 1/4 单次时长取得更高成功率——合成吞吐量提升(论文诚实声明这不是等算力比较)。行为层面:

指标GLM 5.2+ 技能
领域引导探索覆盖率3.78%99.85%
探索调用/轨迹0.052.06
证据验证覆盖率0.13%98.41%
验证调用/轨迹0.002.17

技能把"偶发的自发行为"变成"默认工作流"。

内化证据(轨迹分析)

  • 策略分布:领域先验探索占比 Qwen3.5 基座 35.6% → OpenAegis 61.7%(GLM5.2+技能为 44.8%)——未给技能却复现了技能诱导的转移;
  • 调用频次:探索 0.01 → 1.32 次/轨迹、验证 0.00 → 1.05 次/轨迹(带技能的 GLM 为 2.06/2.17);
  • 工具整固:shell 调用占比 70.1% → 89.9%、单操作调用 31.4% → 13.5%、6-10 操作调用 4.3% → 30.8%、每次 shell 操作数 2.7 → 5.5——把更多环境交互打包进每次调用再交还控制权;
  • 仪表化纪律:ASAN 编译事件 15 → 1,795、ASAN 输出检查 1,281 → 12,099;
  • 提交选择性:恰好一次提交 37.9% → 48.2%、≥5 次提交 10.4% → 2.0%——更确信才提交。

六、效果优势的根源解释

因果主链:可验证差分 oracle → 技能引导轨迹 → SFT 内化

根源1:评估即训练信号(oracle 的双重角色)

式(1) 差分判定器可编程、无需人工——这带来两个不可替代的性质: agent 可以在无人监督下对每个候选 propose–verify–refine(失败不再是死胡同而是带 sanitizer trace 的定向反馈);训练轨迹的"成功"由同一标准判定,训练分布与评估标准零漂移。对比"启发式匹配"式监督(如文本相似度判 PoC 有效),差分 oracle 排除了"偶然崩溃"的假阳性——两侧构建的对照使成功成为客观、机器可查的信号。没有这一层,轨迹合成的规模化和质量都无从谈起。

根源2:技能改变的是工作流而非知识(数据质量层)

裸 rollout 的失败不是"不知道漏洞知识",而是没有一致的分析程序——预算耗散在临时构造与盲目重试。技能注入后探索覆盖率从 3.78% 到 99.85% 的跃升说明:领域先验把搜索空间从"任意输入"约束到"有方向的分析"。教师单次尝试从 60 分钟降到 15 分钟且成功率反升——正确的程序比更多的尝试更便宜。

根源3:SFT 内化的是程序分布而非答案(行为层)

最关键的证据链:OpenAegis 推理时没有技能,却复现了技能诱导的同向行为转移(探索 61.7% vs 基座 35.6%;探索/验证调用 1.32/1.05 vs 0.01/0.00)。机制解释:SFT 在"技能引导的成功轨迹"分布上做极大似然——轨迹中"先探索再验证"的决策模式与最终成功在统计上耦合,模型学到的条件分布自然继承了该工作流。这证明增益来自策略分布的内化而非推理时的提示依赖——部署零成本。更广的习得行为(ASAN 事件 15→1795、恰好一次提交 37.9%→48.2%)是成功轨迹中"证据驱动"模式的副产物——可验证轨迹同时教任务结果与连贯的分析程序。

根源4:压缩保留的是"决策相关状态"(长程层)

长程任务 +8.5pp 的机制:压缩保留验证证据/失败尝试/开放假设而丢弃冗余日志——失败尝试是负信息(告诉模型哪些路不通),验证证据是已确认的正信息,两者构成决策所需的信念状态;简单截断从尾部砍,恰好砍掉最近的探索记忆,故反而最差(45.6% < 52.1%)。上下文耗尽率 18.7%→7.0% 是直接因果:更多预算留给真正的问题求解。

反事实:去掉技能引导(裸 rollout 合成)→ 教师成功率 43.3%、吞吐低 4 倍,训练数据量质双降;去掉差分 oracle → 无法自动筛选成功轨迹,人工判定成本不可扩展;去掉压缩 → 长程任务耗尽率 18.7%,近 1/5 任务根本没跑完。

为什么参数更少还能赢 Kimi K2.7:通用模型的参数预算摊在所有任务上,而 OpenAegis 的 SFT 把 397B-A17B 的容量重新分配到安全工作流分布上——专业化训练在窄域内买到的是每参数更高的域内效率。

七、必要知识反推

领域知识层

  • 漏洞工件的生态:CVE 记录结构、CWE 分类、fix commit、OSS-Fuzz 的 fuzzing 工作方式、ARVO 的镜像对构造——不知道"野外证据长什么样"就无法设计三源适配;
  • 内存安全与 sanitizer 体系:AddressSanitizer 的崩溃语义、CRASH(b,x) 的可判定性——式(1) 的 oracle 建立其上;
  • 防御性安全的工作流本身:安全工程师如何做源码检查、构造触发输入、验证证据——技能编码的就是这个领域的实践知识。

方法论知识层

  • 差分测试原理(McKeeman 1998 起)与真值 oracle 设计(MAGMA 先例)——两侧构建对照排除假阳性的思想;
  • 可验证奖励训练范式(SWE-gym 等先例):执行任务+验证器反馈支持开放模型训练;
  • 知识蒸馏视角:教师引导合成→学生 SFT 内化的等价性——理解"技能是数据生成机制而非推理依赖"需要这一框架;
  • 长程 agent 的上下文管理(LLMLingua/Context-as-a-Tool 等压缩先例)与"保留什么比压缩多少重要"的信念状态观。

工程知识层

  • 大规模 SFT 工程全栈:BF16、256 GPU 上的张量/上下文/专家/专家张量并行配置、131K 序列打包、131K 丢弃策略;
  • Docker 化漏洞环境构建:二分搜索定位 fix commit、pre/post 镜像管理;
  • 数据卫生细节:实例验证信号的"仅验证不训练"隔离(防泄漏)、CyberQA 的答案溯源检查、描述质量分类;
  • 评估协议设计:等脚手架/等 oracle/等时间预算的受控对比——没有这个,+28.5pp 无法归因于训练。

知识融合的关键节点

  • “评估 oracle ↔ 训练信号"的统一:意识到 CyberGym 的判定器与训练自验证可以是同一个函数——这一等价性同时解决了规模化(无人监督)与零漂移(同分布)两个问题,是全文的结构性枢纽;
  • “技能 → 轨迹分布 → 参数"的传递链设计:把"领域先验"从 prompt 工程问题改写为数据合成问题——关键洞察是技能的作用点在教师而非学生,内化由 SFT 自动完成;
  • 轨迹分析作为内化证据:用调用频次/策略分布/工具形态的行为学统计证明"学到了程序"而非"记住了答案”——评估从结果指标扩展到行为指标。

八、论文中可以提取的通用性灵感

灵感1:可编程 oracle 是把评估基准变成训练矿脉的钥匙

  • 核心思想:任何可机器判定的评估标准(差分执行、单元测试、形式验证)都可直接充当训练监督,评估与训练的统一消除分布漂移并免除人工标注。
  • 论文证据:式(1) 同一函数既筛轨迹又当基准判分;propose–verify–refine 循环无人监督运行;OpenAegis 与基座用同 oracle 对比隔离训练效应。
  • 推广场景:①数学证明(Lean 验证器做 oracle);②SQL 生成(执行结果等价性判定);③UI 自动化(状态断言判定);④任何有 CI 测试的软件开发域。

灵感2:把领域先验注入"教师的工作流"而非学生的提示——SFT 自动内化

  • 核心思想:想让模型获得某种工作方式,不必在推理时挂提示,而应在合成训练数据时用该工作方式引导教师——学生经 SFT 继承程序分布。
  • 论文证据:OpenAegis 无技能推理却复现探索/验证行为(61.7% vs 35.6%;调用 1.32/1.05);教师吞吐 4 倍提升;部署零提示成本。
  • 推广场景:①代码评审风格的内化;②医学诊断流程(问诊顺序)注入问诊模型;③客服 SOP 训练;④任何"提示工程不想长期付租金"的场景。

灵感3:长程记忆压缩要按"信念状态"保留,不是按距离截断

  • 核心思想:压缩工作记忆时,保留决策相关状态(已验证证据、失败尝试、开放假设、待办),丢弃过程噪音(日志、原始搜索结果)——负信息与正信息同等重要。
  • 论文证据:90% 压缩 58.1% vs 简单截断 45.6%(比全历史 52.1% 还差);长程任务 +8.5pp;耗尽率 18.7%→7.0%;阈值 0.9 的甜点。
  • 推广场景:①长程研究 agent 的笔记系统;②多轮对话的记忆管理;③ agent 项目交接的状态快照;④人类知识工作者的工作日志设计。

灵感4:用行为学统计验证"内化"而非只看结果分

  • 核心思想:要证明模型学到的是方法而非记忆,比较训练前后的行为分布(调用频次、策略占比、工具形态)比只报成功率更有说服力。
  • 论文证据:探索策略分布转移、ASAN 事件 15→1795、恰好一次提交 37.9%→48.2%、shell 调用整固(2.7→5.5 操作/次)四组行为学证据链。
  • 推广场景:①教育领域的学习效果评估;②组织培训的效果审计;③ fine-tune 副作用的检测;④ RLHF 后模型行为漂移的监控。

灵感5:开源配方而非只开源权重,是能力民主化的完整形态

  • 核心思想:权重只交付结果,配方交付可复现、可审计、可改进的过程——对高风险能力(安全)尤其重要,因为它使能力的来源与局限可被审查。
  • 论文证据:管线(数据构造+轨迹合成+训练)+数据+模型三者同时开源;论文明确讨论审计性与防御性定位(Aegis=宙斯/雅典娜之盾);作者声明"透明可复现的一步而非完整方案”。
  • 推广场景:①企业内模型资产的管理(配方即资产);②学术 reproducibility 标准;③开源安全工具的负责任发布;④监管对高风险 AI 系统的审计要求。