中文

基于 GNN 的漏洞路径发现:面向开源代码的定位学习

密码学与安全 2025-07-25 v1

摘要

检测开源软件中的安全漏洞是相关研究社区高度重视的任务。尽管已提出多种方法用于检测恶意代码并识别漏洞类别,但在通过定位恶意语句并发现导致漏洞激活的路径方面仍有待改进。虽然 SliceLocator 等框架通过识别恶意路径提供解释,但依赖于基于规则的 sink 识别,限制了其泛化能力。本文引入 VulPathFinder,一种可解释的漏洞路径发现框架,通过利用新型图神经网络 (GNN) 模型检测 sink 语句,从而增强 SliceLocator 的方法。该 GNN 捕获语义和语法依赖关系,以发现潜在的 sink 点 (PSP),这些是恶意路径结束的候选语句。检测到 PSP 后,可使用程序分片提取潜在恶意路径,然后通过将其反馈至目标图基检测器进行排序。最终返回最可能的路径,从而解释检测到的漏洞的根本原因。我们在 SARD 数据集中的缓冲溢出 CWE 测试基准上进行评估,为相应检测到的漏洞提供解释。结果表明,VulPathFinder 在发现指向已识别 PSP 的漏洞路径方面,优于原始 SliceLocator 和通用 GNN 解释工具 GNNExplainer。

关键词

引用

@article{arxiv.2507.17888,
  title  = {Learning to Locate: GNN-Powered Vulnerability Path Discovery in Open Source Code},
  author = {Nima Atashin and Behrouz Tork Ladani and Mohammadreza Sharbaf},
  journal= {arXiv preprint arXiv:2507.17888},
  year   = {2025}
}

备注

8 pages, 5 Figures