ruouchuoihot/splunk-mcp-security
GitHub: ruouchuoihot/splunk-mcp-security
基于模型上下文协议(MCP)的服务器,旨在将AI助手安全连接至Splunk实例,以实现自动化威胁狩猎、安全检测与SOC运营。
Stars: 1 | Forks: 0
# 🛡️ Splunk Security MCP
**面向 AI 助手的蓝队 SIEM 集成** — 将 Claude、VSCode Copilot、Antigravity 或任何兼容 MCP 的客户端连接到您的 Splunk 实例,以进行安全运营。
基于 [Model Context Protocol](https://modelcontextprotocol.io/) 标准构建。
## 功能简介
```
┌──────────────┐ MCP (stdio/SSE) ┌────────────────────┐ REST API ┌──────────┐
│ AI Assistant │ ◄────────────────────► │ Splunk Security │ ◄──────────────► │ Splunk │
│ │ │ MCP Server │ Port 8089 │ Instance │
└──────────────┘ └────────────────────┘ └──────────┘
```
您的 AI 助手将获得以下能力:
- 🔍 **威胁情报 (IOC) 狩猎** — 自动检测 IP/哈希/域名/邮箱/CVE 并在所有数据中搜索
- 🚨 **威胁检测** — 暴力破解、横向移动、数据窃取
- 🎯 **MITRE ATT&CK** — 针对 25+ 种技术运行预构建的检测查询
- 📊 **SOC 运营** — 安全态势、告警历史、日志源健康状况
- 👤 **用户调查** — 活动时间线、源 IP、访问的系统
- 🔎 **运行 SPL** — 内置风险评分和敏感数据掩码
## 工具(共 17 个)
### 核心
| 工具 | 描述 |
|------|-------------|
| `validate_spl` | 在执行前对 SPL 查询进行风险评分 (0-100) |
| `search_splunk` | 带风险防护的单次搜索 |
| `search_export` | 流式传输大型结果集 |
| `get_indexes` | 列出带有元数据的索引 |
| `get_saved_searches` | 列出保存的搜索 |
| `run_saved_search` | 按名称执行保存的搜索 |
| `create_alert` | 通过 API 创建自动化的保存搜索/告警 |
| `get_server_config` | 服务器配置 + Splunk 健康检查 |
### 安全 / 蓝队
| 工具 | 描述 |
|------|-------------|
| `hunt_ioc` | 在所有字段和索引中搜索 IOC |
| `hunt_anomalies` | 检测可疑的父子进程、LolBins 和 CLI 模式 |
| `correlate_activity` | 将进程创建与网络出站连接关联 |
| `get_host_timeline` | 主机的按时间顺序排列的安全时间线 |
| `detect_bruteforce` | 查找暴力破解攻击 (Windows + Linux + Web) |
| `detect_lateral_movement` | 识别可疑的登录和服务创建 |
| `detect_data_exfil` | 标记大量出站数据 (网络 + 端点/EDR) |
| `mitre_search` | 按 MITRE ATT&CK 技术 ID 运行检测 |
| `list_mitre_techniques` | 浏览可用的检测目录 |
| `get_security_posture` | 高级安全概览 |
| `analyze_user` | 用户行为调查 |
| `check_log_sources` | 查找静默/失效的日志源 |
| `get_alert_history` | 列出最近触发的告警 |
| `get_query_history` | 当前会话的审计跟踪 |
### 引导式提示词
- **`incident_triage`** — 行为式 IR 分诊 (进程 -> 网络 -> 时间线)
- **`threat_hunt`** — 基于 MITRE ATT&CK 的假设驱动型狩猎
- **`daily_soc_review`** — 轮班交接检查清单
## 快速开始
### 1. 安装
```
cd splunk-mcp-server
cp .env.example .env
# 使用您的 Splunk 凭证编辑 .env
# 安装依赖项
pip install -r requirements.txt
# (可选)作为可编辑包安装
pip install -e .
```
### 2. 运行
```
# stdio 模式(用于 Claude Desktop / VSCode / Antigravity)
python -m splunk_security_mcp
# SSE 模式(用于 web 客户端)
TRANSPORT=sse python -m splunk_security_mcp
```
### 3. 连接到您的 AI 客户端
#### VSCode (Copilot / Copilot Chat)
项目中包含 `.vscode/mcp.json`。编辑 Splunk 凭据,然后:
1. 在此项目文件夹中打开 VSCode
2. MCP 服务器从 `.vscode/mcp.json` 自动注册
3. 使用 Copilot Chat 与 Splunk 工具交互
#### Claude Desktop
添加到 `claude_desktop_config.json`:
```
{
"mcpServers": {
"splunk-security": {
"command": "python",
"args": ["-m", "splunk_security_mcp"],
"cwd": "E:/app/splunk-mcp-server",
"env": {
"TRANSPORT": "stdio",
"SPLUNK_HOST": "your-splunk-host",
"SPLUNK_PORT": "8089",
"SPLUNK_USERNAME": "admin",
"SPLUNK_PASSWORD": "your-password"
}
}
}
}
```
#### Antigravity (Gemini)
添加到 `.gemini/settings.json`:
```
{
"mcpServers": [
{
"name": "splunk-security",
"command": "python",
"args": ["-m", "splunk_security_mcp"],
"cwd": "E:/app/splunk-mcp-server",
"env": {
"TRANSPORT": "stdio",
"SPLUNK_HOST": "your-splunk-host",
"SPLUNK_PORT": "8089",
"SPLUNK_USERNAME": "admin",
"SPLUNK_PASSWORD": "your-password"
}
}
]
}
```
### Docker
```
cp .env.example .env
# 编辑 .env
docker compose up -d
```
## MITRE ATT&CK 覆盖范围
| 平台 | 技术数量 | 示例 |
|----------|-------------|----------|
| Windows | 10 | PowerShell、计划任务、RDP、LSASS、进程注入 |
| Linux | 6 | Shell 执行、Cron、SSH 密钥、日志清除、SUID |
| Network | 5 | C2 信标、DNS 隧道、端口扫描、数据窃取 |
| Endpoint/EDR | 3 | 勒索软件、混淆、恶意文件执行 |
| Multi-platform | 2 | 服务创建、暴力破解 |
## 配置
所有设置通过 `.env` 完成 — 完整参考请参见 `.env.example`。
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `TRANSPORT` | `stdio` | `stdio` 或 `sse` |
| `RISK_THRESHOLD` | `75` | 允许的最大风险评分 (0-100) |
| `SAFE_TIME_WINDOW` | `24h`` | 搜索的“安全”时间范围 |
| `MASK_SENSITIVE_DATA` | `false` | 在输出中掩码信用卡、SSN、邮箱、API 密钥 |
| `WINDOWS_INDEX` | `wineventlog` | 默认 Windows 日志索引 |
| `LINUX_INDEX` | `linux` | 默认 Linux 日志索引 |
| `NETWORK_INDEX` | `firewall` | 默认网络日志索引 |
| `EDR_INDEX` | `edr` | 默认 EDR 日志索引 |
## 项目结构
```
splunk-mcp-server/
├── splunk_security_mcp/ # Main package
│ ├── __main__.py # Entry point
│ ├── config.py # Settings management
│ ├── server.py # MCP tools, resources, prompts
│ ├── connector.py # Splunk REST API client
│ ├── validator.py # SPL risk assessment
│ ├── sanitizer.py # Sensitive data masking
│ ├── formatter.py # Output renderers
│ ├── threat_hunter.py # Security query builders
│ ├── mitre_atlas.py # MITRE ATT&CK catalog
│ └── log.py # Logging
├── tests/ # Unit tests
├── .vscode/mcp.json # VSCode MCP config
├── pyproject.toml
├── .env.example
├── Dockerfile
└── docker-compose.yml
```
## 测试
```
pip install pytest
pytest tests/ -v
```
## 许可证
MIT
标签:AI 助手, AMSI绕过, API 集成, Claude, Cloudflare, CVE, CVE检测, DevSecOps, IOCs, MCP, MITRE ATT&CK, Model Context Protocol, PoC, SPL, VSCode Copilot, 上游代理, 告警管理, 威胁检测, 安全运营, 扫描框架, 数字签名, 数据渗出, 数据脱敏, 暴力破解, 横向移动, 溯源调查, 红队行动, 编程规范, 网络安全, 请求拦截, 逆向工具, 隐私保护, 风险评分