Claude Code 推出安全审计插件,边写代码边抓漏洞
公众号名称:AGI Hunt
作者名称:尹John
发布时间:2026-05-27 23:56
Claude Code 上线了一个官方安全插件 security-guidance,能在你写代码的过程中自动识别安全漏洞,并当场修复。

开发者的安全守卫
装好之后不需要手动触发,它会在后台默默审查每一次代码变更,发现问题直接告诉 Claude,让 Claude 自己改。
01
先看效果
演示案例中给 Claude Code 下发了一个任务:给一个社交媒体网站写一个 Node.js 反向代理,要求拦截超过 150 个字符的消息。

用户输入任务
Claude 很快写出了一个零依赖的 proxy.js,功能很快就搞定了:监听 8081 端口,拦截 /api/send-message 的 POST 请求,解析 JSON body,检查 message 字段长度,超过 150 字符就返回 413。

Claude 生成代码
看起来……没什么问题,一切正常且熟悉,对吧?
但这时,屏幕上突然弹出了一行黄色高亮的提示:
“ 后台安全审查发现问题:proxy.js 中存在 JSON 解析器不一致导致的字段偷渡漏洞(JSON Interoperability / Parser-Disagreement Field Smuggling)

安全审计告警
插件在后台发现了一个跨语言解析器不一致的漏洞。
Claude 随即解释了这个漏洞的原理,并且自动开始修复。

自动修复漏洞
从发现到修复,整个过程大概 40 秒。开发者几乎什么都不用做,连漏洞长什么样,都不需要知道……
02
JSON 字段偷渡
而说起这个漏洞,其实还有些巧妙。
Node.js 的反向代理用 JSON.parse 解析请求体,检查 message 字段的长度。但后端是个 Go 服务,Go 的 encoding/json 在解析 struct 字段时是大小写不敏感的。
于是,攻击者就可以构造这样一个请求:
{"message": "short", "Message": "这里放超过200个字符的恶意内容..."}
Node.js 只看到小写的 message,内容是 “short”,长度检查通过了。

字段偷渡
就像你出国旅游,结果对面海关只检查了你的手提行李箱,然后放行了。
而 Go 呢?它把 message 和 Message 视为同一个字段,取最后一个值。于是那段超长内容就这么绕过了代理的限制,直接到达了后端。
用 MESSAGE、mEsSaGe 这些变体,也同样能绕过。
一个字段名的大小写差异,就能让整个长度限制形同虚设。
这样的漏洞,用传统的静态分析工具几乎很难抓到。因为它的根源在于两种语言的 JSON 解析器行为不一致,得理解整个系统的上下文才能发现。
03
Claude 上手修复
Claude 的修复方案,分了三步:

修复方案
Allowlist + 重新序列化。
不再直接转发原始 JSON,而是从解析后的对象中只提取白名单字段(from、to、message、bump、image、emoji),用 JSON.stringify 重新构建,再转发给后端。这样就算攻击者塞了大小写变体字段,重新序列化后也只会保留规范化的版本。
大小写变体拒绝。
任何 key 如果能映射到已知字段但本身不是小写形式(比如 Message、MESSAGE),直接返回 400。在重新序列化之外多加了一层防御。
类型守卫。
如果请求体不是 JSON 对象(比如数组或标量),直接原样转发给后端,让后端自己的校验来处理。
04
三层防线
security-guidance 插件的设计分了三层,每层解决不同粒度的问题。

三层安全防线
第一层是模式匹配。
基于正则表达式,覆盖了大约 25 种常见的危险模式。比如 yaml.load、pickle.load、eval()、innerHTML、硬编码密钥之类的。这层应该是速度最快的,在 Claude 每次写文件或编辑文件时就会触发,看到可疑模式立刻弹警告。
第二层是 LLM Diff 审查。
Claude 完成一轮操作后,插件会把代码变更的 diff 发给一个独立的 LLM 调用(默认是 Opus 4.7),让它从安全角度审查。如果发现高危问题,会把结果反馈给 Claude,Claude 在你看到回复之前就把问题修了。
演示视频里那个 JSON 字段偷渡的漏洞,就是第二层发现的。
第三层是 Agent 式提交审查。
在 git commit 的时候触发,用 SDK 驱动的审查 Agent 去读相关文件、grep 上下文、追踪数据流,抓的是跨文件的安全漏洞,比如 IDOR、认证绕过、跨文件的 SSRF。
三层叠加下来,覆盖了注入攻击、XSS、SSRF、硬编码密钥、IDOR、认证绕过、不安全反序列化、路径穿越这些主要漏洞类型。
05
自定义策略
此外,插件还支持组织级别的安全策略定制。

自定义安全策略
在项目的 .claude/ 目录下放一个 claude-security-guidance.md 文件,就能定义团队专属的安全规则。比如:
# Acme 安全规则
- 所有针对 customers 或 orders 表的 SELECT 必须走 db.replica,
不允许走 db.primary
- 后台任务不能使用用户上下文的 auth token,
要用 jobs.get_service_account() 获取服务账号凭证
- 调用 requests.get(url) 时如果 url 来自用户输入,
必须使用 acme.net.safe_request 的 SSRF 白名单封装
这些规则会被注入到每次安全审查的 prompt 中,让审查器按照你团队的具体规范来检查代码。
策略支持三个层级:用户全局(~/.claude/)、项目级(提交到仓库)、本地覆盖(.gitignore 掉),按顺序来加载和合并。
06
如何安装
在 Claude Code 里输入 /plugins,搜索 security-guidance 安装就行了。

插件安装
也可以直接用命令:
/plugin install security-guidance@claude-plugins-official
需要 Claude Code v2.1.144 以上版本。装完就默认启用了,不需要额外配置。
如果想调整审查用的模型,或者在 Bedrock/Vertex 环境下使用,可以通过环境变量 SECURITY_REVIEW_MODEL 来指定。
目前,已经有超过 15 万用户安装了这个插件。
07
只是安全辅助
AI 编程的安全问题,其实一直是个隐忧。毕竟代码生成的速度越快,引入漏洞的速度也就越快。
Anthropic 这个插件的思路是:既然 AI 写的代码可能有漏洞,那就……再用一个 AI 来审查。而且审查发生在编码过程中,不是说写完了再跑一遍扫描,它是边写边查,发现了当场改。

用AI审查AI
需要注意的是,官方也有特意给出了标注:
这是个辅助工具,不能替代人工代码审查、SAST/DAST 扫描和渗透测试。会有漏报,也会有误报。
不过,作为开发流程中的一道额外防线,成本还比事后补救要低不少了。
最后,我只想说,还是太有法子让人花钱烧你家 token 了……
◇ ◆ ◇
相关链接:
https://github.com/anthropics/claude-code/tree/main/plugins/security-guidance
https://x.com/ClaudeDevs/status/2059385239781384341

原创 尹John AGI Hunt
内容效果不满意?点此反馈