当前位置: 首页 > news >正文

VDExplainer:让漏洞检测模型“说清楚”,逐语句解释漏洞从何而来

“ 近年来,深度学习在漏洞检测任务中取得了显著进展,然而,一个始终困扰学术界与工业界的问题是:模型为什么认为这段代码有漏洞?漏洞究竟体现在哪些语句上?多数现有方法仍停留在“给结论”的阶段,缺乏细粒度、可理解的解释机制。

针对这一问题,研究者提出了VDExplainer,一种面向漏洞检测的语句级解释框架,通过序列决策与概率采样机制,让模型逐步“选出”真正导致漏洞的关键语句。 ”

  • 📄论文标题:VDExplainer: Sequential Decision-Making and Probability Sampling Guided Statement-Level Explanation for Vulnerability Detection

  • 📅发表时间:Computers & Security, 2025

  • 🏫作者单位:哈尔滨工业大学

  • 💡开源代码:https://figshare.com/s/9f6a9f553a9dc30029c9.

01—方法介绍

图1给出了NVD编号153804的漏洞代码示例(源自OpenSSL)。程序在读取128字节数据时未保证字符串空终止,随后在第34行通过strcpy复制到同样大小的缓冲区,可能越界读取并引发缓冲区溢出。该漏洞并非由单一语句造成,而是与stonesoup_bufferstonesoup_input_buf相关的一组语句在定义、初始化、文件读取和字符串复制等上下文中共同作用的结果。

由此可得两点结论:(1)明确标注与漏洞相关的语句有助于开发人员快速定位和修复漏洞;(2)漏洞模式并非单一语句,而是由易损语句及其上下文共同构成,漏洞分析需整体考察相关代码。

图 1. 动机示例。

VDExplainer 的核心思想是:漏洞解释本身就是一个“选择过程”,模型需要从大量语句中逐步筛选出真正有贡献的部分。

为此,论文将漏洞解释建模为一个序列决策问题,整体流程可概括为三步:

① 语句级表示建模

为代码中的每条语句构建语义表示。

② 序列决策解释

模型逐步决定“是否保留”当前语句作为漏洞解释的一部分。

③ 概率采样引导

通过采样策略探索不同语句组合,避免贪心选择带来的偏差。

图 1. VDExplainer的处理框架

小结:VDExplainer 关注的不是“一次性指出答案”,而是“解释是如何一步步形成的”。

02—关键机制

  1. 语句级漏洞解释,比函数级、片段级解释更精细。
  2. 序列决策建模,将解释过程显式建模为决策序列。
  3. 概率采样机制,提升解释多样性与鲁棒性。
  4. 检测-解释一致性,确保解释真正支撑模型预测。

模块

设计思路

作用

语句级编码

建模单条语句语义

作为解释决策的基本单元

序列决策模型

逐步选择关键语句

构建漏洞解释路径

概率采样策略

在候选语句间随机探索

避免局部最优解释

解释一致性约束

解释需支持检测结果

保证解释有效性

小结:解释不是事后附加,而是与检测过程紧密耦合。

03—实验结果

实验在两个数据集上进行了VDEplainer评估:Big-Vul和作者自己构建的一个切片级半合成数据集,其中包括合成代码和真实项目代码,主要来源于(NVD,2025)和(CVE, 2025)。主要实验结果如下。

其中评价指标有:(1)Fidelity (FD),保真度越高,所提取的漏洞模式就越重要(2)K-Accuracy(A(k)),K-Accuracy用于衡量在包含k个语句的漏洞模式中,至少出现一个实际漏洞语句的样本百分比。(3)Line Coverage(LC),衡量预测漏洞模式中的易受攻击语句数量与实际易受攻击语句数量之间的比率。


(1)如表1所示,LineVul和VulBERTa-CNN在半合成数据集和Big-Vul数据集上取得了良好的检测结果。表2和表3总结了使用不同的解释方法对Big-Vul和半合成数据集上的LineVul和VulBERTa-CNN的影响。

