Onkar2087/Malware-Detection-Using-Statistical-Analysis
GitHub: Onkar2087/Malware-Detection-Using-Statistical-Analysis
基于字节级统计特征与机器学习的恶意软件家族分类系统,涵盖特征工程、多模型对比与性能评估的完整流程。
Stars: 0 | Forks: 0
# 🛡️ 使用机器学习进行恶意软件分类
## 📌 概述
本项目重点研究使用**统计特征工程和机器学习模型**将**恶意软件样本分类到多个家族**中。
处理流程包括数据预处理、探索性分析、特征归一化、降维、模型训练、评估和预测。
## 🎯 目标
* 使用统计技术分析恶意软件数据集
* 从字节级数据中提取有意义的特征
* 比较多种机器学习模型
* 使用对数损失和混淆矩阵评估模型
* 构建稳健的恶意软件分类系统
## 📂 数据集
本项目使用了:
* `trainLabels.csv` → 恶意软件类别标签
* `data_size_byte.csv` → 文件大小特征
* `result.csv` → 提取的字节级特征
每个样本属于**9 种恶意软件类别**之一:
* Ramnit
* Lollipop
* Kelihos_ver3
* Vundo
* Simda
* Tracur
* Kelihos_ver1
* Obfuscator.ACY
* Gatak
## ⚙️ 技术栈
* Python
* NumPy, Pandas
* Matplotlib, Seaborn
* Scikit-learn
* TSNE (Dimensionality Reduction)
## 🔍 项目工作流
### 1. 数据分析
* 类别分布可视化
* 使用箱线图展示文件大小分布
### 2. 特征工程
* 将字节特征与文件大小合并
* Min-Max 归一化
### 3. 可视化
* 使用 TSNE 可视化高维数据
### 4. 数据拆分
* 训练集 / 交叉验证集 / 测试集拆分
* 采用分层抽样以保持类别平衡
### 5. 实现的模型
* Logistic Regression (带校准)
* K-Nearest Neighbors
* Random Forest
### 6. 模型评估
* Log Loss
* 混淆矩阵
* 精确率与召回率矩阵
### 7. 模型选择
* 使用交叉验证进行超参数调优
* 基于最小对数损失选择最佳模型
### 8. 模型持久化
* 使用 `pickle` 保存最终模型
## 📊 结果
* 使用对数损失比较了多种模型
* Random Forest 取得了最佳性能
* 校准改进了概率估计
## 🚀 如何运行
```
# Clone the repo
git clone https://github.com/your-username/malware-classification.git
# Install dependencies
pip install -r requirements.txt
# Run the notebook / script
jupyter notebook
```
## 📈 核心特性
* 端到端的 ML 流水线
* 特征归一化与合并
* 使用 TSNE 进行高级可视化
* 模型校准以获得更好的概率估计
* 详细的评估指标
## 📌 未来改进
* 深度学习模型 (在字节序列上应用 CNN)
* 特征选择技术
* 部署为 Web 应用
* 实时恶意软件检测系统
## 👤 作者
Onkar Dhingta
## ⭐ 致谢
* Kaggle Microsoft Malware Classification 数据集
* Scikit-learn 文档
标签:AMSI绕过, Apex, DNS 反向解析, K近邻, Matplotlib, NumPy, Python, Scikit-learn, Seaborn, TSNE, 多分类问题, 威胁检测, 字节级数据, 恶意软件家族, 数据降维, 无后门, 机器学习, 模型持久化, 模型评估, 混淆矩阵, 特征工程, 统计学特征, 网络安全, 超参数调优, 逆向工具, 逻辑回归, 随机森林, 隐私保护