Thoufeq/P2P-Network-Anomaly-Detection

GitHub: Thoufeq/P2P-Network-Anomaly-Detection

基于机器学习的P2P网络流量异常检测系统,通过分析流级别统计特征识别恶意行为并提供交互式Web界面。

Stars: 0 | Forks: 0

# P2P 网络流量异常检测系统 ![Python 版本](https://img.shields.io/badge/python-3.8%2B-blue) ![许可证](https://img.shields.io/badge/license-Apache_2.0-green) ![Flask](https://img.shields.io/badge/framework-Flask-lightgrey) ## 概述 对等 (P2P) 网络在现代分布式系统中扮演着至关重要的角色。然而,其去中心化的特性也带来了重大的安全挑战。传统的基于特征签名的系统通常无法捕获零日威胁或不断演变的恶意模式。 本项目展示了一个**智能 P2P 网络流量异常检测系统**,它利用机器学习来分析流级别的网络流量。该系统不依赖预定义的规则,而是学习正常流量的统计“指纹”,并识别表明存在恶意软件、未经授权的访问或异常 P2P 行为的偏差。 ## 目标 * **行为检测:** 使用机器学习而非静态特征签名来识别异常。 * **流级别分析:** 通过数据包速率、持续时间和资源使用情况来分析流量。 * **易用性:** 提供基于 Web 的界面,支持单条记录和批量 (CSV) 预测。 * **可扩展性:** 提供支持多种机器学习算法的模块化框架。 ## 主要特性 * **多模型支持:** 可在 KNN、SVC 和朴素贝叶斯之间进行选择。 * **数据预处理:** 自动化特征缩放,并使用 **SMOTE** 处理类别不平衡问题。 * **双层分类:** 1. **流量异常:** (正常与异常) 2. **风险严重程度:** 预测身份验证行为的威胁级别。 * **交互式可视化:** 通过 Flask Web UI 实时显示性能指标和结果。 ## 系统架构 该系统遵循模块化流水线以确保数据完整性和模型准确性: 1. **数据摄取:** 加载 CSV 数据集或接受手动用户输入。 2. **预处理:** 特征提取、应用 `StandardScaler` 以及数据验证。 3. **模型层:** 处理 `.pkl` 文件的训练、保存和加载。 4. **分析引擎:** 执行分类和风险评估。 5. **Web 界面:** 渲染结果和评估指标(准确率、精确率、召回率)。 ## 项目文件夹结构 ``` MajorProjectCode/ │ ├── app.py # Flask application entry point ├── main.py # Logic orchestration ├── routes.py # URL routing and request handling ├── ml_utils.py # ML logic (Training, SMOTE, Scaling) ├── run3120.bat # Windows execution script │ ├── Dataset/ # Training and testing datasets ├── models/ # Saved .pkl models and scalers ├── static/ # CSS, JS, and UI assets ├── templates/ # HTML Jinja2 templates └── uploads/ # Directory for user-uploaded CSVs ``` ## 使用的机器学习模型 | 模型 | 用例 | 优势 | | --- | --- | --- | | **K-近邻 (KNN)** | 局部异常检测 | 擅长发现恶意活动的聚集区。 | | **支持向量分类器 (SVC)** | 复杂流量模式 | 使用 RBF 核函数处理非线性决策边界。 | | **朴素贝叶斯** | 基线对比 | 速度快、效率高,且只需极少的计算资源。 | ## 数据集描述 该系统使用流级别的统计数据,而非原始的数据包检测,重点关注以下特征: * **传输指标:** 数据包大小、流持续时间和延迟。 * **系统指标:** CPU 使用率、内存使用率和活动连接数。 * **安全日志:** 防火墙拦截、IDS 告警和身份验证失败记录。 ## 如何运行 ### 1. 克隆仓库 ``` git clone [https://github.com/Thoufeq/P2P-Network-Anomaly-Detection.git](https://github.com/Thoufeq/P2P-Network-Anomaly-Detection.git) cd P2P-Network-Anomaly-Detection ``` ### 2. 安装依赖 ``` pip install flask numpy pandas scikit-learn imbalanced-learn matplotlib seaborn ``` ### 3. 启动应用 **在 Windows 上:** ``` run3120.bat ``` **或通过 Python:** ``` python app.py ``` ### 4. 访问 UI 打开浏览器并访问: `http://localhost:8080/` ## 未来改进 * **实时捕获:** 集成 Scapy 或 Wireshark 进行实时数据包嗅探。 * **深度学习:** 实现 LSTM 或自编码器以进行时间序列异常检测。 * **高级仪表板:** 为网络管理员添加 PowerBI 风格的可视化分析。
标签:Apex, Flask框架, KNN, P2P网络, Python, SMOTE, 交互式可视化, 分布式系统安全, 分类算法, 后端开发, 插件系统, 支持向量机, 数据科学, 数据预处理, 无后门, 朴素贝叶斯, 机器学习, 流级别统计, 流量异常检测, 特征缩放, 网络威胁检测, 网络安全, 资源验证, 逆向工具, 隐私保护, 零日威胁检测