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 地址批量处理, 内存分配, 多智能体, 安全运营, 库, 应急响应, 异步事件驱动, 扫描框架, 网络信息收集, 自动化防御, 计算机取证, 逆向工具