Daedalus-Icarus/mcp-security-scanner

GitHub: Daedalus-Icarus/mcp-security-scanner

一款面向 MCP 服务器的安全审计框架,通过静态与行为分析在部署前检测权限滥用、prompt 注入、敏感信息泄露及不安全工具行为。

Stars: 0 | Forks: 1

# MCP Security Scanner MCP Security Scanner 可帮助开发者在 MCP 服务器部署到 AI agent 之前,识别安全漏洞、过度权限、prompt 注入风险、敏感信息泄露以及不安全的工具行为。 随着 MCP 在各类 AI 应用中的普及日益增长,确保工具的安全性与可信度变得至关重要。本项目为 MCP 生态系统提供了自动化的安全审计、风险评分以及切实可行的建议。 ## 目录 - [概述](#overview) - [为什么 MCP 安全至关重要](#why-mcp-security-matters) - [功能](#features) - [架构](#architecture) - [安装说明](#installation) - [快速开始](#quick-start) - [配置](#configuration) - [安全检查](#security-checks) - [示例报告](#example-report) - [路线图](#roadmap) - [贡献指南](#contributing) - [许可证](#license) # 概述 MCP Security Scanner 是一个专为 MCP (Model Context Protocol) 服务器设计的安全审计框架。 它会分析 MCP 工具、权限、prompt、配置以及集成情况,以检测可能使用户、系统或 AI agent 面临风险的安全薄弱环节。 该扫描器会同时执行静态分析与行为分析,以便在部署前揭示相关问题。 ### 目标 - 提升对 MCP 生态系统的信任度 - 降低 AI 工具集成中的安全风险 - 帮助开发者遵循安全最佳实践 - 提供清晰且切实可行的修复指导 - 在 CI/CD pipeline 中实现自动化安全验证 # 为什么 MCP 安全至关重要 MCP 服务器通常会为 AI agent 提供以下访问权限: - 文件系统 - API - 数据库 - 内部服务 - 外部网站 - 命令执行环境 - 业务工作流 配置不当的权限或不安全的工具行为可能会导致: - 数据泄露 - 凭证暴露 - Prompt 注入攻击 - 未经授权的操作 - 权限提升 - 远程代码执行风险 MCP Security Scanner 可帮助您在这些问题进入生产环境之前将其识别出来。 # 功能 ## 权限范围分析 检测权限过度宽松的 MCP 工具与功能。 检查内容包括: - 完全的文件系统访问权限 - 通配符权限 - 过度的工具权限 - 过宽的 API 访问范围 - 管理员操作 ## Prompt 注入检测 分析 prompt 和工具描述,排查注入漏洞。 检测内容: - 指令覆盖模式 - 上下文篡改企图 - Prompt 泄露风险 - 越狱式攻击向量 - 不安全的系统 prompt 暴露 ## 敏感信息扫描 识别暴露的凭证与敏感信息。 扫描内容: - API key - 访问 token - 密码 - 认证密钥 - 私有证书 - 环境变量 支持的扫描来源: - 源代码 - 配置文件 - 环境变量文件 - 文档 - Prompt 模板 ## 网络访问分析 审查外部通信能力。 检测内容: - 不受限制的出站请求 - 未知的 endpoint - 可疑的目标地址 - 数据渗出风险 - 缺失的域名白名单 ## 文件系统访问分析 评估文件访问权限及敏感路径的使用情况。 检查内容: - 根目录访问权限 - 主目录访问权限 - SSH key 暴露 - 系统配置访问权限 - 敏感文件操作 示例: ``` / ~/.ssh /etc /var /private ``` ## 危险操作验证 确保高风险操作需要明确的用户批准。 示例: - 文件删除 - 批量修改 - 命令执行 - 外部 API 操作 - 数据导出 - 数据库变更 ## 安全风险评分 生成全面的安全评估。 包含内容: - 总体安全评分 - 严重性分类 - 风险细分 - 结果摘要 - 修复指导 严重性级别: - 严重 - 高 - 中 - 低 - 信息 ## 机器可读报告 支持以多种格式导出结果: - JSON - HTML - Markdown - SARIF(计划中) 非常适合 CI/CD 与自动化合规工作流。 # 架构 ``` ┌─────────────────────┐ │ MCP Server │ └──────────┬──────────┘ │ ▼ ┌─────────────────────┐ │ Scanner Engine │ └──────────┬──────────┘ │ ▼ ┌─────────────────────┐ │ Security Analyzers │ ├─────────────────────┤ │ Permission Checker │ │ Prompt Inspector │ │ Secret Scanner │ │ Network Analyzer │ │ Filesystem Auditor │ │ Action Validator │ └──────────┬──────────┘ │ ▼ ┌─────────────────────┐ │ Risk Scoring │ └──────────┬──────────┘ │ ▼ ┌─────────────────────┐ │ Report Generator │ └─────────────────────┘ ``` # 安装说明 ## 前置条件 - Node.js 18+ - npm、pnpm 或 yarn ## 克隆仓库 ``` git clone https://github.com/your-org/mcp-security-scanner.git cd mcp-security-scanner ``` ## 安装依赖 ``` npm install ``` # 快速开始 扫描 MCP 服务器: ``` mcp-security-scanner scan ./my-mcp-server ``` 生成 HTML 报告: ``` mcp-security-scanner scan ./my-mcp-server --report html ``` 导出 JSON 输出: ``` mcp-security-scanner scan ./my-mcp-server --report json ``` 指定自定义配置: ``` mcp-security-scanner scan ./my-mcp-server --config scanner.yaml ``` # 配置 配置文件示例: ``` scanner: permissions: true promptInjection: true secrets: true network: true filesystem: true confirmations: true output: format: html includeRecommendations: true severity: failOn: - critical - high ``` # 安全检查 该扫描器会根据安全最佳实践对 MCP 服务器进行评估,其中包括: ## 最小权限原则 - 最小的必要权限 - 受限制的能力 - 受控的访问范围 ## 敏感信息保护 - 凭证检测 - Token 暴露预防 - 环境安全 ## Prompt 安全 - 注入抵抗力 - 上下文完整性 - Prompt 隔离 ## 文件系统安全 - 敏感路径保护 - 受控的文件访问 - 受限的写入操作 ## 网络安全 - 已批准的目标地址 - 域名限制 - 数据传输验证 ## Human-in-the-Loop 控制 - 明确确认 - 审批工作流 - 安全检查点 # 示例报告 ``` ─────────────────────────────── MCP SECURITY SCAN REPORT ─────────────────────────────── CRITICAL • API key detected in .env HIGH • Tool has unrestricted filesystem access MEDIUM • External network access is not restricted LOW • Missing tool description metadata Security Score: 78/100 Recommendations: • Move secrets to environment management • Restrict filesystem permissions • Implement domain allowlists ``` # 贡献指南 欢迎并感谢您的贡献。 参与贡献的方式: - 报告 bug - 提议新的安全检查 - 改进文档 - 提交 pull request - 分享真实的 MCP 安全案例 ### 开发环境设置 ``` git clone https://github.com/your-org/mcp-security-scanner.git cd mcp-security-scanner npm install npm run dev ``` ### Pull Request 指南 1. 创建一个 feature 分支 2. 在适用时添加测试 3. 遵循现有的代码规范 4. 更新文档 5. 提交一个 pull request # 许可证 基于 MIT 许可证分发。 详情请参阅 [LICENSE](LICENSE) 文件。 ## 免责声明 MCP Security Scanner 可辅助识别潜在的安全风险,但不保证绝对的安全。安全评估应与代码审查、测试、威胁建模及运营最佳实践相结合。
标签:AI Agent安全, MCP安全扫描, MITM代理, StruQ, Web报告查看器, 云安全监控, 暗色界面, 自动化攻击, 静态分析