dhrumilrana25/IoT-Malware-Detection-Network-Analytics

GitHub: dhrumilrana25/IoT-Malware-Detection-Network-Analytics

该项目利用信息论与决策树算法对百万级 IoT 网络连接进行行为分析,构建了一套不依赖静态标识符的泛化型恶意流量入侵检测系统。

Stars: 0 | Forks: 0


Typing SVG

[![Python](https://img.shields.io/badge/Python-3.12-3776AB?style=for-the-badge\&logo=python\&logoColor=white)](https://www.python.org/) [![Scikit-Learn](https://img.shields.io/badge/ML-Scikit--Learn-F7931E?style=for-the-badge\&logo=scikitlearn\&logoColor=white)](https://scikit-learn.org/) [![Pandas](https://img.shields.io/badge/Data-Pandas-150458?style=for-the-badge\&logo=pandas\&logoColor=white)](https://pandas.pydata.org/) [![Pandas SQL](https://img.shields.io/badge/Data%20Engineering-PandasSQL-22C55E?style=for-the-badge)](https://pypi.org/project/pandasql/) [![Security](https://img.shields.io/badge/Domain-Cybersecurity-EF4444?style=for-the-badge)](#)

## 🛡️ 项目概述

随着 IoT 设备在家庭、工业、医院和智能基础设施中的持续增长,传统的基于特征的恶意软件检测在面对不断演变的新威胁时变得越来越低效。 本项目利用机器学习和网络行为分析构建了一个**行为入侵检测系统**(也称为 **BIDS**)。 该模型不再依赖诸如 IP 地址、端口、时间戳或特定设备值等静态标识符,而是将重点放在连接的行为方式上。 该 pipeline 分析了超过 **110 万条网络连接**,并使用信息论特征选择来识别恶意网络活动最强的行为指标。
Workflow Typing


## 🔥 关键结果

### 🎯 准确率 # 95.38% 使用顶级行为特征的优化模型。 ### 📈 ROC AUC # 0.95 在正常和恶意流量之间实现了强烈的区分。 ### 🌳 树节点 # 143 紧凑且可解释的决策树结构。


## 🧠 系统架构

``` flowchart LR A[🌐 Raw IoT Network Logs] --> B[📊 Pandas SQL Processing] B --> C[🧹 Feature Sanitization] C --> D[⚖️ Class Balancing] D --> E[🧠 Mutual Information Ranking] E --> F[🌳 Decision Tree Training] F --> G[📈 Model Evaluation] G --> H[🛡️ Behavioral Intrusion Detection] style A fill:#0f172a,stroke:#38bdf8,color:#ffffff style B fill:#1e293b,stroke:#22c55e,color:#ffffff style C fill:#1e293b,stroke:#f97316,color:#ffffff style D fill:#1e293b,stroke:#eab308,color:#ffffff style E fill:#1e293b,stroke:#8b5cf6,color:#ffffff style F fill:#1e293b,stroke:#ef4444,color:#ffffff style G fill:#1e293b,stroke:#14b8a6,color:#ffffff style H fill:#7f1d1d,stroke:#ef4444,color:#ffffff ```

## 🛠️ 核心工程与 ML 工作流

## 1. 📊 大规模数据工程 该项目处理了一个包含 **110 万+ 网络连接**和 **23 个原始特征**的大规模 IoT 流量数据集。 ### 关键步骤 * 加载并检查了海量的网络流量数据 * 使用 **Pandas SQL** 进行关系型流量分析 * 执行了流量聚合 * 移除了不稳定或有偏见的标识符 * 准备了干净的特征矩阵用于建模 ### 为什么这很重要 网络数据集通常包含一些标识符,这些标识符可能会让模型记住环境,而不是学习真正的恶意行为。 本项目移除了这些捷径,以提高泛化能力。 ## 2. 🧹 特征清洗 该 pipeline 系统性地移除了可能泄露特定环境信息的高基数特征和有偏见的特征。 ### 移除的特征类型 * IP 地址 * 端口号 * 时间戳 * 唯一 ID * 其他不稳定的标识符 ### 目标 防止模型对静态标识符过拟合,并强制其从网络活动中学习行为模式。
## 3. ⚖️ 不平衡校正 网络入侵数据集通常高度不平衡,其中一个类别在训练分布中占据主导地位。 ### 使用的策略 * 应用了**降采样** * 将数据集平衡为 **50/50 的类别分布** * 提高了决策树训练的公平性 * 减少了多数类偏见 ### 结果 模型学习了良性和恶意行为,而不是默认偏向主导类别。 ## 4. 🧠 信息论优化 该项目使用**互信息**来量化每个行为特征对预测恶意软件标签的贡献程度。 ### 核心概念 * 互信息 * 熵 * 信息增益 * 特征排名 * 降维 ### 结果 优化后的模型仅使用信息量最大的行为特征,便保持了强大的性能。


## 🧪 ML Pipeline

``` sequenceDiagram participant D as Raw Dataset participant S as Sanitization participant B as Balancing participant MI as Mutual Information participant T as Decision Tree participant E as Evaluation D->>S: Remove high-cardinality identifiers S->>B: Balance benign and malicious classes B->>MI: Rank behavioral features MI->>T: Train optimized classifier T->>E: Measure accuracy, ROC AUC, and tree complexity ```

## 📊 性能指标

| 指标 | 优化模型 | | ---------------------------- | -------------------------------------: | | **准确率** | **95.38%** | | **ROC AUC** | **0.95** | | **树节点** | **143** | | **数据集规模** | **110 万+ 网络连接** | | **原始特征数量** | **23** | | **类别平衡策略** | **降采样至 50/50 分布** | | **特征选择方法** | **互信息** | | **模型类型** | **决策树分类器** |

## 🔍 关键发现:行为特征至关重要

优化后的模型表明,当基于行为网络信号而不是静态标识符进行训练时,恶意软件检测可以非常有效。 最强的指标来自于与以下内容相关的特征:
### 1. 🔗 连接历史 连接历史记录了 TCP/UDP 状态变化的序列。 这有助于识别在恶意活动期间可能出现的异常通信模式。 ### 2. 📡 协议和服务行为 协议和服务层行为可以揭示静态标识符可能遗漏的可疑通信模式。 这支持在不同网络环境中实现更强的泛化能力。


## 🧩 特征工程策略

``` mindmap root((Behavioral Malware Detection)) Removed Static Identifiers IP Addresses Ports Timestamps Unique IDs Behavioral Features Connection History Protocol Service Traffic Patterns Optimization Mutual Information Entropy Information Gain Dimensionality Reduction Modeling Decision Tree Balanced Classes ROC AUC Accuracy ```

## 🛠️ 技术栈


### 🐍 语言 ![Python](https://img.shields.io/badge/Python-3.12-3776AB?style=for-the-badge\&logo=python\&logoColor=white) ### 📊 数据工程 ![Pandas](https://img.shields.io/badge/Pandas-150458?style=for-the-badge\&logo=pandas\&logoColor=white) ![Pandas SQL](https://img.shields.io/badge/PandasSQL-Relational%20Processing-22C55E?style=for-the-badge) ### 🤖 机器学习 ![Scikit Learn](https://img.shields.io/badge/Scikit--Learn-F7931E?style=for-the-badge\&logo=scikitlearn\&logoColor=white) ![Decision Tree](https://img.shields.io/badge/Decision%20Tree-Classifier-EF4444?style=for-the-badge)


## 🚀 安装与使用

### 1. 克隆仓库 ``` git clone https://github.com/dhrumilrana25/IoT-Malware-Detection-Network-Analytics.git cd IoT-Malware-Detection-Network-Analytics ``` ### 2. 创建虚拟环境 ``` python -m venv venv ``` ### 3. 激活环境 #### Windows ``` venv\Scripts\activate ``` #### macOS / Linux ``` source venv/bin/activate ``` ### 4. 安装依赖项 ``` pip install -r requirements.txt ``` ### 5. 运行 Notebook ``` jupyter notebook ``` 打开主 notebook 并按顺序执行单元格。

## 📁 建议的仓库结构

``` IoT-Malware-Detection-Network-Analytics/ │ ├── data/ │ ├── raw/ │ └── processed/ │ ├── notebooks/ │ └── iot_malware_detection.ipynb │ ├── src/ │ ├── data_processing.py │ ├── feature_selection.py │ ├── train_model.py │ └── evaluate_model.py │ ├── results/ │ ├── confusion_matrix.png │ ├── roc_curve.png │ └── feature_importance.png │ ├── requirements.txt └── README.md ```

## 📌 为什么这个项目很重要

IoT 恶意软件检测非常困难,因为设备生态系统多种多样,网络行为变化迅速,而且新的攻击可能与已知特征不匹配。 该项目展示了一种更具泛化能力的策略: * 避免记住 IP、端口、时间戳或特定于环境的标识符 * 从网络连接中学习行为模式 * 使用信息论来识别最强的预测因子 * 在保持强劲性能的同时减少特征空间 * 利用决策树逻辑保持模型的可解释性

## 🔮 未来改进

* [ ] 添加 Random Forest 和 Gradient Boosting 对比 * [ ] 在不同的 IoT 流量子集上添加交叉验证 * [ ] 添加基于 SHAP 的模型可解释性 * [ ] 添加实时数据包流模拟 * [ ] 添加用于实时预测的 FastAPI endpoint * [ ] 添加 Dockerized 部署 * [ ] 添加用于可视化攻击流量的仪表板 * [ ] 添加模型监控指标

## 📈 仓库统计




## 👨‍💻 开发者
Developer Typing

[![LinkedIn](https://img.shields.io/badge/LinkedIn-Dhrumil%20Rana-0077B5?style=for-the-badge\&logo=linkedin\&logoColor=white)](https://www.linkedin.com/in/dhrumil-rana-265316232/) [![Email](https://img.shields.io/badge/Email-dhrumilrana25%40gmail.com-D14836?style=for-the-badge\&logo=gmail\&logoColor=white)](mailto:dhrumilrana25@gmail.com) [![GitHub](https://img.shields.io/badge/GitHub-dhrumilrana25-181717?style=for-the-badge\&logo=github\&logoColor=white)](https://github.com/dhrumilrana25)

### “恶意软件可能隐藏在数据包中,但行为会留下痕迹。”
标签:Apex, NoSQL, 数据工程, 机器学习, 物联网安全, 逆向工具