Skip to content
FunCoding

Search

Search docs, agents, posts, Skills and MCP servers

Claude Security 插件:扫描代码漏洞

安装 Claude Security 插件,在 Claude Code 会话里用多智能体扫描代码库漏洞,把发现变成你审阅后应用的补丁:前提、安装、扫描与修复流程、结果文件、与其他安全工具的关系。

Claude Security 插件在 Claude Code 会话里对你的代码库运行多智能体漏洞扫描:一队 Claude 智能体映射你的架构、建立威胁模型、搜寻漏洞,并在写报告前独立审查每条发现。可以扫描整个仓库,或只扫一组改动(分支的 diff、PR 的 diff、单个提交)。插件在你的会话里本地运行,使用你在 Claude Code 里有权访问的模型,每次扫描都计入你的用量。想要持续监控你仓库的托管服务,或想在 Claude Mythos 上运行扫描,见适用于 Enterprise 套餐的 Claude Security 产品;插件能触及托管产品够不到的代码,比如托管在 GitLab 上的仓库。它也不同于 Claude Code 里已有的审查工具:安全指南插件在 Claude 写代码时审查,/security-review 对你的分支做一次单遍审查,代码评审审查 PR。

前提

  • 付费套餐、Anthropic API 访问或第三方提供商,用于扫描编排智能体的动态工作流(Pro 上从 /config 的 Dynamic workflows 行开启)
  • PATH 上有 Python 3.9 或更高版本,命令名为 python3(用 python3 --version 检查);插件的工具只用 Python 标准库,所以无需安装任何东西
  • Linux、macOS 或 Windows
  • Git:用于改动扫描和把发现变成补丁,这些任务不支持其他版本控制系统;完整扫描在任何目录都行,无论有无版本控制

模型与提供商

扫描在你的 Claude Code 会话里运行,插件本身不发起任何模型调用,所以没有单独的 API Key 或提供商设置。搜寻漏洞、验证发现、编写和审查补丁的智能体都使用你会话的模型,要换模型在开始扫描前运行 /model;少数辅助步骤(如映射仓库)使用 sonnet 别名。扫描可在付费套餐、Anthropic API 访问下运行,也可在 Amazon Bedrock、Google Cloud Agent Platform 或 Microsoft Foundry 等第三方提供商上运行。在第三方提供商上,sonnet 别名可能解析到与 Anthropic API 上不同的版本;如果你的账号无法使用该版本,请固定你的模型版本(包括 ANTHROPIC_DEFAULT_SONNET_MODEL)。自动模型回退会重跑被模型安全措施标记的请求;在 Bedrock、Agent Platform 和 Foundry 上,请求可能以拒绝消息结束,取决于你的部署如何设置。

安装

在 Claude Code 会话里,从官方 Anthropic 插件市场安装:

/plugin install claude-security@claude-plugins-official

命令会打开插件详情,在那里选择安装范围来开始安装。安装失败时:报告 Marketplace "claude-plugins-official" not found,就用 /plugin marketplace add anthropics/claude-plugins-official 添加市场再重试;报告在市场里找不到插件,检查插件名有无拼写错误。如果安装摘要报告 Run /reload-plugins to activate.,见「不重启应用插件变更」来在当前会话里激活。卸载:从 /plugin 菜单卸载,或在终端运行 claude plugin uninstall claude-security。

扫描并修复

插件添加一个命令 /claude-security,打开三个任务的菜单:扫描代码库、扫描一组改动、建议补丁。顺利路径是先全量扫描,再把发现变成补丁:

  1. 运行 /claude-security,选 Scan codebase
  2. 选择扫描什么:插件先读你的仓库,再提供整个仓库或某个聚焦区域,每个选项都说明文件数和相对成本;选整个仓库,或回答「I don't know」让插件按仓库大小选合理默认
  3. 确认运行:扫描可能耗时较长、可能用掉大量 token,且完成期间需要保持 Claude Code 打开;确认之前什么都不会运行
  4. 阅读报告:扫描运行时逐阶段报告,细节可在 /workflows 下看到;结果写入仓库里带时间戳的目录
  5. 把发现变成补丁:再次运行 /claude-security 选 Suggest patches,选择要处理哪些发现;审阅过的补丁写入报告的 patches/ 文件夹
  6. 应用你接受的补丁:从 shell 用 git apply 逐个应用,各放在自己的 PR 里;补丁从不会被自动应用

不必从菜单开始:可以作为命令参数直接要求某项任务(如 /claude-security scan my branch),或用自然语言(如「scan commit abc1234」)。插件在自动模式下效果最好,扫描的智能体每一步无需权限提示就能推进。

只扫描你的改动

