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, 多分类问题, 威胁检测, 字节级数据, 恶意软件家族, 数据降维, 无后门, 机器学习, 模型持久化, 模型评估, 混淆矩阵, 特征工程, 统计学特征, 网络安全, 超参数调优, 逆向工具, 逻辑回归, 随机森林, 隐私保护