表1. 需要解释的基于预训练模型的漏洞检测模型的检测结果(指标单位:%)

表2. 在Big-Vul数据集上,对两个基于预训练模型的模型采用不同解释方法的结果

表3. 在半合成数据集上,对两个基于预训练模型的模型采用不同解释方法的结果

(2)实验还考虑了解释基于深度学习的方法,模型见表4。解释结果如表5所示。

表4. 需要解释的基于深度学习的漏洞检测模型的检测结果(指标单位:%)。

表5. 在半合成数据集上,对三个需要解释的深度学习模型采用不同解释方法的结果。

小结:系统评估VDExplainer的实验结果表明:生成的解释在语句级定位准确率上显著优于主流可解释方法;解释结果更贴近真实漏洞触发逻辑;在不明显牺牲检测性能的前提下,显著提升模型可解释性。

📌 总结

VDExplainer 从方法论层面重新审视了漏洞检测中的“解释”问题。通过将解释建模为序列决策过程,该方法让模型能够明确回答:哪些语句导致了漏洞判断,以及它们是如何共同作用的。

这一工作表明,未来漏洞检测模型的重要竞争力之一,可能不再只是“检得准”,而是能否把漏洞讲清楚

📣 欢迎留言讨论

  • 你认为语句级解释是否是漏洞检测可解释性的理想粒度?

  • 在工程实践中,解释质量与推理成本应如何平衡?

📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!

http://www.gsyq.cn/news/1616203.html

相关文章:

  • 一人公司必备AI工具:5分钟将详情页变废为宝,产出高转化社媒图文
  • YOLOv10模型改进-注意力机制-第38篇: YOLOv10改进策略【注意力机制】| ShuffleAttention注意力机制
  • macOS百度网盘性能优化架构解析:动态库注入与限速破解技术实现
  • C++ STL 简介:从标准模板库到开发利器
  • 猪场保温灯总坏?这款设备全项达标头部集团招标标准,已服务上千家猪场!
  • 英伟达收购LeptonAI一年后贾扬清离职,开源承诺搁置或是主因
  • Three.js 随机城市白膜教程
  • 2026年大模型“开源海啸”下,锥形语言模型零成本提升性能!
  • 煮饺子与docker、kubernetes之间的关系
  • 音频设备有底噪?选对音频变压器是关键
  • Three.js 优雅永不过时教程
  • GPT-5.6登场硬刚Claude Mythos 5,跑分互有胜负却因作弊被严控!
  • LG 发布新款扫地机器人,充电基座可藏厨房橱柜,或不进美国市场
  • 字节跳动All in AI:从C端到B端,双端下注能否跑通AI战略?
  • pdf盖章软件
  • 记录Linux线程(信号量函数)
  • Linux Wireless之WiFi Beacon Hint 流程分析
  • 对称加密算法实战指南:从AES到SM4,原理、选型与安全实践
  • 老牌顶刊跌下神坛,为何IF和分区双双“失守”?
  • 9-LLTrack:用于二维多目标跟踪的并行关联框架
  • OpenTelemetry 多租户分流怎么做:按服务名路由 traces 的实战方案
  • 三步打造个人数字图书馆:novel-downloader小说下载器终极指南
  • Grok 4.5私测,马斯克AI战略是转型还是出清?
  • ESim电工制图图文介绍
  • Linux 系统编程 04:进程基础
  • 3分钟免费解锁全皮肤:R3nzSkin国服换肤终极指南
  • 贾扬清从英伟达离职,7 亿美元收购一年告终,AI Infra 赛道面临挑战
  • 深度解析SDINBDA6-128G-ZA1:闪迪128GB车规级eMMC 5.1存储芯片
  • 嵌入式交流群
  • 大宅门中式建筑,已按人物标准升高修改