shjoonfahad/Android-Malware-Detection

GitHub: shjoonfahad/Android-Malware-Detection

基于静态分析和软件工程指标,结合多种机器学习算法实现 Android 恶意软件自动化检测与分类的项目。

Stars: 0 | Forks: 0

# 🤖 使用 SEMetrics 进行 Android 恶意软件检测 一个基于机器学习的 Android 恶意软件检测项目,使用静态分析和软件工程指标。 ## 📌 项目概述 本项目使用静态分析技术和软件工程指标分析 Android APK 文件,以区分恶意应用程序和良性应用程序。 该项目自动化了特征提取、数据集生成、机器学习分类以及使用多种分类器进行的性能评估。 ## ✨ 功能 - Android APK 静态分析 - 软件指标提取 - 自动化特征处理 - 恶意软件分类 - 机器学习评估 - ROC 曲线分析 - WEKA 验证 - 批量 APK 处理 ## 🛠 使用的技术 - Python - Java - SEMetrics - DroidASAT - Scikit-learn - Pandas - NumPy - Matplotlib - WEKA ## 📊 机器学习算法 - Random Forest - Decision Tree - K-Nearest Neighbors (KNN) - Naive Bayes - AdaBoost - Multi-Layer Perceptron (MLP) ## 📂 工作流程 1. 收集 Android APK 样本。 2. 使用 DroidASAT 提取软件工程指标。 3. 生成 CSV 数据集。 4. 聚合提取的特征。 5. 训练多个机器学习模型。 6. 使用 ROC 曲线和 WEKA 评估模型性能。 ## 📈 结果 ### ROC 曲线 ![ROC 曲线](https://static.pigsec.cn/wp-content/uploads/repos/cas/06/066ed8d923fbfff5dd882159fb06052ba4fc434807834423a5f68469355f0662.png) ### WEKA 验证 ![WEKA 验证](https://static.pigsec.cn/wp-content/uploads/repos/cas/9e/9eb13e1e73288affc0ae5d3101dcd870a3a40a6dcdf0734d416c27541af4111a.png) ### APK 特征提取 ![特征提取](https://static.pigsec.cn/wp-content/uploads/repos/cas/bf/bf8c80b8456fe32afdfda2879796d468dbb7850ea48a79a299685e10b6d12e2e.png) ### 总结 - 静态分析成功完成。 - 软件指标自动提取。 - 评估了多个机器学习模型。 - Random Forest 取得了最佳的整体性能。 - 生成 ROC 曲线用于模型评估。 - 使用 WEKA 进行分类器验证。 ## 📄 项目报告 完整的技术报告包含在此代码库中。 📄 **Android_Malware_Detection_Report.pdf** ## 📁 项目结构 ``` Android-Malware-Detection/ │ ├── images/ ├── samples/ ├── out/ ├── Classify.py ├── SEMetrics.py ├── export_CSVs.py ├── run.bat ├── DroidASAT.jar ├── combined.csv ├── Android_Malware_Detection_Report.pdf └── README.md ``` ## 🚀 未来改进 - 深度学习模型 - 动态恶意软件分析 - 额外的 Android 特征 - 实时恶意软件检测 - Web 仪表板 ## 👩‍💻 作者 **Shujun Alsaif** 信息安全专业毕业生 海尔大学 LinkedIn: https://www.linkedin.com/in/shujun-alsaif GitHub: https://github.com/shjoonfahad
标签:Android恶意软件检测, Apex, JS文件枚举, Scikit-learn, 云安全监控, 机器学习, 特征提取, 软件度量, 逆向工具, 静态分析