AvijitBaidya22580/android-malware-detector

GitHub: AvijitBaidya22580/android-malware-detector

一个混合安卓恶意软件检测系统,结合静态分析、动态分析和机器学习对APK进行恶意或良性分类,并配备SHAP可解释性分析。

Stars: 0 | Forks: 0

# 📱 混合安卓恶意软件检测系统 🚀 一个混合恶意软件检测框架,结合**静态分析、动态分析和机器学习**对安卓应用程序进行**恶意或良性**分类,并配备**可解释人工智能(SHAP)**以提高可解释性。 ## 📌 概述 本项目使用逆向工程和行为监控对安卓 APK 文件进行分析。它提取有意义的特征,并应用机器学习模型以高精度检测恶意软件,同时解释预测背后的推理。 ## 🧠 关键功能 * 🔍 使用 Apktool 和 JADX 进行逆向工程 * 🧾 静态分析(API 调用、URL、权限) * ⚡ 动态分析(运行时行为监控) * 🔗 特征融合(静态 + 动态) * 🤖 机器学习(XGBoost) * 📊 使用 SHAP 进行可解释性分析 * 🖥️ Streamlit 网页界面,便于交互 ## 🏗️ 系统架构 ![架构图](https://raw.githubusercontent.com/AvijitBaidya22580/android-malware-detector/main/working-model.png) ## ⚙️ 工作流程 1. **输入 APK** 2. **逆向工程** * 反编译 APK(Apktool / JADX) * 提取清单文件和资源 3. **静态分析** * 提取: * API 调用 * URL * 命令 * 权限 4. **动态分析** * 在模拟器/沙箱中运行 APK * 监控: * 网络活动 * 运行时行为 * 系统调用 5. **特征融合** * 合并静态和动态特征 6. **机器学习模型** * XGBoost 分类器预测: * 恶意软件 / 良性 * 置信度分数 7. **可解释性** * SHAP 解释: * 预测的原因 * 重要特征 ## 📊 示例特征 ``` { "num_urls": 152, "has_exec": 1, "has_crypto_api": 1, "has_network_api": 1 } ``` ## 📈 输出 * ✅ 恶意软件 / 良性分类 * 📊 置信度分数 * 🔍 关键洞察(SHAP 解释) ## 🧪 使用的技术 * Python * XGBoost * SHAP(可解释人工智能) * Apktool * JADX * 安卓模拟器 / ADB * Streamlit ## 📂 项目结构 ``` android-malware-detector/ │ ├── app/ # Streamlit app ├── config/ # Config files ├── data/ # Dataset (ignored) ├── models/ # Trained models (ignored) ├── notebooks/ # EDA & experiments ├── scripts/ # Pipeline scripts ├── src/ # Core logic ├── tests/ # Unit tests ├── requirements.txt └── README.md ``` ## 🚀 如何运行 ### 1️⃣ 克隆仓库 ``` git clone https://github.com/YOUR_USERNAME/android-malware-detector.git cd android-malware-detector ``` ### 2️⃣ 创建环境 ``` python -m venv .venv .venv\Scripts\activate ``` ### 3️⃣ 安装依赖 ``` pip install -r requirements.txt ``` ### 4️⃣ 运行管道 ``` python scripts/run_pipeline.py ``` ### 5️⃣ 运行网页应用 ``` streamlit run app/streamlit_app.py ``` ## 📊 结果 * 准确率:约 90% * 平衡数据集(恶意软件 vs 良性) * 各类别精确率和召回率良好 ## 🔍 可解释性(SHAP) SHAP 用于解释预测: * 识别可疑 API 调用 * 突出显示危险权限 * 解释网络相关行为 ## 💡 主要贡献 * 混合检测(静态 + 动态) * 基于逆向工程的特征提取 * 机器学习分类 * 可解释人工智能集成(SHAP) ## 🎯 应用场景 * 恶意软件检测系统 * 移动安全分析 * 网络安全研究 * 应用审查流程 ## 🧾 结论 本项目展示了一个强大的安卓恶意软件混合检测框架。通过结合多种分析技术并集成可解释人工智能,它确保了**高精度**和**可解释性**,使其适用于实际网络安全应用。 ## 👨‍💻 作者 ## 📜 许可证 MIT 许可证
标签:Android安全, Android逆向工程, Apex, Apktool, APK分析, APT检测, DAST, JADX, Kubernetes, Python, SHAP, Streamlit, URL提取, XGBoost, 云安全监控, 反编译, 可解释AI, 恶意软件分析, 无后门, 机器学习, 特征提取, 特征融合, 目录枚举, 移动安全, 移动端安全, 网络安全, 行为监控, 访问控制, 逆向工具, 隐私保护, 静态分析