themayursinha/mcp-llm-security-evaluator

GitHub: themayursinha/mcp-llm-security-evaluator

一款 LLM 安全评估工具,用于测试模型在接触敏感数据与 MCP 工具时的安全行为,并生成结构化评估报告。

Stars: 0 | Forks: 0

# MCP LLM 安全 Evaluator 安全测试工具,用于测试 LLM 在接触敏感文本、代码库内容以及 MCP 风格工具访问时的行为。该项目可以通过确定性的 mock provider 运行本地冒烟测试,也可以连接到真实的 provider 进行深度评估。 ## 目前已实现的功能 - 包含 JSON 和 HTML 报告的 CLI 评估流程。 - 针对合成机密和 PII 的脱敏测试。 - 代码库 fixture 扫描,用于检测泄漏型响应。 - MCP 工具风险和权限提升测试。 - 基于 profile 或 MCP 客户端配置风格声明的 MCP server 资产清单审查。 - MCP 工具目录快照和基线差异对比,用于检测元数据偏移。 - MCP 策略检查,涵盖单工具授权、审批元数据、token 直通, 以及敏感信息到出站工具的链路。 - 经过脱敏处理的 MCP 审计事件,保留工具调用证据供事件审查使用。 - 用于远程执行和报告历史记录的 FastAPI 服务。 - 基于 SQLite 的报告历史记录和响应缓存。 - 包含分数趋势的历史报告浏览器。 - Provider 对比模式,支持跨多个后端运行单个 profile。 ## 项目定位 - 用于 LLM 安全实验的实用评估工具包。 - MCP 供应链和控制平面审查的配套实现。 - 非常适合用于演示、CI 冒烟测试、provider 对比工作以及早期的 MCP 治理实验。 ## 项目不包含的内容 - 完整的渗透测试框架。 - 托管服务或打包好的 SDK 发行版。 - 对模型或 MCP server 生产环境安全的担保。 ## 快速开始 ``` python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements.txt python -m pytest -q python -m app.main --quick --provider mock --format html ``` mock provider 旨在对流水线进行冒烟测试。它会返回安全的确定性响应,以便您在没有外部 API key 的情况下验证评估器。 ## 运行真实 Provider 从 `.env.example` 创建一个 `.env` 文件,然后配置您要使用的 provider。 ``` cp .env.example .env python -m app.main --provider openai --model gpt-4o-mini --format both ``` 受支持的 provider: - `mock` - `openai` - `anthropic` - `ollama` - `auto`(优先使用已配置的真实 provider,否则回退到 `mock`) ## CLI 用法 ``` python -m app.main [OPTIONS] ``` 常用选项: - `--quick` 使用 `quick` profile 并跳过代码库扫描。 - `--format {json,html,both}` 控制报告输出。 - `--provider {auto,openai,anthropic,ollama,mock}` 选择 LLM 后端。 - `--compare-providers mock,ollama` 针对多个 provider 运行选定的 profile。 - `--server` 启动 REST API 而不是运行 CLI 评估。 - `--no-cache` 禁用持久化的 LLM 响应缓存。 `quick` profile 旨在保持对 CI 的友好。更广泛的 `default` profile 包含具有对抗性的 MCP 控制平面场景,包括一个 有状态的渗透链路。 ## API 用法 启动 API server: ``` python -m app.main --server --host 127.0.0.1 --port 8000 ``` 触发评估: ``` curl \ -X POST http://127.0.0.1:8000/evaluate \ -H 'Content-Type: application/json' \ -d '{"profile":"default","provider":"mock"}' ``` 可以通过设置 `API_AUTH_REQUIRED=true` 和 `API_KEY=...` 来启用可选的 API 身份验证。 ## 报告 - CLI 运行会将带有时间戳的 JSON 和/或 HTML 报告写入 `reports/`。 - API 运行会将报告持久化存储在 `data/evaluator_history.db` 中。 - HTML 报告设计用于与非开发人员分享结果。 - API 包含一个报告历史 UI,地址为 `/ui/reports`。 - MCP 报告部分包含资产清单、目录偏移、策略发现、有状态 工具链发现以及脱敏后的审计事件。 ## Provider 对比 使用对比模式来评估跨 provider 的同一 profile,并生成 排名形式的 JSON/HTML 对比报告。 ``` python -m app.main --quick --compare-providers mock,ollama --format both ``` ## 项目布局 ``` app/ CLI, API, templates, config, persistence evaluator/ Core evaluator, metrics, provider clients, MCP testing data/ Sample fixtures and SQLite database docs/ User and operator documentation tests/ Pytest suite ``` ## 开发检查 ``` python -m black --check app evaluator tests python -m flake8 app evaluator tests python -m mypy python -m pytest --cov=app --cov=evaluator ``` ## 文档 - [架构](Architecture.md) - [API 指南](docs/api.md) - [配置指南](docs/configuration.md) - [故障排除](docs/troubleshooting.md) - [贡献指南](CONTRIBUTING.md) - [安全政策](SECURITY.md) - [发布检查清单](RELEASE_CHECKLIST.md) ## 状态 本仓库定位为一个可共享的公开项目,具备可用的 mock/演示路径以及实验性的真实 provider 集成。历史规划记录保留在 [`prd.md`](prd.md) 中,但 README 和 `docs/` 是当前行为的唯一事实来源。 ## 许可证 基于 MIT 许可证发布。详见 [LICENSE](LICENSE)。
标签:AI安全, Chat Copilot, DLL 劫持, MCP, Python, 反取证, 大语言模型, 安全测试, 安全评估, 攻击性安全, 无后门, 逆向工具