利用深度学习检测安卓恶意软件
1. 应用选择与收集
从2014年1月开始,每月收集并处理大量安卓应用。由于处理安卓应用存在时间和空间限制,收集和处理工作截止到2016年12月,最终共收集并处理了93,542个安卓应用样本。根据相关报告,安卓恶意软件的分布比例约为8 - 12%,本研究中整体恶意软件平均占比约为10%,多数月份的分布比例在8 - 12%之间。考虑到反病毒检测大约一年后会稳定,所以认为该数据集成熟且能反映真实情况。良性应用和恶意软件的收集时间为2014年1月至2016年12月。
2. 研究方法
2.1 研究流程概述
恶意软件检测过程如下:
1. 收集大量安卓应用包(apks),由于这些包本质上是编译和归档的Java类文件,在分析提取的源代码之前,需要将apk反编译成Java源代码。
2. 分析源代码工件,为每个安卓应用获取Chidamber和Kemerer Java指标(CKJM)。
3. 对这些指标应用聚合方法,为基于指标的数据集的每个安卓应用生成一个元组。
4. 检查基于指标的数据集在恶意软件和良性类之间的样本不平衡情况,使用四种数据采样技术(全采样、随机采样、下采样和上采样)来解决这些不平衡问题。
5. 由于数据集包含大量特征,部署六种特征选择方法(所有指标(AM)、重要指标(SGM)、互相关(CCR)、主成分分析(PCA)、基尼指数(GINI)和信息增益(INFOG)),以获得不影响数据集性能的最小特征集。
6. 使用最小 - 最大归一化对采样后的数据集进行归一化,使特征值缩放到0和1之间。
7. 设计五种不同的深度神经网络,使用可用数据集构建模型,并使用AUC指
超级会员免费看
订阅专栏 解锁全文

1829

被折叠的 条评论
为什么被折叠?



