cyberranger93/mcp-threat-lab

GitHub: cyberranger93/mcp-threat-lab

一个用于 MCP 安全的本地红队与就绪性测试实验室,通过攻击卡片和控制检查帮助团队在 AI Agent 工具部署前评估安全防护措施的有效性。

Stars: 0 | Forks: 0

# MCP Threat Lab [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e2c914f8d7215710.svg)](https://github.com/cyberranger93/mcp-threat-lab/actions/workflows/ci.yml) [![Node.js](https://img.shields.io/badge/node-%3E%3D20.11-339933.svg)](package.json) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) **一个用于 MCP 安全的本地安全红队与就绪性测试实验室。** MCP Threat Lab 为 AI 平台、安全团队和开发者工具团队提供了一种可重复的方法,用于测试他们的 Model Context Protocol 控制措施是否能够在这些工具成为受信任的执行路径之前,阻止常见的 agent 攻击模式。 它被设计为 [MCP Guardian](https://github.com/cyberranger93/mcp-guardian) 的攻击性(红队)辅助工具: - MCP Guardian:扫描器、防火墙、审计层和 CI 防护栏。 - MCP Threat Lab:安全攻击卡、就绪性检查和报告。 ## 为什么需要这个项目 Agent 正在被连接到本地文件、shell 命令、浏览器、API 和带有凭据的开发者环境。MCP 让这一切变得强大,但它也在每个服务器、工具 schema 和工具结果周围创建了一个新的信任边界。 MCP Threat Lab 将这个问题转化为具体的攻击卡和控制检查: - 提示注入是否会使 agent 泄露机密? - 工具描述是否会污染 agent 计划? - 过于宽泛的文件系统范围是否会暴露凭据? - 类 shell 工具是否会执行由模型控制的输入? - 恶意的 shadow MCP server 是否会在未经审查的情况下进入开发者配置? - 安全事件是否会留下有用的审计证据? 该实验室默认是安全的。它不执行 payloads。它仅评估是否存在应阻止每种模式的控制措施。 ## 安装 ``` npm install npm run build ``` ``` npm install -g @cyberranger/mcp-threat-lab ``` 或者无需安装直接运行: ``` npm exec --package=@cyberranger/mcp-threat-lab -- mcp-threat-lab --help ``` ## 快速开始 ``` # 列出攻击卡片 node dist/cli.js list # 查看特定卡片 node dist/cli.js card MCP-TL-004 # 运行 starter profile 并在出现高风险漏洞时失败 node dist/cli.js run --profile starter --fail-on high # 为 hardened stack 生成 markdown 报告 node dist/cli.js run --profile hardened --format markdown --output report.md ``` ## 配置 创建一个配置文件: ``` node dist/cli.js init --profile starter ``` 示例: ``` { "name": "starter-agent-stack", "controls": { "secretRedaction": false, "leastPrivilegeScopes": false, "toolSchemaPinning": false, "commandAllowlist": false, "auditLog": true, "serverInventory": false, "contextIsolation": false, "humanApprovalForDangerousTools": false } } ``` 针对配置运行: ``` node dist/cli.js run --config .mcp-threat-lab.json --format markdown --output report.md ``` ## 攻击卡 | ID | 严重程度 | 类别 | 标题 | | --- | --- | --- | --- | | MCP-TL-001 | critical | prompt-injection | 基于提示的机密数据窃取 | | MCP-TL-002 | high | tool-poisoning | 工具描述污染 | | MCP-TL-003 | high | least-privilege | 过于宽泛的文件系统范围 | | MCP-TL-004 | critical | command-execution | 命令执行升级 | | MCP-TL-005 | high | inventory | 恶意的 shadow MCP server 采用 | | MCP-TL-006 | medium | observability | 无声的审计失败 | ## 命令 ``` mcp-threat-lab init [--profile starter|hardened] [--output .mcp-threat-lab.json] [--force] mcp-threat-lab list mcp-threat-lab card mcp-threat-lab run [--config .mcp-threat-lab.json] [--profile starter|hardened] [--format text|json|markdown] [--include category-or-id] [--fail-on low|medium|high|critical] [--output report.md] ``` ## 开发 ``` npm install npm run check npm run dev -- list ``` ## 文档 - [威胁模型](docs/threat-model.md) - [发布手册](docs/launch-playbook.md) - [NPM 发布](docs/npm-publish.md) ## 安全性 这是一个防御性安全实验室。Payloads 以安全的提示和测试用例的形式表示。CLI 不会运行 shell payloads、访问机密、扫描私有目录或攻击在线服务。
标签:AES-256, AI代理安全, AI安全, Chat Copilot, CISA项目, DevSecOps, DNS 反向解析, GNU通用公共许可证, IP 地址批量处理, MCP, MITM代理, Node.js, TypeScript, 上游代理, 凭据泄露, 安全实验室, 安全插件, 安全测试, 安全防护, 就绪性检查, 工具描述投毒, 提示注入, 攻击性安全, 攻击模拟, 数据展示, 模型上下文协议, 漏洞评估, 红队, 网络安全, 网络安全审计, 自动化攻击, 越权访问, 隐私保护, 集群管理, 零日漏洞检测, 驱动签名利用