当你的分支有基线没有的提交时,/claude-security 菜单会提供只扫描该 diff 的选项,让你在合并前检查分支;也可以扫描你打开的某个 PR,或要求扫描单个提交。只扫描已提交的改动:先提交或 stash 进行中的编辑,或运行读取工作树的全量扫描。改动扫描需要 git 仓库,未受版本控制的目录仍可做全量扫描。查找你打开的 PR 是唯一会触网的步骤,只有当会话已有运行 GitHub CLI 的权限且 gh 已登录时才提供。

大型仓库

在大型仓库上一次扫一个区域而不是整棵树:选插件提供的聚焦范围之一(如 API 层或认证代码),运行会按你的选择调整规模。报告的覆盖一节说明检查了什么、没检查什么;随时可对另一个区域再扫一次。

阅读扫描结果

每次扫描把结果写入你仓库里带时间戳的 CLAUDE-SECURITY-<timestamp>/ 目录:

  • CLAUDE-SECURITY-RESULTS.md:报告,每条发现有 ID(如 F1)及影响、利用场景、严重性、置信度和建议
  • CLAUDE-SECURITY-RESULTS.jsonl:同样的发现的机器可读形式,每行一个 JSON 对象
  • CLAUDE-SECURITY-RESULTS.sarif:同样的发现,作为 SARIF 2.1.0 日志,供 GitHub code scanning 和其他读取该标准的工具使用;扫描按 CWE 弱点类别归类发现
  • CLAUDE-SECURITY-REVISION-<commit>.json:修订戳,记录扫描了哪个提交、什么力度、扫描的树里是否包含未提交的改动,以及运行验证得多彻底,使报告始终对应它所描述的代码;在版本控制之外的扫描用 UNVERSIONED 代替提交

这个目录是扫描对你检出所做的唯一改动,它带有自己的 .gitignore,所以误用的 git add 不会把报告扫进提交。要在历史里保留报告作为审计线索,删掉那个 .gitignore 并像其他目录一样提交。发现只有在独立验证智能体分析之后才出现在报告里,使报告简短而值得读。扫描是非确定性的:对同一份代码的两次扫描可能出现不同的发现;定期运行扫描,并用修订戳把每份报告对应到它覆盖的确切代码和设置。

修复发现

从 /claude-security 菜单选 Suggest patches 开始修复流程,或用自然语言(如「fix finding F3」),然后选要处理报告里的哪些发现。补丁基于已提交的代码构建,且报告必须仍描述你现有的代码:代码已变化的发现会被跳过并附说明,插件会提供重新扫描而不是打补丁。交付前,每个补丁由与编写者独立的另一个智能体审查:在代码有测试时对改动运行项目的测试,并独立阅读 diff 看是否引入新问题。只有当审查能担保改动解决了那一个发现、没有引入新的漏洞、其他行为不变时才写出补丁。

补丁写入报告的 patches/ 文件夹,每个发现一个 F<n>.patch 并附一份说明改动的笔记。从 shell 应用,或让 Claude 应用并开 PR:

git apply CLAUDE-SECURITY-<timestamp>/patches/F1.patch

补丁代码没有测试时,补丁的笔记会说明,这样你知道它的审查是在没有测试通过的情况下进行的。每个补丁各放一个 PR,以便独立评审和测试。

与其他安全工具的关系

Claude Security 插件是纵深防御栈里按需的深度扫描层:

阶段工具覆盖什么
会话中安全指南插件Claude 所写代码里的常见漏洞,在同一会话里修复
按需,单遍/security-review对当前分支的一次性安全审查
按需,深度扫描Claude Security 插件对仓库或 diff 的多智能体扫描,带独立审查的发现和补丁
PR 时代码评审(Team 和 Enterprise)有完整代码库上下文的多智能体正确性和安全评审
托管Claude Security(Enterprise 套餐)监控已连接仓库的托管扫描
CI 中你现有的静态分析和依赖扫描器特定语言规则、供应链检查和策略强制

插件不取代你现有的源码安全工具,要与静态分析、依赖扫描和代码评审一起运行:它像人类安全研究员那样推理你的代码,补充那些工具提供的确定性检查。

排障

  • /claude-security 菜单带 Python 警告打开:插件需要 PATH 上有 3.9 或更高的 python3。找不到 python3 时菜单警告在安装前 Claude Security 无法工作;PATH 上第一个 python3 较旧时警告会指出找到的版本。安装 Python 3,或把较新的 python3 放到 PATH 前面,然后开始新会话
  • 在 Fable 模型上扫描时可能看到「safeguards flagged this message」通知:消息会点名你运行的模型。Fable 的网络安全分类器标记某些请求,Claude Code 通过自动模型回退在 Opus 模型上重跑被标记的请求。这是预期的,请求重跑时扫描仍应成功完成