来源笔记

Code-Augur: Agentic Vulnerability Detection via Specification Inference

Agentic Vulnerability DetectionCode IntelligenceLLM Security AgentFuzzingProgram Specification

Code-Augur 是一个基于 LLM 代理的安全审计器。它把自己的假设写成源码级断言,然后用模糊测试打破这些断言。论文称,与当前的代理式漏洞查找器相比,这种方法能发现更多漏洞,并在开源项目中产生了 22 份新的漏洞报告。

  • 当代理式安全工具对安全代码的隐藏假设出错时,它们可能漏报漏洞。
  • 一次没有发现问题的审计很难让人信任,因为动态检查通常只测试疑似漏洞,而不测试“安全”判断背后的假设。
  • 这个问题会影响大型开源代码库。漏掉的输入状态不匹配可能存续多年,并导致内存安全漏洞。
  • Code-Augur 先根据代码、文档和构建上下文建立威胁模型,其中包括攻击者可控输入、信任边界和安全相关状态。
  • 当 LLM 代理认为某个代码位置安全时,它会把理由记录为可执行不变量,例如断言像素格式的通道数等于色彩空间的通道数。
  • 一个引导式灰盒模糊测试器运行插桩后的程序,并搜索能证伪这些断言的输入。
  • 如果断言失败,Code-Augur 会把失败分类为真实安全问题或错误不变量,然后细化不变量并重复这一循环。
  • 最终输出包括经过验证的漏洞报告、威胁模型,以及可在后续审计中复用的存留不变量。
  • 根据摘录,在 DARPA AIxCC 和 OSV 这两个基准来源上,Code-Augur 比 Claude Code 和 AIxCC 获胜系统 Atlantis 多报告 34-370 个漏洞。
  • 基准评估使用了两个前沿 LLM,说明该方法可以运行在 Sonnet 和 DeepSeek 等模型上,而不只适用于 Claude Mythos 等经过专门整理的安全模型。
  • Code-Augur 在广泛使用的开源项目中发现了 22 个新漏洞。
  • 论文发布时,开发者已修复或确认这 22 个新漏洞中的 16 个。
  • 论文还报告了几项漏洞赏金奖励,但摘录没有给出赏金次数或金额。
  • 在 gpsd 案例研究中,推断出的不变量帮助识别了一次不完整修复,以及一个持续四个月修复过程中的相关漏洞家族。