蜜罐安全服务器

基于Cloudflare Workers和MCP协议构建的无服务器蜜罐,用于检测未经授权的访问和AI代理行为。

  • by Bink33990
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Bink33990/deception-remote-mcp-server

使用说明

🛡️ 欺骗远程MCP服务器-AI驱动的蜜罐

使用Cloudflare Workers和模型上下文协议(MCP)构建的无服务器蜜罐。该项目使用Canarytokens模拟敏感的内部工具来检测未经授权的访问尝试和AI代理行为。

🧩 太长,读不下去了

这是一个基于欺骗的蜜罐,使用Cloudflare Workers和模型上下文协议(MCP)构建。它模拟敏感的管理工具(如Okta密码重置),并在访问时自动触发Canarytokens——非常适合零信任、人工智能安全和威胁检测研究。

💡 为何重要

  • ✅ 首次将MCP用作欺骗蜜罐
  • 🧠 在零信任环境中检测未经授权的AI代理行为
  • 🌍 无服务器、全球分布、隐秘
  • 🎯 易于部署、集成和扩展
  • 🛡️ 提供有关AI代理行为的有价值的威胁情报
  • 🔍 OWASP AI安全针对新兴的基于AI的威胁进行了测试

🔐 安全功能

  • 高级Canarytoken集成:通过用户代理、IP和交互详细信息增强跟踪
  • 速率限制:防止暴力破解和DoS攻击
  • 敏感用户名检测:对管理员、root和其他敏感帐户访问尝试的特殊处理
  • 实际响应延迟:模仿真实系统行为,使其看起来合法
  • 增强的错误处理:不泄露系统详细信息的安全错误消息
  • MCP协议兼容性:针对Cloudflare AI Playground和其他MCP客户端进行了优化
  • SSE协议支持:MCP通信的服务器发送事件实现

🚀 部署您自己的

或者手动部署:

# Install dependencies
npm install

# Deploy to Cloudflare Workers
npm run deploy

您的MCP服务器将部署到:

https://deception-remote-mcp-server.<your-account>.workers.dev

🔧 工具和功能

  • welcome:显示欢迎消息,其中包含有关可用工具的信息
  • ask_about_me:基于13个以上问题类别的综合简历数据的动态问答
  • okta_admin_password_reset:模拟用户密码的管理员重置,对敏感帐户进行特殊处理
  • 网络安全主题UI:专业登录页面,注重安全设计
  • REST和SSE端点:多种接入方式,覆盖范围更广

🧪 用CURL测试

# Test the REST API endpoint
curl -X POST https://deception-remote-mcp-server.<your-account>.workers.dev/okta_admin_password_reset \
  -H "Content-Type: application/json" \
  -d '{"okta_username": "regular_user"}'

# Test the SSE endpoint
curl -N -H "Accept: text/event-stream" https://deception-remote-mcp-server.<your-account>.workers.dev/sse

尝试使用敏感用户名查看不同的响应:

curl -X POST https://deception-remote-mcp-server.<your-account>.workers.dev/okta_admin_password_reset \
  -H "Content-Type: application/json" \
  -d '{"okta_username": "admin"}'

🔍 MCP连接故障排除

如果您在从Cloudflare AI Playground或其他客户端连接到MCP服务器时遇到问题:

  1. 检查SDK版本:确保您使用的是兼容版本的 @modelcontextprotocol/sdk (v1.13.1+)以及 agents 软件包(v0.0.100+)
  2. 验证工具结构:确保您的工具定义遵循标准格式: (name, parameters, handler)
  3. 避免自定义标题:不要向MCP或SSE端点添加自定义安全标头
  4. 卷曲测试:使用curl直接测试端点
  5. 检查浏览器控制台:在浏览器控制台中查找CORS错误或其他问题

📡 连接到Cloudflare AI游乐场

  1. 首选 https://playground.ai.cloudflare.com

  2. 输入您的MCP端点:

    https://deception-remote-mcp-server.<your-account>.workers.dev/sse
    

🔍 运作原理

  1. 蜜罐设置:部署为具有MCP和REST端点的Cloudflare Worker
  2. 欺骗层:作为具有现实行为的合法内部工具呈现
  3. 检测机制:当访问敏感工具时,会通过Canarytokens无声地触发警报
  4. 速率限制:通过可配置的请求限制防止滥用
  5. 现实的回应:实施可变延迟和上下文感知响应
  6. SSE通信:使用服务器发送的事件进行实时MCP协议通信

🧠 尝试这些MCP工具提示

使用Cloudflare的AI Playground或任何MCP兼容接口测试工具:

🟢 welcome 工具

use tool welcome with { }

显示欢迎消息,其中包含使用可用工具的指导。

🧑‍💼 ask_about_me 工具-现在有了增强的响应类别!

# Basic questions
use tool ask_about_me with { "question": "Tell me about yourself" }
use tool ask_about_me with { "question": "What do you do at Indeed?" }

# Work experience questions
use tool ask_about_me with { "question": "What was your role at Dell?" }
use tool ask_about_me with { "question": "What's your work experience?" }

# Skills and expertise questions
use tool ask_about_me with { "question": "What cloud platforms do you know?" }
use tool ask_about_me with { "question": "What are your security skills?" }

# Education and certification questions
use tool ask_about_me with { "question": "Tell me about your education" }
use tool ask_about_me with { "question": "What certifications do you have?" }

🔐 okta_admin_password_reset 工具

# Regular account
use tool okta_admin_password_reset with { "okta_username": "regular_user" }

# Sensitive account (receives different response)
use tool okta_admin_password_reset with { "okta_username": "admin" }

📊 最近的更新

版本1.4.0

  • MCP兼容性改进:修复了Cloudflare AI Playground连接的问题
  • 更新依赖关系:升级到最新的MCP SDK(v1.13.1)和代理包(v0.0.100)
  • 优化刀具结构:改进了工具定义,以提高兼容性
  • 简化响应处理:增强SSE和MCP端点处理

关键变化

  • 工具定义现在遵循标准格式: (name, parameters, handler)
  • 简化了MCP和SSE端点的响应处理
  • 删除了干扰MCP协议的自定义标头操作
  • 让MCP SDK直接处理标头以获得更好的兼容性

版本1.3.0

  • 添加了13个以上问题类别的增强简历数据
  • 已实现敏感用户名检测
  • 添加了OWASP AI安全测试脚本

🛡️ 未来的安全增强

查看SECURITY_IMPROVEMENTS.md文件,了解计划安全改进的详细路线图。

📄 许可证

麻省理工学院-仅供教育和研究使用。


🔗 实例: https://deception-remote-mcp-server.harshad-surfer.workers.dev/