hrishabh1103/Zylar---Autonomous-Self-Evolving-SOC-AI-System
GitHub: hrishabh1103/Zylar---Autonomous-Self-Evolving-SOC-AI-System
基于多智能体协作的自主 SOC 系统,结合本地 LLM、机器学习和图分析实现从威胁检测到响应计划的全自动化本地闭环。
Stars: 1 | Forks: 0
# ZYLAR v2 – 自主自进化 SOC AI 系统
ZYLAR v2 是一个多智能体自主 SOC 系统,旨在实时检测、分类、评分和缓解网络威胁。它利用确定性的 LangGraph 编排、NetworkX 进行威胁关联、Scikit-Learn 进行异常检测,以及 **通过 Ollama 运行的本地 LLM** 进行威胁情报和缓解规划。它完全在本地运行,无需付费 API 密钥。
## 🏗️ 架构设计 (v2)
ZYLAR v2 采用 6 层架构:
### 1. 日志与模拟层
- **日志生成器 (`log_generator/simulate_attacks.py`)**:持续推送合成的常规日志和恶意日志(暴力破解、勒索软件、端口扫描、横向移动)。
- **Elasticsearch**:中央快速日志存储。
### 2. 检测与 ML 层
- **异常检测**:使用 Scikit-learn Isolation Forest 根据 IP 频率和失败率寻找统计异常值。
### 3. 代理 AI 推理层
- **ThreatIntelligenceAgent**:使用 **Ollama(本地 `mistral`)** 从异常事件中推导潜在的 TTP。
- **AttackClassificationAgent**:对事件进行分类(例如,暴力破解、可疑 IP)。
- **AdvancedRiskScoringAgent**:利用多因素公式计算 0-100 的分数,包括资产关键性、威胁关联图中心性和历史复发情况(记忆)。
- **MitigationPlannerAgent**:使用 Ollama 自主合成可执行的事件响应计划。
### 4. 威胁关联图层
- **ThreatCorrelationAgent**:使用 `NetworkX` 构建 IP、用户和端口之间的关系图,返回度/中介中心性指标。
### 5. 自主编排层 (`orchestrator/workflow_graph.py` & `api/main.py`)
- 定义穿过管道的 `AgentState` 对象。
- 使用 **APScheduler** 每 30 秒自动轮询异常,并在无需人工干预的情况下异步运行整个代理管道。
### 6. 记忆与仪表板层
- **记忆 (`memory/sqlite_manager.py`)**:存储 `incidents`、`ip_history` 和 `user_history` 以惩罚重复违规者。
- **FastAPI**:管理调度器并提供状态服务。
- **Streamlit**:具有威胁图、风险仪表和记忆时间线的高级自动刷新仪表板。
## ⚙️ 安装指南(本地部署)
### 前置条件
- Python 3.10+
- Docker & Docker Compose(用于 ELK)
- 已安装并在本地运行的 [Ollama](https://ollama.com)。
### 步骤 1:克隆 / 设置目录
```
cd ZYLAR
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### 步骤 2:确保 Ollama 正在运行
拉取所需的本地 LLM 并让 Ollama 在后台保持运行。
```
ollama pull mistral
# 为确保服务器处于活动状态,Ollama 桌面应用程序在后台运行,或者:
# ollama serve
```
### 步骤 3:启动 Elasticsearch
```
cd elk_setup
docker-compose up -d
cd ..
```
*等待约 1-2 分钟让 Elasticsearch 完全启动。*
## 🚀 执行演练
在激活的虚拟环境中,你需要 **3 个单独的终端窗口**。无需 API 密钥!
### 终端 1:启动攻击日志模拟器
生成连续的日志流量,包括复杂的多阶段攻击,并将其写入 Elasticsearch。
```
python -m log_generator.simulate_attacks --duration 600
```
### 终端 2:启动 FastAPI 后端与自主调度器
这将公开核心端点并启动 `APScheduler` 循环,该循环每 30 秒监控一次日志。
```
uvicorn api.main:app --host 0.0.0.0 --port 8000
```
### 终端 3:启动 ZYLAR 仪表板
```
streamlit run dashboard/app.py
```
### 使用系统
1. 打开 Streamlit URL(通常是 `http://localhost:8501`)。
2. 该系统是**完全自主的**。
3. 观察 **Live Monitoring** 选项卡每 15 秒自动刷新一次。确保 Elasticsearch 和代理在侧边栏监控器中处于活动状态。
4. 当终端 1 生成恶意日志时,APScheduler(终端 2)将检测到它们,构建 `NetworkX` 攻击图,调用 `Ollama` 进行本地分析,并生成缓解计划。
5. 在 **Incident Timeline** 选项卡中,你将看到历史自主威胁响应以及代理的推理。
6. 重复违规者将显示在实时仪表板上,通过高级评分算法由 SQLite Memory 代理自动施以更高的风险评分惩罚。
7. 最终的详细 PDF/JSON 报告存储在 `/reports` 中。
## 🧪 评估指标与测试
- ZYLAR 的 Isolation Forest 无需显式编码即可正确归类异常。
- `GraphCentrality` 权重会自动提高扫描多个端口的僵尸程序的分数。
- `HistoricalRecurrenceFactor` 随着时间的推移,将低级别但无休止的攻击推入严重(Critical)级别。
# Zylar---Autonomous-Self-Evolving-SOC-AI-System
# Zylar---Autonomous-Self-Evolving-SOC-AI-System
# Zylar---Autonomous-Self-Evolving-SOC-AI-System
标签:AI安全, AI风险缓解, AMSI绕过, Apex, API密钥扫描, Chat Copilot, DLL 劫持, DNS 反向解析, Elasticsearch, FTP漏洞扫描, Kubernetes, LangGraph, LLM评估, Mistral, NetworkX, Ollama, PE 加载器, PyRIT, Python, Scikit-Learn, 图分析, 多智能体系统, 大语言模型, 威胁情报, 威胁检测, 孤立森林, 安全编排, 开发者工具, 异常检测, 插件系统, 无后门, 本地部署, 机器学习, 特权检测, 突变策略, 网络安全, 网络调试, 自主SOC, 自动化, 自动响应, 请求拦截, 逆向工具, 隐私保护