范围与技术演进
回答本报告为什么采用“发现-验证-证据”的研究口径。
面向网络空间安全专业学生与课程评审的长篇技术研究报告。在完整保留调研论证的基础上,通过章节导读、关系图解、术语辅助和证据口径改善阅读与理解。
大语言模型(Large Language Model,LLM)与智能体(Agent)技术正在改变软件安全审计和漏洞研究的自动化边界。早期研究通常将漏洞检测视为代码片段分类问题,近年来则逐步转向面向真实仓库的全项目理解、工具调用、多智能体协作、跨文件数据流推理、攻击面建模、动态验证、PoC 生成、修复与回归验证。与此同时,传统程序分析、模糊测试、符号执行、自动利用生成和运行时取证并未被 LLM 取代;相反,当前高质量研究越来越强调将 LLM 的语义理解与 CodeQL、Joern、Semgrep、AFL++、libFuzzer、KLEE、angr、Sanitizer、Nuclei 等确定性工具结合,形成“神经-符号-动态执行”混合链路。
本文围绕课程选题一“基于大模型智能体的开源项目安全缺陷自动审计和验证系统”,系统调研以下内容:
调研表明,当前研究前沿已经从“LLM 能否发现漏洞”转向“如何构建可靠、可验证、可复现的自动化漏洞研究 Harness”。项目级上下文选择、程序图与 LLM 的结合、发现与验证分离、对抗式验证、确定性运行时 Oracle、可利用性分级、差分验证、自动生成 Fuzz Harness、闭环覆盖反馈和可重放证据链,是目前最值得关注的研究方向。
关键词:大语言模型;智能体;代码审计;漏洞挖掘;静态分析;程序分析;模糊测试;漏洞验证;PoC;自动利用生成;证据链;可复现安全研究
页面中的图解用于替代或压缩原文中的关系表达,不新增实验数字,也不把项目方自述改写为独立验证结论。带虚线的术语可悬浮、聚焦或点击查看上下文解释。
Source Type 学术论文 / 官方文档 / 官方项目 / 机构技术文章 / 二手资料
Claim Status 论文实验结果 / 官方自报结果 / 项目方自述 / 独立事实 / 作者综合判断 / 待进一步核验
回答本报告为什么采用“发现-验证-证据”的研究口径。
比较代表性 Agent 系统、确定性安全工具和关键论文各自解决的问题。
说明如何评价漏洞研究系统,以及 2025-2026 年方法变化集中在哪里。
把前文资料收束为可讨论的研究方向、限制判断和课程实现启发。
该流程来自原文 1.1,用于对应课程选题一从仓库解析到证据链和报告的完整链路。
课程选题一要求实现从开源代码仓库解析、智能体审计、工具调用、漏洞复核、自动利用、证据链到结构化报告的完整链路,并要求对不少于 20 款主流开源项目进行检测。因此,本调研不把“漏洞检测”局限为传统 SAST,也不把“漏洞利用”简单等同于生成一段 exploit 代码,而是覆盖上方流程图所示的完整研究生命周期。
这一范围与课程对“误报过滤、自动漏洞利用、证据链、验证结果”的要求直接对应。
本文按照以下可信度层级使用资料:
Source Type 描述资料从哪里来;Claim Status 描述当前结论是什么性质。本文只在宣传性表述、定量实验和作者综合判断处显式标注,避免把每段正文都做成 Badge。
对于项目方自称“首个”“国内首个”“发现若干 CVE”等宣传性表述,本文均视为项目方自述,不直接等同于独立学术验证。对于厂商公开的扫描规模、漏洞数量和误报下降比例,也明确标记为官方自报结果。
语法模式、AST、控制流、数据流、符号执行、Fuzzing 与 DAST;优势是可解释、确定、易复现。
早期代码片段分类暴露跨文件上下文缺失、调用路径难验证和危险 API 误判等问题。
模拟人工研究员形成假设、查看代码、运行工具、观察结果并修正假设。
模型、上下文选择、工具、Agent 角色、状态管理、动态验证、证据与评测共同决定效果。
传统自动化代码审计主要依赖:
其典型工具包括 Semgrep、CodeQL、Joern、KLEE、AFL++、libFuzzer 等。传统方法的主要优势是:
主要局限则包括:
早期 LLM 漏洞检测常见流程是:
代码片段
↓
Prompt
↓
Vulnerable / Safe
这种方法对真实项目存在明显问题:
因此,近年的研究开始转向:
Repository
↓
Structure / Graph / Threat Model
↓
Targeted Context
↓
LLM Reasoning
↓
Tool-assisted Verification
Google Project Zero 的 Project Naptime 强调模拟人工漏洞研究员的工作方式:形成假设、查看代码、运行工具、观察结果、修改假设、继续调查。后续 Big Sleep 报告了一个在 SQLite 中发现并在正式版本发布前修复的真实可利用问题。这类工作说明,智能体的价值不只是“多轮聊天”,而是可持续的假设-工具-证据循环。
到 2026 年,公开研究和工业实践出现共同趋势:
因此,当前研究对象已经逐渐从单一模型转为:
DeepAudit 是课件明确列出的参考系统,也是目前公开工程完成度相对较高的多智能体代码审计项目之一。其公开架构通常包含:
Orchestrator
↓
Recon / Repository Understanding
↓
Analysis / Audit Agent
↓
Verification Agent
↓
Sandbox PoC
↓
Report
其主要技术特点包括:
DeepAudit 最值得借鉴的不是“用了多个 Agent”,而是尝试将代码扫描、复核、PoC 和报告连接为闭环。这与课程题目要求高度一致。
资料:DeepAudit GitHub★ 6.6k
AgentStalker 强调把 LLM Agent 或软件系统作为整体对象进行端到端安全审计,其公开方法包含:
Static Modeling
↓
Attack Graph Synthesis
↓
Sandbox Dynamic Verification
↓
Evidence Adjudication
其设计涉及:
AgentStalker 的重要贡献是把“漏洞发现”升级为“系统建模-攻击路径-动态证据-裁决”。这种思想比单纯输出漏洞清单更符合可验证安全研究。
公开资料也提示其仍存在:
因此,更适合把它视为方法论和研究框架,而不是已经充分验证的通用工业扫描器。
资料:AgentStalker GitHub★ 128
OpenSecurity 更接近 AI 驱动的多领域安全分析平台,而非单一代码漏洞扫描器。其规划通常覆盖:
其核心启示是三层分工:
AI Orchestration
↓
Deterministic Security Tools
↓
Knowledge / Evidence
这种架构强调:LLM 适合做工具编排、假设形成和语义解释,而 AST、反汇编、数据流、文件哈希、执行结果等事实应由确定性工具产生。
资料:OpenSecurity GitHub★ 34
ESAA-Security 的代表性思想是 Event-Sourced Agent Architecture,即事件溯源式智能体架构。它不把一次安全审计视作不可解释的对话,而是将每个阶段记录为事件:
RepositoryParsed
CandidateFound
PathConfirmed
VerifierStarted
PoCGenerated
SandboxExecuted
EvidenceCaptured
VerdictIssued
事件日志具有:
这一路线直接回应了 LLM 安全审计的核心缺陷:
与自由形式 Agent 相比,事件溯源更接近安全工程所需要的审计轨迹和证据链。
资料:ESAA-Security 论文arXiv · Preprint · 2026
Sandyaa 是 2026 年出现的自主代码审计项目,其公开思路强调“递归深入直到证明真实漏洞”。其分析能力包括:
与一次性扫描不同,Sandyaa 代表一种递归研究模式:
Candidate
↓
Need More Context?
↓
Follow Call / Data Flow
↓
Update Hypothesis
↓
Try to Prove or Falsify
其研究价值较高,但项目仍处于较新、较早期阶段,适合观察思想而不宜把公开宣传直接视作成熟工业能力。
资料:Sandyaa GitHub★ 233
Vulnhuntr 是代码审计 Agent 中非常有代表性的“入口驱动”系统。其核心思想是:
典型路径:
Remote Input
↓
Entry Point
↓
Interprocedural Call Chain
↓
Potential Sink
其公开项目主要聚焦 Python,并涉及 LFI、RCE、SQLi、SSRF、IDOR 等漏洞类型。
Vulnhuntr 的重要价值在于证明“选择什么上下文”可能比“让模型看更多代码”更重要。其方法与后续的可达性裁剪、攻击面感知分析具有连续性。
资料:Vulnhuntr GitHub★ 2.7k
OpenAnt 是 2026 年非常值得关注的研究系统之一,主要面向真实开源项目中的输入传播类漏洞,包括:
其核心分为两部分。
第一部分是可达性驱动的代码裁剪:
External Entry Point
↓
Reachable Functions
↓
Security-sensitive Operations
↓
Analysis Unit
论文报告这种方法能够显著减少需要交给后续分析的代码表面,同时保留攻击相关路径。
第二部分是对抗式验证:
Defender / Finder
发现漏洞假设
↓
Attacker / Verifier
主动尝试推翻假设
↓
Sandbox Dynamic Validation
↓
Surviving Finding
OpenAnt 代表当前非常清晰的研究方向:
资料:OpenAnt 论文arXiv · Preprint · 2026;OpenAnt GitHub★ 666
Visa 在 2026 年 6 月公开 VVAH 参考实现,目标是组织完整的 Agentic Vulnerability Research 工作流。其公开阶段覆盖:
Discovery & Modeling
↓
Deep Dive & Verification
↓
Synthesis & Reporting
↓
Remediation & Validation
具体思路包括:
VVAH 的突出特点是 Threat Model First。它强调先理解:
这比“扫所有 CWE”更接近真实安全审计。
VVAH 官方资料也明确提醒:
这使 VVAH 成为很好的研究参考:它公开承认了 Agent 漏洞发现与“确定性确认”之间的鸿沟。
资料:VVAH GitHub★ 645
Anthropic 于 2026 年公开的 Defending Code Reference Harness 是当前公开程度最高、方法学完整度最强的漏洞研究参考实现之一,MIT 许可下开源,明确将其定位为"从与多家安全团队的合作实践中沉淀的最佳实践参考"。
其整体架构由 7 个专职智能体串联执行:
Build Agent
↓
Recon Agent
↓
N × Find Agent(并行)
↓
Verify / Grader Agent
↓
Judge Agent(去重)
↓
Report Agent
↓
Patch Agent + Patch GraderHarness 附带的博客将实践总结为六阶段方法论:
Threat Model
↓
Sandbox
↓
Discovery
↓
Verification
↓
Triage
↓
Patching其中关键设计包括:
Harness 官方博客一并公布了若干量化数据(属于官方自报):
Anthropic Harness 有三方面价值明显高于同类系统:
资料:Anthropic Defending Code Reference Harness★ 6.4k;官方博客:Defending Code with Claude
GitHub Security Lab 的 Taskflow Agent 将安全 Agent 工作流写成声明式任务流,通常通过 YAML 描述:
其技术价值包括:
相比“一个万能 Prompt 扫所有漏洞”,Taskflow 体现出安全任务专门化趋势:
Auth Bypass Taskflow
IDOR Taskflow
Token Leakage Taskflow
Injection Taskflow
这类声明式流程对可重复实验尤其重要。
资料:GitHub Security Lab Taskflow Agent
RepoAudit 是面向仓库级漏洞发现的智能体研究,重点关注:
其研究意义在于将 Agent 的“搜索行为”纳入漏洞检测方法本身。模型不是一次性获得全部代码,而是在工具支持下逐步探索相关文件与路径。
资料:RepoAudit 论文arXiv · Preprint · 2025
RAPTOR 是一个公开的自主安全研究框架,其目标是把多类传统安全工具串联为统一研究工作流:
Static Analysis
↓
Repository / Binary Understanding
↓
LLM Validation
↓
Fuzzing
↓
Exploit Generation
↓
Patch Writing
公开项目涉及:
其最大的研究价值并不是某个单独算法,而是展示了 Tool-Using Agent 的正确方向:模型负责决定“下一步做什么”,工具负责产生静态路径、覆盖率、崩溃、编译和执行等事实。
同时,项目仍具有明显研究框架属性,自动 Exploit 等能力不宜视为已稳定覆盖任意真实项目。
资料:RAPTOR GitHub★ 3.3k
Shannon 是 Keygraph 于 2026 年公开、以 AGPL-3.0 开源的自主 AI Pentester,明确定位为"白盒 AI 渗透测试",通过将源码静态分析与实时攻击相结合,在 PoC 成功前不将假设升级为漏洞。
其五阶段流程与本调研第 2.4 节强调的"假设—工具—证据循环"高度一致:
Pre-Reconnaissance(源码扫描:识别框架/入口)
↓
Reconnaissance(对目标应用的实时探测,与源码上下文对齐)
↓
Vulnerability Analysis(Injection/XSS/SSRF/Auth 等专项 Agent)
↓
Exploitation(真实 PoC,未证明的假设直接丢弃)
↓
Reporting(Markdown 报告 + 修复建议)Shannon 与 Vulnhuntr 同属"以攻击面驱动上下文选择"的路线,但把攻击面覆盖从单一 Python 生态扩展到 Web 应用与 API,并把动态验证从"路径证据"升级为"真实 PoC 攻击成功"。它体现了当前领域从"发现候选"向"证明可利用"迁移的工程化实践。
资料:Shannon GitHub★ 45.5k
PentestGPT 并非专门的开源代码审计系统,而是 AI 辅助渗透测试的重要代表,因此属于相邻方向。
其原始研究强调将渗透过程拆分为:
现代版本进一步支持多模型交互式工作流。其价值在于展示了 LLM 如何维护攻击任务状态、规划后续步骤和解释工具输出。
对本课题而言,它更适合用于比较“代码审计 Agent”与“攻击任务规划 Agent”的差异,而不是作为直接代码扫描基线。
资料:PentestGPT GitHub★ 14.1k;PentestGPTUSENIX Security 2024
GhidraGPT 属于 AI 辅助逆向分析方向的代表工作,当前更广泛的生态还包括 GhidraMCP、GhidrAssist 等项目。
它们通常实现:
这类工具对“源代码不可用”或“漏洞验证涉及二进制依赖”的项目有价值,但并非课程源码审计主线。
资料:GhidraG PT★ 400;GhidraMCP★ 9.4k
AI-Infra-Guard 是腾讯朱雀实验室公开的全栈 AI 红队平台,整合了 ClawScan、Agent Scan、MCP Server & Skills Scan、AI 基础设施 CVE 扫描与越狱评估五类能力,覆盖对 AI 基础设施与智能体生态的自动化安全评估。
严格来说,AI-Infra-Guard 属于相邻方向:
因此本文将其归入相邻方向章节。它对本课题的可参考之处在于:基于 YAML 指纹与 CVE 规则的批量识别机制,可作为审计系统在处理项目依赖组件时的对照方案。
资料:AI-Infra-Guard GitHub★ 4.1k
| 系统/项目 | 主要对象 | 仓库级理解 | 程序分析工具 | 多 Agent | 动态验证 | PoC/Exploit | 证据/回放 | 当前定位 |
|---|---|---|---|---|---|---|---|---|
| DeepAudit | 源代码仓库 | 是 | 有 | 是 | 是 | 有 | 有 | 工程型开源系统 |
| AgentStalker | Agent/软件系统 | 是 | 图/污点 | 是 | 是 | 有 | 强调裁决 | 研究框架 |
| OpenSecurity | 多领域安全 | 部分 | 多工具 | 是 | 视 Agent 而定 | 部分 | 部分 | 平台型项目 |
| ESAA-Security | 审计流程 | 间接 | 可接入 | 是 | 可接入 | 非核心 | 很强 | 架构研究 |
| Sandyaa | 源代码 | 是 | 辅助 | 自主递归 | 有 | 有 | evidence.json | Alpha/早期项目 |
| Vulnhuntr | Python 源码 | 是 | 调用链 | Agent | 主要静态 | 部分 | 路径证据 | 专项研究工具 |
| OpenAnt | OSS 源码 | 是 | 可达性分析 | 对抗角色 | 是 | 验证导向 | 是 | 2026 前沿研究 |
| Visa VVAH | 源码仓库 | 是 | 可接入 | 是 | 有验证阶段 | 有 | 有 | 企业开源 Harness |
| Anthropic Harness | 源码仓库 | 是 | Docker/ASan/gVisor | 是(7 类) | 强制 3/3 复现 | 强制 PoC | 全阶段可复现 | 一等企业开源参考 |
| Taskflow Agent | 安全工作流 | 是 | MCP/CodeQL | 是 | 可编排 | 可编排 | 流程可复用 | 声明式框架 |
| RepoAudit | 真实仓库 | 是 | 路径/数据流 | Agent | 非核心 | 非核心 | 事实验证 | 学术研究 |
| RAPTOR | 源码/二进制 | 是 | SAST/Fuzz | 是 | 是 | 有 | 有 | 研究型工具编排 |
| Shannon | Web/API 源码 | 是 | 静动混合 | 是(专项) | 是 | 强制 PoC | Markdown 报告 | 开源 AI Pentester |
| PentestGPT | 渗透测试 | 目标级 | 外部工具 | 模块化 | 是 | 攻击规划 | 过程记录 | 相邻方向 |
| AI-Infra-Guard | AI 基础设施 | 部分 | YAML/CVE 规则 | 平台内多 Agent | 是(红队) | 已知漏洞 | 报告 | 相邻方向(AI 平台安全) |
表中“有”表示公开设计或代码包含相关能力,不代表已经在所有语言、漏洞类型和真实项目上完成大规模独立验证。
候选告警、调用关系、数据流、程序切片
覆盖率、触发输入、Crash、Harness 质量
路径约束、可达输入、二进制状态探索
反编译、模拟执行、固件提取
结构化验证、专项利用、利用原型
错误类型、回放、行为观测、隔离执行
本章按照“静态程序分析-模糊测试-符号执行-二进制与固件分析”的技术谱系整理开源工具。重点不是罗列工具,而是分析其能够提供什么类型的事实、适合解决什么研究问题,以及与 LLM Agent 的关系。
2014 年 IEEE Symposium on Security and Privacy 的经典论文 Modeling and Discovering Vulnerabilities with Code Property Graphs 提出了 Code Property Graph(CPG)。其中,CFG 表示控制流图,PDG 表示程序依赖图。其基本思想是将:
融合为统一属性图,并使用图遍历表达漏洞模式。
CPG 的意义在于,它把原本分散的程序事实统一起来:
Function A
├── AST → Syntax Node
├── CFG → Branch / Loop
├── Call → Function B
├── Data Flow → Variable C
└── Dependency → Sink D
对大模型而言,CPG 能够提供比原始代码更紧凑、更结构化的上下文。当前“Graph + LLM”“CPG + MCP”“程序切片 + LLM”研究均可追溯到这一基础。
经典论文:Yamaguchi et al., IEEE S&P 2014IEEE S&P 2014
Joern 是最具代表性的开源 CPG 平台之一,被广泛用于漏洞研究、代码查询和数据流分析。
Joern 很适合作为 Agent 的“程序事实服务”:
Agent Question:
“用户输入能否到达 exec?”
↓
Joern Query / Data Flow
↓
Structured Path:
source → f1 → f2 → sink
而不是让模型靠阅读数十个文件猜测调用关系。
资料:Joern Documentation;CPG Documentation
CodeQL 将代码构建为数据库,并通过 QL 查询语言进行语义分析,是现代静态安全分析的重要代表。
典型安全分析:
Source
↓
Propagation
↓
Sanitizer?
↓
Sink
CodeQL 可以承担三种角色:
2023 年 GitHub CodeQL 团队就公开介绍过使用 LLM 辅助 API 建模,以扩展 sink 等语义模型。这是“LLM 不替代静态分析,而是补充其语义规格”的重要实践。
资料:CodeQL Data Flow Documentation;GitHub Security Lab: LLM-assisted CodeQL modeling
Semgrep 是高效、易扩展的代码模式与静态分析工具。
Semgrep 的优势是规则开发快、语言覆盖广、适合批量扫描和 CI/CD。
更合理的定位是:
Semgrep
→ 快速发现候选、局部模式、危险调用
CodeQL / Joern
→ 深层跨过程路径、调用关系、程序切片
不应把 Semgrep Community Edition 简单描述为完整的跨文件程序分析器;高级跨函数、跨文件能力与具体产品/引擎配置有关。
Bandit 和 gosec 适合作为语言专项基线。
面向 Python,基于 AST 检查常见安全问题,如:
资料:PyCQA Bandit★ 8.2k
面向 Go 语言,提供大量安全规则并支持常见输出格式。
资料:securego/gosec★ 8.9k
两者适合作为:
但其主要能力仍是规则驱动,不适合作为复杂跨项目业务逻辑漏洞的唯一发现手段。
DongTai 是开源 IAST(Interactive Application Security Testing)项目。IAST 通过在程序运行过程中收集:
来判断漏洞。
IAST 位于 SAST 与纯 DAST 之间:
Static Knowledge
+
Runtime Instrumentation
=
IAST
对自动验证研究而言,IAST 的价值是能够提供“真实执行路径”而非纯静态近似。
资料:DongTai GitHub★ 1.3k
Fuzzing 是未知漏洞挖掘的核心技术之一。与 LLM 结合后,研究焦点逐渐从“让 LLM 代替 Fuzzer”转向“让 LLM 改善 Harness、字典、输入结构、目标选择和覆盖率反馈”。
AFL++ 是现代覆盖率引导模糊测试的重要开源平台。
High-risk Function Discovery
↓
LLM Generates Fuzz Harness
↓
Compile
↓ fail ↓ success
Repair Agent Fuzz
↓
Coverage / Crash
↓
Harness Refinement
真正有研究价值的是闭环,而不是“把 AFL++ 接进系统”。
libFuzzer 是 LLVM 生态中的进程内、覆盖率引导、进化式 Fuzzer。
典型接口:
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
// target API
return 0;
}
它适合:
libFuzzer 与 SanitizerCoverage 和 ASan 等工具结合紧密,非常适合作为“LLM 自动生成 Harness”的实验后端。
资料:LLVM libFuzzer Documentation
syzkaller 是无监督、覆盖率引导的内核 Fuzzer,最初面向 Linux,目前公开支持或扩展到多个内核和系统目标,是内核漏洞挖掘方向最具代表性的工具之一。
内核 Fuzzing 的瓶颈之一是 syscall specification。KernelGPT 等研究已经探索使用 LLM 自动生成 syzkaller 系统调用规格。这说明 LLM 最适合填补“人工语义建模成本”,而不是替代覆盖率引导执行。
资料:syzkaller GitHub★ 6.3k
boofuzz 是 Sulley 的继任者之一,适合网络协议和状态化交互 Fuzzing。
LLM 可辅助:
WinAFL 是针对 Windows 程序的 AFL 风格 Fuzzer。
课程主线以开源项目为主,因此 WinAFL 并非核心工具,但它补足了 Windows 二进制安全方向。
WinAFL 的工程配置通常比 libFuzzer 复杂,对插桩、目标函数和运行环境要求较高,应将其视为专项工具而非通用默认方案。
资料:googleprojectzero/winafl★ 2.6k
Fuzz Introspector 的核心价值是比较:
静态上可达的代码
vs
当前 Fuzz Harness 实际覆盖的代码
因此可以回答:
这非常适合形成 Agent 闭环:
Fuzz
↓
Coverage Analysis
↓
Uncovered High-risk Targets
↓
LLM Improves Harness
↓
Fuzz Again
LibAFL 是 Rust 编写的模块化 Fuzzing 框架,支持自定义:
它更适合 Fuzzing 研究者开发新算法。对短周期工程任务而言,AFL++ 和 libFuzzer 更易落地;对长期科研,LibAFL 提供更大的算法实验空间。
资料:AFLplusplus/LibAFL★ 2.6k
KLEE 是 2008 年 OSDI 的经典符号执行系统。
普通执行只测试具体值:
x = 3
符号执行把输入视为:
x = Symbolic
并为不同分支维护路径约束,例如:
Path 1: x > 100
Path 2: x <= 100
求解器可自动构造满足路径的输入。
KLEE 证明了自动路径探索和输入生成的可行性,也是后续 AEG、Concolic Execution 和混合 Fuzzing 的基础之一。
LLM 可以:
而求解器负责确定性求值。
资料:KLEE Project;KLEEOSDI 2008
angr 是面向二进制分析的开源框架,支持:
典型任务:
Target Address
↓
Symbolic State Exploration
↓
Path Constraints
↓
Concrete Input
适合:
资料:angr
Triton 是动态二进制分析框架,支持:
与 angr 相比,Triton 更接近可嵌入的动态符号执行基础设施。
资料:JonathanSalwan/Triton★ 4.2k
SymCC 采用编译器插桩方式执行 Concolic/Symbolic Execution,以减少纯解释式符号执行开销。
它代表另一条路线:
Compile-time Instrumentation
↓
Native Execution Speed
+
Symbolic Constraints
适合调研混合 Fuzzing 和符号执行性能问题。
资料:eurecom-s3/symcc★ 868
本章覆盖二进制、逆向工程与固件方向的代表性工具。虽然课程题目以开源项目源码审计为核心,但真实项目可能包含原生库、闭源插件、预编译组件或固件依赖,因此这些工具具有补充价值。
Ghidra 是由美国 NSA 开源的逆向工程平台,支持:
当前 AI 生态进一步通过 GhidraGPT、GhidraMCP 等方式把反编译器能力暴露给 LLM Agent。
资料:NationalSecurityAgency/ghidra★ 70.5k
Radare2 是高度可脚本化的逆向分析工具集,Cutter 是其图形化前端生态的重要组成部分。
适合:
其优势是开放和灵活,但自动程序语义恢复能力与 Ghidra、angr 等工具的侧重点不同。
Qiling 是多架构、多操作系统的二进制模拟框架,可在没有真实设备的情况下执行:
适合:
资料:QilingFramework/qiling★ 6k
Binwalk 是固件分析常用工具,可用于:
它不直接完成漏洞发现,但可以作为固件项目的预处理入口。
原文强调 Nuclei、ZAP、sqlmap、Commix、Metasploit、pwntools 等工具任务不同,不能混为一谈。
漏洞验证工具需要根据功能区分为三类:
这三类工具不能混为一谈。
Nuclei 是模板驱动的安全验证工具,其核心结构是:
Request
+
Matcher
+
Extractor
模板可以描述:
相比让 LLM 直接生成任意 Python PoC,让模型先生成结构化验证规格再转换为 Nuclei Template 更容易:
Nuclei 更擅长:
而不擅长自动理解任意源码中的新型复杂业务逻辑漏洞。
资料:projectdiscovery/nuclei★ 29.5k;nuclei-templates★ 12.6k
OWASP ZAP 是漏洞研究工具链中不可缺少的开源 DAST 工具。
其功能包括:
Nuclei
→ 高度模板化、快速验证、社区模板生态
ZAP
→ 完整 Web DAST、代理、爬虫、主动/被动扫描
ZAP 更适合对运行中的 Web 项目做广泛动态测试;Nuclei 更适合作为结构化、可复现的专项验证器。
资料:OWASP ZAP;OWASP WSTG Tool Resource
sqlmap 是 SQL 注入自动检测与利用的经典工具。
支持:
Static Analysis
发现 request.id → SQL execution
↓
Agent 提取 endpoint / parameter / auth
↓
sqlmap 针对性验证
这比对全部 URL 无差别扫描更具有研究意义。
资料:sqlmapproject/sqlmap★ 37.8k
Commix 是命令注入自动检测与利用工具。
适合验证:
其研究价值同样体现在“候选引导验证”:静态或 LLM 分析先定位具体 endpoint、parameter 和 sink,再调用 Commix 验证。
资料:commixproject/commix★ 5.8k
Metasploit 是成熟的漏洞利用与渗透测试框架,在本文语境中应予以准确定位,其提供:
Metasploit 不是“自动发现任意新漏洞”的工具。它主要依赖已有模块和研究成果。
资料:rapid7/metasploit-framework★ 38.5k
pwntools 是二进制利用开发的 Python 库,适合:
在自动化系统中,pwntools 可以作为二进制 PoC 的统一执行框架,但它本身不会自动发现漏洞。
资料:Gallopsled/pwntools★ 13.6k
rex 是 angr 生态中的自动利用引擎,源于 Cyber Grand Challenge 相关研究。
其公开能力包括:
Crash
↓
Crash Triage
↓
Crash Exploration
↓
Exploitability Analysis
↓
Exploit Generation(部分类型)
rex 代表 LLM 时代之前的 Automatic Exploit Generation(AEG)路线。
资料:angr/rex★ 653
Mechanical Phish 是 Shellphish 团队在 DARPA Cyber Grand Challenge 中构建的 Cyber Reasoning System。
其历史意义在于,它在没有 LLM 的时代就尝试自动完成:
Analyze
↓
Find Vulnerability
↓
Generate Exploit
↓
Patch
其技术栈与 angr、rex、Driller、Fuzzing 等研究关系密切。
LLM 并不是自动漏洞研究的起点。更准确的技术演进是:
Symbolic Execution
↓
Fuzzing + AEG
↓
Cyber Reasoning Systems
↓
LLM + Program Analysis
↓
Agentic Vulnerability Research Harness
资料:Mechanical Phish GitHub Organization;Mechanical Phish: Resilient Autonomous HackingIEEE Security & Privacy · 2018
Trivy 对课程主线属于“相关但不是核心漏洞语义分析”的工具,其可用于扫描:
开源项目审计不应只关注自研代码,还需要知道:
Trivy 可提供“已知供应链风险候选”,而后续研究可以进一步做可达性判断。
资料:aquasecurity/trivy★ 36.8k
ASan 是内存安全验证的重要确定性 Oracle,可检测:
其价值在于把:
“程序崩溃了”
升级为:
错误类型 + 地址 + Stack Trace + 触发输入
UBSan 用于检测多类未定义行为,如:
它可与 Fuzzing 结合,提供比普通 Crash 更丰富的运行时证据。
资料:Clang UndefinedBehaviorSanitizer
CASR 是 Crash Analysis 与去重工具,可处理:
Fuzzing 经常产生大量重复崩溃:
1000 crash files
↓
CASR
↓
Root-cause Deduplication
↓
Unique Findings
因此,CASR 对自动化漏洞研究中的“Crash → Finding”转换很有价值。
资料:ispras/casr★ 355
rr 是 Linux 下的 Record and Replay Debugger。
基本模式:
Record Execution
↓
Replay
↓
Reverse Debugging
它特别适合保存复杂、非确定性漏洞的执行轨迹。
在证据链中,可形成:
finding-001/
├── poc
├── input
├── rr-trace
├── logs
└── verdict
资料:rr-debugger/rr★ 10.6k
Tracee 是基于 eBPF 的 Linux Runtime Security/Observability 工具。
可观测:
它非常适合为 PoC 提供行为证据,例如:
Static Claim:
request.cmd → os.system
Runtime Evidence:
/bin/sh created
child process executed
canary file written
资料:aquasecurity/tracee★ 4.5k
nsjail 是轻量级 Linux 隔离工具,使用:
适合限制:
对自动生成 PoC 的系统而言,隔离执行是基本安全要求。
资料:google/nsjail★ 4k
gVisor 是开源 Linux 兼容沙箱,通过用户态应用内核等机制提供额外隔离层,并提供 OCI Runtime runsc。
普通容器共享宿主内核;gVisor 在应用与宿主内核之间增加系统调用处理层,从而减少直接暴露。
本章按时间与技术问题组织代表性研究。与简单论文列表不同,重点分析每项工作的研究问题、方法、证据、影响和局限。
论文: KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs
如何在缺少人工测试输入的情况下,通过符号执行自动探索复杂系统程序路径并生成高覆盖测试?
KLEE 建立了自动化漏洞验证中的一个核心范式:
今天的 LLM Agent 可以帮助选择目标、理解语义和构造驱动,但最终满足路径条件仍可以交给确定性求解器。
资料:KLEEOSDI 2008
论文: Modeling and Discovering Vulnerabilities with Code Property Graphs
单独的 AST、CFG 或数据依赖图只能表示程序的一部分结构,如何统一表达漏洞模式所需的语法、控制流和依赖关系?
将:
AST + CFG + PDG
融合为:
Code Property Graph
然后使用图遍历表达漏洞模式。
CPG 成为 Joern 等工具的理论基础,也为 2025-2026 年“CPG + LLM”研究提供结构化上下文。
LLM 面临上下文窗口和跨过程推理问题时,程序图提供了一种比全文 RAG 更适合安全分析的结构化检索方式。
资料:IEEE S&P PaperIEEE S&P 2014
仅依赖静态规则容易缺失项目语义,仅依赖 GPT 又容易产生幻觉,能否把二者结合?
GPTScan 代表了早期成熟的混合范式:
LLM
→ 理解安全语义 / 识别候选
Program Analysis
→ 验证程序事实
GPTScan 的重要性不在于某个具体模型,而在于明确了:
这条路线后来在 IRIS、QLPro、VulWeaver 等工作中继续发展。
资料:GPTScanICSE 2024;GPTScan GitHub★ 105
传统 SAST 的关键困难之一不是数据流算法本身,而是:
IRIS 使用 LLM 推断项目特定安全规格,再结合静态分析完成全项目污点分析。
概念流程:
Repository
↓
LLM infers project-specific source/sink semantics
↓
Static Taint Analysis
↓
Vulnerability Paths
在论文使用的 CWE-Bench-Java 120 个真实、人工验证漏洞上,论文报告:
这些数字属于论文实验结果,应在复现时关注模型版本、数据集定义和实现配置。
IRIS 很清楚地说明:
资料:IRISICLR 2025;IRIS GitHub★ 404
函数级漏洞数据集通常缺少真实软件演进上下文,能否使用漏洞引入提交和修复提交评估 LLM/Agent?
JITVul 包含大量真实 CVE 的提交级数据。公开论文描述了 1,758 对提交,覆盖 91 类漏洞类型。
能够主动获取跨过程上下文的 ReAct 类 Agent,通常优于只看局部片段的普通 LLM,但仍存在明显不稳定性。
JITVul 强化了一个越来越明确的结论:
资料:JITVulACL 2025
RepoAudit 将漏洞检测视作一个 Agent 在仓库中的探索过程。
它推动研究从:
“给模型一段代码”
转向:
“让模型决定下一步应该查什么,并用工具核验”
这也是 Agent 与普通 LLM 漏洞分类器的本质区别之一。
资料:RepoAudit PaperarXiv · Preprint · 2025
CodeQL 等工具强大,但项目特定 taint specification 和查询规则需要大量专家工作,能否由 LLM 自动生成?
QLPro 面向完整开源项目:
QLPro 表明 LLM 与 SAST 的结合不一定是:
SAST Alert → LLM Filter
也可以是:
LLM → Generate Static Analysis Specification → SAST Executes
资料:QLPro PaperarXiv · Preprint · 2025
LLMxCPG 将 Code Property Graph 与 LLM 结合,用 CPG 切片减少代码规模并保留漏洞相关上下文。
论文报告其切片可大幅减少待分析代码,并在多个设置中改善漏洞检测表现。
其核心价值不是具体 F1,而是提供了清晰的方向:
也就是说,不应仅按文本相似度找代码,而应按:
选择上下文。
资料:LLMxCPGarXiv · Preprint · 2025
真实仓库太大,候选误报太多,如何让 Agent 聚焦攻击相关代码并主动证伪?
OpenAnt 把验证定义为“对发现结论发起攻击”,而不是“让第二个 Agent 重复审查”。
资料:OpenAnt PaperarXiv · Preprint · 2026
自由形式 Agent 过程难以审计、重放和比较,如何把安全 Agent 变成确定性程度更高的流水线?
论文使用多个任务和安全领域讨论其架构。
ESAA 将重点从“推理多聪明”转为:
这对于课程要求的“可审计、可验证、可复现”尤其重要。
资料:ESAA-SecurityarXiv · Preprint · 2026
该工作是 2026 年重要的项目级实证研究之一,比较:
论文报告:
这是对“LLM 一定比传统 SAST 强”这一简单叙事的重要纠偏。
真正合理的结论是:
LLM ≠ SAST Replacement
LLM + Program Analysis + Verification
更值得研究
资料:LLM-based Vulnerability Detection at Project ScalearXiv · Preprint · 2026
SAST 误报率高,Agent 能否通过跨文件推理、工具使用和迭代分析过滤误报?
研究比较 Aider、OpenHands、SWE-agent 等框架,在 OWASP Benchmark 和真实 Java 项目上进行评测。
在最佳配置下:
但论文同时强调:
它表明“验证 Agent”确实有价值,但验证器本身也需要评测,不能默认可信。
资料:Sifting the NoisearXiv · Preprint · 2026
VulWeaver 关注传统静态分析图不完整、LLM 上下文不充分的问题。
论文报告在 PrimeVul4J 上达到较强 F1,并在真实 Java 项目和工业代码中发现多项开发者确认的问题。这些数字属于作者实验结果,应结合代码和数据进一步复现。
VulWeaver 代表:
资料:VulWeaverarXiv · Preprint · 2026
codebadger 直接回应了大模型项目级分析的三个难点:
其做法是提供高层 MCP 工具:
这代表一种很实际的工具接口思想:
资料:codebadger PaperarXiv · Preprint · 2026
内存安全漏洞即便在经过大规模 fuzz 和人工审计的成熟项目中仍持续存在。直接使用大模型进行仓库级漏洞检测面临三方面挑战:
Revelio 提出一种代价可控的 Agentic 检测框架,核心设计包括:
Revelio 是 2026 年最直接印证本报告核心结论的实证工作之一:
资料:Revelio PaperarXiv · Preprint · 2026
Make Agent Defeat Agent: Automatic Detection of Taint-Style Vulnerabilities in LLM-based Agents(Fengyu Liu、Yuan Zhang、Hao Chen 等,复旦大学 + UC Davis)发表于 USENIX Security 2025。
目标域说明:论文的直接检测对象是 LLM Agent 本身(污点从恶意 prompt 流向敏感操作),而非通用开源应用代码。因此它更贴近选题二的问题域。将其纳入本调研的原因在于其方法论对选题一的验证智能体设计具有直接可迁移性。
论文的核心方法是"让一个 Agent 主动挑战另一个 Agent 的假设":
Finder Agent 提出污点候选
↓
Attacker Agent 主动构造反例
↓
沙箱验证
↓
经受住反例的发现才进入报告这与本调研第 3.7 节 OpenAnt 的 Defender/Attacker 对抗验证、第 13.4 节的对抗式独立验证方向属于同一研究谱系。由于本文是 USENIX Security 顶会论文,为该方法论提供了明确的学术背书,可作为选题一验证智能体设计的可引用依据。
即便目标域不同,其研究结论仍支持本报告的两个判断:
资料:Make Agent Defeat Agent — USENIXUSENIX Security 2025
Kernel Fuzzing 的一个核心人工成本是为 syzkaller 编写系统调用描述。
KernelGPT 探索使用 LLM 从内核源代码和文档中生成 syscall specification,再交给 syzkaller 执行。
这是“LLM + Fuzzer”的典型正确分工:
LLM
→ 生成难以人工规模化维护的语义规格
syzkaller
→ 大规模覆盖率引导执行与 Crash 发现
不是让 LLM 模拟 Fuzzer。
CodeQL / Joern + LLM Source/Sink SemanticsGPTScan、IRIS、QLPro
CPG / Dependency Graph / Reachability → Targeted Context → LLMLLMxCPG、VulWeaver、codebadger、OpenAnt
Finder → Independent Verifier → Runtime EvidenceOpenAnt、VVAH、Cloudflare Harness、Sifting the Noise
Discover → PoC → Impact → Patch → Regression ValidationAIxCC、CyberGym-E2E、Codex Security、Claude Security
从上述研究可以看到四条清晰演进线:
CodeQL / Joern
+
LLM Source/Sink Semantics
代表:GPTScan、IRIS、QLPro。
CPG / Dependency Graph / Reachability
↓
Targeted Context
↓
LLM
代表:LLMxCPG、VulWeaver、codebadger、OpenAnt。
Finder
↓
Independent Verifier
↓
Runtime Evidence
代表:OpenAnt、VVAH、Cloudflare Harness、Sifting the Noise。
Discover
↓
PoC
↓
Impact
↓
Patch
↓
Regression Validation
代表:AIxCC、CyberGym-E2E、Codex Security、Claude Security 等。
本章中的系统不一定开源,但其工程实践和公开研究对理解前沿趋势十分重要。所有扫描规模和漏洞数量均为机构官方报告,不视为独立第三方实验结论。
Google Project Zero 在 2024 年公开 Naptime,目标是让 LLM 模拟人工漏洞研究员的迭代过程:
Hypothesis
↓
Inspect Code
↓
Run Tool
↓
Observe Evidence
↓
Refine Hypothesis
其核心思想是为模型提供:
后续 Big Sleep 报告发现了 SQLite 中一个可利用的 stack buffer underflow,并在正式版本发布前得到修复。
这一系列工作证明:
资料:Project Naptime;From Naptime to Big Sleep
AIxCC 是自动化网络防御领域的重要大型竞赛,目标是利用 AI 自动发现并修复开源软件漏洞。
其关键任务不是单纯扫描:
Find
↓
Prove / Score
↓
Patch
涉及真实关键开源软件和大规模自动化 Cyber Reasoning Systems。DARPA 在 2025 年决赛后公开表示,参赛系统能够发现和修补真实世界漏洞,且最终系统被开放源代码。
AIxCC 可以视作 CGC 的现代延续:
2016 CGC
Fuzzing + Symbolic Execution + AEG
2025 AIxCC
LLM + Program Analysis + Fuzzing + Patching
2026 年 6 月,Cloudflare 公开其漏洞研究 Harness 工程经验。
Vulnerability Discovery Harness (VDH)
+
Vulnerability Validation System (VVS)
Discovery 阶段包含多个角色,例如:
Validation 阶段则独立检查 Finding,并主动尝试推翻结论。
Cloudflare 的实践说明 Harness 的工程质量可能比单次模型能力更决定真实效果。
资料:Build your own vulnerability harness
2026 年 3 月,OpenAI 公开 Codex Security research preview。
其公开流程包括:
OpenAI 后续公开文章进一步强调,复杂漏洞不一定是纯 source-to-sink 数据流问题,很多漏洞源于“安全约束看似存在但实际上不成立”。这反映了 LLM 语义推理相对传统 SAST 的潜在优势。
OpenAI 公开了扫描规模、噪声下降和高危发现等数据。这些数字可以反映产品实践规模,但属于厂商自报,不应直接替代独立 benchmark。
资料:Codex Security;Why Codex Security Doesn't Include a SAST Report
Anthropic 在 2026 年公开 Claude Code Security、Claude Security 和 Project Glasswing 相关研究。
其公开能力包括:
Anthropic 还公开了 Claude 发现 0-day、Firefox 合作和协调披露等案例。
这些工作说明前沿模型在:
方面能力明显提升。
但与 Codex Security 相同,公开漏洞数量和修复数字属于官方报告,学术研究仍需要独立、可重复 benchmark。
资料:Claude Code Security;LLM-discovered 0-days;Project Glasswing
Anthropic 除 Claude Security 产品外,还以 MIT 许可开源了 Defending Code Reference Harness 参考实现,并公开了对应的工程博客。相比第 3.9 节侧重系统架构的介绍,本节侧重其可迁移的工程教训——这些结论多数由多家合作团队的实践积累得出,与本报告的判断存在明确对应关系。
| 阶段 | 关键操作 | 对应课程要求 |
|---|---|---|
| Threat Model | 从代码/文档/CVE 历史蒸馏"bug-shape hints",写入 THREAT_MODEL.md | 报告部分的"漏洞列表 + 严重等级" |
| Sandbox | gVisor + 网络白名单 + 依赖 pin | 沙箱化验证 |
| Discovery | 按攻击面分区并行 Agent,结构化输出 | 扫描智能体 |
| Verification | 独立 Verifier + 对抗 Prompt + 强制 PoC | 验证智能体 + 误报过滤 |
| Triage | 按根因去重,按前提条件排序严重度 | 修复建议前置 |
| Patching | 编译 → PoC 失效 → 回归 → 再攻不破四级校验 | 漏洞自动利用与证据链 |
Anthropic 蒸馏出的工程教训中,以下几条与本报告的观察高度一致:
这些数字属于官方自报,仍需通过独立 benchmark 复核,但作为工程实践的规模参照有其价值。
资料:Defending Code Reference Harness GitHub★ 6.4k;官方博客
VVAH 与纯产品不同,它公开了参考实现,因此特别值得关注。
它说明企业级 Agent 安全研究开始关注:
其公开局限也说明,企业本身并不认为 LLM 候选可以不经验证直接成为最终漏洞。
GitHub Security Lab Taskflow 的重要性在于:
这种方法有利于:
Recall、Precision、定位准确率、演进上下文
Proof-of-Vulnerability、Ground Truth Bug、修复前后对比
PoC 生成、Web 利用、能力分级
发现→PoC→Patch,复杂真实目标
CWE 基础测试,但不能代表真实大型仓库
高质量调研不能只比较“发现多少个漏洞”。不同系统的任务定义差异极大:有的做函数分类,有的做仓库级发现,有的只生成 PoC,有的要求实际利用,有的进一步要求修复。因此,必须先明确 benchmark 在测什么。
CWE-Bench-Java 包含 120 个真实 CVE,主要覆盖 4 类 CWE,包括:
数据提供:
资料:CWE-Bench-Java GitHub★ 106
Vul4J 是 Java 真实漏洞可复现数据集。
公开数据包含:
其重要价值是提供:
Vulnerable Version
+
Fixed Version
+
Proof-of-Vulnerability Test
公开仓库也提醒,随着依赖和构建环境变化,部分历史漏洞可能逐渐难以复现。因此,benchmark 本身也需要环境版本管理。
资料:Vul4J GitHub★ 133
JITVul 的核心是提交历史和真实软件演进。
它比纯函数分类数据更贴近真实开发过程,但不直接提供完整漏洞利用环境。
CyberGym 是自动 PoC 生成研究的重要 benchmark。
Vulnerability Description / Repository
↓
Agent Generates PoC
↓
Execute in Environment
↓
Judge Success
CyberGym 表明:
论文还报告在评测过程中发现了新的真实问题。
资料:CyberGymarXiv · Preprint · 2025;CyberGym GitHub★ 503
CyberGym-E2E 将任务扩展为完整生命周期:
Discovery
↓
PoC
↓
Patch
公开论文覆盖:
它纠正了“只会验证已知漏洞就是自动漏洞研究”的误解。端到端系统需要:
资料:CyberGym-E2EarXiv · Preprint · 2026
CVE-Bench 聚焦真实 Web 漏洞 Agent 评测。
资料:CVE-BencharXiv · Preprint · 2025;uiuc-kang-lab/cve-bench★ 248
ExploitGym 关注一个经常被忽略的问题:
Proof of Vulnerability
≠
Exploit
评估 Agent 能否从漏洞线索进一步实现真实安全影响。
漏洞利用应分层:
Crash
↓
Controllable Crash
↓
Exploit Primitive
↓
Security Impact
↓
Full Exploit
论文最新版本公开的任务规模达到数百个实例(论文摘要报告 898 个)。
它推动评价指标从“有没有崩”转向“攻击者获得了什么能力”。
资料:ExploitGymarXiv · Preprint · 2026
ExploitBench 提出能力分级的 Exploitation 评测思想,通过多个具有不同能力层级的 Flag 判断 Agent 到底获得了:
这种方法比单一二元成功/失败更适合研究自动 Exploit。
资料:ExploitBencharXiv · Preprint · 2026
SEC-bench Pro 面向更高难度、真实且持续演进的漏洞研究任务。
公开资料描述其包含 V8、SpiderMonkey 等复杂目标中的 183 个验证漏洞,并强调 benchmark 的持续演化。
它说明当前先进 Agent 距离稳定、通用的自主漏洞研究员仍有明显距离。
资料:SEC-bench ProarXiv · Preprint · 2026
Magma 是真实漏洞 Fuzzing Benchmark。
其关键优势是:
因此比“Crash 数量”更科学。
资料:Magma
传统静态分析基准的代表是 NIST SARD 和 Juliet Test Suite。
NIST 2025 年 IR 8561 描述 SARD 已包含超过 45 万个带缺陷程序,覆盖:
并覆盖 150 多类弱点。
Juliet 是 SARD 中最著名的测试套件之一,包含大量:
不能只使用 Juliet 就声称系统能发现真实开源项目漏洞,因为:
Synthetic Test Case
≠
Large Real Repository
资料:NIST IR 8561NIST IR 8561 · 2025;SARD
| Benchmark | 核心任务 | 规模/特点 | 是否真实项目 | 是否动态 Oracle | 适合评价 |
|---|---|---|---|---|---|
| CWE-Bench-Java | 项目级检测 | 120 CVE / 4 CWE | 是 | 主要否 | Recall、定位、上下文 |
| Vul4J | Java 漏洞复现 | 79 漏洞 / 51 项目 | 是 | 有 PoV | 差分验证、修复 |
| JITVul | 提交级检测 | 1,758 提交对 | 是 | 否 | 演进上下文 |
| CyberGym | PoC 生成 | 1,507 漏洞 / 188 项目 | 是 | 是 | 验证能力 |
| CyberGym-E2E | 发现→PoC→Patch | 920 / 139 项目 | 是 | 是 | 全生命周期 |
| CVE-Bench | Web 漏洞利用 | 40 个关键 CVE | 是 | 是 | Web Agent |
| ExploitGym | PoV→Exploit | 数百实例 | 是 | 是 | 可利用性 |
| SEC-bench Pro | 高难度漏洞研究 | 复杂引擎、持续演化 | 是 | 是 | 真实 0-day 能力 |
| Magma | Fuzzing | 真实注入漏洞 | 是 | Ground Truth | Fuzzer |
| SARD/Juliet | 静态分析测试 | 45 万+程序 | 混合 | 通常否 | CWE 基础能力 |
早期路线:
Code → LLM → Vulnerable?
当前路线:
Program Analysis
+
LLM Semantic Reasoning
+
Dynamic Execution
代表工作:
LLM 擅长:
工具擅长:
二者互补。
项目级实证研究显示,大规模 LLM 检测会遭遇:
因此研究开始从:
Whole Repository Prompt
转向:
Attack Surface
↓
Reachability
↓
Program Slice
↓
Security Context Package
代表:Vulnhuntr、OpenAnt、LLMxCPG、codebadger、VulWeaver。
普通代码 RAG 通常基于:
安全研究需要的是:
因此:
当前越来越多系统采用:
Discovery
↓
Structured Finding Contract
↓
Independent Validation代表:
如果同一个 Agent 同时负责发现和确认,它容易为自己的假设寻找支持证据,而忽视反例。Anthropic Harness 官方数据显示,引入独立 Verifier 可使非可利用发现减少约 50%,Verifier 同时强制构造 PoC 时误报率可接近 0;Make Agent Defeat Agent 也在 LLM Agent 污点检测场景中给出了相同结论的顶会实证。
弱验证:
Finder: 有漏洞
Verifier: 我也认为有强验证:
Finder 提交 Claim
↓
Verifier 寻找:
- 不可达路径
- 非攻击者输入
- 有效 Sanitizer
- 权限限制
- 默认配置关闭
- 环境不成立这是 OpenAnt、Cloudflare、Anthropic Defending Code Reference Harness 和 Make Agent Defeat Agent 等公开实践与论文中共同强调的趋势。
传统:
Vulnerable / Safe
更合理:
Pattern
↓
Reachable
↓
Attacker Controlled
↓
Triggered
↓
Impact Confirmed
↓
Exploit / Reproducible
ExploitGym、ExploitBench 等 benchmark 正在推动这种变化。
错误的验证方式:
PoC output:
"Exploit successful"
LLM:
“成功”更可靠的验证:
当前高质量 benchmark 基本都在强化动态 Oracle。Revelio(第 8.15 节)以 7 个持续 fuzz 5–8 年的高质量项目 + ASan 强制复现的组合,用约 $300 的总花费定位到 19 个未知内存漏洞,是这一趋势的最新实证之一。
安全 Agent 的效果不仅取决于:
还取决于:
Cloudflare、VVAH、Taskflow Agent 和 OpenAnt 都体现这一点。
早期:
LLM → Harness → Run Once
新方向:
Generate
↓
Compile
↓
Repair
↓
Fuzz
↓
Coverage
↓
Analyze Gaps
↓
Refine Harness
Fuzz Introspector、AFL++、libFuzzer 为这种闭环提供确定性反馈。
当前研究正在探索:
代表:
这类工作能够降低专家规则开发成本,但生成规格本身必须编译、执行和验证。
真实软件通常是:
Application
↓
Framework
↓
Library
↓
Native Dependency
仅知道“依赖有 CVE”不够,还需要判断:
因此 SBOM/SCA 与程序可达性结合是值得关注的方向。
AIxCC、CyberGym-E2E、Codex Security、Claude Security 等都把研究延伸到:
Discover
↓
Validate
↓
Patch
↓
Regression Test
未来“发现多少漏洞”将不再是唯一指标,修复正确性和不引入新问题同样重要。
直接把仓库文件全部输入模型会导致:
现有方法包括:
但不同语言、框架和动态特性使“最佳上下文选择”仍是开放问题。
例如:
os.system(cmd)
仅看到 sink 不足以证明 RCE。
必须回答:
当前很多 LLM 检测器仍会在这里产生误报。
多个 Agent 使用相同:
可能重复相同错误。
因此“3 个 Agent 投票”不一定是真正独立验证。
Sifting the Noise 证明 Agent 可以显著降低 SAST 噪声,但也指出激进过滤可能删除真实漏洞。
因此验证器需要:
不能把 Verifier 视作神谕。
CyberGym 等 benchmark 表明:
是不同难题。
因此:
Finding ≠ PoC
PoC ≠ Exploit
Exploit ≠ Reproducible Evidence
Web 路径遍历与内存破坏漏洞的“利用”完全不同:
因此通用 Exploit Success 指标不合理。
Agent 运行受:
影响。
没有事件日志、Artifact Hash、容器镜像和 Replay 命令,就很难称为可复现研究。
Synthetic benchmark 容易;真实 0-day Hunting 难。
Known CVE PoC 生成容易泄露先验;Blind Discovery 更难。
因此需要同时使用:
项目级研究显示 LLM 漏洞检测可能消耗非常高的 Token 和时间。
研究不能只报告 Accuracy,还应报告:
本章以研究问题为主,不预设具体系统实现。每个方向分别分析已有基础、尚未解决的问题、可能的创新点和可评测方式。
全仓库 LLM 输入成本高,随机 RAG 又可能丢失真实调用路径。Vulnhuntr、OpenAnt、LLMxCPG 和 codebadger 都表明,安全分析需要结构化上下文。
如何自动识别:
并构造最小但充分的安全上下文?
不是简单“减少 Token”,而是建立:
IRIS、QLPro 等工作说明项目语义规格是传统静态分析的重要瓶颈。
如何识别框架或项目自定义函数:
get_user_payload() → Source?
execute_job() → Sink?
escape_custom() → Sanitizer?
LLM 生成的 Source/Sink 不能直接作为事实,需要:
CodeQL 查询编写需要较强专业知识。QLPro、QLCoder、CQLLM 类工作正在探索自动生成查询。
如何让 Agent 从:
生成可以执行的 CodeQL 查询?
Generate Query
↓
Compile
↓
Run on Positive/Negative Cases
↓
Analyze Results
↓
Repair Query
这比一次性代码生成更具研究价值。
OpenAnt、VVAH、Cloudflare 都强调发现与验证分离,Anthropic Defending Code Reference Harness 进一步以定量数据佐证独立 Verifier + 强制 PoC 可将误报率压至接近 0,Make Agent Defeat Agent(USENIX Security 2025)在 LLM Agent 污点检测场景给出了该方法论的顶会实证。
如何避免 Verifier 只是重复 Finder 的偏见?
{
"claim": "attacker-controlled input reaches shell execution",
"cwe": "CWE-78",
"entry_point": "...",
"source": "...",
"sink": "...",
"call_path": [],
"preconditions": [],
"expected_impact": "...",
"falsification_conditions": []
}可以专门研究:
ExploitGym 和 ExploitBench 等研究说明,漏洞存在与成功利用之间存在多个能力层级。
存在危险模式或可疑语义。
攻击入口能够到达安全敏感操作。
攻击者输入真实影响关键操作。
构造输入能够触发异常或目标行为。
确定性证据证明真实安全影响。
漏洞版本稳定成功,修复版本稳定失败,并可多次重放。
这种分级比:
Vulnerable = true
更能描述证据强度。
LLM 自我判断 PoC 成功不可靠。
可以使用:
使用随机 Canary Token,验证受控副作用,例如:
运行时随机生成:
/secret/canary-<uuid>只有越权读取成功才能获得该值。
内部 Mock Service 生成唯一 nonce,只有目标程序主动请求才判定成功。
对比:
访问受保护资源的结果。
Revelio(第 8.15 节)在 7 个持续 fuzz 5–8 年的成熟项目上以 ASan 复现为唯一判定条件,用约 $300 总花费发现 19 个未知内存安全漏洞,是该 Oracle 设计路径在 2026 年最直接的工程实证。
建立漏洞类别—验证器—Oracle映射是当前自动验证系统的重要研究空间。
使用同一个 PoC:
Vulnerable Commit
PoC = Success
Fixed Commit
PoC = Fail
差分验证可以减少:
Vul4J、CVE 修复提交等数据非常适合该研究。
ESAA-Security 和 Cloudflare 的状态管理实践说明,Agent 长任务需要持久化。
RepositoryCheckedOut
ParserCompleted
CandidateGenerated
PathQueried
VerifierDecision
PoCCompiled
SandboxStarted
RuntimeEventCaptured
VerdictIssued
大量库无法获得高质量 Fuzzing,原因不是缺少 Fuzzer,而是缺少 Harness。
API / Function Target
↓
LLM Generate Harness
↓
Compile
↓
Repair Errors
↓
Run Fuzzer
↓
Measure Coverage
↓
Refine
除了 Harness,还可以研究:
关键原则仍然是:
Trivy 等工具可以发现:
Dependency X version Y has CVE
但真实风险取决于:
Application Entry
↓
Calls Vulnerable API?
↓
Attack Input Reaches It?
这是 SCA 与代码分析结合的重要方向。
VVAH 和 Codex Security 都强调项目特定威胁模型。
如何自动从代码提取:
自动 Threat Model 也可能遗漏关键资产或错误判断信任边界。
通用 Prompt 很难同时覆盖:
因此可研究:
Vulnerability Class
↓
Specialized Workflow
↓
Specialized Evidence Contract
例如:
GitHub Taskflow Agent 是这一方向的重要参考。
当前多 Agent 往往只是同一个模型的多个角色。
更值得研究的是:
如果 Verifier 会误删真实漏洞,则需要评估:
可以允许 Verifier 输出:
Confirmed
Rejected
Insufficient Evidence
而不是强制二元判断。
传统报告字段:
更适合自动化漏洞研究的 Evidence Object 可以包含:
这使漏洞 Finding 从文本结论转为可计算、可比较的研究对象。
目前已有大量系统采用:
Recon Agent
Audit Agent
Verify Agent
Report Agent
因此仅增加 Agent 数量不能证明研究价值。
真正有意义的问题是:
模型更新很快。如果研究贡献只是:
换成更强模型 → 指标提高
则结果难以持续。
更稳定的贡献是:
项目级实证研究表明:
更可信的研究方向是:
SAST / CPG / Fuzzing
+
LLM Semantics / Planning
+
Dynamic Verification
一个系统可能:
另一个系统可能:
因此应该分别评价:
证明漏洞现象或安全影响。
获得特定攻击能力,例如:
很多系统把“构造触发请求”称为 Exploit,但在内存安全研究中这可能只达到 Crash/PoV。
报告中应准确使用术语。
例如:
因此比较系统时最好设置两个维度:
不要把 GitHub Star 数量当成学术证据。
OpenAI、Anthropic、Cloudflare 等机构公开了大量:
这些数据具有重要工程参考价值,但通常:
因此报告应写作:
而不是:
现代 LLM 很容易生成大量“看起来合理”的 Finding。
困难在于证明:
Attacker Control
+
Reachability
+
No Effective Defense
+
Runtime Impact因此漏洞验证、Oracle、差分实验和证据回放比增加一个扫描 Agent 更具有研究价值。
Anthropic Defending Code Reference Harness 的公开博客对该判断给出了同方向的工程佐证:截至 2026 年 5 月 22 日,Anthropic 自扫累计披露 1,596 个漏洞,但仅有 97 个完成修补——"发现的产能远超验证与修补的产能" 已经不是理论推测,而是被大厂运营数据直接印证的产业现实。
未来高水平系统的差异可能更多来自:
而不是单一模型排行榜。
本节不是最终系统定位,也不要求照此实现,仅作为调研后得到的工具关系总结。
| 工具类别 | 主要输出的“事实” |
|---|---|
| Semgrep | 规则命中、危险 API、局部污点 |
| CodeQL | 语义路径、跨过程数据流 |
| Joern | 程序图、调用关系、切片 |
| AFL++/libFuzzer | 覆盖率、触发输入、Crash |
| KLEE/angr | 路径约束、满足输入 |
| Nuclei | 模板请求与 Matcher 结果 |
| sqlmap | SQLi 专项动态结果 |
| Commix | Command Injection 专项结果 |
| ASan/UBSan | 运行时错误类型 |
| Tracee | 进程/文件/网络行为 |
| CASR | Crash 去重与根因信息 |
| rr | 可重放执行轨迹 |
| Trivy | 已知依赖风险与 SBOM |
从技术关系看,比较自然的研究链路是:
候选发现
↓
程序结构与路径事实
↓
语义分析
↓
独立验证
↓
专项动态工具
↓
确定性 Oracle
↓
证据与回放但具体课程实现应根据:
再选择,不宜为了工具数量而全部集成。
本次调研覆盖了大模型智能体代码审计、传统程序分析、模糊测试、符号执行、漏洞验证、PoC/Exploit、运行时取证、沙箱和评测基准等多个方向。
综合来看,可以得出以下结论。
第一,LLM 并没有替代传统漏洞研究技术。 当前最具说服力的研究普遍采用混合方法:程序分析提供结构和路径,LLM 提供项目语义与假设,动态执行提供事实。
第二,项目级上下文是核心瓶颈。 真实仓库无法依赖函数级分类或全文 Prompt。攻击面、可达性、程序切片、CPG 和高层程序分析工具接口正在成为重要基础设施。
第三,验证正在取代发现成为主要难点。 现代模型可以快速生成大量候选,但真正证明攻击者可控、路径可达、缺少有效防御并产生实际安全影响仍然困难。
第四,自动漏洞利用需要分级。 Crash、PoV、Exploit Primitive 和 Full Exploit 是不同能力层级。不同漏洞类型也需要不同的确定性 Oracle。
第五,Harness 正在成为竞争核心。 2026 年的 OpenAnt、VVAH、Cloudflare Harness、Anthropic Defending Code Reference Harness、RAPTOR、Shannon、Taskflow Agent 等工作共同说明,工具编排、上下文路由、状态管理、验证协议和反馈闭环可能比单一模型选择更重要。
第六,可复现性和证据链是当前系统的重要研究空白。 事件溯源、Artifact Hash、容器环境、动态日志、差分版本和 Replay 应当成为高质量自动化安全研究的重要评价维度。
最后,从研究趋势看,未来一段时间最值得持续跟踪的方向包括:
这些方向共同反映了领域正在从“AI 给出一个漏洞答案”走向“AI 在工具和证据约束下完成可验证的漏洞研究过程”。
以下条目从原报告“阅读优先级”和正文反复引用资料中抽取,用于快速复核论证主线。说明只依据本文已有描述,不扩展新的论文贡献。
用于说明 LLM 与程序分析互补,尤其是语义规格和静态路径事实的分工。
用于说明可达性裁剪、对抗式验证和发现-验证分离的研究方向。
用于讨论项目级漏洞检测中上下文获取和仓库规模带来的困难。
用于支持误报过滤、验证分离和证据质量评价相关论述。
代表面向代码审计的多智能体系统,用于比较沙箱 PoC 与报告生成链路。
用于说明静态建模、攻击图和动态验证结合的系统路径。
用于说明 Threat Model First 和企业级阶段化 Harness 设计。
用于说明 Discovery Harness 与 Validation System 分离的工程实践。
用于讨论真实目标中的 PoC 生成和漏洞研究任务评测。
用于说明 Java CWE 检测与定位任务的评测方式。
用于建立程序结构化上下文的基础概念。
用于说明数据流、污点分析和变体分析在 LLM Agent 中可承担的事实计算任务。
用于说明覆盖率反馈、Fuzz Harness 和闭环执行的工具基础。
用于分析 Fuzz 覆盖缺口和 Harness 质量。
用于说明事件溯源式 Agent 架构和可重放证据链。
用于讨论发现、PoC、修复和回归验证的端到端评测。
用于说明 7 Agent 架构、六阶段漏洞研究流程、gVisor 沙箱与官方自报复现数据。
用于讨论廉价 LLM 与 ASan 强制复现结合的内存安全漏洞检测路线。
用于比较白盒 AI Pentester、静态/动态分析协同和“未证 PoC 即弃”的验证约束。
以下保留原报告完整资料分组,用于逐项核查来源。
Yamaguchi et al. Modeling and Discovering Vulnerabilities with Code Property Graphs. IEEE IEEE S&P 2014
Cadar et al. KLEEOSDI 2008
google/syzkaller★ 6.3k
googleprojectzero/winafl★ 2.6k
JonathanSalwan/Triton★ 4.2k
eurecom-s3/symcc★ 868
angr/rex★ 653
Mechanical PhishIEEE Security & Privacy · 2018
GPTScanICSE 2024
IRISICLR 2025
JITVulACL 2025
RepoAuditarXiv · Preprint · 2025
QLProarXiv · Preprint · 2025
LLMxCPGarXiv · Preprint · 2025
OpenAntarXiv · Preprint · 2026
ESAA-SecurityarXiv · Preprint · 2026
LLM-based Vulnerability Detection at Project ScalearXiv · Preprint · 2026
Sifting the NoisearXiv · Preprint · 2026
VulWeaverarXiv · Preprint · 2026
codebadgerarXiv · Preprint · 2026
RevelioarXiv · Preprint · 2026
Liu et al. Make Agent Defeat AgentUSENIX Security 2025
lintsinghua/DeepAudit★ 6.6k
Gach0ng/AgentStalker★ 128
securelayer7/sandyaa★ 233
protectai/vulnhuntr★ 2.7k
visa/visa-vulnerability-agentic-harness★ 645
anthropics/defending-code-reference-harness★ 6.4k
anthropics/defending-code-reference-harness
KeygraphHQ/shannon★ 45.5k
Tencent/AI-Infra-Guard★ 4.1k
gadievron/raptor★ 3.3k
GreyDGL/PentestGPT★ 14.1k
projectdiscovery/nuclei★ 29.5k
projectdiscovery/nuclei-templates★ 12.6k
sqlmapproject/sqlmap★ 37.8k
commixproject/commix★ 5.8k
rapid7/metasploit-framework★ 38.5k
Gallopsled/pwntools★ 13.6k
aquasecurity/trivy★ 36.8k
ispras/casr★ 355
rr-debugger/rr★ 10.6k
aquasecurity/tracee★ 4.5k
google/nsjail★ 4k
NationalSecurityAgency/ghidra★ 70.5k
tuhh-softsec/vul4j★ 133
CyberGymarXiv · Preprint · 2025
CyberGym-E2EarXiv · Preprint · 2026
CVE-BencharXiv · Preprint · 2025
ExploitGymarXiv · Preprint · 2026
SEC-bench ProarXiv · Preprint · 2026
NIST, The Software Assurance Reference Dataset, IR 8561NIST IR 8561 · 2025
ExploitBencharXiv · Preprint · 2026