haripatel07/android-malware-detector

GitHub: haripatel07/android-malware-detector

基于随机森林和静态分析的 Android 恶意软件检测系统,通过提取 APK 权限和字节码特征实现高准确率的恶意应用识别。

Stars: 0 | Forks: 0

# Android 恶意软件检测器 一个基于机器学习的 Android 恶意软件检测系统,利用静态分析技术分析 APK 文件,以识别潜在的恶意应用程序。 ## 功能特点 - **静态分析**:无需执行即可对 Android APK 文件进行全面的静态分析 - **特征提取**:提取 215 个不同的特征,包括权限、API 调用和字节码分析 - **机器学习**:使用经过训练的 Random Forest 分类器进行恶意软件检测 - **高准确率**:基于包含数千个恶意软件和良性样本的 Drebin 数据集进行训练 - **易于使用**:简单的命令行界面,用于快速分析 APK ## 工作原理 检测器使用静态分析通过以下方式检查 Android 应用程序: 1. **Manifest 分析**:提取请求的权限和 intent 过滤器 2. **字节码分析**:分析 DEX 文件以识别类名和方法调用 3. **特征向量构建**:构建 215 维特征向量 4. **机器学习分类**:使用预训练的 Random Forest 模型将其分类为良性或恶意 ## 安装说明 ### 前置条件 - Python 3.8 或更高版本 - pip 包管理器 ### 安装步骤 1. 克隆仓库: ``` git clone cd android-malware-detector ``` 2. 创建虚拟环境(推荐): ``` python -m venv venv # 在 Windows 上: venv\Scripts\activate # 在 Linux/Mac 上: source venv/bin/activate ``` 3. 安装依赖项: ``` pip install -r requirements.txt ``` ## 使用方法 ### 分析单个 APK ``` python main.py path/to/your/app.apk ``` ### 输出示例 ``` Starting static analysis of: ZArchiver.apk Successfully extracted 215 features. Model is analyzing the features... ============================== [+] RESULT: BENIGN Confidence: 99.21% ============================== ``` ## 项目结构 ``` android-malware-detector/ ├── main.py # Main entry point for APK analysis ├── src/ │ └── feature_extractor/ │ └── extractor.py # Core feature extraction logic ├── models/ │ ├── android_malware_model.joblib # Trained ML model │ └── feature_columns.joblib # Feature column definitions ├── data/ │ ├── ZArchiver.apk # Sample benign APK │ ├── drebin-215-dataset-5560malware-9476-benign.csv # Training data │ └── dataset-features-categories.csv # Feature categories └── README.md ``` ## 依赖项 - **androguard**:用于 APK 静态分析和 DEX 字节码解析 - **pandas**:数据操作和特征向量构建 - **scikit-learn**:机器学习算法和模型训练 - **joblib**:模型序列化和加载 ## 训练模型 要使用新数据重新训练模型: ``` python src/model/train_model.py ``` 这将执行以下操作: - 加载 Drebin 数据集 - 预处理数据 - 训练新的 Random Forest 分类器 - 保存更新后的模型和特征列 ## 数据集 该模型在 Drebin 数据集上进行训练,其中包含: - 5,560 个恶意软件样本 - 9,476 个良性应用程序 - 每个样本 215 个特征 ## 性能表现 当前模型通过全面的静态分析,在区分恶性和良性 Android 应用程序方面达到了很高的准确率。 ## 安全提示 该工具仅执行静态分析,应作为综合安全评估的一部分使用。为了彻底检测恶意软件,请务必将其与动态分析和人工审查结合起来使用。 ## 开源许可证 本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## 免责声明 本工具仅供教育和研究目的使用。作者不对因使用本软件造成的任何误用或损害负责。 ## 部署 使用 Docker 构建并运行: ``` docker build -t android-malware-detector . docker run -p 8000:8000 android-malware-detector ``` ## API 参考 | 方法 | 端点 | 描述 | |--------|----------|-------------| | POST | /predict | 上传 APK,返回恶意软件预测结果 | | GET | /health | 健康检查 | ## API 用法 ### POST /predict - 请求:multipart/form-data,键名为 `file`(APK 文件) - 响应: - `prediction`:`malware` 或 `benign` - `confidence`:浮点数(模型概率) ### GET /health - 响应:`{"status": "ok"}` ## .env 根据 `.env.example` 创建 `.env` 文件,并根据需要调整值。
标签:Android安全, Android恶意软件检测, Apex, APK分析, Drebin数据集, Python, 云安全监控, 人工智能, 恶意应用识别, 无后门, 机器学习, 特征提取, 用户模式Hook绕过, 目录枚举, 移动安全, 网络安全, 请求拦截, 逆向工具, 随机森林, 隐私保护, 静态分析