" 传统深度学习模型虽然在结构建模上更稳定,但缺乏 LLM 的通用语义理解能力。然而,纯 LLM 方法仍面临关键瓶颈:对细粒度语义(如控制流、数据依赖)建模不足;对复杂漏洞模式的稳定识别能力有限;容易受到 prompt 设计和上下文噪声影响。
因此,DLAP 提出一种融合范式:用深度学习模型增强 LLM 输入,从而实现"结构感知 + 语义推理"的统一。"
- 📄 论文标题:DLAP: A Deep Learning Augmented Large Language Model Prompting Framework for Software Vulnerability Detection
📅 发表时间:The Journal of Systems& Software, 2025
🏫 作者单位:南京大学、南十字星大学(澳大利亚)
01---方法介绍
DLAP 的核心思想是:将深度学习模型提取的语义特征嵌入到 Prompt 中,使 LLM 输入从"原始代码"升级为"语义增强表示"。
整体流程可以概括为三步:
① 语义特征提取
利用深度学习模型编码代码结构与依赖关系;
② Prompt 构建
将结构化语义信息转换为可读描述嵌入输入;
③ LLM 推理
基于增强 Prompt 进行漏洞检测与判别。

图1. DLAP总体架构

图2. DLAP的具体最终提示示例
小结:将"文本驱动 Prompt"升级为"语义驱动 Prompt"。
02---关键机制
-
深度学习增强 Prompt
首次将结构语义特征系统性注入 LLM 输入。
-
跨模型协同架构
打破单一模型范式,实现能力互补。
-
细粒度语义建模
显式建模控制流与数据流关系。
-
鲁棒性优化
降低 Prompt 敏感性,提高跨数据集泛化能力。
| 模块 | 设计思路 | 作用 |
|---|---|---|
| 语义特征提取 | 使用 GNN/Transformer 建模控制流与数据流 | 捕获细粒度程序语义 |
| 语义增强 Prompt | 将模型输出转化为结构化文本描述 | 提升 LLM 输入信息密度 |
| LLM 推理模块 | 基于增强 Prompt 进行语义理解与漏洞判断 | 实现高层语义推理 |
| 结果融合机制 | 结合多视角特征与模型输出 | 提高检测稳定性与准确率 |
小结:DLAP 实现了"表示学习 + 语言推理"的分层协同。
03---实验结果
实验数据集由四个开源项目组成,包括Chrome、Linux、Android和Qemu。这些项目具有良好的开源质量,并具有高质量的漏洞修复记录,以实现可追溯性。主要实验结果如下。
(1)研究哪一类DL模型最适合DLAP,实验结果见表1-2。Linevul在三种DL中表现最佳。此外,Linevul的结果是最离散的检测概率,表明其预测具有最高的置信度,因此可以最好地激发LLM。
表1. DL模型性能比较结果

表2. DL模型的变异系数(CV)比较结果

(2)采用GPT-3.5-turbo-0125模型进行漏洞检测,评估不同提示框架性能,结果见表3。DLAP实现了最高的精确度、召回率、F1得分,以及MCC值。DLAP的准确率为40.4%,召回率为73.3%,超越下一个最佳框架GRACE。
表3. 提示框架的比较结果

(3)图3显示了使用DLAP检测Linux中漏洞的真实示例。结果是开发人员很容易理解的,与实际问题修复提交的记录非常匹配。相比之下,微调LLM的输出仅限于简单的"是"或"否"响应。为特定任务微调预训练的LLM会导致灾难性的遗忘,因为它会改变模型的内部权重。

图3. 应用DLAP修复Linux代码问题的示例(提交id:f6d8bd0)
小结:DLAP 提示框架在软件漏洞检测任务中实现了更优且稳定的性能,并且结果易于开发者理解。实验表明,结合深度学习模型能够增强大语言模型,实现自适应隐式微调,从而超越现有方法。
📌 总结
DLAP 的核心贡献在于:构建了一种"深度学习 + LLM"协同的漏洞检测新范式。
通过语义增强 Prompt,DLAP 将 LLM 从"代码理解工具"升级为"漏洞推理引擎",为未来研究提供了重要方向:构建更强的语义中间表示,实现程序分析与大模型推理的深度融合。
📣 欢迎留言讨论
-
你认为未来漏洞检测是否会全面转向"多模型协同架构"?
-
DLAP 思路是否可以扩展到 Fuzzing 或自动修复任务?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!