VMCP-MCP漏洞扫描程序
MCP(模型上下文协议)服务器的自动漏洞扫描平台。扫描任何公共GitHub存储库并跟踪整个MCP生态系统的安全漏洞。
这有什么作用
此存储库在MCP服务器上运行自动安全扫描,并集中存储结果。无需在目标存储库上进行设置,只需提供一个URL即可获取全面的漏洞报告。
主要特点:
- 🔍 扫描任何公共GitHub存储库
- 🤖 自动检测语言并选择合适的扫描仪
- ⚡ 并行扫描执行,快速获得结果
- 📊 集中式漏洞跟踪
- 🎯 按安全状态排序(首先是最干净的MCP)
快速开始
使用Makefile(推荐)
# Scan with all scanners (auto-detect)
make scan REPO_URL=https://github.com/org/mcp-repo
# Scan with specific scanner
make scan REPO_URL=https://github.com/org/mcp-repo SCANNERS=trivy
# Scan with multiple scanners
make scan REPO_URL=https://github.com/org/mcp-repo SCANNERS=trivy,osv-scanner,semgrep,yara使用GitHub操作UI
- 触发扫描:转到操作→ “漏洞扫描”→ 运行工作流
- 输入存储库URL:
https://github.com/org/mcp-repo - 查看结果:检查 SCAN_REULTS.md 对于汇总表
运作原理
User Triggers Workflow
↓
Clone Target Repository
↓
Detect Languages → Select Scanners
↓
┌────────────────────────────┐
│ Run Scanners (Parallel) │
│ • Trivy │
│ • OSV Scanner │
│ • Semgrep │
│ • YARA │
└────────────────────────────┘
↓
Aggregate Results
↓
Generate SCAN_RESULTS.md
↓
Create Pull Request目标存储库:从未修改-单独扫描 您的存储库:将所有漏洞数据存储在 results/ 目录
扫描仪
Trivy
容器和文件系统漏洞扫描程序。检测依赖项、操作系统包和应用程序库中的CVE。
它发现了什么: 已知的CVE、过时的包、容器映像中的安全问题
OSV扫描仪
开源漏洞数据库扫描程序。检查与覆盖多个生态系统(PyPI、npm、Go等)的OSV数据库的依赖关系。
它发现了什么: 具有详细补救信息的开源依赖关系中的漏洞
Semgrep
静态分析安全测试(SAST)工具。分析源代码的安全模式和潜在漏洞。
它发现了什么: SQL注入、XSS、不安全的加密、硬编码的秘密、代码质量问题
YARA
使用模式匹配的恶意软件和威胁检测扫描仪。检测可疑的代码模式、后门、混淆和已知的恶意软件签名。
它发现了什么: 恶意代码模式和后门、已知恶意软件签名(5290规则)、可疑行为(命令注入、文件操作)、代码混淆和反分析技术、凭证收集模式
规则: 用途 亚拉打造规则核心 5290条精心策划的规则
YARA帮助我们做什么: YARA通过检测恶意意图和行为而不仅仅是检测易受攻击的代码来补充现有的扫描程序。虽然Semgrep会发现编码错误(SQL注入、XSS),Trivy/OSV会在依赖关系中发现已知的CVE,但YARA会识别代码本身是否是恶意的,是否包含后门,或者是否表现出恶意软件中常见的可疑模式。
YARA提供的信息(与其他扫描仪相比):
- 行为检测:识别恶意模式(加密货币挖掘、数据泄露、C2通信)
- 恶意软件签名:匹配已知的恶意软件家族和变体
- 代码指纹:检测混淆、打包和反分析技术
- 情境匹配:准确显示匹配的字符串/模式以及匹配的位置
- 规则来源:包括规则作者、日期和源存储库,用于可追溯性
规则来源: YARA规则由YARA社区通过以下方式策划和维护 YARA-锻造,一个高质量YARA规则的协作平台。核心规则集包括全球安全研究人员的贡献,并定期更新新的威胁情报。
结果格式
SCAN_REULTS.md
所有扫描的MCP汇总表:
| 项目 | 总计 | 严重 | 高 | 中 | 低 | 可修复 | 扫描仪 | 状态 |
|---|---|---|---|---|---|---|---|---|
| org/repo | 5 | 0 | 1 | 3 | 1 | 2 | trivy,osv扫描仪,semgrep | 🟡 |
按安全状态排序:零漏洞的MCP首先出现
违规.json
每个存储库的详细发现:
{
"org/repo": {
"trivy": [
{
"id": "CVE-2024-1234",
"severity": "HIGH",
"summary": "Vulnerability description",
"fixed_version": "1.2.3",
"references": [{"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-1234"}]
}
],
"semgrep": [...],
"osv-scanner": [...]
}
}GitHub操作工作流
触发时,工作流会自动运行:
- 设置:安装Python、扫描程序、依赖项
- 矩阵扫描:在单独的滑道上并行运行每个扫描仪
- 聚合:将所有扫描仪结果合并为单个
violations.json - 报告:生成
SCAN_RESULTS.md带汇总表 - PR创建:自动创建包含调查结果的拉取请求
优势:
- 快速执行(并行扫描)
- 无数据丢失(扫描仪结果正确合并)
- 干净的结果(聚合后删除特定于扫描仪的文件)
安装
先决条件
- Python 3.13+
- uv包管理器
- Git
本地用法
# Clone the repository
git clone https://github.com/Alig1493/v-mcp-2.git
cd v-mcp-2
# Install dependencies
uv sync
# Scan a repository
uv run python -m vmcp.cli scan https://github.com/org/mcp-repo --output-dir results
# Aggregate results
uv run python -m vmcp.cli aggregate --results-dir results项目结构
v-mcp-2/
├── src/vmcp/
│ ├── cli.py # CLI entry point
│ ├── models.py # Vulnerability data models
│ ├── orchestrator.py # Parallel scanner execution
│ ├── scanners/ # Scanner implementations
│ │ ├── trivy.py
│ │ ├── osv.py
│ │ ├── semgrep.py
│ │ └── yara.py
│ └── utils/
│ ├── detect_language.py # Language detection
│ ├── aggregate_results.py # Results merging
│ └── enhance_cve_links.py # CVE link validation
├── .github/workflows/
│ └── scan-repo.yml # GitHub Actions workflow
├── results/ # Scan results (generated)
├── SCAN_RESULTS.md # Summary table (generated)
└── README.md # This file配置
工作流输入
- repo_url (必填):要扫描的GitHub存储库URL
- 扫描仪 (可选):以逗号分隔的扫描仪列表,留空以进行自动检测
例子
# Auto-detect scanners
repo_url: https://github.com/org/mcp-repo
scanners:
# Specific scanners only
repo_url: https://github.com/org/mcp-repo
scanners: trivy,osv-scanner,semgrep,yara许可证
MIT许可证
贡献
欢迎投稿!打开问题或拉取请求。
