🚀 安全基础设施MCP服务器
这是一个全面的 安全 MCP(模型上下文协议)服务器实现集合,专为安全平台集成而设计,具备企业级的安全强化措施,旨在解决安全平台集成中的安全问题,为企业提供可靠的安全保障。
🚀 快速开始
安装
git clone https://github.com/jmstar85/SecurityInfrastructure.git
cd SecurityInfrastructure
pip install -r requirements.txt
cp .env.example .env
安全配置
python -c "
import json
with open('.env', 'r') as f:
content = f.read()
if 'REPLACE_WITH_YOUR' in content:
print('⚠️ 请更新 .env 文件中的占位凭证')
else:
print('✅ 配置似乎已自定义')
"
python src/splunk_server.py
python src/crowdstrike_server.py
python src/misp_server.py
✨ 主要特性
🛡️ 安全至上的设计
本项目经过全面的安全强化,以解决关键漏洞并实施安全最佳实践:
✅ 安全改进(最新更新)
- 🔴 高严重级修复:
- 通过查询清理和危险命令阻止来防止 SPL 注入
- 使用 defusedxml 进行安全的 XML 解析,防止 XXE 攻击
- 从所有配置文件中彻底移除硬编码凭证
- 🟡 中严重级修复:
- 为所有 API 通信强制使用 TLS 1.2+ 和强密码套件
- 在所有服务器上进行全面的输入验证和清理
- 防止命令执行风险和注入攻击
- 清理错误消息,防止信息泄露
- 🔵 额外的安全特性:
- 通过模式匹配防止 FQL/SPL 注入攻击
- 强制进行 SSL 证书验证
- 对 API 响应进行数据清理
- 提供带有安全占位符的安全配置模板
- 全面的 .gitignore 文件,防止凭证暴露
🔒 安全文档
请参阅 SECURITY.md 以获取全面的安全指南、配置最佳实践和漏洞报告程序。
🔐 支持的平台
Splunk SIEM
- 安全的 SPL 查询执行:执行搜索处理语言查询,防止注入攻击
- 事件搜索:通过清理后的过滤条件搜索所有索引中的安全事件
- 基于时间的分析:验证时间范围和自定义时间窗口
- 异步作业管理:创建和监控搜索作业,并安全地检索结果
- JSON 结果格式:结构化输出,过滤敏感数据
CrowdStrike EDR
- 安全的检测搜索:使用经过验证的 FQL(Falcon 查询语言)查询检测结果
- 检测详情:检索清理后的检测摘要和元数据
- OAuth 2.0 认证:通过适当的令牌管理实现安全的 API 访问
- 输入验证:全面的参数验证和白名单机制
- 实时威胁数据:通过安全过滤访问最新的端点检测数据
Microsoft MISP
- 事件搜索:通过输入清理和验证查询 MISP 事件
- IOC 属性搜索:搜索指标时防止 XSS 和注入攻击
- 多格式支持:通过内容验证处理各种 IOC 类型
- SSL 安全:强制进行证书验证,并显示安全警告
- RESTful API 集成:支持安全的 MISP REST API,清理错误信息
💻 使用示例
基础用法
一旦与 Claude Desktop 进行安全配置后,你可以使用自然语言与安全平台进行交互:
Splunk SIEM 查询(防注入)
"搜索过去 6 小时内失败的 SSH 登录尝试"
"查找来自 IP 192.168.1.100 的所有认证事件"
"显示昨天的高优先级安全警报"
"搜索安全索引中包含 '恶意软件' 的事件"
CrowdStrike EDR 查询(经过验证)
"显示今天所有高严重级别的检测结果"
"查找具有行为模式的端点检测结果"
"按创建时间列出最近的检测结果"
"搜索特定主机名上的检测结果"
MISP 威胁情报(经过清理)
"搜索与特定威胁行为者相关的事件"
"查找所有 IP 地址的威胁指标"
"查找上周的域名威胁指标"
"搜索已发布的关于网络钓鱼的威胁情报事件"
高级用法
Splunk SIEM 工具(安全强化)
search-events
:执行经过清理的 SPL 查询,防止注入攻击
query = "index=security sourcetype=auth action=failure"
earliest_time = "-24h"
CrowdStrike EDR 工具(安全强化)
search-detections
:使用 FQL 验证和白名单机制查询检测结果
filter_query = "max_severity:'high'"
sort = "created_timestamp.desc"
MISP 工具(安全强化)
search-events
:通过输入清理查询威胁情报
search-attributes
:搜索 IOC 时防止 XSS 和注入攻击
type = "ip-dst"
category = "Network activity"
🔧 技术细节
MCP 服务器工具
Splunk SIEM 工具(安全强化)
search-events
:执行经过清理的 SPL 查询,防止注入攻击
CrowdStrike EDR 工具(安全强化)
search-detections
:使用 FQL 验证和白名单机制查询检测结果
MISP 工具(安全强化)
search-events
:通过输入清理查询威胁情报
search-attributes
:搜索 IOC 时防止 XSS 和注入攻击
优化的项目结构
SecurityInfrastructure/
├── src/ # 安全的 MCP 服务器实现
│ ├── splunk_server.py # Splunk SIEM 集成(强化)
│ ├── crowdstrike_server.py # CrowdStrike EDR 集成(强化)
│ └── misp_server.py # Microsoft MISP 集成(强化)
├── config/ # 安全的配置模板
│ ├── mcp-settings.json # MCP 客户端配置(清理后)
│ └── splunk.yaml # Splunk 配置模板
├── tests/ # 安全验证测试
├── SECURITY.md # 安全指南和最佳实践
├── config-example.json # 安全配置模板
├── .env.example # 环境变量模板(安全)
├── .gitignore # 全面的凭证保护
├── requirements.txt # 最小化的安全依赖项
├── INSTALLATION.md # 详细的设置指南
├── setup-guide.md # 快速设置模板
└── docker-compose.yml # 容器配置
注意:已移除前端组件、不必要的 Node.js 文件和开发工件,以减少攻击面并优化安全态势。
安全的 MCP 客户端配置
Claude Desktop 设置(安全)
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
安全配置模板:
{
"mcpServers": {
"security-infrastructure-splunk": {
"command": "python",
"args": ["/FULL/PATH/TO/SecurityInfrastructure/src/splunk_server.py"],
"env": {
"SPLUNK_HOST": "REPLACE_WITH_YOUR_SPLUNK_HOST",
"SPLUNK_TOKEN": "REPLACE_WITH_YOUR_API_TOKEN",
"SPLUNK_VERIFY_SSL": "true"
}
}
}
}
⚠️ 重要提示
切勿将真实凭证提交到版本控制系统。请使用提供的模板,并将占位符替换为实际值。
安全特性
核心安全实现
- 输入验证:对所有用户输入进行全面的清理和验证
- 注入防护:防止 SPL、FQL、SQL 和 XSS 注入攻击
- 安全通信:强制使用 HTTPS/TLS 1.2+ 和强密码套件
- 错误清理:使用通用错误消息,防止信息泄露
- 认证安全:通过适当的验证实现安全的令牌/凭证处理
安全架构
- 多种认证方法:基于会话、基于令牌和 OAuth 2.0,默认采用安全设置
- SSL/TLS 强制:对所有连接强制进行证书验证
- API 安全:实施速率限制、超时强制和连接池限制
- 配置安全:使用安全模板、凭证掩码和 .gitignore 保护
数据保护
- 输出清理:从 API 响应中移除敏感字段
- 凭证管理:不使用硬编码的机密信息,保护环境变量
- 日志安全:在日志和审计跟踪中过滤敏感数据
- 会话管理:设置适当的令牌过期时间和安全存储
安全验证
本项目包含全面的安全验证:
python -m pytest tests/ -v
python -c "
import os
config_files = ['.env', 'config/mcp-settings.json']
for f in config_files:
if os.path.exists(f):
with open(f) as file:
content = file.read()
if 'REPLACE_WITH_YOUR' in content:
print(f'⚠️ {f} 包含占位凭证')
else:
print(f'✅ {f} 似乎已配置')
"
安全指标
- 漏洞状态:所有高和中严重级别的问题已解决
- 安全覆盖率:83% 的安全验证测试通过
- 代码质量:全面的输入验证和错误处理
- 攻击面:通过移除组件和优化最小化
📚 详细文档
要求
- Python 3.11+
- 安全平台的安全访问凭证(配置正确)
- 兼容 MCP 的客户端(推荐使用 Claude Desktop)
- 用于生产部署的 SSL/TLS 证书
安全凭证管理
Splunk SIEM(安全设置)
- API 令牌(强烈推荐),并具有最小必要权限
- 需要验证 HTTPS 端点
- 搜索权限 仅限于必要的索引
CrowdStrike EDR(安全设置)
- 客户端 ID 和 客户端密钥,遵循最小权限原则
- API 权限:检测(只读),范围有限
- 验证 基础 URL 并强制使用 HTTPS
Microsoft MISP(安全设置)
- API 密钥,尽可能具有只读权限
- MISP 实例 URL,进行 SSL 证书验证
- 配置 超时设置 以确保安全
贡献
- 分叉仓库
- 创建功能分支 (
git checkout -b feature/security-enhancement
)
- 遵循 SECURITY.md 中的安全指南
- 为新功能添加安全测试
- 提交时进行安全验证 (
git commit -am '添加安全功能'
)
- 推送到分支 (
git push origin feature/security-enhancement
)
- 创建包含安全审查清单的拉取请求
安全资源
安全报告
如果你发现安全漏洞,请:
- 不要 创建公开问题
- 将安全细节通过电子邮件发送给维护者
- 在披露之前给修复留出合理的时间
- 遵循负责任的披露实践
📄 许可证
本项目用于安全研究和教育目的,重点关注安全实现实践。
⭐ 如果你觉得这个安全实现很有用,请给它点个星!
最新安全更新:2024 年 12 月 - 全面的安全强化,修复漏洞并进行优化。