Token导航 LogoToken导航TokenDH.com
From Localhost To Prod Architecting MCP Servers That Won T Get You Hacked logo
安全风控未说明官方级别未说明来源级核验

From Localhost To Prod Architecting MCP Servers That Won T Get You Hacked

MCP Server

一个展示Model Context Protocol(MCP)服务器安全漏洞的综合演示库,用于安全培训、演示和开发者教育。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaude安全Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

VeVarunSharma

提供方

VeVarunSharma

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP安全隐患:一个全面的演示库

⚠️ 警告:此存储库包含用于教育目的的故意易受攻击的代码。 不要 在生产系统中使用易受攻击的示例。

🎯 目的

此存储库提供了模型上下文协议(MCP)服务器中安全漏洞的全面演示,专为演示、安全培训和开发人员教育而设计。每个威胁向量都包括易受攻击和安全的实现,并附有详细的解释。

📋 目录

🔍 概述

模型上下文协议(MCP)是一种新兴的标准,用于将大型语言模型(LLM)连接到外部数据源和工具。虽然它承诺简化集成,但最近的安全研究揭示了与过去几十年基本安全问题相呼应的漏洞。

关键安全问题

  1. 无默认身份验证 -MCP服务器通常无需身份验证即可访问
  2. 协议设计缺陷 -URL中的会话标识符,最低限度的安全指导
  3. 乐观信任模型 -假设句法正确性意味着语义安全
  4. 成熟度差距 -缺乏既定的安全模式和最佳实践

🏗️ MCP架构

┌─────────────────┐
│   MCP Hosts     │  (Claude Desktop, IDEs, AI Tools)
│   (Applications)│
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   MCP Clients   │  (Protocol implementations)
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   MCP Servers   │  (Backend services exposing tools/data)
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  Data Sources   │  (Files, DBs, APIs, Resources)
└─────────────────┘

🎭 威胁媒介

该存储库涵盖了六大类MCP安全漏洞:

1.💉 命令注入

使用用户控制的输入直接执行shell命令,允许执行任意命令。

  • 影响:完全系统妥协
  • 患病率43%的测试实现
  • 位置: src/command-injection/

2.📁 路径遍历

通过目录遍历攻击进行未经授权的文件系统访问。

  • 影响:任意文件读/写
  • 患病率:22%的测试实现
  • 位置: src/path-traversal/

3.🌐 服务器端请求伪造(SSRF)

无限制的URL获取,允许访问内部系统。

  • 影响:内部网络暴露、数据泄露
  • 患病率:30%的测试实现
  • 位置: src/ssrf/

4.🧪 工具中毒(TPA)

LLM执行的工具描述中嵌入的恶意指令。

  • 影响:数据泄露、未经授权的行为
  • 攻击面:工具描述字段
  • 位置: src/tool-poisoning/

5.🧬 全模式中毒(FSP)

跨所有JSON模式元素(名称、类型、默认值、枚举)的注入攻击。

  • 影响:全面的LLM操作
  • 攻击面:整个工具架构
  • 位置: src/full-schema-poisoning/

6.🎪 高级工具中毒(ATPA)

利用LLM解释动态工具输出和错误消息。

  • 影响:行为攻击,难以检测
  • 攻击面:工具执行输出
  • 位置: src/advanced-tool-poisoning/

📂 存储库结构

mcp-security-dangers/
├── src/
│   ├── command-injection/
│   │   ├── vulnerable/
│   │   │   ├── server.ts          # Vulnerable implementation
│   │   │   └── examples.ts        # Attack examples
│   │   ├── secure/
│   │   │   ├── server.ts          # Secure implementation
│   │   │   └── validation.ts      # Security controls
│   │   ├── README.md              # Detailed threat documentation
│   │   └── demo.ts                # Interactive demonstration
│   │
│   ├── path-traversal/            # Same structure as above
│   ├── ssrf/                      # Same structure as above
│   ├── tool-poisoning/            # Same structure as above
│   ├── full-schema-poisoning/     # Same structure as above
│   ├── advanced-tool-poisoning/   # Same structure as above
│   │
│   ├── security-utils/
│   │   ├── prompt-shield.ts       # Prompt injection detection
│   │   ├── input-validator.ts     # Input validation utilities
│   │   ├── output-analyzer.ts     # Output analysis for ATPA
│   │   └── monitoring.ts          # Security monitoring tools
│   │
│   └── types/
│       └── mcp.ts                 # MCP protocol type definitions
│
├── docs/
│   ├── PRESENTATION_GUIDE.md      # How to present this material
│   ├── THREAT_ANALYSIS.md         # Deep dive into threat landscape
│   └── MITIGATION_STRATEGIES.md   # Comprehensive security guidance
│
├── examples/
│   ├── payloads/                  # Attack payload examples
│   └── outputs/                   # Expected demonstration outputs
│
├── package.json
├── tsconfig.json
└── README.md

