abhijitdalal26/MCP-Audit

GitHub: abhijitdalal26/MCP-Audit

一款 MCP 服务器配置安全审计工具,通过全面扫描配置文件来检测密钥泄露、供应链风险及 Prompt 注入等 OWASP MCP Top 10 漏洞。

Stars: 0 | Forks: 0

# MCPAudit [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Tests](https://img.shields.io/badge/tests-283%20passing-brightgreen)](apps/api/tests/) [![Python](https://img.shields.io/badge/python-3.12-blue)](apps/api/) [![OWASP MCP Top 10](https://img.shields.io/badge/OWASP%20MCP-Top%2010%20covered-red)](https://owasp.org/) Model Context Protocol (MCP) 服务器配置的安全审计工具。粘贴你的 `claude_desktop_config.json` 或 `.cursor/mcp.json` —— 即可获取一份统一的安全报告,其中每项发现均映射到 **OWASP MCP Top 10**。 ## 功能简介 你添加到 Claude Desktop 或 Cursor 的每个 MCP 服务器都会获得对你文件系统、shell、浏览器或 API 的访问权限。MCPAudit 会扫描你的配置,并在你信任它之前告知你每个服务器会引入哪些风险。 **涵盖 11 个模块的 48 项检查:** | 模块 | 检查 ID | 类别 | |--------|-----------|----------| | `secrets.py` | SEC-001–007 | 硬编码凭证、API key、token、HTTP basic auth、云元数据端点 (SSRF/IMDS) | | `supply_chain.py` | SC-001–003, SC-005–007 | 恶意/域名抢注包、GitHub ref 依赖、同形异义名称、registry 覆盖 (Birsan 攻击) | | `osv_lookup.py` | SC-004 | 通过 OSV.dev 进行实时 CVE 查询 | | `tool_poisoning.py` | PI-001–005, DX-001 | Prompt 注入、混淆、不可见的 Unicode、bidi 覆盖、数据泄露 | | `privilege.py` | PE-001–008 | 过宽的文件系统、shell、Docker、sudo 权限、权限绕过、路径遍历 | | `shadow.py` | SH-001–006 | 未注册服务器、HTTP、同形异义、自动发现、未经验证的 SSE | | `chain_analysis.py` | CHAIN-001–003 | 跨服务器能力链:写入+执行 (RCE)、机密+HTTP (泄露)、放大爆炸半径 | | `code_execution.py` | EX-001–003 | 内联代码执行、命令替换、PowerShell 编码命令、curl 管道传输 bash | | `audit.py` | AT-002–004 | 传输配置、网络绑定 (NeighborJack) | | `lifecycle.py` | LF-001 | Postinstall 脚本滥用 | | `config_level.py` | CL-001–003, EC-001 | 混淆代理、重复服务器、禁用安全功能、暴露调试日志 | | `scanner.py` | AT-001, AT-005 | 版本固定审计、服务器数量过多 | 每项发现均包含:严重程度、OWASP MCP Top 10 类别、CWE ID、MITRE ATT&CK 战术以及修复指南。 ## 输出格式 | 格式 | 适用场景 | |--------|----------| | **JSON** | CI/CD 集成、程序化处理 | | **SARIF 2.1.0** | GitHub Security 标签页(作为代码扫描告警上传) | | **CycloneDX 1.6 AI-BOM** | 供应链合规性、SBOM 工作流 | ## API 端点 ``` POST /scan → JSON report POST /scan/sarif → SARIF 2.1.0 POST /scan/bom → CycloneDX 1.6 AI-BOM ``` **请求体:** ``` { "config": "{ \"mcpServers\": { ... } }" } ``` **响应示例:** ``` { "scan_id": "abc123", "summary": { "total": 4, "critical": 1, "high": 2, "medium": 1, "risk_score": 47, "risk_grade": "C", "owasp_coverage": ["MCP01", "MCP04", "MCP09"] }, "findings": [ { "check_id": "SEC-001", "title": "AWS Access Key ID hardcoded in `AWS_ACCESS_KEY_ID`", "severity": "critical", "owasp": "MCP01", "cwe_id": "CWE-798", "remediation": "..." } ] } ``` ## 架构 ``` apps/web/ Next.js 15 frontend (minimal scan UI) apps/api/ FastAPI backend main.py API entrypoint engine/ parser.py JSONC-aware config parser (Claude Desktop + Cursor formats) scanner.py Scan orchestrator + config-level checks models.py Pydantic models (Finding, ScanResult, ScanSummary) sarif.py SARIF 2.1.0 formatter (with CWE + ATT&CK) cyclonedx.py CycloneDX 1.6 AI-BOM formatter checks/ 41 check implementations tests/ 283 tests (unit + property-based + real-world corpus) packages/cli/ Go CLI binary (planned — Stage 2) ``` ## 技术栈 | 层级 | 技术 | |-------|-----------| | 前端 | Next.js 15 + App Router + Tailwind | | 后端 | FastAPI (Python 3.12) + Pydantic v2 | | CVE 数据 | OSV.dev API(由 Google 维护,无需 API key) | | SARIF | 2.1.0 规范 — 兼容 GitHub Security 标签页 | | AI-BOM | CycloneDX 1.6 | ## 在本地运行 ``` # API cd apps/api python -m venv .venv .venv/Scripts/pip install -r requirements-dev.txt uvicorn main:app --reload --port 8000 # Tests .venv/Scripts/pytest tests/ -v # 283 tests # Frontend cd apps/web npm install && npm run dev # → http://localhost:3000 ``` ## OWASP MCP Top 10 覆盖范围 涵盖全部 10 个类别: | 类别 | 描述 | 检查项 | |----------|-------------|--------| | MCP01 | Token 管理不当与机密泄露 | SEC-001–007, EC-001 | | MCP02 | 通过范围蔓延进行提权 | PE-001–007, CL-001 | | MCP03 | 工具投毒 (Tool Poisoning) | PI-001–004, DX-001, SH-004, CL-002 | | MCP04 | 供应链攻击 | SC-001–007, LF-001 | | MCP05 | 命令注入与执行 | EX-001–002, PE-005 | | MCP06 | 通过上下文 Payload 进行 Prompt 注入 | PI-002 | | MCP07 | 认证不足 | SH-002, SH-006, CL-003 | | MCP08 | 缺乏审计与遥测 | AT-001–005 | | MCP09 | 影子 (Shadow) MCP 服务器 | SH-001, SH-003, SH-005 | | MCP10 | 上下文注入与过度共享 | PE-004 | ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:AI安全, Chat Copilot, MCP, StruQ, 文档安全, 日志审计, 逆向工具