用途
Claude Code Security Review 是一个 GitHub Action,使用 Anthropic 的 Claude AI 对拉取请求执行智能、上下文感知的安全分析。与传统依赖模式匹配的 SAST 工具不同,它理解代码语义,以检测 SQL 注入、XSS、认证缺陷、加密问题和业务逻辑漏洞等,同时尽量减少误报。
主要能力
该 Action 可检测的漏洞类别包括:
- 注入攻击:SQL、命令、LDAP、XPath、NoSQL、XXE
- 认证/授权问题:认证失效、权限提升、IDOR、会话缺陷
- 数据暴露:硬编码密钥、敏感日志、PII 违规
- 加密问题:弱算法、密钥管理不当、不安全随机数生成
- 输入验证:缺少验证、消毒不当、缓冲区溢出
- 业务逻辑:竞态条件、TOCTOU 问题
- XSS:反射型、存储型、DOM 型
- 配置:不安全默认值、缺失响应头、宽松 CORS
- 供应链:存在漏洞的依赖、域名仿冒
使用方式
在 .github/workflows/security.yml 中创建工作流,引用 anthropics/claude-code-security-review@main,传入 claude-api-key 等参数。需要 pull-requests: write 与 contents: read 权限。API 密钥需从 Anthropic Console 获取,并同时启用 Claude API 和 Claude Code 使用权限,添加到仓库 Secrets(如 CLAUDE_API_KEY)。对公开仓库,可在仓库设置中要求外部协作者审批,以防止来自不可信 PR 的提示注入攻击。
输入参数包括:claude-api-key(必填)、comment-pr(默认 true)、upload-results(默认 true)、exclude-directories、claude-model(默认 claude-opus-4-1-20250805)、claudecode-timeout(默认 20 分钟)、run-every-commit(默认 false)、false-positive-filtering-instructions、custom-security-scan-instructions。输出参数包括 findings-count 与 results-file,可在后续步骤中引用。
支持自定义规则文件(如 .github/security/custom-rules.txt)与误报过滤文件(如 .github/security/fp-filter.txt)。还支持条件执行(例如发现项大于 0 时失败或通知安全团队)、多环境分析(按目标分支区分规则)以及定时安全审计。
Claude Code 内置 /security-review 斜杠命令,可在本地执行与 GitHub Action 相同的分析;也可将命令模板复制到 .claude/commands/security-review.md 并进行自定义。本地开发与测试可克隆仓库、安装 claudecode/requirements.txt 依赖、设置 ANTHROPIC_API_KEY 和 GITHUB_TOKEN,通过 python claudecode/evals/run_eval.py --repo owner/repo --pr-number 123 --output results.json 运行,并用 pytest claudecode -v 执行测试。
适用场景
- 在拉取请求中自动进行安全审查并发表评论
- 按分支或环境应用不同的安全规则
- 定时执行安全审计并创建 issue
- 在本地使用
/security-review命令进行交互式审查
限制
需要 Anthropic API 密钥并同时启用 Claude API 与 Claude Code 权限;需要为工作流配置正确的权限。高误报率时可通过自定义过滤、排除测试/示例目录或调整模型与超时来缓解。大型 PR 可能超时,可增大 claudecode-timeout。多提交 PR 可能存在缓存问题,可设置 run-every-commit: true,但可能增加误报。公共仓库需注意提示注入风险并配置外部协作者审批。