语义 + 解释双驱动:融合代码语义与 LLM 推理的漏洞检测新范式

“ 近年来,基于深度学习的漏洞检测方法取得了显著进展,但仍面临一个核心瓶颈:模型“看懂”代码结构,却未必真正理解语义;检测结果缺乏可解释性,难以辅助安全分析;LLM 虽具备强推理能力,但直接用于检测存在幻觉与不稳定问题。

因此,一个关键问题是:如何同时利用“结构语义建模能力”与“LLM 推理解释能力”?

论文提出:一种融合代码语义特征与LLM生成解释的漏洞检测方法,实现“检测 + 解释”协同优化。”

  • 📄 论文标题:Enhancing vulnerability detection by fusing code semantic features with LLM-generated explanations

  • 📅 发表时间:Information Fusion,2025

  • 🏫 作者单位:西安邮电大学等

  • 💡开源代码:https//github.com/XUPT-SSS/FuSEVul 

01—方法介绍

该方法的核心思想可以总结为:不仅让模型“看代码”,还让模型“解释代码”,并将解释反哺检测过程。

整体流程如下:

① 语义特征提取

对源代码进行表示学习;

② LLM 生成解释

生成与漏洞相关的语义描述;

③ 多模态融合

对齐代码表示与文本解释;

④ 联合训练

利用解释增强检测模型;

⑤ 输出结果

同时提供检测标签与解释信息。

图片

图1. FuSEVul方法架构 

小结:从“黑盒分类”迈向“可解释检测”的关键一步。

02—关键机制

  1. 代码语义 + LLM解释融合

    首次系统性结合两类信息源。

  2. 解释驱动学习机制

    利用自然语言解释提升模型判别能力。

  3. 多模态特征对齐

    实现代码与文本语义空间融合。

  4. 检测与解释一体化

    同时输出预测结果与原因分析。

                                    模块

                                    设计思路

                                    作用

                                    代码语义编码器

                                    利用深度模型提取语法与语义特征

                                    捕获程序结构与上下文信息

                                    LLM 解释生成

                                    生成漏洞相关的自然语言解释

                                    提供高层语义推理信息

                                    特征融合模块

                                    将代码特征与文本解释进行对齐融合

                                    增强模型语义表达能力

                                    联合判别器

                                    基于融合特征进行漏洞分类

                                    输出检测结果

                                    解释约束机制

                                    利用解释信息引导模型学习

                                    提升可解释性与鲁棒性

                                    小结:将“代码表示学习”与“语言推理能力”进行深度耦合,实现检测能力升级。

                                    03—实验结果

                                    实验在三个广泛使用的公开数据集上进行评估:DevignReveal 和 TrVD。主要实验结果如下。


                                    (1)FuSEVul与现有方法的漏洞检测性能对比。如表1所示,FuSEVul在三个数据集上均全面领先所有基线方法,在准确率和F1分数上均取得最优结果。

                                    • 6个单模态监督学习方法相比,FuSEVul在Devign、Reveal和TrVD数据集上取得了平均相对准确率提升11.2%、5.5%和3.7%,F1分数提升21.1%、68.3%和8.1%

                                    • 8个预训练模型方法相比,FuSEVul在三个数据集上分别取得相对准确率提升2.7%、3.0%和1.4%,F1分数提升3.4%、39.5%和8.7%

                                    • 2个多模态融合方法(DeepVD、S2FVD)相比,FuSEVul通过引入代码解释这一全新模态,取得了相对准确率提升5.8%、2.4%和1.9%,F1分数提升6.5%、68.8%和2.2%

                                    • LLM直接提示方法表现显著较差,FuSEVul相对于ChatGPT-3.5和Codellama-7B取得了平均相对准确率提升12.6%、11.0%和74.0%,F1分数提升275.1%、519.3%和36.9%

                                    表1. FuSEVul与基线方法的性能对比。

                                    图片

                                    (2)数据稀缺场景下的性能评估,结果见图2。结果表明,FuSEVul在所有数据稀缺条件下均优于所有基线方法,表现出更强的泛化能力。

                                    • Devign数据集上,FuSEVul在数据稀缺场景下的平均F1分数提升为5.14%

                                    • Reveal数据集上,当训练样本仅100个时,FuSEVul的平均F1分数提升达到8.48%

                                    • TrVD数据集上,FuSEVul的平均准确率提升6.84%,F1分数提升16.09%

                                    • 值得注意的是,FuSEVul仅用100个训练样本即可达到85.83%的F1分数,超过了18个基线方法中13个在全量数据上训练的性能。

                                    图片

                                    图片

                                    图片

                                    图2. FuSEVul与基线方法在数据稀缺场景下的性能对比。

                                    小结:FuSEVul通过融合代码语义特征与LLM生成的自然语言解释,实现了更全面的漏洞检测能力。实验结果表明在三个公开数据集上全面超越18个基线方法,平均相对准确率提升7.3%,F1分数提升52.2%。在数据稀缺场景下展现出强泛化能力,仅用100个样本即可超越大多数全量训练的基线方法。

                                    📌 总结

                                    该工作的重要意义在于:打破“检测 vs 可解释性”的对立,将二者统一到同一框架中。它揭示了一个关键趋势:未来漏洞检测模型,将从“纯表示学习”走向“语义推理融合”。这一思路可进一步拓展至:自动漏洞修复(Explain → Fix),AI 驱动的软件工程工具链。

                                    评论
                                    添加红包

                                    请填写红包祝福语或标题

                                    红包个数最小为10个

                                    红包金额最低5元

                                    当前余额3.43前往充值 >
                                    需支付:10.00
                                    成就一亿技术人!
                                    领取后你会自动成为博主和红包主的粉丝 规则
                                    hope_wisdom
                                    发出的红包
                                    实付
                                    使用余额支付
                                    点击重新获取
                                    扫码支付
                                    钱包余额 0

                                    抵扣说明:

                                    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
                                    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

                                    余额充值