Token导航 LogoToken导航TokenDH.com
Safe MCP logo
安全风控stdio官方级别未说明来源级核验

Safe MCP

MCP Server

一个全面的MCP服务器安全验证系统,通过三层安全检查检测并阻止恶意URL缩短服务。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude安全Claude

安装说明

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

作者 / 组织

BibhabDasgupta

提供方

BibhabDasgupta

最后核验

2026/5/17 20:22

运行时

Python

快速接入

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

命令预览

python -m venv .venv

详细介绍

MCP安全中间件

一个用于模型上下文协议(MCP)服务器的全面安全验证系统,通过三层安全检查检测和阻止恶意URL缩短服务。

🎯 项目概述

该项目展示了MCP服务中的一个关键漏洞: 地毯拉扯攻击 服务对其行为的影响。安全中间件拦截对URL缩短服务的请求,并通过以下方式进行验证:

  1. CVE/咨询检查(30%) -检查GitHub安全公告和国家漏洞数据库
  2. 语义引擎(30%) -验证响应结构、URL和可疑关键字
  3. 运行时沙盒(40%) -在隔离的Docker容器中实际测试缩短的URL以验证行为

🚨 所展示的攻击

脚本: 恶意URL缩短服务(FastLink Pro)执行“地毯拉取”:

  • 用户要求缩短: https://mybank.com/login
  • 服务回报: http://localhost:8001/go/abc123
  • 服务 索赔 它缩短了mybank.com
  • 但点击链接会重定向到: https://google.com

我们的解决方案: 运行时沙盒实际上在用户之前点击了链接,检测到不匹配,并且 阻止服务.

📊 建筑

User → Claude (AI) → MCP Client → Security Proxy → Backend Services
                                        ↓
                              Security Validation:
                              ├─ CVE Checker
                              ├─ Semantic Engine  
                              └─ Runtime Sandbox (Docker)

🛠️ 使用的技术

  • Python 3.11+
  • 快速API -安全代理的Web框架
  • FastMCP -MCP服务器实现
  • 码头工人 -孤立的沙盒环境
  • httpx -异步HTTP客户端
  • 皮丹提克 -数据验证

📁 项目结构

mcp-security-middleware/
├── security_middleware/
│   ├── __init__.py
│   ├── security_proxy.py          # Main security proxy
│   ├── scoring_engine.py          # Score aggregation
│   ├── checkers/
│   │   ├── __init__.py
│   │   ├── cve_checker.py         # CVE/Advisory validation
│   │   ├── semantic_engine.py     # Semantic rule checking
│   │   ├── runtime_sandbox.py     # Docker sandbox testing
│   │   └── sandbox_test.py        # Test script for Docker
│   └── rules/
│       └── semantic_rules.yaml    # Validation rules
├── good_mcp_server.py             # Legitimate URL shortener
├── bad_mcp_server.py              # Malicious URL shortener (demo)
├── client_modified.py             # MCP client with security
├── Dockerfile.sandbox             # Docker image for sandbox
├── requirements.txt               # Python dependencies
├── test_docker_manually.py        # Docker testing script
├── verify_complete_system.py      # System verification
└── README.md

🚀 安装和设置

先决条件

  • Python 3.11或更高版本
  • Docker桌面(适用于Windows/Mac)或Docker引擎(适用于Linux)
  • WSL2(适用于Windows用户)

1.克隆存储库

git clone https://github.com/YOUR_USERNAME/mcp-security-middleware.git
cd mcp-security-middleware

2.创建虚拟环境

python -m venv .venv

# Activate virtual environment
# Windows PowerShell:
.venv\Scripts\Activate.ps1
# Windows CMD:
.venv\Scripts\activate.bat
# Linux/Mac:
source .venv/bin/activate

3.安装依赖项

pip install --upgrade pip
pip install -r requirements.txt

4.构建Docker沙盒镜像

docker build -f Dockerfile.sandbox -t mcp-sandbox-test .

5.验证安装

# Test Docker sandbox
python test_docker_manually.py

# Verify complete system (requires all services running)
python verify_complete_system.py

🏃 运行系统

