论文部分内容阅读
手机作为智能设备已经成为人们日常生活中必不可少的一部分,手机应用(APP)为我们提供了丰富多彩的服务。这些不同的服务为用户打开了一个全新的世界,同时也生成大量数据,其中包含很多用户敏感信息。因此,如何保障手机安全对用户而言意义重大。安卓操作系统随着智能设备普及而得到快速的发展,由于其开源的优势和成熟的技术,目前在手机操作系统市场份额占据了85%的份额。安卓系统不仅是手机和平板电脑的主流平台,还在物联网领域有着广泛的应用。因此,如何保护安卓系统免受恶意软件的攻击显得至关重要。基于安卓恶意软件检测技术又分为动态检测技术和静态检测技术。本文侧重研究静态检测技术,提出了三种基于机器学习、深度学习的安卓恶意软件静态检测方法,主要工作如下:(1)通过对现有安卓恶意软件静态检测算法进行分析和研究,针对安卓恶意软件权限泛滥申请这一问题,提出一种基于集成学习与信息增益的安卓恶意软件检测方法。该方法通过选取权限、API特征,弥补了单个特征无法准确反映良性和恶意软件之间差别的缺陷。考虑到某些特征并不能真实表明恶意和良性软件之间的差距,因此通过信息熵的筛选,计算特征的信息增益值,把良性和恶意的APP中具有代表性的权限、API调用筛选出来,作为分类的关键特征集利用旋转森林算法,针对安卓的一些主要特征采用weka分析工具进行关联分析,实现了96.4%的安卓恶意软件的检测率;(2)针对传统的机器学习算法在安卓恶意软件检测的应用中大规模的恶意应用程序难以使用手动添加标签问题,本文提出基于卷积神经网络的安卓恶意软件检测算法,该方法通过提取APP的权限、API等权限,把多种静态特征转化为矩阵形式的向量,解决了手动大规模添加标签的困难,使用卷积神经网络算法去挖掘特征之间的内在关联。该方法用较小的数据集训练检测模型,再把模型运用到大规模的数据集上进行快速检测,实现了96.04%的安卓恶意软件的检测率;(3)由于上述检测方法在面对现阶段结构复杂的APPs,检测效果容易受静态分析中所选择的关键特征影响的问题,提出了基于长短时记忆算法的安卓恶意软件检测方法。考虑到安卓软件本身是一个逻辑性较强的应用程序,其操作有时间的连续性和空间的关联性。该方法从特征选择与提取上进行了重新的考量,通过深度挖掘其代码逻辑中的关联,提取操作码序列并处理成一串串相关联的文本时间序列,运用深度学习强大的学习能力和长短时记忆算法对相关联的时间序列强大的计算能力,从代码层面解决关键特征对检测效果产生影响的问题,最终实现对安卓恶意软件的检测,并获得97.6%的检测精度。