MoazzamSameer/mcp-firewall-pentest

GitHub: MoazzamSameer/mcp-firewall-pentest

面向 MCP Firewall 的自主 AI 红队测试框架,在闭环中驱动 Cursor agent 对授权网关执行安全绕过测试并生成可复现报告。

Stars: 0 | Forks: 0

# MCP Firewall 渗透测试 这是用于 [MCP Firewall](https://github.com/MoazzamSameer/mcp-firewall) 的自主 AI 红队测试工具。它在闭环中针对**你控制的真实网关**运行 Cursor SDK agent,根据防火墙的威胁模型对绕过行为进行评分,并生成可复现的安全报告。 ## 仅限授权使用 **仅**对你拥有或获得明确书面测试许可(本地 Docker、预发布环境、专用实验室)的 MCP Firewall 实例运行此工具。不要将其指向第三方系统。 安全默认设置: - 目标 URL 必须匹配 `config/target.yaml` 中的 `allowed_hosts` - 仅使用合成的机密信息(`sk-fakepentest...`、虚假的 PEM 块) - `/v1/proxy` 任务使用 compose 中的模拟上游,而不是公共互联网 ## 前置条件 - Python 3.10+ - 本地运行的 MCP Firewall([快速开始](https://github.com/MoazzamSameer/mcp-firewall#quick-start)) - 用于自主 agent 模式的 `CURSOR_API_KEY`(来自 Cursor Dashboard → API Keys) ## 快速开始 ``` cd mcp-firewall-pentest python3 -m venv .venv source .venv/bin/activate pip install -e ".[dev,agent]" cp .env.example .env # 使用 CURSOR_API_KEY 编辑 .env # 终端 1:启动防火墙(在 mcp-firewall 仓库中) # docker compose up 或 uvicorn mcp_firewall.server:app --port 8080 # 终端 2:可选的 mock upstream + 完整技术栈 docker compose -f compose/docker-compose.yml up -d mock # 运行所有 missions python scripts/run_redteam.py --mission all # 单个 mission,dry-run(无 Cursor API) python scripts/run_redteam.py --mission prompt_injection --planner heuristic --dry-run ``` 报告将写入 `reports//`(`report.md`、`findings.json`)。 根据任意运行记录生成一个独立的 HTML 仪表板(无需依赖,支持离线打开): ``` python scripts/build_dashboard.py --latest # writes reports//dashboard.html ``` ## 架构 **编排器** 负责所有发往 MCP Firewall 的 HTTP 调用。**Cursor SDK agent** 仅以 JSON 格式提出下一次攻击建议;编排器负责评估、打分并反馈结果。 ``` Orchestrator → Cursor agent (propose JSON) → POST /v1/evaluate → score → feedback ``` ## 任务 | ID | 威胁 | |----|--------| | `prompt_injection` | 工具 payload 中的混淆注入 | | `metadata_ssrf` | 云元数据主机变体 | | `secret_exfil` | 参数中的凭证模式 | | `scope_escalation` | 缺失/错误的 OAuth scope | | `readonly_bypass` | 通过只读工具进行修改 | | `shell_chain` | Shell 工具中的远程获取/执行 | | `tool_confusion` | 未知与被拒绝的工具名称 | | `proxy_ssrf` | 不允许的 `/v1/proxy` 上游 | | `auth_abuse` | 缺失/无效的凭证 | | `rate_limit` | 针对 rate limiter 的突发流量 | ## 双仓库工作流 ``` ~/Projects/ mcp-firewall/ # gateway under test mcp-firewall-pentest/ # this repo ``` 1. 使用开发 API key `mcpf_dev_local` 在端口 `8080` 上启动防火墙。 2. 将 `.env` 中的 `MCPF_BASE_URL` 指向该实例。 3. 运行渗透测试;针对每个确认的绕过漏洞在 mcp-firewall 提交 issue。 ## Scope 提升说明 防火墙会将 `call.scopes` 与 API-key/JWT scope 合并。默认的 `mcpf_dev_local` key 包含 `github:write`,因此 scope 提升的种子 payload 可能会被标记为 **不确定** 而不是成功绕过。若要进行严格的 scope 测试,请在 `config/target.yaml` 中配置一个受限的 API key。 ## CI GitHub Actions 会在没有 `CURSOR_API_KEY` 的情况下运行**确定性冒烟测试**(启发式规划器、种子 payload)。如果配置了该 secret,则可以选择执行完整的 agent 运行。 ## 许可证 MIT
标签:AI自动化, CISA项目, Cursor SDK, IP 地址批量处理, MCP防火墙, 版权保护, 逆向工具