amit0hx/Auto-SOC

GitHub: amit0hx/Auto-SOC

一个结合机器学习入侵检测与 Gemini LLM 自动化事件响应的混合式 AI 安全运营中心框架。

Stars: 0 | Forks: 0

# 🛡️ Auto-SOC ### 智能网络入侵检测与自动化事件响应 [![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://python.org) [![Streamlit](https://img.shields.io/badge/Streamlit-1.40+-FF4B4B?style=for-the-badge&logo=streamlit&logoColor=white)](https://streamlit.io) [![scikit-learn](https://img.shields.io/badge/scikit--learn-1.5+-F7931E?style=for-the-badge&logo=scikit-learn&logoColor=white)](https://scikit-learn.org) [![Google Gemini](https://img.shields.io/badge/Google_Gemini-2.5_Flash-4285F4?style=for-the-badge&logo=google&logoColor=white)](https://ai.google.dev) [![License: MIT](https://img.shields.io/badge/License-MIT-00ff88?style=for-the-badge)](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) 授权。
**由 [amit0hx](https://github.com/amit0hx) 用 🔥 打造**
标签:Apex, DLL 劫持, Kubernetes, PE 加载器, Web报告查看器, 可视化面板, 大语言模型, 安全运营, 库, 应急响应, 扫描框架, 插件系统, 机器学习, 逆向工具