🚀 网络哨兵MCP服务器
网络哨兵MCP服务器是一款全面的威胁情报聚合MCP(模型上下文协议)服务器,它为安全分析提供了对多个威胁情报源的统一访问,解决了安全分析中多源数据获取的难题,提升了分析效率和准确性。
🚀 快速开始
前提条件
- Python 3.8 或更高版本
- 兼容MCP的客户端(如Claude Desktop、Cursor等)
安装步骤
- 克隆仓库:
git clone https://github.com/jx888-max/cyber-sentinel-mcp.git
cd cyber-sentinel-mcp
- 安装依赖:
pip install -e .
- 配置API密钥:
python -m cyber_sentinel.setup_wizard
export VIRUSTOTAL_API_KEY=your_virustotal_api_key_here
export ABUSEIPDB_API_KEY=your_abuseipdb_api_key_here
- 验证安装:
python -c "from cyber_sentinel.server import app; print('✅ 安装成功!')"
API密钥设置
VirusTotal(强烈推荐)
- 免费套餐:每天1000次请求
- 功能:IP、域名、哈希和URL分析
- 访问 VirusTotal
- 创建免费账户
- 从API部分获取API密钥
- 添加到
.env
文件:VIRUSTOTAL_API_KEY=your_key_here
AbuseIPDB(强烈推荐)
- 免费套餐:每天1000次请求
- 功能:IP地址信誉和滥用报告
- 访问 AbuseIPDB
- 创建免费账户
- 从账户设置中获取API密钥
- 添加到
.env
文件:ABUSEIPDB_API_KEY=your_key_here
Shodan(可选)
- 访问 Shodan
- 创建账户并获取API密钥
- 添加到
.env
文件:SHODAN_API_KEY=your_key_here
URLhaus(无需API密钥)
- 免费:基本使用无需API密钥
- 功能:恶意软件URL和有效负载跟踪
✨ 主要特性
🔍 威胁情报
- 多源情报:聚合来自VirusTotal v3、AbuseIPDB、URLhaus、Shodan、ThreatFox和MalwareBazaar的数据
- 智能指标检测:自动检测IP地址、域名、文件哈希和URL
- 智能聚合:结合多个源的结果并进行置信度评分
- 异步性能:高性能并发处理
- 智能缓存:减少API调用并提高响应时间(1小时TTL)
- 速率限制:遵守所有源的API限制(默认60请求/分钟)
- 错误恢复:优雅处理API故障和超时
🛡️ 代码安全分析
- 多语言支持:分析Python、JavaScript、Java、C#、PHP、Go、Rust、C++和SQL代码
- 漏洞检测:识别硬编码秘密、SQL注入、XSS、路径遍历等
- 网络指标分析:提取并分析代码中发现的IP、域名和URL
- 安全替代方案:提供安全编码建议和替代方案
- 风险评分:计算全面的安全风险评分
📦 依赖安全
- 多平台支持:扫描NPM、Python、Maven、Cargo、Go和Composer依赖
- 漏洞检测:识别已知恶意包和过时依赖
- 安全建议:提供可操作的安全改进建议
- 风险评估:全面的依赖风险评分
🐳 基础设施安全
- Docker安全:分析Dockerfile配置以遵循安全最佳实践
- Kubernetes安全:扫描K8s清单以查找安全配置错误
- CI/CD集成:为DevOps管道提供安全分析
📊 报告与可视化
- 丰富报告:生成全面的安全分析报告
- 可视化仪表板:创建安全指标和趋势可视化
- 导出选项:支持多种输出格式(JSON、HTML、PDF)
- MCP协议:与支持MCP的AI助手完全兼容
🔧 MCP客户端配置
Claude Desktop
添加到 claude_desktop_config.json
文件:
{
"mcpServers": {
"cyber-sentinel": {
"command": "python",
"args": ["-m", "cyber_sentinel.server"],
"cwd": "/path/to/cyber-sentinel",
"env": {
"VIRUSTOTAL_API_KEY": "your_virustotal_key",
"ABUSEIPDB_API_KEY": "your_abuseipdb_key",
"SHODAN_API_KEY": "your_shodan_key"
}
}
}
}
Cursor/VS Code
添加到MCP配置文件:
{
"mcp.servers": {
"cyber-sentinel": {
"command": ["python", "-m", "cyber_sentinel.server"],
"cwd": "/path/to/cyber-sentinel",
"env": {
"VIRUSTOTAL_API_KEY": "your_virustotal_key",
"ABUSEIPDB_API_KEY": "your_abuseipdb_key"
}
}
}
}
💻 使用示例
🔍 威胁情报分析
分析IP地址8.8.8.8是否存在恶意活动
检查1.1.1.1是否安全可用
google.com是否安全?
检查example.com的安全状态
分析此MD5哈希:d41d8cd98f00b204e9800998ecf8427e
此URL是否安全:https://example.com/suspicious-path
显示所有威胁情报源的状态
🛡️ 代码安全分析
分析此Python代码的安全漏洞:
[paste your code here]
检查此JavaScript函数是否存在XSS漏洞:
[paste your code here]
扫描此SQL查询是否存在注入风险:
[paste your code here]
📦 依赖安全扫描
扫描这些项目依赖的漏洞:
package.json: [paste content]
requirements.txt: [paste content]
检查我的Python项目是否有过时的包:
[provide requirements.txt content]
🐳 基础设施安全
分析此Dockerfile的安全问题:
[paste Dockerfile content]
检查此Kubernetes部署是否存在安全配置错误:
[paste K8s YAML content]
📊 安全报告
为我的项目生成全面的安全报告
创建具有当前威胁态势的安全仪表板
将安全发现导出为HTML报告
🛠️ 可用的MCP工具
🔍 威胁情报工具
analyze_indicator
跨多个威胁情报源分析安全指标。
支持的指标:
- IP地址:IPv4地址(如
8.8.8.8
)
- 域名:任何域名(如
google.com
)
- 文件哈希:MD5、SHA1、SHA256哈希
- URL:完整的URL(如
https://example.com
)
返回结果:
- 总体信誉(干净/恶意/未知)
- 置信度评分(0 - 100%)
- 各个威胁情报源的结果
- 地理和ISP信息(针对IP)
- 详细分析数据
check_api_status
检查所有威胁情报源的配置和状态。
返回结果:
- API密钥验证状态
- 每个源的可用功能
- 速率限制配置
- 整体系统健康状况
🛡️ 安全分析工具
analyze_code_security
对源代码进行全面的安全分析。
参数:
code_content
:要分析的源代码
language
:编程语言(未指定时自动检测)
locale
:输出语言(zh/en)
返回结果:
- 安全漏洞及其严重程度
- 硬编码秘密和凭据
- 代码中发现的网络指标
- 安全编码建议
- 风险评分和补救指导
scan_project_dependencies
扫描项目依赖以查找安全漏洞。
参数:
project_files
:依赖文件的字典(如package.json、requirements.txt等)
返回结果:
- 已知恶意包
- 存在漏洞的过时依赖
- 安全建议
- 风险评估和评分
analyze_docker_security
分析Docker配置以遵循安全最佳实践。
参数:
dockerfile_content
:要分析的Dockerfile内容
返回结果:
scan_kubernetes_config
扫描Kubernetes清单以查找安全问题。
参数:
k8s_manifests
:Kubernetes YAML文件的字典
返回结果:
- 安全策略违规
- 权限提升风险
- 网络安全问题
- 合规建议
generate_security_report
生成带有可视化的全面安全报告。
参数:
analysis_results
:安全分析的组合结果
report_format
:输出格式(json/html/markdown)
返回结果:
📊 示例响应
{
"indicator": "8.8.8.8",
"type": "ip",
"overall_reputation": "clean",
"confidence": 100.0,
"sources_checked": 4,
"sources_responded": 3,
"malicious_sources": 0,
"clean_sources": 3,
"countries": ["US"],
"isps": ["Google LLC"],
"detailed_results": [
{
"source": "VirusTotal",
"reputation": "clean",
"malicious_count": 0,
"total_engines": 89
}
],
"errors": [],
"timestamp": "2024-01-15T10:30:00Z"
}
⚡ 性能与可靠性
🚀 高性能
- 异步架构:所有分析工具均采用高性能并发处理
- 智能缓存:1小时TTL减少API调用并提高响应时间
- 并行处理:跨多个威胁情报源同时进行分析
- 优化算法:高效的模式匹配和漏洞检测
🛡️ 可靠性与弹性
- 速率限制:可配置的限制(默认60请求/分钟),智能节流
- 超时处理:30秒请求超时防止挂起操作
- 错误恢复:优雅处理API故障和网络问题
- 后备机制:即使某些源不可用也能继续分析
- 重试逻辑:针对临时故障自动重试并采用指数退避
🔒 安全与隐私
🛡️ 数据保护
- 零数据存储:不永久存储任何指标、代码或分析结果
- 仅内存处理:所有分析在内存中进行并自动清理
- API密钥安全:通过环境变量和加密存储安全管理密钥
- 源隔离:每个威胁情报源独立运行,凭证隔离
🔐 隐私保护
- 本地处理:代码分析在本地进行,无需外部传输
- 错误隔离:错误消息或日志中绝不暴露敏感信息
- 审计跟踪:可选的安全事件日志以满足合规要求
- 数据最小化:仅处理必要的数据并立即丢弃
🧪 测试
运行测试套件以验证功能:
python -m pytest tests/ -v
python -c "
from cyber_sentinel.server import check_api_status
import asyncio
print(asyncio.run(check_api_status()))
"
📄 许可证
本项目采用MIT许可证 - 详情请参阅 LICENSE 文件。
🤝 贡献
- 分叉仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature
)
- 进行更改并添加测试
- 提交更改 (
git commit -m 'Add amazing feature'
)
- 推送到分支 (
git push origin feature/amazing-feature
)
- 打开拉取请求
🆘 支持
🙏 致谢
🛡️ 简化威胁情报分析。