论文部分内容阅读
近年,由于Android系统具备易用性、开源性和高可扩展性,Android移动智能设备已经占据了移动智能设备中的大部分市场份额,与此同时,这些操作系统的特性和潜在的巨大经济利益驱动也使得Android移动智能设备成为了许多恶意程序的攻击目标。因此,为了保护Android系统用户信息的完整性、可用性和保密性,一个高效的Android恶意程序检测系统对于移动研发制造商、安全厂商及Android用户来说都是十分必要和紧迫的。目前,Android应用程序分析方法可以分为:静态分析方法、动态分析方法和机器学习分析方法。静态分析方法指反编译Android应用程序安装包,然后进行源代码级的解析,优点是轻量级和速度快,但由于恶意软件变形技术及无法模拟程序的运行情况,存在误报问题。动态分析方法能实时监视敏感数据的流向,检测精度高,但往往需要修改Android系统源码,这种重量级的方法需要较大的系统资源开销。机器学习分析方法则通过预先训练好的Android应用程序分类器来模拟程序的行为,直接把抽取到的待测程序的特征值输入到分类器,进行识别和检测,但是对于在移动智能设备计算能力弱、存储空间小和续航能力差等条件下,选取怎样的机器学习方法和构建怎样的Android应用程序的特征空间向量,至今都还没有一个完美的答案。深度学习方法由于具备多隐层节点,对原始特征有更优异的学习能力,分类效果更好,相对传统的机器学习方法,已经在语义识别等领域中取得了突破性的进展,但是应用在Android恶意程序检测方面的研究工作还几乎没有。因此,本文基于机器学习分析方法在Android恶意程序识别和检测方面已有的研究成果开展了进一步的研究工作。首先,通过分析Android应用程序的静态特征和动态特征,构建了程序的原始特征空间向量;然后,通过分析DBN的相关理论,提出了基于DBN的Android恶意程序识别模型(DAODB),并设计了基于DAODB模型的Android恶意程序分层检测系统(AMDOD);最后,通过实验发现,基于DAODB模型的Android应用程序分类器的分类精度值达到了95.45%,经比较,优于基于传统机器学习方法的分类器,而且,混合特征集的分类效果优于在单一特征集的分类效果。