Pranavsolase03/AI-Based-Threat-Intelligence-Platform
GitHub: Pranavsolase03/AI-Based-Threat-Intelligence-Platform
基于 Flask 与 XGBoost 集成模型构建的全栈网络安全平台,提供实时网络流量嗅探、历史日志分析和动态威胁可视化功能。
Stars: 0 | Forks: 0
# 基于 AI 的威胁情报平台
一个全面的全栈网络安全平台,利用 Machine Learning 实时检测、分析和可视化网络威胁。采用 Flask 后端、基于 NSL-KDD 数据集训练的 XGBoost ML pipeline,以及现代简约的 glassmorphism 仪表板构建。
## 🚀 功能
- **实时笔记本电脑网络嗅探**:使用 `psutil` 安全捕获本地网络连接,将其映射到 NSL-KDD 特征,并持续对其进行评估以实现实时威胁检测。
- **日志文件分析**:通过仪表板直接手动上传 `.csv` 或 `.txt` 日志文件,以即时分析历史网络数据。
- **动态威胁仪表板**:由 Chart.js 驱动的实时图表自动刷新,显示过去 60 秒内的活跃威胁、严重警报和严重性分布。
- **自动化 ML Pipeline**:预训练的集成模型(XGBoost、Random Forest、Isolation Forest)将网络流映射到 DDoS、Port Scan、Malware 和正常流量等分类。
- **流畅的极简 UI**:专为安全运营中心 (SOC) 和网络分析师量身定制的专业企业级界面。
- **一键重置**:直接从 UI 中即时清除数据库和分析指标,以便进行全新的测试运行。
## 🛠️ 技术栈
**前端:**
- HTML5, CSS3, JavaScript
- Bootstrap 5
- Chart.js (交互式数据可视化)
- FontAwesome (图标)
**后端:**
- Python 3.10+
- Flask (Web 框架和 REST API)
- SQLite (通过 SQLAlchemy 实现的关系型数据库)
- psutil (实时系统/网络数据提取)
**Machine Learning:**
- Pandas & NumPy (数据处理)
- Scikit-Learn (预处理、Encoders、Scalers)
- XGBoost (核心威胁分类模型)
- TensorFlow / Keras (神经网络模型)
- Joblib (模型序列化)
## ⚙️ 安装与设置
### 前置条件
确保您的系统上安装了 Python 3.8+。您还需要安装 `pip`。
### 1. 克隆仓库
如果您尚未操作,请将项目文件克隆或下载到本地计算机。
### 2. 创建虚拟环境
强烈建议在隔离的虚拟环境中运行此项目,以防止依赖冲突。
```
# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activate
```
### 3. 安装依赖项
使用提供的 `requirements.txt` 文件安装所有必需的 Python 库。
```
pip install -r requirements.txt
```
### 4. 数据库初始化
SQLite 数据库 (`threatintel.db`) 将在您第一次运行应用程序时自动在 `database/` 文件夹中创建。
## 🧠 Machine Learning 训练流程
如果您要从头开始设置此项目,或者想要在 NSL-KDD 数据集上重新训练 AI 模型,则必须在启动 Web 服务器之前遵循此确切的执行流程。
### 步骤 1:下载数据集
运行 `data.py` 以通过 kagglehub 自动获取 NSL-KDD 数据集。
```
python data.py
```
### 步骤 2:预处理数据
运行 `preprocessing.py` 以清理数据,将 LabelEncoders 应用于分类特征,使用 StandardScaler 缩放数值数据,并保存处理后的数据集。
```
python preprocessing.py
```
### 步骤 3:训练模型
运行 `train_model.py` 以训练 Machine Learning 集成(XGBoost、Random Forest、Isolation Forest)。此脚本会将训练好的 `.pkl` 文件保存到 `models/` 目录中,以便 Flask 应用程序可以使用它们。
```
python train_model.py
```
## 🏃 运行应用程序
### 启动 Flask 服务器
模型训练并保存完成后,您可以启动主 Web 应用程序:
```
python app.py
```
服务器将在 `http://127.0.0.1:5000`(或 `http://localhost:5000`)上启动。
### 2. 访问仪表板
打开您的 Web 浏览器并导航到 `http://localhost:5000`。您将看到登录页面。
*(如果为了开发而绕过了身份验证,请直接导航到 `/dashboard`)*。
## 📡 使用实时嗅探器
实时嗅探器会监控您笔记本电脑的实际活动网络连接,构建支持 ML 的特征数组,并使用预训练的 XGBoost 模型对其进行评估。
1. 导航至 **仪表板**。
2. 点击黄色的 **启动实时嗅探器** 按钮。
3. 后台进程 (`live_sniffer.py`) 将自动开始监控您的网络流量。
4. 仪表板图表和顶部指标将 **每 5 秒自动刷新一次**。
5. *注意:出于演示目的,嗅探器会随机将异常的 "DDoS" 特征注入到您安全的本地流量中,以确保 ML 模型在仪表板上触发警报。*
## 📂 项目结构
```
├── app.py # Main Flask API and application routing
├── live_sniffer.py # Background daemon for real-time network capture
├── requirements.txt # Project dependencies
├── database/
│ └── threatintel.db # SQLite Database (Auto-generated)
├── models/ # Serialized ML Models
│ ├── xgb_model.pkl # Core XGBoost Classifier
│ ├── scaler.pkl # Feature Scaler
│ └── encoder_*.pkl # Label Encoders
├── static/
│ ├── css/style.css # Clean, minimalistic UI styles
│ └── js/dashboard.js # Frontend logic, API fetching, Chart rendering
└── templates/ # Jinja2 HTML Templates
├── base.html # Main layout wrapper
├── dashboard.html # Primary Analytics View
├── threats.html # Detailed Threat Database Table
└── alerts.html # Live Alert Feed
```
## ⚠️ 重要说明
- 该平台依赖于通过 **NSL-KDD** 数据集训练的模型。
- `live_sniffer.py` 脚本使用 `psutil` 而不是复杂的数据包捕获引擎(如 WinPcap/Npcap 或 Zeek),以保持轻量级、跨平台,并且对于本地笔记本电脑演示来说完全安全。
标签:Apex, Flask, XGBoost, 威胁情报, 开发者工具, 数据可视化, 机器学习, 网络安全, 网络流量分析, 逆向工具, 隐私保护