生成漏洞证明测试以帮助增强复杂软件的安全性
密码学与安全
2026-05-06 v1 软件工程
摘要
开发者在第三方库(Libs)的基础上构建现代软件应用程序(Apps)。当库的漏洞可以通过应用程序代码触达时,这些应用程序可能会面临软件供应链攻击的风险。先前的工作表明,开发者通常需要具体且可执行的证据,即漏洞证明(PoV)测试,来决定所报告的依赖项漏洞是否对其应用程序构成实际的安全风险。然而,手动编写此类测试极具挑战性,且现有的工具支持不足以实现该过程的自动化。为了简化测试生成过程,我们提出了 PoVSmith——一种新方法,该方法将调用路径分析、示例测试、代码上下文和反馈结合到多个提示中,以引导编程智能体(即 Codex)和大型语言模型(即 GPT)进行测试的生成、执行和评估。我们在 33 对 App, Lib Java 程序上对 PoVSmith 进行了评估,其中每个 App 都依赖于一个存在漏洞的 Lib。PoVSmith 揭示了 158 个调用易受攻击库 API 的应用程序级入口点(即公共方法);其中 152 个(96%)被正确找到,并准确识别了调用路径。利用此类方法调用信息,PoVSmith 生成了 152 个测试,其中 84 个(55%)展示了通过利用 Lib 漏洞攻击 App 的可行途径。PoVSmith 大幅优于基于 LLM 的 SOTA 方法,因为它减少了人工参与,同时显著提高了测试质量。我们的工作贡献包括:(1)一种基于智能体的测试生成新方法;(2)由执行反馈驱动的迭代代码细化过程;(3)基于测试上下文和执行日志的 LLM 质量评估。
引用
@article{arxiv.2605.03956,
title = {Generating Proof-of-Vulnerability Tests to Help Enhance the Security of Complex Software},
author = {Shravya Kanchi and Xiaoyan Zang and Ying Zhang and Danfeng Yao and Na Meng},
journal= {arXiv preprint arXiv:2605.03956},
year = {2026}
}