kushal-mg/NetShield

GitHub: kushal-mg/NetShield

一个基于机器学习分类与生成式 AI 分析的容器化网络入侵检测系统,实时识别网络攻击并自动生成威胁情报报告和 SIGMA 规则。

Stars: 0 | Forks: 0

NetShield Banner # NetShield ### 智能 AI 驱动的网络入侵检测系统与事件分析器 [![Python](https://img.shields.io/badge/Python-3.11+-3776AB?style=flat-square&logo=python&logoColor=white)](https://python.org) [![FastAPI](https://img.shields.io/badge/FastAPI-0.100+-009688?style=flat-square&logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com) [![React](https://img.shields.io/badge/React-18.0+-61DAFB?style=flat-square&logo=react&logoColor=white)](https://reactjs.org) [![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat-square&logo=docker&logoColor=white)](https://docker.com) [![Scikit-Learn](https://img.shields.io/badge/scikit--learn-Random%20Forest-F7931E?style=flat-square&logo=scikit-learn&logoColor=white)](https://scikit-learn.org) [![Gemini](https://img.shields.io/badge/AI-Gemini%201.5%20Flash-4285F4?style=flat-square&logo=google-gemini&logoColor=white)](https://aistudio.google.com) [![License](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE) **流式传输实时网络流量参数,使用机器学习对网络威胁进行分类,并使用 Google Gemini AI 自动生成全面的安全报告和 SIGMA 检测规则。**
## 📖 什么是 NetShield? NetShield 是一个完全集成、容器化的网络入侵检测系统 (NIDS),旨在实时识别和分析网络攻击。它弥合了原始机器学习分类与人类可读的威胁情报之间的差距: 1. **摄取与提取**:收集包含数据包级别指标(数据包大小、流持续时间、标志位)的网络流记录。 2. **分类**:应用训练好的 Random Forest 模型,即时将流量分类为 Benign 或 4 种主要攻击类型之一。 3. **AI 推理**:通过 Gemini API 路由有效的攻击签名,以解释威胁上下文、策略和风险。 4. **生成规则**:自动创建可用于生产环境的 SIGMA 规则,并将攻击映射到 MITRE ATT&CK 框架。 5. **可视化**:在现代化的毛玻璃拟态仪表板中呈现实时安全警报、统计图表和可折叠的情报面板。 ## 🚀 核心功能 | 功能 | 详情 | |---|---| | **实时分类器** | 扫描 38 个流量参数(如流持续时间、数据包速率、TCP 标志位),验证准确率 $\ge$ 98.4%。 | | **生成式威胁摘要** | 使用 Google Gemini 1.5 Flash 自动编写可读的威胁日志,描述目标向量。 | | **SIGMA 规则生成** | 自动生成标准的 YAML SIGMA 过滤器,帮助安全团队将拦截规则直接导入 SIEM(Splunk、ELK)。 | | **MITRE ATT&CK 映射** | 将分类后的威胁映射到 MITRE 战术(如 Command and Control、Impact)和技术(T1498、T1110)。 | | **实时模拟器控制器** | 基于 CICIDS2017 schema 流式传输合成流量,以演示活动的警报响应。 | | **毛玻璃拟态网络仪表板** | 令人惊艳的暗黑太空主题 React 用户界面,配备 Recharts 遥测可视化。 | | **DevOps 容器化** | 使用单个 Docker Compose 脚本即刻启动整个环境(React、FastAPI、PostgreSQL)。 | ## 🏗️ 系统架构 ``` [ Network Traffic Source / Simulator ] │ ▼ [ FastAPI /api/analyze Endpoint ] │ ┌───────────────────────┴───────────────────────┐ ▼ ▼ [ ML Classifier Model ] [ SQLAlchemy Store ] (Random Forest Model) │ (Predicts Threat & Confidence) │ │ ▼ ▼ [ PostgreSQL Database ] [ Gemini AI Engine ] (Store Alerts) (MITRE ATT&CK & SIGMA) │ │ │ └───────────────────────┬───────────────────────┘ ▼ [ REST / WebSocket APIs ] │ ▼ [ React + Vite Web Dashboard ] (Stats, Pie/Bar Charts, Log Tables) ``` ## ⚡ 快速开始 按照以下步骤在您的本地机器上运行 NetShield 技术栈: ### 前置条件 * [Docker Desktop](https://www.docker.com/products/docker-desktop/) * Gemini API Key(从 [Google AI Studio](https://aistudio.google.com/apikey) 获取免费的 Key) ### 1. 克隆并设置环境 在您的计算机上复制此仓库并导航至根目录: ``` git clone https://github.com/your-username/NetShield.git cd NetShield ``` 通过复制示例环境文件,在根目录中创建一个 `.env` 文件: ``` cp .env.example .env ``` 在文本编辑器中打开 `.env` 并粘贴您的 Gemini API key: ``` GEMINI_API_KEY=AIzaSyYourRealKeyHere ``` *(如果未配置 key,应用程序将平滑回退到模板威胁情报报告,因此它仍保持完整功能)。* ### 2. 使用 Docker Compose 启动 启动 PostgreSQL 数据库、FastAPI 服务器和 Vite React 客户端: ``` docker compose up --build -d ``` 构建完成且容器运行正常后,打开您的 Web 浏览器并导航至: * **Web 仪表板**:`http://localhost:5173` * **FastAPI API Swagger 文档**:`http://localhost:8000/docs` ## 🛡️ 检测模块 NetShield 根据网络签名属性将流量分为五个不同的类别: 1. **BENIGN(正常基线)**:标准 Web 流量 (HTTP/S),表现出均衡的正向/反向数据包和典型的持续时间参数。 2. **DDoS(分布式拒绝服务)**:来自欺骗性源的大量小型、统一入站数据包(例如 TCP SYN flood),目标为 80/443 端口。 3. **Port Scan(端口扫描)**:以最小数据包长度快速尝试连接连续的目标端口,试图分析主机漏洞。 4. **Brute Force(暴力破解)**:源自单一主机的高频 ssh、ftp 或 rdp 身份验证尝试。 5. **Botnet(僵尸网络)**:在非标准端口上的持续、低流量通信(beacons),在接触间隔之间表现出大量的空闲时间。 ## 📂 项目结构 ``` NetShield/ ├── backend/ │ ├── app/ │ │ ├── ai/ │ │ │ └── engine.py # Gemini AI prompt integration & SIGMA generator │ │ ├── ml/ │ │ │ ├── model.py # Inference model loading and classification wrapper │ │ │ └── train.py # Sklearn model training script │ │ ├── simulator/ │ │ │ └── live_feed.py # Background simulator thread │ │ ├── store/ │ │ │ └── alert_store.py # Database initialization and CRUD sessions │ │ ├── __init__.py │ │ └── routes.py # API routes (health, alerts, stats, simulate) │ ├── models/ │ │ ├── ids_model.pkl # Saved Random Forest classifier model │ │ └── label_encoder.pkl # Saved scikit-learn LabelEncoder │ ├── Dockerfile │ ├── main.py # FastAPI entry point │ └── requirements.txt # Backend Python packages ├── frontend/ │ ├── src/ │ │ ├── components/ │ │ │ ├── AlertFeed.jsx # Live list and detailed inspector view │ │ │ ├── AttackChart.jsx # Recharts Doughnut and Bar charts │ │ │ ├── Header.jsx # Branding, stats indicator, and controls │ │ │ └── StatsCards.jsx # Metrics telemetry panels │ │ ├── App.css │ │ ├── App.jsx # Coordinator and API polling loop │ │ ├── index.css # Dark mode glassmorphic styling │ │ └── main.jsx │ ├── Dockerfile │ ├── package.json │ ├── vite.config.js │ └── index.html ├── data/ │ ├── generate_mock_dataset.py # Mock dataset generation script │ └── CICIDS2017_sample.csv # Generated synthetic network logs ├── docker-compose.yml # Container orchestrator config ├── .env.example # Example variables file └── README.md # Project documentation ``` ## 🔬 技术栈选择 | 技术 | 角色 | 选择原因 | |---|---|---| | **FastAPI** | REST API 后端 | 轻量级、异步、自动生成交互式 Swagger 文档,并且与 Python ML 工具具有清晰的集成。 | | **React + Vite** | 用户界面 | 高度响应的 UI,开发过程中极速的 HMR,以及易于进行实时轮询的状态同步。 | | **PostgreSQL** | 存储 | 稳健的 ACID 合规性和索引结构,作为企业 SOC 环境中的标准数据库选择。 | | **Scikit-Learn** | 机器学习 | 表格网络流记录高度结构化,最好使用像 Random Forest 这样的决策树集成而不是深度学习来进行分类。 | | **Google Gemini API** | AI 威胁情报 | 响应速度快,出色的推理能力,以及清晰的结构化 markdown 规则输出。 | ## 📄 许可证 该项目基于 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。
标签:Apex, NIDS, Python, React, Syscalls, 入侵检测系统, 威胁情报分析, 安全数据湖, 容器化, 无后门, 机器学习, 测试用例, 网络安全, 请求拦截, 逆向工具, 隐私保护