🚀 入门指南

先决条件

  • Node.js 18+和npm
  • TypeScript 5.3+
  • 对MCP协议的基本理解
  • 熟悉安全概念

安装

# Clone the repository
git clone 
cd mcp-security-dangers

# Install dependencies
npm install

# Build the project
npm run build

🎬 运行演示

每个威胁向量都有一个交互式演示:

# Run individual demos
npm run demo:command-injection
npm run demo:path-traversal
npm run demo:ssrf
npm run demo:tool-poisoning
npm run demo:full-schema-poisoning
npm run demo:advanced-tool-poisoning

# Run all demos in sequence
npm run demo:all

演示输出

每个演示将:

  1. 显示易受攻击的实现
  2. 演示攻击
  3. 显示安全实施
  4. 解释差异
  5. 提供缓解建议

📊 演示指南

推荐流量

  1. 引言 (5分钟)

- MCP概述和架构 - 为什么MCP安全很重要 - 脆弱性流行率统计

  1. 直接漏洞 (15分钟)

- 命令注入演示 - Path Traversal演示 - SSRF演示 - 现场袭击示威

  1. 间接攻击 (20分钟)

- 工具中毒(TPA)演示 - 全模式中毒(FSP)演示 - 高级工具中毒(ATPA)演示 - 现实世界场景

  1. 缓解策略 (15分钟)

- 安全实用程序演练 - 最佳实践 - 实施指南

  1. 问答 (5分钟)

关键谈话要点

  • “现在是2025年,但我们看到了2000年的漏洞”
  • “每个模式元素都是一个潜在的注入向量”
  • “LLM将整个JSON模式作为推理上下文进行处理”
  • “工具输出可以像输入一样被武器化”
  • “零信任模型对人工智能系统至关重要”

🛡️ 缓解策略

基本防御

  1. AI提示护盾 -部署快速注射检测系统
  2. 严格验证 -允许列表架构和参数
  3. 增强分析 -静态和运行时安全扫描
  4. 上下文完整性 -培训LLM质疑异常请求
  5. 供应链安全 -集成前验证所有组件
  6. 安全基础 -MFA、最低权限、补丁、数据保护

速效方案

✅ 在所有MCP端点上启用输入验证 ✅ 对可疑模式实施输出监控 ✅ 使用参数化命令而不是shell执行 ✅ 应用路径规范化和分配列表 ✅ 限制出站网络访问 ✅ 部署提示屏蔽API ✅ 实施全面的日志记录和监控

📚 额外资源

⚠️ 道德使用

此存储库用于 仅用于教育目的易受攻击的代码示例故意不安全,以证明安全风险。

不要:

  • 在生产中使用易受攻击的示例
  • 未经授权在真实系统中利用这些漏洞
  • 在没有适当安全控制的情况下部署MCP服务器

:

  • 从安全实施中学习
  • 在项目中应用缓解策略
  • 与您的团队分享安全知识
  • 测试您自己的系统是否存在这些漏洞

🤝 贡献

欢迎投稿!拜托:

  • 添加具有易受攻击和安全示例的新威胁向量
  • 改进检测和缓解工具
  • 加强文件和演示材料
  • 分享真实世界的案例研究(匿名)

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件

🙏 致谢

此存储库基于以下安全研究:

  • Equixly(Alessio Dalla Piazza)
  • CyberArk实验室(辛查·科斯曼)
  • 微软安全团队
  • 不变实验室

______________________________________________________________________

记住:安全性不是一项功能,而是一项要求。保持警惕! 🔒

目录标签

目录标签

TypeScriptClaude安全安全漏洞本地部署MCP协议命令注入路径遍历SSRF工具投毒

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP