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, 分类模型, 安全检测引擎, 应用安全评估, 恶意应用识别, 提示词优化, 数据预处理, 无后门, 机器学习, 模型训练, 特征工程, 病毒查杀, 目录枚举, 移动威胁防御, 移动安全, 移动端安全, 网络安全, 逆向工具, 随机森林, 隐私保护, 静态特征提取