kushpathakgit/Android-Malware-Analysis
GitHub: kushpathakgit/Android-Malware-Analysis
基于机器学习的安卓恶意软件双阶段检测系统,通过静态权限特征与动态网络行为特征对比多种 ML 分类器的检测效果。
Stars: 0 | Forks: 0
# 基于 Machine Learning 的 Android 恶意软件检测




# 概述
Android 恶意软件演变迅速,使得传统的基于特征码的检测系统在面对使用以下技术的现代威胁时日益失效:
- 代码混淆
- 动态 payload 下载
- 运行时规避
- 沙箱检测技术
本项目实现了一个使用 Machine Learning 的双阶段 Android 恶意软件检测系统:
## 静态分析
通过提取以下内容,在不执行的情况下分析 APK 文件:
- 权限
- Intent
- Manifest 元数据
- 硬件访问请求
## 动态分析
在隔离的 Android 模拟器内执行应用程序,以监控:
- 运行时网络流量
- 行为通信模式
- 可疑的出站连接
- 实时恶意软件活动
该项目使用多种监督式 ML 分类器比较了静态和动态分析 pipeline 的有效性。
# 功能
- 混合恶意软件检测架构
- 静态权限与 Manifest 分析
- 动态行为流量分析
- 使用 PCAPdroid 进行免 root 网络拦截
- 自动化的 PCAP 到 CSV 转换 pipeline
- Machine Learning 分类引擎
- 来自 AndroZoo 的平衡恶意/良性数据集
- 多个 ML 模型的对比评估
# 系统架构
```
┌────────────────────┐
│ AndroZoo APKs │
└─────────┬──────────┘
│
┌───────────────┴────────────────┐
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ Static Analysis │ │ Dynamic Analysis │
└─────────────────┘ └──────────────────┘
│ │
▼ ▼
Permission & Intent Runtime Network Traffic
Feature Extraction Capture (PCAP)
│ │
▼ ▼
CSV Dataset PCAP Parsing
│
▼
Behavioral Feature CSV
│
┌───────────────────────┴──────────────────────┐
▼ ▼
Machine Learning Models Comparative Evaluation
```
# 我的贡献
作为该项目的核心工程师,我的主要职责集中在动态分析 Pipeline 和行为特征工程。
## 动态模拟基础设施
- 配置并维护了隔离的 Android Studio 模拟器环境
- 安全地执行了潜在的恶意 APK 样本
- 防止了恶意软件执行期间宿主系统的暴露
## 运行时行为监控
- 集成了 PCAPdroid 以实现免 root 的数据包拦截
- 捕获了执行期间的入站和出站流量
- 监控了针对远程服务器的可疑通信尝试
## 网络流量特征工程
使用以下工具为原始 PCAP 文件开发了自动化解析 pipeline:
- Python
- Scapy
- Pandas
提取的行为指标包括:
- TCP/UDP 流统计信息
- 数据包大小
- 连接频率
- 流持续时间
- 协议分布
## 数据集工程
- 将原始 PCAP 流量转换为结构化的 CSV 数据集
- 构建了适用于 Machine Learning 分类的行为数据集
# 技术栈
## 语言
- Python
- Java
## 机器学习
- Scikit-Learn
- k-Nearest Neighbors (k-NN)
- Random Forest
- Decision Tree
- Logistic Regression
## 数据工程
- Pandas
- NumPy
- Scapy
## 基础设施与工具
- Android Studio Emulator
- PCAPdroid
- AndroZoo API
# 数据集
使用 AndroZoo 学术存储库策划了一个包含 100 个 Android 应用程序的平衡数据集。
| 类别 | 数量 |
|---|---|
| 良性 APK | 50 |
| 恶意软件 APK | 50 |
# 静态分析 Pipeline
静态分析阶段在不进行运行时执行的情况下评估应用程序。
## 提取的特征
- 危险权限
- Manifest Intent
- 硬件访问请求
- 广播接收器
- 启动行为
### 示例指标
- READ_SMS
- SEND_SMS
- RECEIVE_BOOT_COMPLETED
- SYSTEM_ALERT_WINDOW
- ACCESS_FINE_LOCATION
# 动态分析 Pipeline
动态 pipeline 旨在检测能够绕过静态扫描器的恶意软件。
## 执行工作流
1. 在 Android 模拟器内安装 APK
2. 在固定的运行时窗口内执行应用程序
3. 使用 PCAPdroid 捕获网络流量
4. 将 PCAP 文件解析为行为指标
5. 在运行时数据上训练 ML 分类器
## 捕获的运行时特征
- 流持续时间
- 数据包大小分布
- 连接频率
- 协议类型分析
- 出站通信行为
# 评估的 Machine Learning 模型
| 模型 | 用途 |
|---|---|
| k-Nearest Neighbors | 基于相似度的分类 |
| Decision Tree | 基于规则的恶意软件检测 |
| Random Forest | 集成学习 |
| Logistic Regression | 统计分类 |
# 结果
# 静态分析性能
| 分类器 | 准确率 | 召回率 | F1 分数 |
|---|---|---|---|
| k-NN | 95.00% | 100.00% | 95.24% |
| Random Forest | 90.00% | 90.00% | 90.00% |
| Decision Tree | 80.00% | 70.00% | 77.78% |
| Logistic Regression | 80.00% | 80.00% | 80.00% |
## 最佳静态模型
k-Nearest Neighbors (k-NN)
- 95% 准确率
- 100% 召回率
- 测试数据集上零假阴性
# 动态分析性能
| 分类器 | 准确率 | 召回率 | F1 分数 |
|---|---|---|---|
| Logistic Regression | 75.00% | 100.00% | 80.00% |
| k-NN | 50.00% | 33.33% | 40.00% |
| Decision Tree | 33.33% | 33.33% | 33.33% |
| Random Forest | 33.33% | 16.67% | 20.00% |
## 最佳动态模型
Logistic Regression 在受限的动态环境中表现出了最强的适应性。
# 工程挑战
动态恶意软件分析带来了一些现实世界中的网络安全挑战:
## 硬件限制
- Android 模拟计算成本高
- 一些恶意软件样本在执行期间崩溃
- 动态数据集生成变得非常耗费资源
## 反模拟技术
一些恶意软件样本试图通过检查以下内容来规避沙箱:
- 模拟器硬件指纹
- CPU 架构
- 传感器可用性
- 用户交互模式
- 网络环境特征
这些技术极大地影响了动态行为数据的收集。
# 关键发现
## 静态分析
- 轻量级且计算高效
- 非常适合作为第一道防线的恶意软件筛查
- 在有限的数据集上表现强劲
## 动态分析
- 对混淆具有更强的抵抗力
- 更适合检测高级威胁
- 需要可扩展的基础设施和庞大的行为数据集
## 重要观察
在受限的动态数据集下,像 Logistic Regression 这样较简单的统计模型优于复杂的集成方法。
# 未来改进
- 基于云的可扩展沙箱基础设施
- 大规模自动化恶意软件执行
- 深度学习集成
- 真实设备行为分析
- API 调用序列分析
- 混合集成的检测系统
# 仓库结构
```
Android-Malware-Analysis/
│
├── dataset/
├── static-analysis/
├── dynamic-analysis/
├── pcap-processing/
├── models/
├── results/
├── reportEPICS.pdf
└── README.md
```
# 完整文档
包含以下内容的完整项目报告:
- 方法论
- 文献综述
- 实验设置
- 架构
- 对比评估
- 硬件限制
- 基准分析
作为以下文件包含在此仓库中:
📄 `reportEPICS.pdf`
# 项目仓库
GitHub Repository:
https://github.com/kushpathakgit/Android-Malware-Analysis
# 作者
作为 VIT Bhopal University EPICS 项目的一部分开发。
核心贡献领域:
- 动态恶意软件模拟
- 运行时行为分析
- 网络流量拦截
- PCAP 特征工程
- Machine Learning 评估
标签:Android, Apex, DSL, JS文件枚举, 云安全监控, 安全, 机器学习, 超时处理, 逆向工具, 静态分析