Satz-N-Sentry/android-malware-analysis

GitHub: Satz-N-Sentry/android-malware-analysis

一个基于 Python 与随机森林算法的 Android 恶意软件检测系统,通过静态分析提取权限和 API 特征来自动判定 APK 的恶意性。

Stars: 0 | Forks: 0

# Android 恶意软件分析 Pipeline 一个基于机器学习的 Android 恶意软件检测系统,构建于 Kali Linux 之上。 结合静态分析与 Random Forest 分类技术来检测恶意 APK。 ## 项目概述 本工具使用以下方式分析 Android APK 文件: - **静态分析 (Static Analysis)** — 使用 androguard 提取权限和 API 调用 - **机器学习 (Machine Learning)** — 基于标记 APK 样本训练的 Random Forest 分类器 - **手动 Pipeline** — 扫描任意 APK 并即时获取判定结果及置信度评分 ## 项目结构 ``` android-malware-analysis/ ├── static_analysis/ │ └── extract_features.py ├── ml_model/ │ └── train_model.py ├── pipeline.py ├── results/ │ ├── features.csv │ ├── confusion_matrix.png │ ├── feature_importance.png │ └── scan_reports/ └── requirements.txt ``` ## 工具与技术 | 工具 | 用途 | |------|---------| | androguard | APK 静态分析 | | scikit-learn | Random Forest 机器学习分类器 | | pandas | 数据集管理 | | matplotlib/seaborn | 可视化 | | Frida | 动态分析 (即将推出) | ## 安装说明 ``` # 克隆 repo git clone https://github.com/Satz-N-Sentry/android-malware-analysis.git cd android-malware-analysis # 创建 virtual environment python3 -m venv venv source venv/bin/activate # 安装 dependencies pip install -r requirements.txt ``` ## 使用方法 ### 第 1 步 — 从 APK 数据集提取特征 ``` python3 static_analysis/extract_features.py ``` ### 第 2 步 — 训练 ML 模型 ``` python3 ml_model/train_model.py ``` ### 第 3 步 — 扫描任意 APK ``` python3 pipeline.py path/to/suspicious.apk ``` ### 输出示例 ``` ======================================================= ANALYSIS REPORT ======================================================= APK : suspicious.apk Total permissions: 21 Suspicious flags : SEND_SMS, READ_SMS, RECEIVE_SMS ------------------------------------------------------- VERDICT : MALWARE DETECTED CONFIDENCE: 76.0% Do NOT install this APK! ======================================================= [+] Report saved to: results/scan_reports/suspicious_report.txt ``` ## 结果 ### 混淆矩阵 (Confusion Matrix) ![Confusion Matrix](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5dcd06289e063236.png) ### 特征重要性 (Feature Importance) ![Feature Importance](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7606e9882b063237.png) ### 关键发现 - **total_permissions** 是最强的恶意软件指标 - **total_api_calls** 紧随其后,是第二大指标 - 在所有恶意软件样本中均发现了 **RECEIVE_BOOT_COMPLETED** - 通过 SEND/READ/RECEIVE_SMS 标志识别出的 SMS 窃取类恶意软件 ## 数据集 - 3 个良性 APK (Calculator, Clock, Flashlight) - 3 个来自 MalwareBazaar 的恶意软件 APK - 特征:12 个权限标志 + 总权限数 + 总 API 调用数 ## 准确率 - 总体准确率:67% (受限于较小的数据集) - 恶意软件召回率:100% (没有漏报任何恶意软件!) - 正在通过增加样本数量进行改进 ## 路线图 - [x] 使用 androguard 进行静态分析 - [x] ML 模型 (Random Forest 分类器) - [x] 手动 Pipeline 扫描器 - [x] 推送至 GitHub - [ ] 增加更多 APK 样本以提高准确率 - [ ] 使用 Frida 进行动态分析 - [ ] 使用 Wireshark 进行网络流量监控 - [ ] 提供 Web 界面以便于扫描 ## 免责声明 本项目仅供教育目的。 恶意软件样本仅在本地保存,绝不进行分发。
标签:AMSI绕过, Androguard, Android, Apex, API调用分析, APK分析, DSL, Python, Scikit-learn, 二进制分析, 云安全监控, 云安全运维, 人工审查, 威胁检测, 无后门, 机器学习, 权限提取, 网络安全, 自定义DNS解析器, 逆向工具, 随机森林, 隐私保护, 静态分析