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代理, 多模态安全, 安全分诊, 安全运营, 扫描框架, 数据可视化, 自定义脚本, 逆向工具