Carl-Trebor-Katalbas/MALDROID

GitHub: Carl-Trebor-Katalbas/MALDROID

MALDROID 是一个基于机器学习静态分析 APK 文件的 Android 恶意软件检测系统,集成了移动端应用、Flask 后端 API 和模型训练流水线。

Stars: 0 | Forks: 0

# MALDROID **通过 APK 分析使用机器学习检测 Android 应用程序中的恶意软件** ## 📌 概述 **MALDROID** 是一个由机器学习驱动的系统,旨在通过分析 APK 文件来检测恶意的 Android 应用程序。它利用静态特征提取和智能分类技术实时识别潜在的有害应用。 ## ⚙️ 项目结构与开发工作流 MALDROID 的开发采用了**模块化分支**设计,每个分支专注于系统的特定组件: * **`maldroid-app` 分支** 包含使用 **Android Studio (Kotlin)** 构建的 Android 应用程序。 * 用于扫描 APK 的用户界面 * 功能:*扫描 APK*、*扫描所有 APK*、*最近扫描*和设置 * 通过 REST API (Retrofit / OkHttp) 与后端通信 * **`maldroid-model` 分支** 托管**后端 API 和机器学习模型**。 * 使用 **Flask** 构建 * 处理 APK 特征并进行预测 * 实现训练好的 ML 模型(主要为 Random Forest) * **`maldroid-data` 分支** 包含用于以下用途的 **Jupyter Notebooks**: * 数据集聚合与预处理 * 使用 AndroGuard 进行特征提取 * 模型训练、评估与实验 ## 🧠 主要特性 * 📱 通过 Android 应用实时扫描 APK * 🤖 基于机器学习的恶意软件检测 * 🔍 从 APK 提取特征(权限、API 调用等) * 📊 模型比较(Random Forest、KNN、SVM) * 🔗 应用程序与后端之间的 RESTful API 集成 ## 🗂️ 使用的数据集 * Drebin * CICAndMal2017 * AM Dataset * AMSF Dataset 经过评估,由于兼容性和性能优势,选择将 **Drebin 和 AM 数据集**进行聚合。 ## 🧪 方法论 1. **数据收集与聚合** 2. **特征提取** (AndroGuard) 3. **预处理与特征选择** (RRFS) 4. **模型训练** * Random Forest(表现最佳) * K-Nearest Neighbors (KNN) * Support Vector Machine (SVM) 5. **评估与部署** ## 📊 结果摘要 * **Random Forest (RF)** 取得了最佳的实战性能 * 在多个数据集上具有很高的准确率(高达约 99%) * 与 KNN 和 SVM 相比,具有很强的泛化能力 * 已成功部署在 MALDROID 移动应用程序中 ⚠️ *局限性:* * 对重新打包或混淆的恶意软件存在一些漏报 * 严重依赖静态分析 ## 📱 应用程序功能 * 扫描单个 APK 文件 * 扫描所有已安装的 APK * 查看扫描历史 * 简洁清爽的 UI * 基于 API 的快速检测 ## 🚧 局限性 * 动态(运行时)分析受限 * 难以检测高度混淆的恶意软件 * 模型预测的可解释性有限 ## 🚀 未来改进 * 集成**动态/运行时分析** * 使用更新的恶意软件样本扩充数据集 * 实现**混合或集成模型** * 增加恶意软件类型分类(例如,勒索软件、间谍软件) * 提高预测的可解释性 * 优化低端设备上的性能 ## 👨‍💻 研究人员 * Carl Trebor Katalbas * Johnneri Garcia ## 📄 许可证 本项目用于学术和研究目的。未来版本可能会添加详细的许可信息。
标签:AndroGuard, Android开发, Android恶意软件检测, Apex, APK静态分析, Drebin数据集, Flask, KNN, Kotlin, NoSQL, OkHttp, Python, Random Forest, RESTful API, Retrofit, SVM, 分类模型, 安全检测引擎, 应用安全评估, 恶意应用识别, 提示词优化, 数据预处理, 无后门, 机器学习, 模型训练, 特征工程, 病毒查杀, 目录枚举, 移动威胁防御, 移动安全, 移动端安全, 网络安全, 逆向工具, 随机森林, 隐私保护, 静态特征提取