Athar2410/multi-agent-soc

GitHub: Athar2410/multi-agent-soc

基于 CrewAI 和本地 LLM 的多智能体安全运营中心,通过四个协作 AI 智能体实现网络安全事件的自动检测、调查、分诊和报告,并针对高严重性警报设有人工审批关卡。

Stars: 0 | Forks: 0

# 🛡️ 多智能体 SOC (安全运营中心) 一个自主的、基于 LLM 的安全运营中心,使用 CrewAI、ChromaDB 和 Streamlit 构建。通过一系列专业化 AI 智能体来检测、调查和分流网络安全事件——并针对高严重性警报设有人工干预审批关卡。 ## 🏗️ 架构 ``` Log Sources (Zeek / Syslog / Windows Events) ↓ ingestor.py (ML classification + ChromaDB vector store) ↓ pipeline_runner.py (polls for new high-severity alerts every 60s) ↓ orchestrator.py ┌─────────────────────────────────────────┐ │ Phase 1 — Triage │ │ assign_severity() → attack type + score│ │ │ │ Phase 2 — Threat Hunting │ │ query_vector_db() → related logs │ │ mitre_lookup() → ATT&CK mapping │ │ enrich_ioc() → AbuseIPDB + VT │ │ │ │ Phase 3 — Forensics │ │ timeline_reconstruct() → event chain │ │ lateral_movement_check() → spread │ │ │ │ Phase 4 — ReporterAgent (CrewAI LLM) │ │ → Structured Markdown incident report │ └─────────────────────────────────────────┘ ↓ severity >= 8? hitl_queue.db (SQLite HITL gate) ↓ dashboard.py (Streamlit) ┌──────────────────────────────┐ │ 🔴 Pending Approvals │ │ 📋 Alert History │ │ 📊 SOC Metrics │ └──────────────────────────────┘ ``` ## 🤖 智能体 | 智能体 | 角色 | 工具 | |---|---|---| | **TriageAgent** | 分类攻击类型和严重性评分 | `assign_severity` | | **HunterAgent** | 语义日志搜索 + IOC 扩充 + MITRE 映射 | `query_vector_db`, `enrich_ioc`, `mitre_lookup` | | **ForensicsAgent** | 攻击时间线重建 + 横向移动检测 | `timeline_reconstruct`, `lateral_movement_check` | | **ReporterAgent** | 将所有发现综合成结构化的事件报告 | 无 (仅推理) | ## 🧰 技术栈 | 组件 | 技术 | |---|---| | 智能体框架 | CrewAI + Ollama (llama3.1 — 完全本地) | | 向量数据库 | ChromaDB (语义日志搜索) | | ML 分类器 | 基于 NSL-KDD 数据集训练的 Random Forest | | 威胁情报 | AbuseIPDB API + VirusTotal API | | 威胁知识库 | MITRE ATT&CK Enterprise (本地 JSON) | | HITL 队列 | SQLite | | 分析师仪表盘 | Streamlit | | 日志源 | Zeek, Syslog, Windows Event Logs | ## 🚀 设置 ### 1. 克隆并安装依赖 ``` git clone https://github.com/Atharva2410/multiagentsoc.git cd multiagentsoc python -m venv soc_venv soc_venv\Scripts\activate pip install -r requirements.txt ``` ### 2. 使用 llama3.1 启动 Ollama ``` ollama pull llama3.1 ollama serve ``` ### 3. 下载 MITRE ATT&CK 数据 ``` iwr "https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json" -OutFile "mitre_attack.json" ``` ### 4. 添加 API 密钥 创建 `.env` 文件: ``` ABUSEIPDB_API_KEY=your_abuseipdb_key_here VIRUSTOTAL_API_KEY=your_virustotal_key_here ``` ### 5. 生成日志并摄取 ``` python log_generator.py python ingestor.py ``` ### 6. 运行流水线 ``` python orchestrator.py # 或 continuous mode: python pipeline_runner.py ``` ### 7. 启动仪表盘 ``` streamlit run dashboard.py ``` ## 📊 仪表盘功能 - **待处理审批** — 审查报告,批准/拒绝/升级警报 - **警报历史** — 包含分析师和时间戳的完整审计追踪 - **SOC 指标** — KPI、攻击分布、MTTR、误报率 ## 🔬 ML 分类模型 基于 NSL-KDD 数据集训练的 Random Forest: | 类别 | 描述 | |---|---| | `normal` | 合法流量 | | `dos` | 拒绝服务 | | `probe` | 网络侦察 | | `r2l` | 远程到本地 | | `u2r` | 用户到 Root — 权限提升 | | `lateral_movement` | SMB/RDP 传播 (T1021) | | `c2_beacon` | 命令与控制 | | `ssh_bruteforce` | 通过 SSH 的暴力破解 | | `port_scan` | 网络发现 (T1046) | ## 🗂️ 项目结构 ``` multiagentsoc/ ├── soc_agents/ │ ├── triage_agent.py │ ├── hunter_agent.py │ ├── forensics_agent.py │ └── reporter_agent.py ├── tools/ │ └── agent_tools.py ├── memory/ │ └── chroma_store.py ├── hitl/ │ ├── queue_manager.py │ └── auto_response.py ├── orchestrator.py ├── pipeline_runner.py ├── dashboard.py ├── metrics.py ├── ingestor.py ├── log_generator.py └── requirements.txt ``` ## 🔑 关键设计决策 **为什么预先运行工具而不是完整的 ReAct?** 本地 LLM(llama3.1 8B)在多工具任务中容易陷入死循环。在 Python 中预执行确定性工具并注入结构化结果,使得流水线在不使用 70B 模型的情况下依然可靠。 **为什么使用 ChromaDB?** 支持语义日志搜索——即使措辞不同也能找到相关事件,这与精确匹配的 SIEM 查询不同。 **为什么使用 SQLite 作为 HITL?** 零配置且易于移植。生产环境中将使用带有自动升级超时机制的 Redis/RabbitMQ。 ## 🛣️ 路线图 - [ ] 从 Kali VM 摄取真实的 Zeek 日志 - [ ] 用于审批的 Slack/电子邮件通知 - [ ] 30 分钟超时后自动升级 - [ ] Docker Compose 部署 - [ ] 真实的防火墙 API (pfSense/iptables) ## 📄 许可证 MIT ## 👤 作者 由 **Atharva Amle** 构建 — [GitHub: Athar2410](https://github.com/Athar2410)
标签:AbuseIPDB, AI安全, AI风险缓解, Ask搜索, Chat Copilot, ChromaDB, Cloudflare, CrewAI, DLL 劫持, Human-in-the-loop, IOC富化, IP 地址批量处理, Kubernetes, MITRE ATT&CK, PE 加载器, Python, Rootkit, SOAR, SQLite, Streamlit, Syslog, VirusTotal, Zeek, 事件调查, 人机协同, 向量数据库, 告警分类, 多智能体, 大语言模型, 威胁 hunting, 威胁情报, 安全运营中心, 开发者工具, 指标富化, 插件系统, 攻击链还原, 数字取证, 无后门, 无线安全, 智能体工作流, 本地大模型, 横向移动检测, 端点安全, 网络安全, 网络安全审计, 网络安全报告, 网络映射, 网络流量分析, 自动化脚本, 补丁管理, 访问控制, 误报过滤, 逆向工具, 隐私保护