hamsikamatamsetti-git/Network-Intrusion-Detection-System

GitHub: hamsikamatamsetti-git/Network-Intrusion-Detection-System

基于随机森林算法和 NSL-KDD 数据集构建的机器学习网络入侵检测系统,提供 Flask Web 界面实现网络流量的自动分类与攻击识别。

Stars: 0 | Forks: 0

# 🛡️ 基于机器学习的网络入侵检测系统 (IDS) ## 📌 项目概述 **网络入侵检测系统 (IDS)** 是一个基于机器学习的网络安全项目,旨在检测网络流量并将其分类为: - ✅ 正常流量 - 🚨 攻击流量 该系统通过机器学习算法分析网络连接模式并识别恶意活动。 本项目使用 **NSL-KDD dataset**,并实现了完整的机器学习工作流,包括: - 数据预处理 - 特征选择 - 模型训练 - 模型评估 - 预测 - 可视化 - Web 部署 # 🎯 目标 本项目的主要目标是: - 自动检测恶意网络活动。 - 使用机器学习构建智能入侵检测模型。 - 将网络连接分类为正常和攻击类别。 - 减少网络安全中的人工监控工作量。 - 展示机器学习在网络安全的实际应用。 # 🚨 问题陈述 随着互联网使用的快速增长,网络攻击例如: - 拒绝服务攻击 - Probe 攻击 - 远程到本地 (R2L) - 用户到 Root (U2R) 已成为重大的安全威胁。 传统的入侵检测方法无法有效识别新的攻击模式。 本项目旨在开发一个基于机器学习的 IDS,能够分析网络流量并检测可疑活动。 # 🧠 使用的技术 ## 编程语言 - Python 3.x ## 机器学习库 - Scikit-learn - Pandas - NumPy - Matplotlib - Seaborn ## Web 框架 - Flask ## 数据集 - NSL-KDD Dataset ## 开发工具 - Visual Studio Code - Git & GitHub # 📂 项目结构 ``` Network-Intrusion-Detection-System/ │ ├── app.py ├── requirements.txt ├── README.md ├── LICENSE │ ├── dataset/ │ └── NSL-KDD Dataset files │ ├── models/ │ └── intrusion_model.pkl │ ├── notebooks/ │ └── IDS_Model_Training.ipynb │ ├── src/ │ ├── data_preprocessing.py │ ├── train_model.py │ └── prediction.py │ ├── static/ │ └── style.css │ └── templates/ └── index.html ``` # ⚙️ 系统工作流 ``` Network Traffic Data | ↓ Data Collection | ↓ Data Preprocessing | ↓ Feature Extraction | ↓ Machine Learning Model | ↓ Traffic Classification | ↓ Normal / Attack Detection ``` # 📊 数据集描述 本项目使用 **NSL-KDD dataset**,它是 KDD Cup 1999 数据集的改进版本。 该数据集包含具有多个属性的网络连接记录,例如: - 持续时间 - 协议类型 - 服务 - 源字节 - 目标字节 - 错误率 - 连接特征 该数据集包含不同的攻击类别: ### 攻击类型 - DoS (Denial of Service) - Probe - R2L (Remote to Local) - U2R (User to Root) # 🤖 机器学习模型 使用了以下机器学习算法: ## 随机森林 Classifier ### 为什么使用 Random Forest? - 高准确率 - 高效处理大型数据集 - 减少过拟合 - 在分类问题中表现良好 # 🔄 机器学习 Pipeline ## 1. 数据加载 使用 Pandas 加载 NSL-KDD dataset。 ## 2. 数据预处理 步骤包括: - 处理缺失值 - 编码分类特征 - 特征缩放 - 数据转换 ## 3. 模型训练 处理后的数据集被划分为: - 训练数据 - 测试数据 Random Forest 模型从训练数据中学习模式。 ## 4. 模型评估 使用以下指标衡量性能: - Accuracy Score - Precision - Recall - F1 Score - Confusion Matrix # 📈 模型性能 模型性能使用标准的分类指标进行评估。 示例: ``` Accuracy : 95%+ Precision : High Recall : High F1 Score : High ``` (实际值可能因预处理和训练参数而异。) # 🌐 Web 应用程序 开发了一个基于 Flask 的 Web 界面,允许用户输入网络参数并接收入侵检测结果。 ## 功能特点: ✔ 用户友好的界面 ✔ 实时预测 ✔ 攻击/正常分类 ✔ 机器学习模型集成 # 🚀 安装与设置 ## 步骤 1:克隆仓库 ``` git clone https://github.com/hamsikamatamsetti-git/Network-Intrusion-Detection-System.git ``` ## 步骤 2:进入项目文件夹 ``` cd Network-Intrusion-Detection-System ``` ## 步骤 3:创建虚拟环境 ``` python -m venv venv ``` ## 步骤 4:激活虚拟环境 Windows: ``` venv\Scripts\activate ``` ## 步骤 5:安装依赖项 ``` pip install -r requirements.txt ``` # ▶️ 运行应用程序 运行 Flask 应用程序: ``` python app.py ``` 打开浏览器: ``` http://127.0.0.1:5000/ ``` # 🖥️ 应用程序输出 系统提供: - 输入网络流量详情 - 预测结果 - 攻击检测状态 示例: ``` Input: Network Traffic Features Output: Prediction: Normal Traffic ``` 或 ``` Output: Prediction: Attack Traffic Detected ``` # 🔐 网络安全应用 此 IDS 可用于: - 企业网络监控 - 安全运营中心 - 云安全系统 - 入侵防御系统 - 网络流量分析 # 📌 优势 - 自动化攻击检测 - 更快的威胁识别 - 基于机器学习的预测 - 减少人工监控工作量 - 能够检测复杂的攻击模式 # 🔮 未来展望 未来的改进包括: - 实时数据包捕获集成 - 基于 Deep Learning 的检测 - 实时网络监控 - 与 SIEM 工具集成 - 自动化威胁响应 - 云部署 # 📚 学习成果 通过本项目,培养了以下技能: - 机器学习分类技术 - 网络安全基础 - 网络流量分析 - Flask 应用程序开发 - 数据预处理 - 模型部署 # 👩‍💻 作者 **Hamsika Matamsetti** GitHub: https://github.com/hamsikamatamsetti-git
标签:Apex, Flask, 入侵检测系统, 安全数据湖, 异常流量检测, 机器学习, 网络安全, 逆向工具, 随机森林, 隐私保护