[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

  1. Model selection – 两个具代表性的 DL 检测器:
    • ReVeal(基于图神经网络,作用于程序依赖图)。
    • LineVul(基于 Transformer,作用于标记化的源码行)。
  2. Dataset preparation – 每个模型在四个基准数据集(Juliet、Devign、BigVul、ICVul)中从头训练。未进行跨数据集微调,模拟典型的学术实践。
  3. Embedding inspection – 训练完成后,将模型内部的代码表示通过 t‑SNE 投射到二维空间,观察漏洞代码与安全代码的聚类情况。
  4. Real‑world test set (VentiVul) – 选取 20 条 Linux 内核漏洞补丁,在训练数据截止时间之后(2025 年 5 月)收集。每个补丁被拆分为“漏洞”(修复前)和“非漏洞”(修复后)代码片段。
  5. LLM prompting – 将相同的 VentiVul 代码片段以零样本提示的方式输入四个 LLM,要求模型标记代码为“vulnerable”或“safe”。未进行额外微调。
  6. Metrics – 对每个模型/数据集组合报告标准检测指标(precision、recall、F1),重点关注转向 VentiVul 时的性能下降。

Results & Findings

Model / DatasetAvg. F1 on BenchmarkF1 on VentiVul
ReVeal (Juliet)0.840.31
ReVeal (Devign)0.780.28
LineVul (BigVul)0.810.34
LineVul (ICVul)0.770.30
Claude 3.5 Sonnet (LLM)– (zero‑shot)0.36
GPT‑o3‑mini0.22
GPT‑4o0.38
GPT‑50.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
Back to Blog

相关文章

阅读更多 »