面向软件漏洞检测的大语言模型:模型、方法、技术、数据集与评价指标研究综述

4/26/2026

# 面向软件漏洞检测的大语言模型:模型、方法、技术、数据集与评价指标研究综述

International Journal of Information Security(Springer) (CCF B 类)

⭐⭐⭐

发表时间:14 February 2025

原文链接:https://doi.org/10.1007/s10207-025-00992-7

# 摘要

大语言模型(LLMs)正成为软件漏洞检测和管理领域的变革性工具,通过提高准确性和效率,并与传统技术互补,但仍面临高质量数据集和伦理影响等挑战。

# 简介

  • 问题背景: 软件应用中普遍存在的实现缺陷可能导致程序崩溃、数据损坏及可利用的安全漏洞。传统的漏洞检测方法,如静态分析和基于深度学习的方法,在准确性、误报率控制以及捕捉代码复杂性方面存在局限性。例如,2023年Verizon数据泄露报告显示,企业平均需要197天识别安全漏洞,69天进行遏制,这凸显了对高效自动化工具的迫切需求。(传统方法准确度和识别率低,耗时周期长)
  • LLM的崛起: Transformer架构驱动的LLM在自然语言处理领域取得了突破性进展,并已展现出在软件漏洞检测方面超越传统方法的潜力。
  • 研究目标: 本文旨在系统性地回答一系列研究问题,涵盖LLM在软件漏洞检测中的应用原因、角色、模型类型、性能比较、应用方式、微调技术、数据集、评估指标、面临挑战及增强策略,以填补现有研究空白,为未来研究提供基础性指导。

# 研究方法

  • 文献收集全面且高质量)*本综述采用系统性文献回顾方法,通过关键词识别、多数据库搜索(Google Scholar, arXiv, IEEE, Science Direct, ACM Digital Library)、初步筛选、双盲评审及“滚雪球”技术,确保了文献收集的全面性和相关性。*最终,通过严格的纳入与排除标准,筛选出高质量的文献进行分析。
  • 个人思考: 这种严谨的文献筛选流程是确保综述质量的关键。值得注意的是,研究团队还利用了Microsoft Copilot、ChatGPT 4.0和Gemini等AI工具辅助文献识别,这反映了AI在科研辅助方面的日益普及和效用。

# 背景

  • LLM概述: LLM是基于大规模文本数据训练的预训练语言模型(PLM),如GPT-4、BERT等,以其庞大的参数量、复杂的神经网络结构和卓越的语言理解与生成能力著称。

  • LLM分类:

    • 仅编码器模型 (Encoder-only): 如BERT及其变体(CodeBERT, GraphCodeBERT),擅长理解输入序列并捕获上下文信息,适用于分类任务。(擅长做代码分类,理解代码)
    • 编码器-解码器模型 (Encoder-decoder): 如T5、CodeT5,结合编码器理解输入和解码器生成输出,适用于摘要、翻译等任务。(代码总结,从一种格式转换为另一种,相当于翻译代码)
    • 仅解码器模型 (Decoder-only): 如GPT系列、LLaMA,专注于序列令牌预测,擅长自由文本生成和下游任务。(代码生成,只要告诉它任务就能生成代码)
    • 稀疏模型 (Sparse Model): 采用混合专家(MoE)等方法,通过激活部分参数实现高效处理,平衡计算效率与模型能力。(新技术、能够高效处理超长的代码任务)
  • 与传统软件安全方法的比较:

    论文通过详尽的表格(Table 1)对比了LLM与手动代码审查、渗透测试、DAST、SAST等方法的目的、代码表示、学习与适应性、泛化能力、反馈机制、覆盖范围、操作基础、适应性及主要用例。

    • LLM优势: 强大的泛化能力(跨代码库、编程语言),基于统计分析和模式识别,高度适应和灵活,能提供解释和理由。
    • 传统方法优势: 规则明确,在特定已知漏洞检测上精度高,如SAST在早期开发阶段检测结构性缺陷。
    • 个人思考: LLM比较创新,有很好的可读性,而且有很好的泛化能力,传统方法比较专精,要结合两种方法去做,利用不同工具的互补性。混合策略可能会更好。

# LLM在软件开发生命周期 (SDLC) 中的应用

  • 漏洞在SDLC的各个阶段都可能引入,但往往在后期才显现,导致修复成本高昂。LLM能够集成到SDLC的多个阶段,从早期的代码编写到后期的测试和维护,实现漏洞的早期发现和缓解。
  • 我的思考: LLM主要能在开发、测试和维护这三个阶段帮上忙。可以在代码上线之前就发现问题,未雨绸缪,比起事后修复就好很多!

