BeBecpp/BreachPilot

GitHub: BeBecpp/BreachPilot

一款由 MCP 驱动的 Splunk 安全事件分诊智能体,通过自动化调查工作流将原始日志转化为包含时间线、风险评分和响应建议的事件简报。

Stars: 0 | Forks: 0

# BreachPilot **由 MCP 驱动的 Splunk 安全分诊 agent** BreachPilot 是一个智能体安全调查控制台,可将 Splunk 安全日志转化为有据可查的事件时间线、风险评分和分析师响应计划。 它是专为 **Splunk Agentic Ops Hackathon** 构建的,重点关注 **安全** 赛道以及 **Splunk MCP Server 最佳应用** 奖。 ## 在线演示 **Vercel:** `breach-pilot.vercel.app` 演示实体: ``` jane.admin ``` ## BreachPilot 的功能 安全分析师通常会在警报触发后,因在多个 SPL 搜索之间切换而浪费时间。BreachPilot 可将这种手动分诊过程转化为结构化的调查工作流。 给定一个用户、IP 或主机,BreachPilot 将: 1. 规划调查工作流。 2. 通过 MCP 调查层运行限定范围的 Splunk 风格查询。 3. 关联身份验证、VPN、管理员、数据访问、端点和网络事件。 4. 构建事件时间线。 5. 计算风险评分和严重程度。 6. 生成可供分析师直接使用的证据卡和响应措施。 7. 透明地展示 SPL/MCP 工作流,以便分析师验证结果。 BreachPilot 并非通用的聊天机器人。它是一个专为 Splunk 数据设计的、专注且有人参与的闭环安全分诊工作流。 ## 演示场景 包含的演示数据集模拟了一次潜在的账户接管,以及随后的可疑数据访问。 实体: ``` jane.admin ``` 事件链: ``` Multiple failed logins → Successful login from same suspicious IP → VPN session from unusual location → Admin console access → Sensitive customer export request → Suspicious network egress → Service error spike ``` 预期输出: ``` Severity: Critical Risk Score: High Incident Type: Suspected account takeover and data exfiltration preparation Confidence: High ``` ## 核心功能 * **MCP 风格的调查工作流** * 展示从规划到响应建议的每一个 agent 步骤。 * **有据可查的时间线** * 将原始安全事件转化为按时间顺序排列的攻击路径。 * **风险评分** * 根据身份验证、访问、数据流动和网络信号对可疑行为进行评分。 * **分析师响应计划** * 推荐具体的后续操作,例如禁用会话、重置凭据、封锁 IP 以及审查导出日志。 * **SPL 查询透明度** * 显示调查期间使用的限定范围的 SPL 风格查询。 * **演示与真实集成模式** * 演示模式可直接使用样本数据运行。 * 真实模式的结构设计适用于 Splunk MCP Server / Splunk Enterprise 集成。 * **适配 Vercel** * 包含静态前端和 serverless API,便于进行公开的在线演示部署。 ## 架构 ``` User / Analyst | v BreachPilot Web Console | v Investigation API | v Agent Workflow Engine | +--> Query Planner +--> MCP Client Adapter +--> Evidence Correlator +--> Risk Scoring Engine +--> Response Recommendation Generator | v Splunk / Demo Security Events ``` 请参阅 [`architecture_diagram.md`](./architecture_diagram.md) 获取所需的架构图。 ## 技术栈 * 前端:HTML, CSS, JavaScript * API:Vercel Serverless Function / Node.js * 本地后端:Python * 数据:JSONL 合成 Splunk 风格安全事件 * 部署:Vercel * 目标平台:Splunk Enterprise + Splunk MCP Server ## 项目结构 ``` . ├── index.html ├── style.css ├── app.js ├── api/ │ └── investigate.js ├── app/ │ ├── main.py │ ├── agent.py │ ├── mcp_client.py │ └── scoring.py ├── data/ │ └── breachpilot_events.jsonl ├── scripts/ │ └── load_sample_data_to_splunk.py ├── architecture_diagram.md ├── SUBMISSION.md ├── FEEDBACK.md ├── DEPLOY_VERCEL.md ├── package.json ├── vercel.json ├── requirements.txt ├── .env.example └── LICENSE ``` ## 在本地运行 Vercel 演示 安装 Vercel CLI: ``` npm install -g vercel ``` 在本地运行: ``` vercel dev ``` 打开: ``` http://localhost:3000 ``` 测试: ``` jane.admin ``` ## 部署到 Vercel 将此仓库导入 Vercel。 推荐设置: ``` Framework Preset: Other Root Directory: ./ Build Command: empty Output Directory: empty Install Command: npm install ``` 然后进行部署。 ## 运行 Python 本地演示 ``` python -m app.main ``` 打开: ``` http://127.0.0.1:8000 ``` 测试: ``` jane.admin ``` ## 环境变量 复制示例 env 文件: ``` cp .env.example .env ``` 示例值: ``` MCP_MODE=demo SPLUNK_HOST=https://localhost:8089 SPLUNK_TOKEN=your_splunk_token_here SPLUNK_INDEX=breachpilot ``` 模式: ``` MCP_MODE=demo ``` 使用本地合成事件。 ``` MCP_MODE=real ``` 使用 Splunk MCP 集成路径。 ## SPL 查询示例 BreachPilot 使用简短且限定范围的调查查询。 ``` index=breachpilot user="jane.admin" earliest=-24h | table _time sourcetype user src_ip host action status risk_signal | sort _time ``` ``` index=breachpilot user="jane.admin" action IN ("failed_login", "successful_login") | stats count by action src_ip ``` ``` index=breachpilot user="jane.admin" risk_signal=* | stats values(risk_signal) as signals count by user src_ip host ``` ``` index=breachpilot (user="jane.admin" OR src_ip="45.77.12.8") | sort _time | table _time sourcetype user src_ip host action status risk_score risk_signal ``` 目的是保持调查查询的精确性、可解释性,并确保分析师可验证。 ## Splunk MCP Server 集成 BreachPilot 是围绕 Splunk MCP Server 概念设计的:通过受控的工具调用将 AI agent 连接到 Splunk 数据。 MCP 客户端层负责: 1. 接收来自 agent 的调查计划。 2. 将每个步骤转换为限定范围的 Splunk 查询。 3. 通过 MCP/Splunk 集成路径发送查询。 4. 将标准化事件返回给证据关联引擎。 5. 保留查询透明度供人工审查。 在演示模式下,此相同的工作流将针对内置的合成事件运行,评委无需连接真实的 Splunk 实例即可测试产品。 ## 将样本数据加载到 Splunk 该仓库包含合成的安全事件: ``` data/breachpilot_events.jsonl ``` 要通过 HEC 将事件加载到 Splunk 中,请配置您的环境: ``` SPLUNK_HEC_URL=https://localhost:8088/services/collector SPLUNK_HEC_TOKEN=your_hec_token_here SPLUNK_INDEX=breachpilot ``` 然后运行: ``` python scripts/load_sample_data_to_splunk.py ``` ## 为什么这很重要 SOC 团队经常面临警报疲劳和碎片化的调查工作流。一个警报可能需要进行身份验证搜索、VPN 审查、端点检查、数据访问验证以及网络关联分析。 BreachPilot 将该流程压缩为一个透明的调查工作流: ``` Alert/entity input → MCP-driven Splunk evidence collection → Correlated timeline → Risk score → Recommended response ``` 这有助于分析师更快地采取行动,同时保持由人工进行控制。 ## 黑客松契合度 BreachPilot 契合 **安全** 赛道,因为它利用 AI 和 Splunk 数据帮助安全团队更快地检测威胁、更高效地调查事件,并自动化部分分诊工作流。 它旨在竞争 **Splunk MCP Server 最佳应用** 奖,展示了一种由 agent 驱动的体验,将 AI 调查工作流与 Splunk 风格的运营安全数据相连接。 ## 演示视频脚本 建议的脚本包含在: ``` SUBMISSION.md ``` 推荐流程: ``` Problem → BreachPilot overview → Live investigation of jane.admin → Timeline, evidence, risk score → MCP/SPL workflow transparency → Security value ``` 请将视频时长控制在 3 分钟以内。 ## 许可证 MIT 许可证。详见 [`LICENSE`](./LICENSE)。 ## 作者 由 BeBecpp 为 Splunk Agentic Ops Hackathon 构建。
标签:MCP, MITM代理, 多模态安全, 安全分诊, 安全运营, 扫描框架, 数据可视化, 自定义脚本, 逆向工具