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, 上游代理, 告警管理, 威胁检测, 安全运营, 扫描框架, 数字签名, 数据渗出, 数据脱敏, 暴力破解, 横向移动, 溯源调查, 红队行动, 编程规范, 网络安全, 请求拦截, 逆向工具, 隐私保护, 风险评分