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, 威胁情报, 开发者工具, 数据可视化, 机器学习, 网络安全, 网络流量分析, 逆向工具, 隐私保护