每日 AI 实战案例

AI 辅助代码安全审计:用 Agent 给 5 年老项目扫出 12 个高危漏洞

2026-08-28
高级开发
7 天
使用工具:
Claude CodeSequential Thinking MCPGitHub MCPMemory MCP
AI实战安全审计Claude CodeAgent漏洞扫描

案例摘要

一个跑了 5 年、12 万行代码的内部业务系统,安全团队人力只够每年抽审一次,历史欠账越堆越多。我们用 Claude Code 当主审计 Agent,配 Sequential Thinking MCP 做可回退的多步推理、GitHub MCP 拉取代码与提交修复 PR、Memory MCP 沉淀漏洞模式库,一周扫完全仓并落地 12 个高危漏洞修复。本文复盘工具组合、审计 Prompt、踩过的坑(Agent 误报 SQL 注入 / 跨语言污点追踪断链)和效果数据,给同类老项目一套可复用的 Agent 安全审计工作流。

案例背景

我们的内部业务系统是个跑了 5 年的"祖传"项目:12 万行代码,Java 后端 + Node.js 网关 + 少量 Python 脚本,横跨三个语言栈。安全团队只有 2 人,每年只能抽审一次,历史欠账越堆越多。今年合规要求做一次全仓安全审计,传统人工预估要 4-6 人周,远超人力。我们决定用 Agent 把"机械的初筛"自动化,让人只盯确认与决策。

工具组合

工具角色为什么选它
Claude Code主审计 Agent长上下文理解跨语言大仓,可自主读-改-验证-迭代
Sequential Thinking MCP可回退推理安全审计多假设并行、要能换路,普通 CoT 走死胡同
GitHub MCP拉代码 / 提修复 PR自动建分支、提 PR、跑 CI,闭环到仓库
Memory MCP漏洞模式库沉淀已确认漏洞模式,下次同类直接命中

实施步骤

第 1 步:建立漏洞审计清单与优先级(半天)

不直接让 Agent 漫扫,先定审计范围与优先级,写进 Memory 当铁律:

安全审计铁律(存入 Memory):

  1. 优先级:注入类(SQL/命令/表达式)> 鉴权越权 > 敏感信息泄露 > 依赖漏洞 > 配置风险
  2. 只报有可触达输入路径的漏洞,纯内部不可达的死代码不算高危
  3. 每个发现必须给出:漏洞点、触发路径、PoC 思路、修复方案、风险等级

第 2 步:分语言扫描,每类一个 Goal(3 天)

按语言拆 Goal,避免上下文互相污染:

Goal:审计 java-backend/src 下所有直接拼接 SQL 的查询点,
对每个找到的可疑点,用 Sequential Thinking 走一遍
"输入可达性 → 是否参数化 → 是否有过滤 → 风险等级" 四步推理,
确认高危的写入修复 PR,低危的只记录清单。

Sequential Thinking 在这里发挥关键作用:Agent 发现某处拼接后,会开一支分支追输入可达性,追到不可达就 revisesPreviousThought 降级,避免误报。

第 3 步:跨语言污点追踪(2 天)

最棘手的是污点从 Node.js 网关流到 Java 后端的场景。让 Agent 用 GitHub MCP 把两端代码都拉进上下文,Sequential Thinking 走多步追踪:

起点:网关 req.query.id → 是否校验 → 透传到后端 RPC → 后端是否拼接到 SQL

这条链跑通一次要十几个 thought 节点,普通 CoT 会在第 5 步断链,Sequential Thinking 的分支与修订让它能跑完整条链。

第 4 步:人审确认与 PR 合并(1 天)

Agent 把 17 个候选发现按优先级排好,安全团队只做最终确认:12 个确认为高危并合并修复 PR,5 个降级为信息项。Memory 沉淀这 12 个漏洞模式,下次同类项目直接命中。

关键 Prompt

你是安全审计 Agent。对给定代码范围执行审计:

1. 先用 sequentialthinking 列出本语言 Top 风险点清单(每个风险一个 thought)
2. 对每个风险点开分支验证:
   - 分支A:输入是否可达(找入口与传递路径)
   - 分支B:是否已有防护(参数化/校验/编码)
3. 仅当"可达且无防护"才标高危,输出修复方案
4. 不可达或有防护的,revisesPreviousThought 降级,不要进高危清单
5. 每个高危项格式:漏洞点 | 触发路径 | PoC思路 | 修复方案 | 风险等级

铁律:宁可漏报不可误报——误报会浪费人审时间,漏报下次扫还会再碰到。

效果数据

指标人工预估Agent 辅助
投入人力4-6 人周2 人 × 7 天
初筛发现数—17 个候选
确认高危数—12 个
误报率—29%(17→12)
修复 PR人工逐个改12 个 PR 全部自动生成

经验总结

  1. 先定清单再扫描:让 Agent 漫扫会出一堆低价值噪音,定好优先级与"必须可达"的硬规则后信噪比立刻上来。
  2. 多步推理必须可回退:安全审计天然多假设并行,Sequential Thinking 的分支+修订是降误报的关键,普通 CoT 不够用。
  3. 跨语言污点要拉全上下文:别让 Agent 只看单语言,污点跨语言时必须把两端代码同时拉进上下文,否则追踪必然断链。
  4. 沉淀漏洞模式:把确认的漏洞模式存进 Memory,下次审计同类项目直接命中,这是 Agent 审计能越用越快的原因。
  5. 人盯决策不盯机械活:Agent 把 17 个候选排好序,人只做 5 个降级判断,把稀缺的安全人力放在最有价值的确认环节。

