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, 威胁情报, 安全运营中心, 开发者工具, 指标富化, 插件系统, 攻击链还原, 数字取证, 无后门, 无线安全, 智能体工作流, 本地大模型, 横向移动检测, 端点安全, 网络安全, 网络安全审计, 网络安全报告, 网络映射, 网络流量分析, 自动化脚本, 补丁管理, 访问控制, 误报过滤, 逆向工具, 隐私保护