[Paper] 从实验室到现实:对深度学习模型和LLMs的漏洞检测实用评估
发布: (2025年12月11日 GMT+8 18:04)
6 min read
原文: arXiv
Source: arXiv - 2512.10485v1
Overview
本文 From Lab to Reality: A Practical Evaluation of Deep Learning Models and LLMs for Vulnerability Detection 探讨了在学术基准上表现优异的最先进深度学习(DL)和大语言模型(LLM)方法,是否真的能够在真实代码中发现漏洞。通过在新收集的、分布外的 Linux 内核修复集合上测试两种流行的 DL 模型(ReVeal 和 LineVul)以及四个领先的 LLM,作者揭示了“实验室”结果与生产级安全需求之间的巨大性能差距。
Key Contributions
- Comprehensive cross‑dataset study – 在四个广泛使用的漏洞数据集(Juliet、Devign、BigVul、ICVul)上训练并评估 ReVeal 和 LineVul,并使用 t‑SNE 可视化它们学习到的代码嵌入。
- Real‑world benchmark (VentiVul) – 构建了一个时间上分布外的数据集,包含 2025 年 5 月修复的 20 条 Linux 内核漏洞,代表开发者实际遇到的代码。
- LLM comparison – 在 VentiVul 上使用相同的检测流水线,对四个预训练 LLM(Claude 3.5 Sonnet、GPT‑o3‑mini、GPT‑4o、GPT‑5)进行基准测试。
- Empirical evidence of poor generalization – 表明 DL 模型和 LLM 在从精心策划的基准转向 VentiVul 时准确率大幅下降,突显对数据集特定模式的过拟合。
- Evaluation framework – 提出一种面向部署的方法论(对每个数据集独立训练、表示分析、分布外测试),可供研究者和安全团队复用。
Methodology
- Model selection – 两个具代表性的 DL 检测器:
- ReVeal(基于图神经网络,作用于程序依赖图)。
- LineVul(基于 Transformer,作用于标记化的源码行)。
- Dataset preparation – 每个模型在四个基准数据集(Juliet、Devign、BigVul、ICVul)中从头训练。未进行跨数据集微调,模拟典型的学术实践。
- Embedding inspection – 训练完成后,将模型内部的代码表示通过 t‑SNE 投射到二维空间,观察漏洞代码与安全代码的聚类情况。
- Real‑world test set (VentiVul) – 选取 20 条 Linux 内核漏洞补丁,在训练数据截止时间之后(2025 年 5 月)收集。每个补丁被拆分为“漏洞”(修复前)和“非漏洞”(修复后)代码片段。
- LLM prompting – 将相同的 VentiVul 代码片段以零样本提示的方式输入四个 LLM,要求模型标记代码为“vulnerable”或“safe”。未进行额外微调。
- Metrics – 对每个模型/数据集组合报告标准检测指标(precision、recall、F1),重点关注转向 VentiVul 时的性能下降。
Results & Findings
| Model / Dataset | Avg. F1 on Benchmark | F1 on VentiVul |
|---|---|---|
| ReVeal (Juliet) | 0.84 | 0.31 |
| ReVeal (Devign) | 0.78 | 0.28 |
| LineVul (BigVul) | 0.81 | 0.34 |
| LineVul (ICVul) | 0.77 | 0.30 |
| Claude 3.5 Sonnet (LLM) | – (zero‑shot) | 0.36 |
| GPT‑o3‑mini | – | 0.22 |
| GPT‑4o | – | 0.38 |
| GPT‑5 | – | 0.41 |
Key observations
- Embedding collapse – t‑SNE 图显示漏洞代码与安全代码之间几乎没有分离,说明学习到的表示未捕获稳健的安全语义。
- Dataset over‑fitting – 在原始基准上取得的高 F1 分数在 VentiVul 上几乎全部消失,证实了跨分布泛化能力不足。
- LLMs are not a silver bullet – 即使是最先进的 LLM(GPT‑5)也仅略好于 DL 模型,且仍错过多数真实漏洞。
- Time‑wise OOD effect – VentiVul 包含的补丁是在训练数据截止时间之后编写的,这加剧了分布转移,贴近真实部署场景。
Practical Implications
- Security tooling teams should be skeptical of benchmark‑only claims – 在 Devign 上得分 >80 % 的模型,在日常代码审查中仍可能毫无用处。
- Dataset quality matters – 必须使用经过策划、保持最新且多样化的代码语料(包括最近的内核补丁、开源库以及真实 CI 日志),才能训练出在生产环境中不易漂移的模型。
- Hybrid approaches – 将静态分析启发式与 DL/LLM 预测相结合,可在模型不确定时降低漏报率。
- Continuous re‑training – 部署需要能够持续摄取新修复的漏洞(如 CVE 数据库)以保持模型知识的时效性。
- Explainability hooks – 由于嵌入并未清晰区分漏洞代码,加入注意力可视化或基于程序分析的解释,可帮助开发者信任(或拒绝)模型建议。
Limitations & Future Work
- Small real‑world test set – VentiVul 仅包含 20 条补丁;需要更大、更丰富的 OOD 数据集来验证趋势。
- Zero‑shot LLM evaluation – 本研究未探索微调或 few‑shot 提示,这可能提升 LLM 性能。
- Focus on C/Linux kernel – 结果在其他语言或生态系统(如 JavaScript、Rust)中可能不同。
- Representation analysis limited to t‑SNE – 更严格的探测(如线性可分性测试、互信息)可更好地表征嵌入质量。
- Future directions – 作者建议构建持续更新的“漏洞流”数据集,探索对抗学习目标用于代码安全,并将动态执行轨迹整合进模型输入,以丰富模型信息。
Authors
- Chaomeng Lu
- Bert Lagaisse
Paper Information
- arXiv ID: 2512.10485v1
- Categories: cs.CR, cs.LG, cs.SE
- Published: December 11, 2025
- PDF: Download PDF