安全扫描工具

一款用于扫描本地开发环境中安全风险的Chrome扩展,支持检测MCP服务器、Web开发服务器、数据库和API服务等。

  • by donghai88
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 donghai88/mcp-security-scanner

使用说明

MCP安全扫描器

英语 | 中文

用于扫描本地开发环境中的安全风险的Chrome扩展程序。

检测范围:MCP服务器、Web开发服务器、数据库、API服务等等。

⚠️ 免责声明

仅用于安全研究和测试您自己的系统。

快速开始

  1. 安装依赖项: npm install
  2. 生成图标: npm run generate-icons (或使用 create-icons.html)
  3. 启动测试服务器: npm start
  4. 在Chrome中加载扩展程序:
    • 打开 chrome://extensions/
    • 启用“开发人员模式”
    • 点击“加载解包”,选择项目目录
  5. 单击扩展图标开始扫描

有关详细说明,请参阅 QUICKSTART.md

特性

  • 🔍 扫描本地开发服务(MCP、web服务器、数据库等)
  • 🔐 检测SSE和HTTP端点
  • ⚠️ 识别未经身份验证的服务器
  • 📋 检索暴露的工具列表
  • 🎯 支持30+通用开发端口

用例

  • 安全审计:检查开发环境中意外暴露的服务
  • 学习与研究:了解Chrome扩展程序的安全边界
  • 团队协作:跨团队标准化安全扫描实践

背景

这个项目的灵感来自 Koi.ai对Chrome扩展程序和MCP安全性的研究在试图复制这些发现时,我们发现实际风险比描述的要小,因为大多数MCP服务器使用stdio模式(Chrome扩展程序无法访问),而不是基于网络的传输。

因此,该项目发展成为一个通用的开发环境安全审计工具。

技术细节

什么是MCP?

MCP(模型上下文协议)是AI代理与系统工具和资源交互的协议。它支持三种运输方式:

  1. 标准 (主流~90%)-通过标准输入/输出进行通信,无网络端口
  2. 服务器发送事件(SSE) -基于HTTP的服务器推送
  3. 可流式传输的HTTP -标准HTTP POST请求

运作原理

扩展程序扫描常见的开发端口(3000-9000),并尝试:

  1. 使用SSE和HTTP协议建立连接
  2. 识别MCP服务器和其他开发服务
  3. 检测身份验证状态
  4. 检索可用的工具和功能

建筑

┌─────────────────┐
│  popup.html/js  │  ← User Interface
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  background.js  │  ← Scanner Logic
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  localhost:*    │  ← Local Services
└─────────────────┘

项目结构

mcp-security-scanner/
├── manifest.json          # Chrome extension manifest
├── popup.html/js          # Extension UI
├── background.js          # Background scanner
├── test-mcp-server.js     # Test MCP server (demo)
├── generate-icons.js      # Icon generator
└── enhanced-scanner.js    # Enhanced scanner (future)

发展

先决条件

  • Node.js 16+
  • Chrome/Edge浏览器

运行测试

# Start test server
npm start

# The test server will run on localhost:3001
# It exposes intentionally vulnerable endpoints for testing

建筑

# Install dependencies
npm install

# Generate icons
npm run generate-icons

安全考虑

现实世界风险评估

根据我们的研究,实际的安全风险低于最初的假设:

场景 传输模式 普及率 Chrome可访问性 实际风险
克劳德桌面等。 标准偏差 ~90% ❌ 否 无
远程MCP服务 SSE/HTTP ~8% ❌ 否 无
本地开发 SSE/HTTP ~2% ✅ 是 低

建议

  • ✅ 使用stdio模式 (最安全)
  • ✅ 添加身份验证 如果使用SSE/HTTP模式
  • ✅ 关闭测试服务器 开发后
  • ✅ 审核Chrome扩展程序 定期
  • ⚠️ 别慌,但要保持警惕

相关研究

未来想法

如果您想扩展此项目:

  • 添加更多服务指纹(数据库、消息队列等)
  • 实施历史跟踪和比较
  • 导出扫描报告(JSON/CSV/HTML)
  • 支持自定义扫描规则和端口范围
  • Firefox扩展支持

备注:该项目作为研究报告存档。请随意分叉和扩展它以供自己使用。

项目状态

版本: 1.0.0 | 状态:已存档/研究完成

该项目是作为安全研究和学习练习完成的。主要发现:

  • MCP的实际安全风险低于预期(大多数使用stdio模式)
  • Chrome扩展程序可以访问本地主机,但现实世界的威胁情况有限
  • 项目演变为通用的开发环境安全审计工具

如果你需要额外的功能,可以随意分叉和扩展。

许可证

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

免责声明

仅用于研究和教育目的。未经授权访问您不拥有的系统是非法的。


备注:此工具用于安全研究和审核您自己的开发环境。在扫描任何系统之前,始终获得适当的授权。