当前位置: 首页 > 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.jsqmd.com/news/1104235/

相关文章:

  • 如何精准识别校地之间的创新合作潜力?
  • Python数据分析期末试题及详解
  • 偏振光学在显示技术中的应用综述:原理、进展与挑战——从 iPhone 屏幕演进到悟赫德护景贴观复盾的光学补偿方案
  • 手机屏幕保护膜的光学性能测试方法与标准研究——以悟赫德护景贴观复盾的测试体系为例
  • 想选升降龙门架制造厂家?这些挑选要点你不能错过!
  • 一人公司必备AI工具:5分钟将详情页变废为宝,产出高转化社媒图文
  • 史无前例合作!用Claude享50%折扣,州政府雇员借其辅助日常工作
  • 终极指南:如何让群晖Video Station影视信息更丰富完整
  • C++ STL 简介:从标准模板库到开发利器
  • ICM-42688-P与PIC32MX470F512H在运动控制中的高效组合
  • Modder神作:Game Boy Color竟能搜索播放YouTube视频,画质体验虽差但能运行!
  • Three.js VR 全景视频教程
  • macOS百度网盘性能优化架构解析:动态库注入与限速破解技术实现
  • YOLOv10模型改进-注意力机制-第38篇: YOLOv10改进策略【注意力机制】| ShuffleAttention注意力机制
  • BiliBiliCCSubtitle实战:高效下载B站字幕的专业解决方案
  • 数据库范式详细解析
  • Unity类合金弹头 美术资源
  • Dioxus 应用怎么打包发布:Web、桌面、移动三端全流程
  • 【04-Shell 脚本】
  • 3分钟搞定iPhone USB网络共享:Windows苹果驱动终极解决方案
  • Java实现ML-KEM:从零构建抗量子加密算法
  • 【AI大模型进阶】“温度”参数调高,为什么AI的回答就开始“胡言乱语”了?
  • 基于Chrome140的Threads账号自动化——脚本撰写(二)
  • SpaceX拟收购的Cursor推新应用:可启动跟踪AI智能体,借iPhone展示进度更新
  • 工良出品 | 长文讲解 MCP 和案例实战
  • AI“幻觉“变真功能:App Inventor 2视频录制拓展一周开发实录
  • 揭秘!p-Tau217在奥兹海默症的作用
  • 吃灰板子利旧系列--DuoS(RISC-V)养PicoClaw虾
  • 第十一章:自动化部署到 Kubernetes:Helm 与 kubectl 集成
  • 5分钟成为B站数据分析专家:Bilivideoinfo爬虫工具终极指南