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报告查看器, 云安全监控, 暗色界面, 自动化攻击, 静态分析