amit0hx/Auto-SOC
GitHub: amit0hx/Auto-SOC
一个结合机器学习入侵检测与 Gemini LLM 自动化事件响应的混合式 AI 安全运营中心框架。
Stars: 0 | Forks: 0
# 🛡️ Auto-SOC
### 智能网络入侵检测与自动化事件响应
[](https://python.org)
[](https://streamlit.io)
[](https://scikit-learn.org)
[](https://ai.google.dev)
[](LICENSE)
**版本:** `2.0.0` | **作者:** [amit0hx](https://github.com/amit0hx) | **状态:** 活跃
*一个混合式 AI 安全运营中心 (SOC) 框架,结合了基于 ML 的异常检测与由 LLM 驱动的事件响应自动化。*
## 🔍 概述
Auto-SOC 弥合了**原始网络异常检测**与**可执行事件响应**之间的差距。它集成了两种 AI 范式:
1. 🧠 **Random Forest Classifier**(随机森林分类器)分析网络流量日志并检测 **5 种攻击类型**(DoS、Probe、R2L、U2R)
2. 🤖 检测到的威胁将被转发至 **Google Gemini (LLM)**,生成包含 MITRE ATT&CK 参考的技术**缓解 playbook**
3. 📊 **Streamlit Dashboard** 提供实时可视化、批量分析和攻击历史追踪
4. 📡 **真实环境捕获桥接** (`live_ids.py`) 将**实时的 Wireshark/tshark 流量**接入相同的 pipeline,并**通过 IP 识别攻击源**(包含反向 DNS 丰富信息)
## ✨ 功能
| 功能 | 描述 |
|---||
| 🎯 **5 种攻击分类** | Normal、DoS、Probe、R2L、U2R — 符合 NSL-KDD 标准 |
| 📡 **10 项特征数据集** | Duration(持续时间)、protocol(协议)、service(服务)、src/dst bytes(源/目的字节数)、TCP flags(TCP 标志)、connection counts(连接计数) |
| 🖥️ **深色 SOC Dashboard** | 实时统计、严重性 badge (CVSS)、颜色编码告警 |
| ⚡ **批量模拟** | 一次性分析 10 / 25 / 50 / 100 个数据包,并带有进度追踪 |
| 📈 **模型智能** | Accuracy 指标、特征重要性图表、混淆矩阵、基于分类的 F1 分数 |
| 📋 **LLM Playbook** | 包含 MITRE ATT&CK 参考的 4 点 IR playbook(支持在线与离线模式) |
| 🔴 **严重性映射** | 根据攻击类型自动分类为 CRITICAL / HIGH / MEDIUM |
| 📜 **攻击历史** | 持久化的会话日志,包含时间戳、预测结果和匹配追踪 |
| 📡 **实时数据包捕获** | 通过 Wireshark/Npcap 捕获真实流量 — 支持 `.pcap`、scapy 实时捕获或实时 `tshark` 数据流(IPv4 + IPv6) |
| 🎯 **攻击源识别** | 为每个检测到的攻击识别攻击者**源 IP**、内部/外部来源以及反向 DNS |
| 🌐 **Dashboard 实时捕获** | 从 Dashboard 捕获真实数据包 — 源 IP 表格 + 为首要攻击者自动生成的 IR playbook |
## 🏗️ 架构
```
dataset_generator.py → network_logs.csv (10K synthetic logs)
↓
train_model.py → model.pkl + encoders.pkl + metrics.json + confusion_matrix.png
↓
app.py (Streamlit) ←→ llm_engine.py (Gemini API / Mock)
↓
Live SOC Dashboard
```
### 📂 文件分解
| 文件 | 用途 |
|---|---|
| `dataset_generator.py` | 生成包含 5 种攻击类型的 10,000 条合成网络日志 |
| `train_model.py` | 训练 Random Forest,导出模型 + 混淆矩阵 + 指标 JSON |
| `llm_engine.py` | 用于自动化 IR playbook 的 Gemini API 集成(带有离线兜底) |
| `app.py` | Streamlit dashboard — 主要 UI(合成模拟 + 实时捕获) |
| `live_ids.py` | 真实环境桥接:Wireshark/tshark 数据包 → 特征 → 模型 → playbook + 攻击源报告 |
| `make_demo_pcap.py` | 生成演示用 `.pcap`(SYN flood + 端口扫描),用于免 Wireshark 测试 |
| `requirements.txt` | Python 依赖项 |
| `.env.example` | API key 配置模板 |
## 🚀 设置与运行
### 1. 克隆并安装
```
git clone https://github.com/amit0hx/Auto-SOC.git
cd Auto-SOC
pip install -r requirements.txt
```
### 2. (可选)配置 Gemini API
```
cp .env.example .env
# 编辑 .env 并添加你的 Gemini API key
# 如果没有 API key,系统将使用内置的 mock playbooks
```
### 3. 生成数据集并训练模型
```
python dataset_generator.py
python train_model.py
```
### 4. 启动 Dashboard
```
streamlit run app.py
```
在浏览器中打开 `http://localhost:8501`。
## 📡 真实环境实时捕获 (Wireshark / tshark)
在**真实网络流量**上测试 Auto-SOC,而非仅使用合成数据。需要安装
[Wireshark](https://www.wireshark.org/)(捆绑了 **Npcap** 驱动);`scapy` 已包含在 `requirements.txt` 中。
```
# 列出 capture interfaces(注意你的 Wi-Fi / Ethernet 名称)
python live_ids.py --list-ifaces
# 分析从 Wireshark 保存的 .pcap 文件(无需管理员权限)
python live_ids.py --pcap demo_capture.pcap
# 直接来自 Wireshark 的 tshark 引擎的实时数据流
python live_ids.py --tshark --iface Ethernet --timeout 20 --flush 5
# 通过 scapy 实时嗅探(使用 --no-playbook 快速获取判定结果)
python live_ids.py --live --iface Ethernet --count 200 --timeout 25
```
每个检测到的攻击都会被归因于一个带有来源(内部/外部)和反向 DNS 信息的**源 IP**,并据此排名生成**攻击源识别**报告。此捕获功能同样可以在 Dashboard 的 **📡 Live Network Capture** 下使用。内置的 `demo_capture.pcap`(SYN flood + 端口扫描)可让你无需安装 Wireshark 即可演示检测功能。
## ☁️ 在 Google Colab 上运行
```
# 安装
!pip install -r requirements.txt
# 生成与训练
!python dataset_generator.py
!python train_model.py
# 通过 tunnel 启动
!streamlit run app.py &>/content/logs.txt &
!npx -y localtunnel --port 8501
```
## 🛠️ 技术栈
| 类别 | 工具 |
|---|---|
| **Machine Learning** | scikit-learn (Random Forest)、pandas、numpy |
| **LLM / GenAI** | Google Gemini API (gemini-2.5-flash) |
| **Frontend** | Streamlit |
| **Visualization** | matplotlib、Streamlit Charts |
| **语言** | Python 3.10+ |
## 📊 模型性能
| 指标 | 得分 |
|---|---|
| **Accuracy** | 99.75% |
| **交叉验证** | 99.79% (±0.11%) |
| **DoS 检测** | 100% F1 |
| **Probe 检测** | 100% F1 |
| **R2L 检测** | 99% F1 |
| **U2R 检测** | 98% F1 |
## 📄 许可证
本项目基于 [MIT License](LICENSE) 授权。
*一个混合式 AI 安全运营中心 (SOC) 框架,结合了基于 ML 的异常检测与由 LLM 驱动的事件响应自动化。*
**由 [amit0hx](https://github.com/amit0hx) 用 🔥 打造**
标签:Apex, DLL 劫持, Kubernetes, PE 加载器, Web报告查看器, 可视化面板, 大语言模型, 安全运营, 库, 应急响应, 扫描框架, 插件系统, 机器学习, 逆向工具