RamvikasSV/SentinelFlow
GitHub: RamvikasSV/SentinelFlow
SentinelFlow 是一个异步事件驱动的多 Agent 安全事件响应系统,通过实时日志检测、LLM 威胁分类和自动化缓解措施将威胁解决时间从数小时缩短至秒级。
Stars: 0 | Forks: 1
# SentinelFlow 🛡️
**SentinelFlow** 是一个异步、事件驱动的多 Agent 事件响应系统,旨在实时检测、分类、调查和缓解服务器威胁。它通过部署一组专门的自主 Agent,将威胁平均解决时间(MTTR)从数小时缩短至数秒。
该项目提供了一个高级的赛博朋克风格 **Cyber Command Center** 仪表板,配备了可折叠面板、类似 ChatGPT 的操作员控制台,以及类似 Windows Snap 的布局配置。
## 🚀 核心功能
* **多 Agent 编排**:五个专门的 Agent(Log Scanner、Threat Classifier、Forensic Investigator、Response Agent 和 Coordinator)进行异步协作。
* **解耦架构**:围绕内存中的 Pub/Sub Event Broker 构建,保持各个 Agent 的隔离,确保在遭遇威胁激增时日志追踪不会被阻塞。
* **灵活的目标适配器**:支持在 **Simulation Mode**(用于快速本地演示)或 **Live SSH Mode**(远程保护真实的 Linux VPS 或本地 WSL2 容器)下运行。
* **强大的安全网与回退机制**:
- LLM 超时/配额限制会自动回退到基于规则的启发式算法。
- SSH 封禁命令在 UFW 规则失效时,会回退到原始的 IPTables。
- Web shell 上传处理在隔离失效时,会回退到直接删除。
* **Cyber Command Center**:一个带有样式的 UI,支持可折叠的列网格、活动选择布局、实时 Agent 状态 SVG 映射,以及聊天控制台内可水平滚动的 Markdown 表格。
## 📊 系统架构
```
graph TD
%% Define components
subgraph "Target Host (Simulated or Real Linux via SSH)"
Logs[(Log Files: auth.log, access.log)]
OSState[OS State: Processes, File Modifications, Sockets]
Firewall[Firewall: iptables / ufw]
end
subgraph "Cyber Agent Pipeline (Python Asyncio)"
Broker[Event Broker: Async Pub/Sub Queue]
Scanner[Log Scanner Agent]
Classifier[Threat Classifier Agent]
Forensics[Forensic Investigator Agent]
Response[Response Agent]
Coordinator[Crew Coordinator Agent]
end
subgraph "Cyber Command Center (Web UI)"
Dashboard[Real-time Web Dashboard]
ChatInterface[ChatGPT-style Operator Chat]
end
%% Data Streams
Logs -->|Tails in real-time| Scanner
Scanner -->|Anomaly Event| Broker
Broker -->|Dispatches Anomaly| Classifier
Classifier -->|LLM Threat Analysis| Broker
Broker -->|Dispatches High-Severity Incident| Forensics
Forensics -->|Queries OS State| OSState
Forensics -->|Forensic Evidence| Broker
Broker -->|Dispatches Evidence| Response
Response -->|Applies Block / Kills Process| Firewall & OSState
Response -->|Mitigation Status| Broker
%% Web Communication
Broker <-->|WebSockets / SSE| Dashboard
ChatInterface <-->|WebSocket Chat| Coordinator
Coordinator <-->|Controls/Queries| Broker
```
## 🛠️ Agent 团队
1. **📟 Log Scanner Agent**:实时追踪访问和身份验证日志,当特征匹配到暴力破解或注入异常时,立即发出警报。
2. **🧠 Threat Classifier Agent**:利用 Google Gemini LLM API(强制执行严格的 Pydantic schema)分析攻击向量,对威胁严重程度和置信度进行分级。
3. **🕵️♂️ Forensic Investigator Agent**:通过 SSH 连接,查询活动系统 socket 状态、文件更改以及正在运行的进程统计信息。
4. **🚫 Response Agent**:自动执行防火墙拦截(`ufw deny`),终止恶意进程的 PID,并隔离 Web shell。
5. **🤖 Crew Coordinator Agent**:通过聊天控制台将管理员直接桥接到 Agent 队列,执行使用自然语言编写的命令(例如 *status*、*unblock *、*show processes*)。
## 📦 快速开始
### 1. 安装
1. 克隆仓库:
git clone https://github.com/RamvikasSV/SentinelFlow.git
cd SentinelFlow
2. 创建并激活 Python 虚拟环境:
python -m venv venv
.\venv\Scripts\activate # Windows
source venv/bin/activate # macOS/Linux
3. 安装依赖项:
pip install -r requirements.txt
### 2. 配置环境 `.env`
在根目录下创建一个 `.env` 文件:
```
SYSTEM_MODE=simulation # 'simulation' or 'ssh'
GEMINI_API_KEY=your_gemini_api_key_here
# 仅在 SYSTEM_MODE=ssh 时需要
SSH_HOST=127.0.0.1
SSH_PORT=22
SSH_USERNAME=your_username
SSH_PASSWORD=your_password
SSH_KEY_PATH=
```
### 3. 运行平台
1. 启动 FastAPI 服务器:
uvicorn backend.main:app --host 127.0.0.1 --port 8000
2. 打开 Web 浏览器并访问:
[http://localhost:8000](http://localhost:8000)
## 📂 文档
详细的安装指南、测试场景和设计规范存放在 `/docs` 文件夹中:
* **[技术架构与构建指南](docs/PROJECT_GUIDE.md)**:深入了解 Pub/Sub 模式、结构化 schema 以及适配器的设计原理。
* **[用户设置与操作指南](docs/walkthrough.md)**:包含模拟测试(SSH 暴力破解、Web shell 上传)的手动测试步骤,以及如何在不使用信用卡的情况下配置 **本地 WSL2 沙箱**。
标签:IP 地址批量处理, 内存分配, 多智能体, 安全运营, 库, 应急响应, 异步事件驱动, 扫描框架, 网络信息收集, 自动化防御, 计算机取证, 逆向工具