# 研究问题解答与深入分析

  • RQ1 (为何使用LLM): LLM通过自动化、高精度、跨语言泛化能力以及对代码语义的深度理解,克服了传统方法的局限性,提升了漏洞检测效率。(自动化、精度高、泛化能力强)
  • RQ2 (LLM的角色): LLM在漏洞检测、自动程序修复(APR)、日志威胁检测、网络钓鱼检测、安全测试、渗透测试、安全培训等多个环节发挥作用。(自动检测,实时监测,实时修复)
  • RQ3 & RQ4 (LLM类型与性能): GPT系列、LLaMA、BERT、CodeBERT等多种LLM已被应用于漏洞检测。研究表明,LLM在某些场景下能显著超越传统方法,但其性能受模型架构、训练数据和任务复杂性影响,仍存在提升空间。(GPT比静态工具Synk发现的漏洞多4倍!!!但也不代表不会出错。)
  • RQ5 (LLM的应用方式): LLM可集成到APR框架、作为代码分析器直接识别漏洞并提供修复建议,或通过专用框架(如VulDetect)进行漏洞检测。(和自动修复框架结合、直接当代码分析器、搞一些专门的框架)
  • RQ6 & RQ7 (微调的影响与技术): 微调能显著提升LLM在漏洞检测和修复任务上的性能。参数高效微调(PEFT),如LoRA、Adapter、Prefix-tuning,因其计算效率高、能有效优化模型性能而备受关注。(微调就是定制化、、)
  • RQ8 (数据集): LLM的训练和评估依赖于大规模通用代码数据集(如The Stack, GitHub Code)和专用漏洞数据集(如CVEfixes, Big-Vul, LineVul),后者对学习特定漏洞模式至关重要。(数据集越好才能越好)
  • RQ9 (评估指标): 针对分类、推荐和生成任务,需采用F1-score、精确率、召回率、AUC-ROC、MRR、BLEU、CodeBLEU、Exact Match (EM) 和Pass@k等多样化指标进行综合评估。
  • RQ10 (面临挑战): LLM在漏洞检测中面临多重挑战,包括安全风险(提示词注入、数据中毒)、性能问题(幻觉、代码生成质量不稳定、部署资源消耗)、评估难题(缺乏统一标准)以及伦理考量(隐私、过度依赖)。
  • RQ11 (增强策略): 提升LLM效能需采取多方面策略,包括与现有工具集成、构建更大更优质的数据集、专注于特定漏洞类型、采用先进的预处理技术、优化提示工程、实现持续学习,并关注模型大小、数据质量、评估方法、可解释性和伦理问题。

# Thinking

未来的研究方向,我觉得应该是在人机协作的框架下,充分发挥LLM的优势,同时用各种技术手段去弥补它的不足。同时也必须知道它为什么抓这个bug,即可解释性。如果找bug纯靠LLM,而不知道为什么找,然后就考LLM自动修复,那可能会引入新bug,得不偿失。

# 名词解释

中文全称 中文简称 英文全称 英文缩写
应用程序编程接口 API Application Programming Interface API
程序自动修复 APR Automated Program Repair APR
来自变压器的双向编码器表示 BERT Bidirectional Encoder Representations from Transformers BERT
双语评价替补 BLEU Bilingual Evaluation Understudy BLEU
有界模型检查器 BMC Bounded Model Checker BMC
常见攻击模式的枚举与分类 CAPEC Common Attack Pattern Enumeration and Classification CAPEC
常见漏洞和暴露 CVE Common Vulnerabilities and Exposures CVE
常见弱点枚举 CWE Common Weakness Enumeration CWE
动态应用安全测试 DAST Dynamic Application Security Testing DAST
多样反事实解释 DiCE Diverse Counterfactual Explanations DiCE
深度学习 DL Deep Learning DL
图神经网络 GNNs Graph Neural Networks GNNs
交互式应用安全测试 IAST Interactive Application Security Testing IAST
大型语言模型 大语言模型 Large Language Model LLM
长短时记忆 LSTM Long Short-Term Memory LSTM
宏数据细化 MDR Macro Data Refinement MDR
平均倒数排名 MRR Mean Reciprocal Rank MRR
多任务学习 MTL Multi-Task Learning MTL
美国国家标准与技术研究院 NIST National Institute of Standards and Technology NIST
自然语言处理 NLP Natural Language Processing NLP
神经机器翻译 NMT Neural Machine Translation NMT
国家漏洞数据库 NVD National Vulnerability Database NVD
程序依赖图 PDG Program Dependence Graph PDG
参数高效微调 PEFT Parameter-Efficient Fine-Tuning PEFT
个人信息 个人信息 Personally Identifiable Information PII
从人类反馈中强化学习 RLHF Reinforcement Learning from Human Feedback RLHF
软件保障参考数据集 SARD Software Assurance Reference Dataset SARD
静态应用安全测试 SAST Static Application Security Testing SAST
软件开发生命周期 SDLC Software Development Life Cycle SDLC
软件工程 SE Software Engineering SE
SHapley加性解释 SHAP SHapley Additive exPlanations SHAP
结构化查询语言 SQL Structured Query Language SQL
超级通用语言理解评价 SuperGLUE Super General Language Understanding Evaluation SuperGLUE
上次更新: 2026年04月26日 23:40:14