相关推荐

查看更多 →
案例企业应用

Agent 编码返工率治理实战:spec + 验收测试 + diff 自检三件套,把 AI 代码一次通过率从 38% 拉到 71%

AI 写代码的产能和它的返工量成正比,这是研发团队用AI 编码半年后才真正撞到的墙。我们团队 12 个前端工程师、4 个 AI 编码 Agent Cursor / Cline / Copilot 并行,日均产出 PR 从 11 个涨到 27 个,看起来赢了——但首轮评审通过率只有 38%,意味着三分之二的工作量在被返工吃掉。真正的原因不是模型能力不够,而是任务交给 Agent 的方式错了:需求描述里没有验收标准,Agent 只能猜;Agent 不知道验收标准,就没法自检;不自检就直接提交,返工必然发生。本文记录我们用四个月把一次通过率从 38% 提到 71% 的完整过程。核心是三件套:① 提交前把模糊需求转成可验收的 spec(含验收命令与判定标准);② 在 Agent 里挂可执行的验收测试,让它提交前自己跑一遍;③ 加一道 diff 自检环节专门抓「超出任务范围的改动」。四个阶段的实施顺序和每阶段的踩坑、三条被证明无效的尝试(包括「写更详细的 Prompt」)、以及12 个可复制的 Prompt 模板。附分阶段效果数据表:一次通过率 38%→71%、返工工时占比 44%→19%、交付周期 2.8 天→1.1 天,以及两个必须诚实说明的负面结果。

2026-10-13
#AI实战#AI编码
案例企业应用

DeepSeek V4.1 Flash 多模型路由降本实战:单任务成本从 $1.47 砍到 $0.33,月账单降 77.7%

2026 年 10 月,DeepSeek V4.1 Flash 的价格比 V4 Pro 低约 40%,把「多模型路由」这件事从可选优化变成了必答题。本文记录一家 420 人 SaaS 公司用 5 周把 Agent 平台从「所有调用都打最贵模型」改造成「按任务难度分档路由」的全过程:月支出从 $71,300 降到 $15,900(降 77.7%),单任务成本从 $1.47 降到 $0.33,P95 延迟从 31.2 秒降到 12.6 秒,而任务完成率反而从 93.4% 升到 96.2%。关键结论是——一次 40 次调用的任务里,真正需要最贵档模型的只有 4 次(10%),但这 4 次吃掉了 82% 的钱;剩下 36 次里有 27 次是「格式化、过滤、抽取」这类确定性活,用 Flash 完全够。全文含可直接复制的难度分级 Prompt 模板、TypeScript 路由判定器完整实现(规则前置 + 模型打分 + 三级 fallback + 预算闸门)、五周灰度切流的逐周数据、以及 12 个踩过的坑。

2026-10-08
#AI实战#多模型路由
案例企业应用

把 Agent 的账单砍掉 88.9%:一次复杂任务 40 次模型调用背后的成本治理实战

2026 年 9 月,云栖大会前后有一条被低估的工程数据:一次复杂的 Agent 任务往往涉及十余次到数十次模型调用,而通过模型路由等 Harness 层能力,可以在保留 99.96% 任务质量的同时把成本降低 88.9%。这个数字之所以值得单独写一篇,是因为它戳中了 2026 年所有 Agent 项目的同一个死穴——Demo 阶段每任务几毛钱,上线后每任务几块钱,规模化之后账单涨 10 倍以上,而团队的第一反应「换个便宜模型」几乎总是失败。本文是一家中型 SaaS 公司真实走过的 10 周:从「账单涨了 14 倍」到「单任务成本降到原来的 11.1%,质量回归集通过率 99.96%」。全文包含可复现的五把刀(模型路由 / Prompt Caching / 上下文预算 / 批处理 / 早停去重)各自的 ROI 实测占比、三层指标体系与评测集构建方法、灰度切流与回归监控的完整节奏、每一步的 Prompt 模板,以及 14 个真实踩过的坑。附完整效果数据表与回滚红线定义。

2026-09-23
#AI实战#Agent
案例开发

AI 辅助数据库零停机迁移:从 MySQL 到 PostgreSQL 只用 3 天

公司核心业务从 MySQL 5.7 迁移到 PostgreSQL 16,数据库有 47 张表、230 万行数据、86 个存储过程和 34 个触发器。手动迁移评估 3 周,最终用 Claude Code + PostgreSQL MCP + 自定义 Schema 转换 MCP,3 天完成全量迁移(Schema 转换 + 数据迁移 + 应用层适配 + 回归测试),停机窗口仅 12 分钟。本文复盘工具分工、分步 Prompt 模板、SQL 方言转换踩过的 23 个坑(AUTO_INCREMENT vs SERIAL、datetime 格式、ON DUPLICATE KEY UPDATE、GROUP_CONCAT、utf8mb4 编码等)、以及零停机迁移的灰度切换策略。

2026-09-10
#AI实战#数据库迁移