🛡️ MCP上下文保护器-保护工作流程
模型上下文协议(MCP)工具的运行时安全层
本文档描述了完整的保护生命周期,从初始设置到运行时实施,使用MCP Context Protector作为基于MCP的工具的运行时安全层。
______________________________________________________________________
📋 目录
______________________________________________________________________
🎯 概述
MCP上下文保护器强制执行 默认拒绝安全态势 通过人工在环审批和运行时响应检查,防止恶意MCP工具输出到达LLM。
关键原则
- ✅ 默认拒绝:新服务器在明确批准之前被阻止
- 👤 人类认可:信托决策需要运营商审查
- 🔍 运行时检查:工具响应的行为分析
- 🚫 响应阻止:可疑输出在到达LLM之前被隔离
______________________________________________________________________
🔄 工作流程图
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Install │───▶│ Review │───▶│ Scan │───▶│ Quarantine │───▶│ Monitor │
│ Protection │ │ & Approve │ │ Responses │ │ Threats │ │ & Review │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘______________________________________________________________________
📥 步骤1--启用MCP上下文保护器
目标:将MCP上下文保护器插入通信路径并应用默认拒绝安全
你做什么(一次性设置)
1.️⃣ 安装MCP上下文保护器
先决条件
Python 3.11 or higher在客户端主机上安装MCP上下文保护器包装器脚本。
# Example installation
## Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
## Download mcp-context-protector
git clone https://github.com/happytesting-chen/MCP_CONTECT_PROTECTOR.git
## Install dependencies
cd MCP_CONTECT_PROTECTOR
uv sync2.️⃣ 启动远程MCP服务器:
# run this command
python3 main.py ## main.py under server folder3.️⃣ 配置MCP客户端
配置您的MCP客户端(例如Cursor、Claude Desktop)以启动MCP上下文保护器,而不是直接连接到MCP服务器。
例子: mcp.json (光标)
{
"mcpServers": {
"kali-remote-mcp-wrapper": {
"command": "/mnt/c/Users/Intern/Documents/mitigation/mcp-context-protector/mcp-context-protector.sh",
"args": [
"--sse-url", "http://192.168.174.129:8000/sse",
"--guardrail-provider", "Claude"
],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-xxxx"
}
}
}
}自动发生的事情
| 行动 | 结果 |
|---|---|
| 🔀 交通路由 | 所有MCP流量都通过MCP上下文保护器路由 |
| 🔒 默认状态 | 检测到MCP服务器,但仍然存在 不可信的 默认情况下 |
| 🚫 工具可见性 | 所有暴露的工具显示为 context-protector-block |
🔐 安全原则
默认拒绝:新发现的MCP服务器是 默认情况下被阻止 直到得到人类操作员的明确批准。
______________________________________________________________________
👁️ 步骤2——审查和批准MCP服务器
目标:在使用工具之前,先进行人在循环中的信任决策
查看命令
检查所有未批准的服务器:
./mcp-context-protector.sh --review-all-servers查看特定服务器:
./mcp-context-protector.sh --review-server --sse-url http://192.168.174.129:8000/sse审查内容
仅 MCP服务器元数据 已审查:
- ✅ 工具名称
- ✅ 工具说明
- ✅ 输入模式
- ✅ 输出模式
未审核的内容
- ❌ 工具执行
- ❌ 运行时工具行为
- ❌ 工具响应
- ❌ MCP服务器源代码
审批结果
一旦获得批准:
| 之前 | 之后 |
|---|---|
| 🚫 服务器不受信任 | ✅ 服务器标记为 可信的 |
| 🔒 工具被阻止 | 🔓 工具 可见且可调用 在MCP客户端中 |
______________________________________________________________________
🔍 步骤3--运行时工具调用和响应扫描
目标:生产使用过程中的主动保护
服务器被信任后,工具可以正常使用。在运行时,MCP上下文保护器:
保护流程
1. 📤 Proxy every MCP tool invocation
↓
2. 🔍 Intercept all tool responses
↓
3. 🤖 Send responses to guardrail provider (e.g., Claude)
↓
4. 🛡️ Block or quarantine suspicious responses before they reach the LLM检测模型
| 特性 | 描述 |
|---|---|
| 运行时行为检查 | 分析执行过程中的工具行为 |
| 响应级别执行 | 响应级别的块,而不是代码级别的块 |
| 无静态分析 | 不扫描MCP服务器源代码 |
______________________________________________________________________
📊 步骤4——监控和可见性
目标:安全活动的实时可观察性
在游标中查看MCP日志
- 按
Ctrl + Shift + P - 选择
Developer: Show Logs - 选择
MCP
你能看到的
- ✅ 护栏扫描决策 --允许或阻止的内容
- ⚠️ 隔离事件 --当响应被隔离时
- 📊 运行时执行结果 --总体安全态势
日志输出示例
[2024-02-09 14:32:15] ✓ Tool invocation: file_read - ALLOWED
[2024-02-09 14:32:18] ⚠️ Response scan: SUSPICIOUS pattern detected
[2024-02-09 14:32:18] 🛡️ Action: QUARANTINED - blocked from LLM context
[2024-02-09 14:32:22] ✓ Tool invocation: web_search - ALLOWED______________________________________________________________________
🗃️ 第5步——检疫处理和操作员行动
目标:审查和应对被阻止的威胁
检疫储存
查看隔离的响应:
cat ~/.mcp-context-protector/quarantine.json隔离意味着什么
| 范围 | 状态 |
|---|---|
| ⚠️ 具体响应实例 | ❌ 已屏蔽 |
| 🔧 工具本身 | ✅ 可随时调用 |
| 🌐 MCP服务器连接 | ✅ 保持联系 |
重要:只有可疑的响应被阻止,工具和服务器仍在运行。
操作员责任
如果服务器或工具被确认为恶意:
- 手动删除或禁用它 在MCP客户端配置中,OR
- 实施上游MCP服务器访问控制
______________________________________________________________________
⚠️ 安全边界
MCP上下文保护器的作用
| 能力 | 描述 |
|---|---|
| ✅ 运行时检测和遏制 | 检测执行过程中的威胁 |
| ✅ 响应级别检查 | 在LLM之前扫描工具响应 |
| ✅ 默认拒绝入职 | 默认情况下阻止未知服务器 |
| ✅ 人工批准的信任 | 需要操作员批准 |
| ✅ 隔离可疑输出 | 阻止恶意响应 |
| ✅ 实时监控 | 提供对安全事件的可见性 |
MCP上下文保护器不做什么
| 限制 | 解释 |
|---|---|
| ❌ 永久禁用工具 | 隔离后工具仍可调用 |
| ❌ 自动删除MCP服务器 | 操作员必须手动删除恶意服务器 |
| ❌ 沙盒或执行MCP工具 | 不是执行环境 |
| ❌ 执行静态代码扫描 | 不分析服务器源代码 |
| ❌ 充当防火墙 | 不是网络级安全控制 |
| ❌ 防止所有攻击向量 | 深层防御,不完全保护 |
🎯 定位
MCP上下文保护器是一个运行时检测和包含层,而不是防火墙、静态代码扫描器或执行沙箱。
它补充了其他安全控制措施,应该成为深度防御战略的一部分。
______________________________________________________________________
📝 摘要
MCP上下文保护器提供:
- 🔒 默认拒绝安全 --新服务器被阻止,直到人工批准
- 🔍 运行时保护 --在工具响应到达LLM之前对其进行扫描
- 🔄 透明代理 --隐藏在客户端和服务器之间
- 👤 操作员驱动 --安全决策需要人工审查
- 🛡️ 检测层 --补充但不取代其他控件
______________________________________________________________________
📚 其他资源
______________________________________________________________________
许可证:\[您的许可证在这里\]\ 维护者:\[您的姓名/团队\]\ 版本: 1.0.0
