ns7523/Network-attacks-detection

GitHub: ns7523/Network-attacks-detection

基于机器学习的网络攻击检测系统,通过混合特征提取将网络流量分类为 DDoS、Probe、R2L、U2R 和正常等多种安全状态。

Stars: 2 | Forks: 0

Network Attack Detection

提取信号。 分类行为。 检测网络威胁。

Python Flask Scikit-learn SQLite

DDoS
流量洪泛
Probe
侦察
R2L
远程访问
U2R
权限提升
Normal
良性流量
## 01 · 概述
### 基于 ML 的网络入侵分类 本仓库实现了一个基于机器学习的网络攻击检测系统,并带有 Flask 推理接口。它将流量分类为多种安全状态,包括 DDoS、Probe、R2L、U2R 和 Normal。 该项目旨在作为一个轻量级的研究工程原型,用于基于特征的网络威胁分析和基于浏览器的预测。 ``` ┌──────────────────────────────┐ │ NETWORK DETECTION CONSOLE │ ├──────────────────────────────┤ │ Input Traffic Features │ │ Process Feature Vector │ │ Model ML Classifier │ │ Output Attack Class │ │ UI Flask App │ └──────────────────────────────┘ ```
## 02 · 检测流水线 Network attack detection pipeline ## 03 · 系统架构 ``` flowchart TD A[Network Traffic Features] --> B[Input Form] B --> C[Flask Application] C --> D[Feature Vector Builder] D --> E[Serialized ML Model] E --> F{Prediction} F --> G[DDoS] F --> H[Probe] F --> I[R2L] F --> J[U2R] F --> K[Normal] C --> L[SQLite Auth Layer] ``` ## 04 · 核心功能 | 功能 | 用途 | |---|---| | 多分类分类 | 检测 DDoS、Probe、R2L、U2R 和 Normal 流量状态。 | | Flask 推理 UI | 提供基于浏览器的流量特征预测界面。 | | 序列化模型运行时 | 加载已训练的模型 artifact 进行推理。 | | 身份验证流程 | 包含基于 SQLite 的注册/登录工作流。 | | 研究工作流 | 支持 ML 实验、特征分析和分类验证。 | | 聚焦安全的输出 | 将数值化的流量输入转换为人类可读的威胁状态。 | ## 05 · 威胁分析流程 ``` flowchart LR A[Traffic Record] --> B[Feature Extraction] B --> C[Model Inference] C --> D[Threat Class] D --> E[Security Interpretation] ``` | 类别 | 含义 | |---|---| | DDoS | 旨在破坏服务可用性的大流量行为。 | | Probe | 用于发现网络弱点的侦察式行为。 | | R2L | 远程到本地 (Remote-to-local) 的访问尝试模式。 | | U2R | 用户到 Root (User-to-root) 的权限提升模式。 | | Normal | 良性流量行为。 | ## 06 · ML 工作流 ``` flowchart TD A[Raw Dataset] --> B[Preprocessing] B --> C[Encoding] C --> D[Feature Selection] D --> E[Model Training] E --> F[Evaluation] F --> G[Exported Model] G --> H[Flask Prediction Runtime] ``` | 阶段 | 输出 | |---|---| | 预处理 | 清洗和标准化的网络特征。 | | 特征提取 | 可用于检测的数值向量。 | | 训练 | 用于攻击类别预测的监督学习模型。 | | 评估 | 准确率、精确率、召回率、F1分数、混淆矩阵。 | | 推理 | 通过 Flask 进行基于浏览器的预测。 | ## 07 · 安装说明 ``` git clone https://github.com/ns7523/Network-attacks-detection.git cd Network-attacks-detection python -m venv .venv source .venv/bin/activate pip install flask pandas numpy scikit-learn joblib matplotlib seaborn ``` ## 08 · 使用说明 运行 Flask 应用程序: ``` python app.py ``` 打开本地接口: ``` http://127.0.0.1:5000 ``` 通过预测表单提交所需的网络流量特征值。模型将返回流量分类结果。 ## 09 · 项目结构 ``` . ├── assets/ │ └── brand/ │ ├── hero.svg │ └── pipeline.svg ├── app.py ├── model.sav ├── signup.db ├── templates/ ├── static/ └── README.md ``` 建议的生产环境结构: ``` docs/ · src/ · models/ · data/ · results/ · notebooks/ · assets/screenshots/ · requirements.txt ``` ## 10 · 视觉资源
### 预测界面 `assets/screenshots/prediction-form.png` 流量特征输入界面。 ### 分类结果 `assets/screenshots/classification-result.png` 显示预测出的网络状态的输出视图。
### 指标视图 `assets/screenshots/model-metrics.png` 混淆矩阵、精确率、召回率和 F1 分数。 ### 系统架构 `assets/screenshots/system-architecture.png` 检测系统的清晰视觉映射图。
## 11 · 安全提示 - 将凭据和邮件配置迁移到环境变量中。 - 在任何类似生产环境的部署之前,对存储的密码进行哈希处理。 - 在模型推理之前验证表单输入。 - 通过 `requirements.txt` 添加依赖固定。 ## 12 · 未来改进 - [ ] 添加可复现的训练 notebook。 - [ ] 添加 `requirements.txt`。 - [ ] 将 ML 和 Flask 代码移至 `src/`。 - [ ] 添加混淆矩阵和分类报告。 - [ ] 添加 Docker 支持以实现隔离的运行时。 - [ ] 在 `assets/screenshots/` 下添加截图。 - [ ] 添加正式的开源许可证。
### N S Akash **AI 与网络安全工程师**

GitHub Portfolio Email LinkedIn

标签:Apex, Flask, Python, Web报告查看器, 后端开发, 插件系统, 无后门, 机器学习, 流量分类, 网络安全, 逆向工具, 隐私保护