启动所有服务

你需要 4个终端窗口:

1号航站楼-良好服务:

python good_mcp_server.py

2号航站楼-服务不佳:

python bad_mcp_server.py

终端3-安全代理:

python -m security_middleware.security_proxy

终端4-MCP客户端:

# For good service (should pass)
$env:URL_SERVICE_PORT="8002"  # PowerShell
python client_modified.py

# For bad service (should block)
$env:URL_SERVICE_PORT="8001"  # PowerShell
python client_modified.py

🧪 测试

测试良好服务(预期:✅ 通行证)

  1. 如上所示启动所有服务
  2. URL_SERVICE_PORT=8002
  3. 问克劳德:“请缩短https://example.com"
  4. 结果: 服务通过,得分~90-100/100

测试不良服务(预期:🚫 块)

  1. URL_SERVICE_PORT=8001
  2. 问克劳德:“请缩短https://mybank.com"
  3. 结果: 服务被阻止,得分~35/100
  4. 原因: Docker沙盒检测到域不匹配(预期为mybank.com,实际为google.com)

📊 安全评分

组件重量检查内容
CVE检查30%已知漏洞、可疑模式
语义引擎30%响应结构、URL验证、关键字
运行时沙盒40%实际重定向行为

门槛: 服务必须得分≥70/100才能通过

风险等级:

  • 85-100:低风险(安全)
  • 70-84:中等风险(安全)
  • 50-69:高风险(封锁)
  • 0-49:严重风险(已阻断)

🎓 教育价值

该项目展示了:

  1. MCP安全漏洞 -服务可以对其行为撒谎
  2. 纵深防御 -多个安全层捕获不同的攻击类型
  3. 运行时验证 -信任,但通过实际测试进行验证
  4. 容器化 -Docker为测试不受信任的代码提供了安全隔离
  5. 安全中间件模式 -透明的拦截和验证

🔧 配置

调整安全阈值

编辑 security_middleware/security_proxy.py:

scoring_engine = ScoringEngine(threshold=70.0)  # Change threshold here

修改语义规则

编辑 security_middleware/rules/semantic_rules.yaml 添加/修改验证规则。

配置CVE源

编辑 security_middleware/checkers/cve_checker.py 修改CVE数据库源。

📝 关键文件说明

security_proxy.py

拦截请求、并行运行所有安全检查并做出阻止/允许决策的主要中间件。

runtime_sandbox.py

创建隔离的Docker容器,以实际测试缩短的URL并验证它们重定向到预期的目的地。

cve_checker.py

查询GitHub安全公告和NVD数据库以查找已知漏洞。

semantic_engine.py

根据预定义规则(必填字段、URL格式、可疑关键字)验证响应结构。

scoring_engine.py

使用加权平均值汇总所有检查的分数并做出最终决定。

🐛 故障排除

找不到Docker

# Make sure Docker Desktop is running
docker --version

# If not found, add Docker to PATH or restart Docker Desktop

端口已在使用中

# Find process using port
netstat -ano | findstr :8001  # Windows

# Kill process
taskkill /PID 
 /F  # Windows

未找到模块

# Make sure you're in virtual environment
# Re-install dependencies
pip install -r requirements.txt

🤝 贡献

这是一个教育项目。欢迎捐款:

  1. 分叉存储库
  2. 创建特征分支(git checkout -b feature/AmazingFeature)
  3. 提交更改(git commit -m 'Add AmazingFeature')
  4. 推送到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

👨‍💻 作者

你的名字

🙏 致谢

  • MCP协议的拟人化
  • 用于简化MCP服务器创建的FastMCP库
  • Docker用于容器化技术

⚠️ 免责声明

这个项目是为了 教育目的 以证明MCP服务中的安全漏洞。故意创建“恶意”服务(bad_mcp_server.py)来演示攻击。未经适当的安全审查,不得在生产中使用。

📚 延伸阅读


THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

目录标签

目录标签

PythonClaude安全安全验证本地部署URL缩短恶意行为检测三层检查Docker沙箱

支持客户端

Claude

接入字段

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

stdio

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

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP