RESEARCH / PROJECT NOTES

Cyber-JEV

从安全修复中构造匹配比较,研究语言模型如何为 C/C++ 代码审查安排优先级。

代码安全语言模型离线评测

研究问题

当模型判断一段代码是否值得优先审查时,它识别的是漏洞相关变化,还是代码的数据来源和项目风格?如果一个函数已经被修复,模型的评分能否反映这一变化?

Cyber-JEV 围绕这些问题,研究面向源代码漏洞初筛的语言模型匹配对比微调。它的预期用途是帮助安排审查顺序,供后续静态分析、规则或人工审查进一步判断。

方法概览

  1. 收集并重建修复上下文。 从修复提交中构造漏洞函数、修复版本与同文件不变函数的匹配组。
  2. 结合分类和组内排序。 参考池支撑分类学习;匹配组训练模型将漏洞成员排在其他成员之前。两项任务更新同一骨干模型。
  3. 对单个函数评分。 推理时只需要待检查函数,再依据分数和审查预算选择进一步分析的对象。

公开材料报告了 2,829 个匹配组,并使用 Qwen3.5-4B 骨干。修复版本与不变函数属于弱监督,不是经独立人工确认的无漏洞标签;外部匹配组只参与排序项。

我的参与

我参与这项研究,并在这里整理研究问题、方法与实验解读。合作作者及完整署名以研究稿件为准。

实验与结果边界

主要实验针对历史 C/C++ 函数开展离线评测,主测试集含 7,270 个函数、57 个项目与 322 个带漏洞标签的函数。公开结果中,Cyber-JEV 使用五模型集成。

  • 整体排序: Cyber-JEV 的 AUROC 为 0.814,Jev 1.13 为 0.743。仅参考池微调为 0.804;与该基线的整体差距不能据此解释为确定的 AUROC 优势。
  • 审查预算: 两个系统都标记 4,031 个函数时,Cyber-JEV 检出 306 个漏洞函数,Jev 1.13 检出 283 个。这是特定预算下的离线结果,应结合召回率、平均精确率与其他预算阅读。
  • 补丁配对: 相对仅参考池训练,三个公开配对集上的排序表现有所改善。不同训练变体仍体现了整体排序与补丁敏感性的取舍。

训练与保护性评测划分按项目、CVE、修复提交和代码相似性进行隔离。原始数据标签及提交衍生监督仍有局限。真实 Pull Request 部署、新漏洞发现和与其他工具的吞吐量比较尚未验证。

论文与资源

公开材料包括研究介绍、评测结果和 2026 年 10 月研究稿件。上方的“展示页源码”仅对应网站代码;研究实现、模型权重及数据集未随项目页分发。

可以先阅读通俗导读,再查看独立项目页和完整稿件。