anthropics/claude-code-security-review
GitHub: anthropics/claude-code-security-review
基于 Claude 大模型的 GitHub Action,为 Pull Request 提供深度语义分析的安全代码审查能力。
Stars: 3485 | Forks: 277
# Claude Code 安全审查器
一个使用 Claude 分析代码变更安全漏洞的 AI 驱动安全审查 GitHub Action。该 Action 使用 Anthropic 的 Claude Code 工具进行深度语义安全分析,为 Pull Request 提供智能的、上下文感知的安全分析。更多详情请参阅我们的博文 [此处](https://www.anthropic.com/news/automate-security-reviews-with-claude-code)。
## 功能特性
- **AI 驱动分析**:使用 Claude 的高级推理能力,通过深度语义理解检测安全漏洞
- **差异感知扫描**:对于 PR,仅分析变更的文件
- **PR 评论**:自动在 PR 上评论安全发现
- **上下文理解**:超越模式匹配,理解代码语义
- **语言无关**:适用于任何编程语言
- **误报过滤**:高级过滤以减少噪音并关注真正的漏洞
## 快速开始
将此添加到您仓库的 `.github/workflows/security.yml` 中:
```
name: Security Review
permissions:
pull-requests: write # Needed for leaving PR comments
contents: read
on:
pull_request:
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
fetch-depth: 2
- uses: anthropics/claude-code-security-review@main
with:
comment-pr: true
claude-api-key: ${{ secrets.CLAUDE_API_KEY }}
```
## 安全注意事项
此 Action 尚未针对 prompt 注入攻击进行加固,仅应用于审查受信任的 PR。我们建议[配置您的仓库](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#controlling-changes-from-forks-to-workflows-in-public-repositories)使用“Require approval for all external contributors(需要所有外部贡献者批准)”选项,以确保工作流仅在维护者审查 PR 后运行。
## 配置选项
### Action 输入
| 输入 | 描述 | 默认值 | 必填 |
|-------|-------------|---------|----------|
| `claude-api-key` | 用于安全分析的 Anthropic Claude API key。
*注意*:此 API key 需要同时启用 Claude API 和 Claude Code 使用。 | None | 是 | | `comment-pr` | 是否在 PR 上评论发现的问题 | `true` | 否 | | `upload-results` | 是否将结果作为 artifacts 上传 | `true` | 否 | | `exclude-directories` | 要从扫描中排除的目录列表(以逗号分隔) | None | 否 | | `claude-model` | 要使用的 Claude [模型名称](https://docs.anthropic.com/en/docs/about-claude/models/overview#model-names)。默认为 Opus 4.1。 | `claude-opus-4-1-20250805` | 否 | | `claudecode-timeout` | ClaudeCode 分析的超时时间(分钟) | `20` | 否 | | `run-every-commit` | 在每次提交时运行 ClaudeCode(跳过缓存检查)。警告:对于包含许多提交的 PR,可能会增加误报。 | `false` | 否 | | `false-positive-filtering-instructions` | 自定义误报过滤说明文本文件的路径 | None | 否 | | `custom-security-scan-instructions` | 要附加到审计提示词的自定义安全扫描说明文本文件的路径 | None | 否 | ### Action 输出 | 输出 | 描述 | |--------|-------------| | `findings-count` | 安全发现的总数 | | `results-file` | 结果 JSON 文件的路径 | ## 工作原理 ### 架构 ``` claudecode/ ├── github_action_audit.py # Main audit script for GitHub Actions ├── prompts.py # Security audit prompt templates ├── findings_filter.py # False positive filtering logic ├── claude_api_client.py # Claude API client for false positive filtering ├── json_parser.py # Robust JSON parsing utilities ├── requirements.txt # Python dependencies ├── test_*.py # Test suites └── evals/ # Eval tooling to test CC on arbitrary PRs ``` ### 工作流程 1. **PR 分析**:当打开 pull request 时,Claude 分析 diff 以了解变更内容 2. **上下文审查**:Claude 在上下文中检查代码变更,理解其目的和潜在的安全影响 3. **发现生成**:识别安全问题,并提供详细的解释、严重程度评级和修复指导 4. **误报过滤**:高级过滤移除低影响或易产生误报的发现,以减少噪音 5. **PR 评论**:发现结果作为审查评论发布在特定的代码行上 ## 安全分析能力 ### 检测的漏洞类型 - **注入攻击**:SQL injection、command injection、LDAP injection、XPath injection、NoSQL injection、XXE - **身份验证与授权**:认证失效、权限提升、不安全的直接对象引用、绕过逻辑、会话缺陷 - **数据泄露**:硬编码 secrets、敏感数据日志记录、信息泄露、PII 处理违规 - **加密问题**:弱算法、密钥管理不当、不安全的随机数生成 - **输入验证**:缺少验证、清理不当、缓冲区溢出 - **业务逻辑缺陷**:竞态条件、time-of-check-time-of-use (TOCTOU) 问题 - **配置安全**:不安全的默认值、缺少安全标头、宽松的 CORS - **供应链**:易受攻击的依赖项、typosquatting 风险 - **代码执行**:通过反序列化进行的 RCE、pickle injection、eval injection - **跨站脚本攻击 (XSS)**:反射型、存储型和基于 DOM 的 XSS ### 误报过滤 该工具自动排除各种低影响和易产生误报的发现,以专注于高影响漏洞: - 拒绝服务漏洞 - 速率限制问题 - 内存/CPU 耗尽问题 - 没有证实影响的通用输入验证 - 开放重定向漏洞 误报过滤也可以根据给定项目的安全目标进行调整。 ### 相比传统 SAST 的优势 - **上下文理解**:理解代码语义和意图,而不仅仅是模式 - **更低的误报率**:AI 驱动的分析通过理解代码何时真正易受攻击来减少噪音 - **详细解释**:提供清晰的解释,说明为什么某物是漏洞以及如何修复它 - **自适应学习**:可以使用组织特定的安全要求进行定制 ## 安装与设置 ### GitHub Actions 请遵循上面的快速开始指南。该 action 会自动处理所有依赖项。 ### 本地开发 要在本地针对特定 PR 运行安全扫描器,请参阅 [评估框架文档](claudecode/evals/README.md)。 ## Claude Code 集成:/security-review 命令 默认情况下,Claude Code 附带一个 `/security-review` [斜杠命令](https://docs.anthropic.com/en/docs/claude-code/slash-commands),它提供与 GitHub Action 工作流相同的安全分析功能,但直接集成在您的 Claude Code 开发环境中。要使用此功能,只需运行 `/security-review` 即可对所有待处理更改进行全面的安全审查。 ### 自定义命令 默认的 `/security-review` 命令旨在适用于大多数情况,但也可以根据您的特定安全需求进行自定义。操作如下: 1. 将此仓库中的 [`security-review.md`](https://github.com/anthropics/claude-code-security-review/blob/main/.claude/commands/security-review.md?plain=1) 文件复制到您项目的 `.claude/commands/` 文件夹中。 2. 编辑 `security-review.md` 以自定义安全分析。例如,您可以在误报过滤说明中添加特定于组织的额外指导。 ## 自定义扫描配置 也可以配置自定义扫描和误报过滤说明,请参阅 [`docs/`](docs/) 文件夹了解更多详情。 ## 测试 运行测试套件以验证功能: ``` cd claude-code-security-review # 运行所有测试 pytest claudecode -v ``` ## 支持 如有问题或疑问: - 在此仓库中提交 issue - 查看 [GitHub Actions 日志](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history) 以获取调试信息 ## 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件。
*注意*:此 API key 需要同时启用 Claude API 和 Claude Code 使用。 | None | 是 | | `comment-pr` | 是否在 PR 上评论发现的问题 | `true` | 否 | | `upload-results` | 是否将结果作为 artifacts 上传 | `true` | 否 | | `exclude-directories` | 要从扫描中排除的目录列表(以逗号分隔) | None | 否 | | `claude-model` | 要使用的 Claude [模型名称](https://docs.anthropic.com/en/docs/about-claude/models/overview#model-names)。默认为 Opus 4.1。 | `claude-opus-4-1-20250805` | 否 | | `claudecode-timeout` | ClaudeCode 分析的超时时间(分钟) | `20` | 否 | | `run-every-commit` | 在每次提交时运行 ClaudeCode(跳过缓存检查)。警告:对于包含许多提交的 PR,可能会增加误报。 | `false` | 否 | | `false-positive-filtering-instructions` | 自定义误报过滤说明文本文件的路径 | None | 否 | | `custom-security-scan-instructions` | 要附加到审计提示词的自定义安全扫描说明文本文件的路径 | None | 否 | ### Action 输出 | 输出 | 描述 | |--------|-------------| | `findings-count` | 安全发现的总数 | | `results-file` | 结果 JSON 文件的路径 | ## 工作原理 ### 架构 ``` claudecode/ ├── github_action_audit.py # Main audit script for GitHub Actions ├── prompts.py # Security audit prompt templates ├── findings_filter.py # False positive filtering logic ├── claude_api_client.py # Claude API client for false positive filtering ├── json_parser.py # Robust JSON parsing utilities ├── requirements.txt # Python dependencies ├── test_*.py # Test suites └── evals/ # Eval tooling to test CC on arbitrary PRs ``` ### 工作流程 1. **PR 分析**:当打开 pull request 时,Claude 分析 diff 以了解变更内容 2. **上下文审查**:Claude 在上下文中检查代码变更,理解其目的和潜在的安全影响 3. **发现生成**:识别安全问题,并提供详细的解释、严重程度评级和修复指导 4. **误报过滤**:高级过滤移除低影响或易产生误报的发现,以减少噪音 5. **PR 评论**:发现结果作为审查评论发布在特定的代码行上 ## 安全分析能力 ### 检测的漏洞类型 - **注入攻击**:SQL injection、command injection、LDAP injection、XPath injection、NoSQL injection、XXE - **身份验证与授权**:认证失效、权限提升、不安全的直接对象引用、绕过逻辑、会话缺陷 - **数据泄露**:硬编码 secrets、敏感数据日志记录、信息泄露、PII 处理违规 - **加密问题**:弱算法、密钥管理不当、不安全的随机数生成 - **输入验证**:缺少验证、清理不当、缓冲区溢出 - **业务逻辑缺陷**:竞态条件、time-of-check-time-of-use (TOCTOU) 问题 - **配置安全**:不安全的默认值、缺少安全标头、宽松的 CORS - **供应链**:易受攻击的依赖项、typosquatting 风险 - **代码执行**:通过反序列化进行的 RCE、pickle injection、eval injection - **跨站脚本攻击 (XSS)**:反射型、存储型和基于 DOM 的 XSS ### 误报过滤 该工具自动排除各种低影响和易产生误报的发现,以专注于高影响漏洞: - 拒绝服务漏洞 - 速率限制问题 - 内存/CPU 耗尽问题 - 没有证实影响的通用输入验证 - 开放重定向漏洞 误报过滤也可以根据给定项目的安全目标进行调整。 ### 相比传统 SAST 的优势 - **上下文理解**:理解代码语义和意图,而不仅仅是模式 - **更低的误报率**:AI 驱动的分析通过理解代码何时真正易受攻击来减少噪音 - **详细解释**:提供清晰的解释,说明为什么某物是漏洞以及如何修复它 - **自适应学习**:可以使用组织特定的安全要求进行定制 ## 安装与设置 ### GitHub Actions 请遵循上面的快速开始指南。该 action 会自动处理所有依赖项。 ### 本地开发 要在本地针对特定 PR 运行安全扫描器,请参阅 [评估框架文档](claudecode/evals/README.md)。 ## Claude Code 集成:/security-review 命令 默认情况下,Claude Code 附带一个 `/security-review` [斜杠命令](https://docs.anthropic.com/en/docs/claude-code/slash-commands),它提供与 GitHub Action 工作流相同的安全分析功能,但直接集成在您的 Claude Code 开发环境中。要使用此功能,只需运行 `/security-review` 即可对所有待处理更改进行全面的安全审查。 ### 自定义命令 默认的 `/security-review` 命令旨在适用于大多数情况,但也可以根据您的特定安全需求进行自定义。操作如下: 1. 将此仓库中的 [`security-review.md`](https://github.com/anthropics/claude-code-security-review/blob/main/.claude/commands/security-review.md?plain=1) 文件复制到您项目的 `.claude/commands/` 文件夹中。 2. 编辑 `security-review.md` 以自定义安全分析。例如,您可以在误报过滤说明中添加特定于组织的额外指导。 ## 自定义扫描配置 也可以配置自定义扫描和误报过滤说明,请参阅 [`docs/`](docs/) 文件夹了解更多详情。 ## 测试 运行测试套件以验证功能: ``` cd claude-code-security-review # 运行所有测试 pytest claudecode -v ``` ## 支持 如有问题或疑问: - 在此仓库中提交 issue - 查看 [GitHub Actions 日志](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history) 以获取调试信息 ## 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件。
标签:Anthropic, API 安全, CI/CD 安全, CISA项目, CIS基准, Claude, CVE检测, DevSecOps, DLL 劫持, DNS 反向解析, GitHub Action, Pull Request, 上游代理, 人工智能, 代码审查, 大语言模型, 威胁情报, 开发者工具, 数据投毒防御, 用户模式Hook绕过, 结构化查询, 自动化安全, 软件开发, 逆向工具, 错误基检测, 防御框架, 静态代码分析