论文部分内容阅读
随着智能手机的出现以及移动互联网的快速发展,用户连接网络的方式也在逐渐发生变化,由PC端向移动端转移。现如今智能手机与传统PC相比,已不仅仅是简单的通信工具,PC端的很多功能都在移动端实现。Android手机系统是目前市场上用户最多的手机操作系统,因此大量的用户和开发人员关注安卓应用市场。同时,恶意代码的开发者也将目光转入这一市场,用户的手机安全受到极大威胁。面对Android应用市场存在的大量恶意应用,如何高效的检测恶意应用是个亟待解决的问题。针对以上问题,本论文旨在研究基于机器学习的安卓恶意应用检测方法,主要研究重点包括:(1)对安卓恶意应用检测的研究现状和成果以及安卓系统架构进行了深入的研究,分析了安卓系统基于Linux内核的安全机制以及安卓系统特有的安全机制,如沙盒机制和权限机制等。(2)分析了恶意应用的攻击方式以及恶意代码植入方式,在此基础上对Android应用的反编译文件进行了深入解析,并对论文中所使用的机器学习分类算法的原理进行了分析。(3)设计了基于机器学习的安卓恶意应用检测的方案,针对恶意应用特征提出使用N-gram Opcode特征进行机器学习的恶意应用检测方案,实验结果表明使用Dalvik指令分为24类的规则和3-gram生成的3-gram Opcode特征具有最好的性能。随后依据3-gram Opcode特征结合API特征和Permission特征,对特征集合和分类算法对分类器的性能影响进行了多次实验,大量的实验表明使用API特征、Permission特征与3-gram Opcode特征的组合特征集合与随机森林算法训练得到的分类器有着较好的性能,在误判率为5.3%的情况下达到了 94%的检测准确率,平均预测时间为10.06s。若是使用API特征与Permission特征的组合特征集合和随机森林算法训练的分类器,在检测准确率94.1%和误判率6.5%的情况下,平均预测时间为7.5s。