返回市场
安全MCP

安全MCP

作者:makalin133 星标更新:2025-06-07

项目介绍

SecureMCP

SecureMCP 是一个全面的安全审计工具,旨在检测使用 模型上下文协议(MCP) 的应用程序中的漏洞和配置错误。它主动识别威胁,如 OAuth 令牌泄露、提示注入漏洞、恶意 MCP 服务器和工具中毒攻击。


🛡️ 功能

OAuth 令牌扫描器

  • 令牌格式验证和安全检查
  • 过期时间和范围分析
  • 存储安全性评估
  • 令牌端点验证
  • JWT 令牌分析

提示注入测试器

  • 多种注入载荷类型
  • 各种注入位置测试
  • 响应分析
  • 系统提示覆盖检测
  • 角色混淆攻击检测

身份验证及服务器完整性检查

  • SSL/TLS 配置验证
  • 身份验证方法测试
  • 安全头验证
  • 服务器安全性评估
  • HSTS 和 CSP 验证

报告生成

  • HTML 和 JSON 报告格式
  • 漏洞分类
  • 严重性评估
  • 补救建议
  • 统计摘要

👨‍💻 谁应该使用 SecureMCP?

  • 在应用中集成 MCP 的 AI 开发者
  • 保障 AI 模型交互安全的安全团队
  • 将 MCP 嵌入 CI/CD 流水线的 DevSecOps 工程师
  • 研究 AI 模型漏洞的研究人员
  • 评估 MCP 实现的安全审核员

🚀 快速开始

先决条件

  • Go 1.21+
  • Docker(可选,用于容器化部署)
  • Node.js(用于仪表板 UI)

安装

从源代码安装

git clone https://github.com/makalin/SecureMCP.git
cd SecureMCP
make build

使用 Docker

docker pull makalin/SecureMCP

基本用法

命令行

# 基本扫描
./securemcp scan --target https://your-mcp-server.com

# 使用特定选项进行扫描
./securemcp scan --target https://your-mcp-server.com \
    --scan-oauth \
    --scan-prompt-injection \
    --scan-authentication \
    --timeout 30s

# 生成 HTML 报告
./securemcp scan --target https://your-mcp-server.com --report html

# 生成 JSON 报告
./securemcp scan --target https://your-m- cp-server.com --report json

程序化使用

import "github.com/makalin/SecureMCP/internal/scanner"

// 创建扫描器实例
scanner := scanner.NewScanner()

// 基本扫描
results, err := scanner.Scan("https://your-mcp-server.com")

// 使用选项进行扫描
options := &scanner.ScanOptions{
    ScanOAuth:           true,
    ScanPromptInjection: true,
    ScanAuthentication:  true,
    TestPrompt:          "your test prompt",
    Timeout:             30 * time.Second,
}
results, err := scanner.ScanWithOptions(target, options)

报告生成

import "github.com/makalin/SecureMCP/internal/report"

// 创建报告生成器
generator := report.NewReportGenerator("reports")

// 生成报告
report, err := generator.GenerateReport(target, results)

// 保存为 HTML
err = generator.SaveReport(report, "html")

// 保存为 JSON
err = generator.SaveReport(report, "json")

📊 示例输出

命令行

$ ./securemcp scan --target https://example-mcp-server.com
[+] 扫描目标: https://example-mcp-server.com
[!] 检测到令牌存储漏洞
[!] 在工具 'AutoSummary' 中发现提示注入漏洞
[!] 检测到不安全的身份验证方法
[+] 报告已保存至 /reports/scan_2024_03_14_15_30_45.html

HTML 报告

HTML 报告包括:

  • 统计摘要
  • 漏洞详情
  • 严重性级别
  • 补救建议
  • 扫描元数据

JSON 报告

{
  "target": "https://example-mcp-server.com",
  "scan_time": "2024-03-14T15:30:45Z",
  "vulnerabilities": [
    {
      "type": "OAuth 令牌漏洞",
      "severity": "高",
      "description": "检测到令牌存储漏洞",
      "location": "https://example-mcp-server.com",
      "remediation": "实现安全的令牌存储并正确验证令牌"
    }
  ],
  "summary": {
    "total_vulnerabilities": 3,
    "critical_count": 0,
    "high_count": 1,
    "medium_count": 1,
    "low_count": 1
  }
}

🛠️ 开发

项目结构

SecureMCP/
├── cmd/
│   └── securemcp/        # 命令行界面
├── internal/
│   ├── scanner/          # 核心扫描功能
│   │   ├── oauth.go      # OAuth 令牌扫描
│   │   ├── prompt.go     # 提示注入测试
│   │   ├── auth.go       # 身份验证检查
│   │   └── scanner.go    # 主扫描器实现
│   └── report/           # 报告生成
├── config/               # 配置管理
├── Dockerfile           # 容器配置
└── Makefile            # 构建和开发任务

构建

# 构建二进制文件
make build

# 运行测试
make test

# 构建 Docker 镜像
make docker-build

# 在 Docker 中运行
make docker-run

📢 贡献

欢迎提交拉取请求!对于重大更改,请先打开一个问题来讨论您想要更改的内容。

  1. 分叉仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m '添加了惊人的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开一个拉取请求

🚀 许可证

MIT 许可证


🌐 链接


在您的 MCP 应用程序被利用之前保护它们。💪 使用 SecureMCP!