文章总结: 本文深度分析了11篇AI代码审计文章的共性与差异,核心共识是LLM已具备审计基础能力但需工程化纪律约束,共同痛点包括幻觉问题、上下文窗口限制和覆盖率不足。技术路线趋同于多阶段流水线、多Agent并行、Source→Sink数据流分析和SAST+AI混合策略。主要分歧在于SAST与纯AI的选择、Agent编排确定性程度、覆盖率保障方式以及Java专项与多语言通用方案的权衡,为AI代码审计实践提供了系统化参考框架。 综合评分: 90 文章分类: AI安全,代码审计,实战经验,安全工具,应用安全
11篇AI代码审计文章:共同点与不同点深度分析
原创
Windsss Windsss
听风安全
2026年3月7日 00:03 北京
本文只做分析对比,供大家参考,11篇文章都写的非常好,受益颇多!
由我和opus4.6共同完成!
11篇AI代码审计文章:共同点与不同点深度分析
文章索引
| 编号 | 文章简称 | 作者/来源 | | — | — | — | | A1 | Agent时代的Web项目0day代码审计 | guchangan1 / L0una | | A2 | AI挖Java 0day(上篇) | 漏洞研究组 / 中国电信大可实验室 | | A3 | AI挖Java 0day(下篇) | 漏洞研究组 / 中国电信大可实验室 | | A4 | Claude Code Security技术原理全拆解 | 莫潇羽 / 源码七号站 | | A5 | Claude Opus 4.6白盒代码审计方法论 | 3stone / 三石随笔录 | | A6 | Code Audit Skill开源项目 | 三石随笔录 | | A7 | Joern探雷Claude拆弹 | 一寸灰 / 锦岳智慧 | | A8 | 从灵感到落地一键代码审计 | Purpleroc / Purpleroc的札记 | | A9 | 告别自嗨与烧钱AI渗透测试 | 一寸灰 / 锦岳智慧 | | A10 | 20万行项目找到63个漏洞 | 3stone / 三石随笔录 | | A11 | GitHub漏洞数据库变成Skill | yhy0 / 谁不想当剑仙 |
一、共同点分析
1. 核心共识:LLM不缺能力,缺工程化纪律
所有11篇文章都认同一个基本前提——当前大语言模型已经具备代码安全审计的基础能力,但直接”裸跑”LLM效果不佳。核心问题不在于模型本身,而在于如何组织和约束模型的工作方式。
- • A1:“AI必须放在稳定可复现的框架里,才能持续产出价值”
- • A2:“LLM不缺能力,缺纪律”
- • A5:“模型能力已经足够强,但’如何使用模型’才是真正的瓶颈”
- • A10:“代码审计是决策过程,需要状态机而非prompt模板”
2. 共同痛点认知
2.1 幻觉问题(11/11篇提及)
所有文章都将LLM幻觉视为AI代码审计的头号敌人:
- • A1:无中生有编漏洞链,给虚假PoC
- • A2/A3:5条反幻觉铁律
- • A4:多阶段红蓝对抗验证
- • A5:多轮审计交叉验证
- • A6/A10:Glob/Read强制验证文件路径和代码片段
- • A7:4种验证结论(confirmed/false_positive/downgraded/needs_review)
- • A8:交叉验证降低误报
- • A9:P-E-R架构中Reflector VETO权
2.2 上下文窗口限制(10/11篇提及,除A11)
大型项目代码量远超LLM上下文窗口,所有提出具体方案的文章都面对并解决这一问题:
- • A1:子代理写文件+单行摘要回传
- • A2:EALOC分层 + 文件持久化
- • A5:多轮审计 + Agent并行
- • A7:DAG分层执行,非LLM步骤不消耗token
- • A9:智能上下文压缩 + Meta-Tooling层
- • A10:增量补漏跨轮传递结构
2.3 覆盖率不足(9/11篇提及,除A4、A11)
LLM天然倾向对”有趣”的代码深挖而跳过”无聊”的代码:
- • A2/A3:覆盖率门禁,禁止<100%进入下一阶段
- • A5:三问终止规则
- • A6/A10:10维覆盖率矩阵
- • A8:多模块资产发现
3. 共同技术路线
3.1 多阶段流水线架构(11/11)
所有文章都采用分阶段的审计流程,而非一次性分析:
| 文章 | 阶段划分 | | — | — | | A1 | Phase 1-4(结构还原→并行派发→聚合→质量保证) | | A2/A3 | Phase 0-5(度量→侦察→审计→覆盖门禁→验证→报告) | | A4 | 6阶段(接入→理解→分析→对抗验证→生成→人审) | | A5 | Phase 1-5(信息收集→模式匹配→手工审计→验证→报告) | | A6/A10 | Phase 1-4(侦察→审计+并行→覆盖自检→报告) | | A7 | Layer 0-3(路由→并行扫描→验证→报告) | | A8 | Phase 1-5(资产发现→技术审计→业务审计→攻击链→报告) | | A9 | P-E-R循环(计划→执行→反思→重新计划) |
3.2 多Agent并行架构(10/11,除A4)
几乎所有方案都采用多Agent并行处理不同安全维度:
- • A1:chain-analyzer, auth-auditor, business-logic-auditor, config-secrets-auditor
- • A2:按EALOC计算Agent数量
- • A5:按攻击面动态切分Agent方向
- • A6/A10:按安全维度(D1-D10)分配Agent
- • A7:route_mapper, auth_auditor, joern_scanner, hardcoded_auditor, vuln_verifier
- • A8:12个功能模块
- • A9:Planner-Executor-Reflector三角
3.3 Source→Sink数据流分析模型(11/11)
所有文章都以”污点分析”或”数据流追踪”为核心分析方法:
- • 不可信的用户输入(Source)→ 数据流传播(Propagation)→ 危险操作(Sink)
- • A2/A6提出的双轨模型(Sink-driven + Control-driven)是对传统Source→Sink模型的重要扩展
3.4 SAST + AI混合策略(8/11)
多数文章主张传统SAST工具与AI结合:
- • A1:Semgrep快扫sink + Agent深度分析
- • A2/A3:Layer 1 ripgrep+Semgrep预扫 + Layer 2 LLM双轨审计
- • A4:建议分层安全检测(SAST→AI→DAST→人工)
- • A5:Grep模式匹配 + Read深度分析
- • A7:Joern CPG扫描 + Claude验证
- • A11:为AI提供结构化漏洞知识库
3.5 攻击链构建思维(8/11)
多数文章强调不应孤立看待单个漏洞,要构建攻击链:
- • A1:漏洞sink点追溯,sink→source还原利用链
- • A5:认证绕过→SSRF→云元数据→IAM凭证
- • A6/A10:单个Medium组合后可变Critical
- • A8:Phase 4专门做攻击链分析
3.6 结果持久化到文件(9/11,除A4、A11)
针对LLM”灾难性遗忘”,几乎所有实操方案都采用中间结果写文件策略:
- • A1:子代理写文件+单行摘要回传
- • A2/A3:每Phase写文件持久化
- • A5/A10:跨轮传递结构持久化
- • A7:增量写入+虚拟工具提交
- • A9:持久化PlannerContext/ReflectorContext
4. 共同质量标准
4.1 宁可漏报不可误报(8/11)
A1, A2/A3, A5, A6, A8, A10都明确提出这一原则。只有A4(Anthropic官方Claude Code Security报告500+零日零误报)和A11(知识库构建工具)未强调此点。
4.2 标准化报告输出(10/11,除A11)
所有审计方案都要求结构化、标准化的报告输出,包含漏洞描述、代码证据、调用链、修复建议等必填字段。
4.3 人机协作(11/11)
所有文章都强调AI发现+人工确认的模式,没有任何文章主张完全自动化的无人审计。
二、不同点分析
1. 定位与适用场景差异
| 文章 | 定位 | 目标用户 | | — | — | — | | A1 | 实战审计完整方案 | 红队/安全审计员 | | A2/A3 | Java专项Skill体系 | Java安全审计员 | | A4 | 技术原理科普分析 | 安全从业者/开发者/管理者 | | A5 | 审计决策方法论 | 高级安全研究员 | | A6 | 开源工具项目介绍 | Claude Code用户 | | A7 | 降本增效工程实现 | 安全工程团队 | | A8 | 从零打造Skill全过程 | Skill开发者/安全工程师 | | A9 | AI渗透测试闭环 | 渗透测试团队 | | A10 | Skill设计+实战验证 | Skill开发者/安全研究员 | | A11 | 漏洞知识库自动化 | 安全知识工程师 |
2. 语言/框架覆盖范围差异
| 范围 | 文章 | | — | — | | 仅Java | A2/A3, A7 | | 以Java为主但方法论通用 | A1, A5, A10 | | 多语言(9种) | A6 | | 多语言(7种生态) | A11 | | 以Python为验证 | A8 | | 语言无关(方法论层面) | A4, A9 |
3. SAST工具选择差异
| SAST工具 | 文章 | 选择理由 | | — | — | — | | Semgrep | A1, A2/A3 | 快速、开源、规则灵活 | | Joern(CPG) | A7 | 支持反编译伪代码、CPG信息更丰富 | | ripgrep | A2/A3, A5, A10 | 纯文本搜索,零配置 | | 不用SAST | A4, A8, A9 | A4完全靠LLM语义推理;A8靠LSP;A9面向渗透不是代码审计 | | CodeQL | 无 | A7明确说明放弃原因:构建繁琐、不支持商用 |
4. Agent编排策略差异
4.1 编排决策者不同
- • LLM决策(A1, A5):由主Agent根据攻击面动态决定派发方向
- • 预定义规则(A2/A3, A6, A10):Skill预定义维度划分和Agent分配规则
- • 确定性DAG(A7):Python代码硬编码拓扑排序,非LLM决策
- • P-E-R循环(A9):Planner决策+Reflector VETO
4.2 Agent粒度不同
- • 按漏洞类型(A1):chain/auth/business-logic/config-secrets
- • 按安全维度(A6, A10):D1-D10,每个Agent负责1-3个维度
- • 按DAG层(A7):route→auth+scan+hardcoded→verify→report
- • 按功能模块(A8):12个功能模块
- • 动态切分(A5):按项目攻击面推导,不套固定模板
5. 漏洞评分体系差异
| 体系 | 文章 | 特点 | | — | — | — | | DKTSS | A3 | Base-Friction+Weapon+Ver,比CVSS更贴实战 | | 三维模型 | A5 | 可达性×影响×利用复杂度 | | 优先级公式 | A5 | (攻击面×影响)/复杂度 | | 置信度分级 | A10 | 已验证/高置信/中置信/需验证 | | 严重性+置信度 | A4 | 双维度评估 | | P0-P3优先级 | A2 | Layer 1预扫描命中级别 | | 无自定义评分 | A8, A11 | 使用通用CVSS |
6. 反幻觉机制差异
| 机制 | 文章 | 实现方式 | | — | — | — | | 文件验证铁律 | A2/A3, A6, A10 | Glob/Read强制验证,不得猜测 | | 红蓝对抗 | A4 | AI自己辩论,红队找+蓝队推翻 | | 4种验证结论 | A7 | confirmed/false_positive/downgraded/needs_review | | 交叉验证 | A8 | 正向+反向数据流交叉对比 | | VETO权 | A9 | Reflector可否决Executor结论 | | Hypothesis状态 | A3 | 不确定的发现标记为假设而非确认 | | 多轮递进 | A5 | 覆盖→深度→关联三轮交叉验证 |
7. 覆盖率保障差异
| 方式 | 文章 | 粒度 | | — | — | — | | 100%文件级门禁 | A2/A3 | find命令diff验证,禁止<100%进入下一阶段 | | 10维矩阵 | A6, A10 | D1-D10维度覆盖率≥8/10 | | 三问终止 | A5 | 每轮结束回答3个问题决定是否继续 | | 模块覆盖 | A1 | CRITICAL命中必须有处置记录 | | 无显式覆盖率 | A4, A7, A8, A9, A11 | 依赖流程完整性保证 |
8. 增量/多轮审计策略差异
| 策略 | 文章 | 机制 | | — | — | — | | R2不重复R1 | A10 | COVERED/GAPS/CLEAN/HOTSPOTS/FILES_READ/GREP_DONE跨轮传递 | | 多轮不同目标函数 | A5 | R1:max覆盖, R2:max深度, R3:max关联 | | 覆盖门禁补扫 | A2/A3 | <100%自动启动补扫Agent | | AI反思迭代Skill | A8 | 让AI反思审计失败原因优化Skill | | STE经验持久化 | A9 | Strategy-Tactics-Example提取存储 |
9. 知识库构建差异
| 方式 | 文章 | 内容 | | — | — | — | | 自动化GHSA提取 | A11 | 按漏洞原语聚合GitHub Advisory漏洞 | | WooYun案例库 | A6 | 88,636条真实案例(2010-2016) | | 96知识模块 | A6 | 结构化的安全审计知识库 | | 漏洞成立条件表 | A3 | Fastjson/JNDI/Velocity等版本+配置判定 | | 双后端知识架构 | A9 | OpenViking(静态)+ ChromaDB(动态) | | Semgrep规则沉淀 | A1, A2/A3 | 漏洞模式转Semgrep规则 |
10. 对LSP的态度差异
| 态度 | 文章 | 原因 | | — | — | — | | 核心依赖 | A8 | LSP是代码理解的关键能力 | | 优先使用 | A2/A3 | 优先LSP,不可用时退化到Grep+Read | | 提及但非核心 | A1, A5 | 提到LSP但非架构核心 | | 不使用 | A4, A7, A9, A10, A11 | 用其他方式替代(CPG/Grep/语义推理) |
11. 是否支持反编译/伪代码
| 支持 | 文章 | 方式 | | — | — | — | | 明确支持 | A1 | jar包反编译后审计 | | 明确支持 | A7 | Joern直接分析反编译伪代码 | | 提及但非重点 | A2/A3, A5 | 方法论可适用但未深入 | | 不涉及 | A4, A6, A8, A9, A10, A11 | 针对源码 |
12. 成本控制策略差异
| 策略 | 文章 | 方法 | | — | — | — | | SAST预筛减少LLM调用 | A1, A2/A3, A7 | 非LLM步骤不消耗token | | EALOC分层 | A2/A3 | 低风险文件用低成本方式审计 | | 增量补漏 | A10 | R2不重复R1工作 | | Meta-Tooling | A9 | 只返回结果不注入过程 | | 智能压缩 | A9 | 上下文压缩减少token | | 两层渐进加载 | A11 | 检测策略轻量加载,案例按需加载 | | 子代理写文件 | A1 | 避免主上下文被淹没 |
三、核心分歧总结
分歧1:SAST还是纯AI?
- • SAST+AI派(A1, A2/A3, A7):SAST扛广度,AI扛深度,降本增效
- • 纯AI派(A4, A5, A8):LLM语义推理能力已超越SAST,SAST只是辅助
- • 知识增强派(A6, A10, A11):给AI提供结构化知识,让AI自己扫
分歧2:Agent编排的确定性程度
- • 硬编码DAG(A7):Python代码确定执行顺序,最可控
- • Skill规则预定义(A2/A3, A6, A10):Skill定义流程,Agent按流程走
- • 动态推导(A1, A5):由LLM根据项目特征动态决策
- • 自适应循环(A9):P-E-R循环,Reflector动态调整
分歧3:覆盖率的保障方式
- • 100%文件级强制门禁(A2/A3):最严格,不允许任何遗漏
- • 维度级覆盖矩阵(A6, A10):允许单维度缺失,整体≥80%
- • 决策终止规则(A5):基于三问判断是否足够
- • 隐式保证(A7, A8):通过流程完整性间接保证
分歧4:Java专项 vs 多语言通用
- • Java深度专项(A2/A3, A7):深入Java生态特有漏洞(Fastjson/Shiro/MyBatis)
- • 多语言通用(A5, A6, A9):方法论通用,具体语言知识模块化
- • 按生态构建(A11):每个语言生态独立构建漏洞知识库
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:听风安全 Windsss Windsss《11篇AI代码审计文章:共同点与不同点深度分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论