ali-zohrevand/claude-sentinel

GitHub: ali-zohrevand/claude-sentinel

面向 Claude Code 的综合 AI 安全工具包,通过多角色子代理实现从静态代码审查到动态 DAST 的全流程安全自动化。

Stars: 0 | Forks: 0

# sentinel — 专为 Claude Code 打造的综合 AI 安全工具包 `sentinel` 是一款安全审查插件:基于最强模型(opus),提供覆盖 **8 大范围的 6 类专家角色**。它能进行静态代码审查,以 STRIDE 架构对威胁进行建模,并利用 **AI 驱动、基于浏览器的 DAST**(Acunetix 风格的全站爬取,通过 Playwright MCP 实现)对运行中的应用进行动态测试 —— 所有操作均置于 **严格的授权控制** 之下。一次安装即可服务于所有项目,它能与你现有的工具无缝组合,而不是重复造轮子。 ## 目录 - [安装](#install) - [命令](#commands) - [示例](#examples) - [角色](#the-personas) - [覆盖范围](#coverage) - [扫描器](#scanners) — 需要安装的内容 - [授权控制](#the-authorization-gate) - [全站 DAST](#whole-site-dast-sentinelsite) - [STRIDE 威胁建模](#stride-threat-model-sentinelstride) - [设计原则](#principles) - [协同组合](#composes-with) - [目录结构](#layout) - [更新与开发](#updating--developing) - [故障排除](#troubleshooting) - [许可证](#license) ## 安装 ``` /plugin marketplace add ali-zohrevand/claude-sentinel /plugin install sentinel@claude-sentinel ``` 随后**重新加载 Claude Code** 以加载命令/代理(命令面板 → "Developer: Reload Window",或重新启动 CLI)。 本地开发: ``` /plugin marketplace add ~/projects/claude-sentinel /plugin install sentinel@claude-sentinel # 或一次性执行: claude --plugin-dir ~/projects/claude-sentinel ``` 请同时安装扫描器 CLI(参见 [扫描器](#scanners))以确保扫描完整运行 —— 即使没有它们 sentinel 也能正常工作,并会针对每个缺失的工具提供其安装命令。 ## 命令 | 命令 | 范围 | 网络 | |---|---|---| | `/sentinel:diff [base]` | 未提交 + 未推送的更改(推送前审查) | 否 | | `/sentinel:project [subdir]` | 整个代码库:所有静态角色 + 完整扫描器套件 | 否 | | `/sentinel:stride [subsystem]` | STRIDE 架构威胁建模(DFD + 信任边界) | 否 | | `/sentinel:url ` | 在线 URL — AI 浏览器 DAST + CLI DAST | **受控** | | `/sentinel:site ` | **全站** — 深度爬取 + 主动测试每一个页面(Acunetix 风格) | **受控** | | `/sentinel:api ` | 单个 API:源码审查 + 可选的实时探测 | 若实时则受控 | | `/sentinel:apis ` | 所有 API:从源码枚举 + 可选的实时爬取 | 若实时则受控 | | `/sentinel:audit ` | 自然语言路由 → 自动选择合适的范围 | 视情况而定 | 为任何命令添加 `--json` 以获取机器可读的输出(CI / 任务工单系统)。 ## 示例 ``` /sentinel:diff # review what you're about to push /sentinel:project # full static audit of the repo /sentinel:stride # threat-model the architecture /sentinel:audit check my latest changes # NL router → diff /sentinel:url http://localhost:8000 # single-target browser DAST (gated) /sentinel:site http://localhost:8000 --max-pages 100 # whole-site DAST (gated) /sentinel:api api/v1/cartoons.php # one endpoint, source + optional probe /sentinel:apis openapi.yaml # every endpoint, OWASP API Top 10 ``` ## 角色 六个子代理(位于 `agents/` 目录下),全部使用 `model: opus`,且均为**只读**(它们仅进行报告,从不进行编辑;绝不打印机密值)。只有实时探测角色拥有网络/浏览器访问权限。 | 代理 | 工具 | 职责 | |---|---|---| | `security-advisor` | Read, Grep, Glob, Bash, WebFetch, Skill | 分诊大脑:确定范围,检测技术栈,将所有发现**合并 + 去重**为一份按严重程度排序的报告 | | `whitebox-checker` | Read, Grep, Glob, Bash, Skill | SAST + 手动数据流分析:注入、RCE、IDOR、auth/JWT、加密、机密信息、依赖项 CVE、HTTP 头部、AI 提示词注入。无网络访问 | | `blackbox-dast` | 继承除 Edit/Write 外的所有权限(包含 Playwright MCP) | 基于浏览器的 AI DAST + nuclei/ZAP/sqlmap/nikto。为 `url` 和 `site` 提供支持。受授权控制 | | `ceh-reviewer` | Read, Grep, Glob, Bash, WebFetch, Skill | EC-Council 5 阶段方法论 + 攻击树 kill chain | | `owasp-reviewer` | Read, Grep, Glob, Bash, Skill | OWASP Top 10 + API Top 10 + LLM Top 10 标签标注 + 合规性覆盖表 | | `threat-modeler` | Read, Grep, Glob, Bash, WebFetch, Skill | STRIDE:数据流图 + 信任边界 + 威胁表。属于设计层面,无网络访问 | 模型使用 `opus` 别名(绝不使用固定 ID)。如有需要,可通过 `CLAUDE_CODE_SUBAGENT_MODEL=opus` 覆盖所有子代理配置。 ## 覆盖范围 OWASP Top 10 (2021/2025)、OWASP API Top 10 (2023)、OWASP LLM/GenAI Top 10 (2025);完整的 CEH 方法论;**STRIDE** 架构威胁建模;注入 / RCE / 命令执行 / SSRF / 反序列化;访问控制失效与 IDOR/BOLA;身份验证、会话与 JWT;加密失败;安全配置错误与 HTTP 头部;机密信息(代码 + Git 历史记录);依赖项 CVE + SBOM;以及 AI/LLM 提示词注入与过度代理行为。 ## 扫描器 安装后运行;否则将附带安装命令予以报告 —— **绝不静默跳过**。macOS 安装命令: ``` # SAST pipx install semgrep go install github.com/securego/gosec/v2/cmd/gosec@latest pipx install bandit # Secrets brew install gitleaks trufflehog # Dependencies / SBOM brew install osv-scanner syft grype go install golang.org/x/vuln/cmd/govulncheck@latest pipx install pip-audit # DAST (live) brew install nuclei nikto testssl pipx install sqlmap # IaC / containers brew install trivy tfsec hadolint pipx install checkov ``` `npm audit` / `composer audit` 随 npm / composer 附带提供。Playwright MCP(浏览器引擎)是一个独立的 Claude Code 插件。OWASP ZAP 和 CodeQL 为可选的、占用资源较大的安装项。 ## 授权控制 在对任何在线目标进行首次主动探测之前,sentinel 会输出: ``` ⛔ AUTHORIZATION REQUIRED About to send ACTIVE security probes to: Type exactly: I confirm I have authorization to test (or Ctrl-C to abort) ``` 没有任何参数可以绕过它。在确认之前,仅执行被动检查(HTTP 头部、TLS、公开内容、静态规范审查)。经过授权的探测将严格锁定在目标主机范围内,使用非破坏性的 payload,并进行速率限制。您需对每次运行的法律和道德责任负责。请仅针对您自己的主机(例如 localhost 开发服务器)或您获得书面测试授权的目标运行在线扫描。 ## 全站 DAST (`/sentinel:site`) Acunetix 结合 AI 的命令。通过授权控制后:对整个网站进行深度爬取(以 sitemap/robots 为种子 → 在同域链接上进行 BFS(广度优先搜索)直至达到 `--max-pages`/`--depth` 限制,支持携带凭证的授权爬取,捕获表单 + XHR 端点,对模板化 URL 进行去重),随后通过 Playwright 浏览器 + `nuclei` 广度扫描,利用完整的攻击目录对每一个唯一输入进行主动测试。最终生成全站报告**及覆盖范围映射图**(包含已爬取与已跳过的页面、已测试与已跳过的输入)。如果未连接 Playwright MCP,将自动回退至 `curl`/CLI DAST。 ## STRIDE 威胁建模 (`/sentinel:stride`) 架构层面的设计驱动型威胁发现分析(无网络访问)。`threat-modeler` 将构建一张包含**信任边界**的数据流图,随后将每个元素代入以下维度进行分析:**S**(欺骗,Spoofing)→ 身份验证、**T**(篡改,Tampering)→ 完整性、**R**(否认,Repudiation)→ 审计追踪、**I**(信息泄露,Information disclosure)→ 机密性、**D**(拒绝服务,Denial of service)→ 可用性、**E**(权限提升,Elevation of privilege)→ 授权 —— 最终生成一张包含 `元素 | 类别 | 威胁 | 风险 | 缓解措施 | 状态` 的表格。这是对漏洞发现类角色的主动补充。 ## 设计原则 - **最强模型**,通过 `opus` 别名调用(绝不固定,因此永不过时)。 - **确定性命令** 是核心契约;`/sentinel:audit` 是自然语言的统一入口。 - **高信噪比**:主报告中仅包含具有具体利用路径且置信度 ≥ 高 的发现;其余内容归入分类附录。 - **只读与机密安全**:绝不编辑文件;绝不打印机密值;在 API 探测时对 token 进行脱敏处理。 - **无静默疏漏**:缺失的扫描器会附带其安装命令予以报告;始终明确说明覆盖范围。 ## 协同组合 - 内置的 **`/security-review`** —— 针对 diff/project 提供确定性的二次审查关卡。 - **security-guidance** 插件 —— 被动的常驻防护层;sentinel 提供按需的深度防护层,并避免对其已报告的内容重复标记。 - **squad** —— 安装后会优先调用 `squad:security-owasp` 并复用 `squad:stack-conventions`;即使未安装也能完全独立运行。 - **postman:security** —— 针对 api/apis 范围的 OWASP API 审计。 - **Playwright MCP** —— 作为 AI DAST 的浏览器引擎。 ## 目录结构 ``` .claude-plugin/ plugin.json + marketplace.json agents/ 6 persona subagents commands/ 8 scope commands skills/security-conventions/ SKILL.md + authorization, dast-browser, site-scan, scanners, owasp, ceh, stride, whitebox, api-testing ``` ## 更新与开发 ``` # 编辑 ~/projects/claude-sentinel 中的文件,然后: git commit -am "…" && git push /plugin update sentinel # in Claude Code; restart to apply ``` 推送前验证:`claude plugin validate ~/projects/claude-sentinel`。检查组件及 token 成本:`claude plugin details sentinel`。 ## 故障排除 - **命令未显示:** 重新加载窗口 —— 新安装/更新的插件会在下一次会话启动时加载。 - **浏览器 DAST 无反应:** Playwright MCP 未连接;sentinel 会回退至 curl/CLI DAST。请安装/启用 Playwright 插件以获取完整的浏览器引擎支持。 - **扫描器被“跳过”:** 请安装该工具(参见 [扫描器](#scanners));sentinel 绝不会因缺失工具而导致运行失败,它只会将其报告出来。 - **授权控制阻止我探测:** 这是设计预期的安全行为 —— 请输入准确包含目标主机名的确认短语,且仅针对您已获授权测试的主机进行操作。 ## 贡献 欢迎您的贡献 —— 包括新的检查规则、扫描器集成、更敏锐的角色以及文档。请参阅 **[CONTRIBUTING.md](CONTRIBUTING.md)** 了解项目配置、不可妥协的安全规则及 PR 流程,同时查阅 **[行为准则](CODE_OF_CONDUCT.md)**。请通过 **[SECURITY.md](SECURITY.md)** 私下报告插件中的漏洞 —— 切勿作为公开 issue 提交。Bug 和建议 → 请直接提交 issue(已提供模板)。 ## 许可证 [MIT](LICENSE) © ali zohrevand。请仅针对您拥有或已获授权测试的系统使用。
标签:AI插件, CISA项目, Claude Code, DAST, MITM代理, 威胁建模, 恶意软件分析, 日志审计, 逆向工具