中文

用于漏洞检测的多智能体污点规范提取

密码学与安全 2026-01-19 v1 软件工程

摘要

使用污点分析的静态应用安全测试(SAST)工具被广泛认为比传统的基于模式的方法能提供更高质量的漏洞检测结果。然而,对 JavaScript 执行静态污点分析面临两大主要挑战。首先,JavaScript 的动态特性使污点跟踪所需的数据流提取变得复杂。其次,npm 庞大的库生态系统使得识别相关的源/汇点以及建立跨依赖项的污点传播变得困难。在本文中,我们提出了 SemTaint,这是一个多智能体系统,它将大型语言模型(LLM)的语义理解与传统静态程序分析策略性地结合,以提取针对每个包定制的污点规范,包括源、汇点、调用边和库流摘要。在概念上,SemTaint 使用静态程序分析来计算调用图,并交由 LLM 来解析无法静态解析的调用边。此外,它使用 LLM 对给定 CWE 的源和汇点进行分类。然后将生成的污点规范提供给 SAST 工具以执行漏洞分析。我们将 SemTaint 与最先进的 SAST 工具 CodeQL 集成,并证明了其有效性:检测出了 162 个先前 CodeQL 无法检测到的漏洞中的 106 个。此外,我们在 4 个流行的 npm 包中发现了 4 个新漏洞。在此过程中,我们证明了 LLM 可以实际增强现有的静态程序分析算法,结合符号推理与语义理解的双重优势以改进漏洞检测。

关键词

引用

@article{arxiv.2601.10865,
  title  = {Multi-Agent Taint Specification Extraction for Vulnerability Detection},
  author = {Jonah Ghebremichael and Saastha Vasan and Saad Ullah and Greg Tystahl and David Adei and Christopher Kruegel and Giovanni Vigna and William Enck and Alexandros Kapravelos},
  journal= {arXiv preprint arXiv:2601.10865},
  year   = {2026}
}