论文部分内容阅读
随着移动互联网与Android应用的普及,Android恶意应用程序正呈现持续的高速增长趋势。为了能够更有效地检测移动恶意程序,本文结合Dalvik指令特征与机器学习等多种方法,提出了一种新颖的轻量级的静态检测方法。先通过对Android应用程序中的DEX文件反汇编,并采用指令符号集对指令操作码进行简化与抽象。然后,再对指令符号进行N-Gram编码,并作为Android应用程序的特征。最后,通过优选后的分类算法训练特征,创建恶意代码检测模型。此外,为了进一步优化恶意代码检测模型的检测效率,还对高维数据进行水平压缩和对海量样本进行垂直压缩。基于Drebin数据库,本文提出的方法与反病毒软件就检测恶意代码的能力进行对比实验,实验结果表明本文的方法能够有效地进行Android恶意代码检测,并获得较高的检测率。另外,针对Android恶意家族分类的问题,本文提出了一种基于bytecode生成图的Android恶意代码家族分类方法。先将Android恶意应用程序的二进制bytecode转化为bytecode生成图,然后利用GIST算法提取图像中的纹理特征。最后,通过Random Forest算法对特征进行分类与建模。基于Drebin数据库,本文对最为常见的14种Android恶意代码家族的样本进行了实验验证,并与Drebin方法作比较,实验结果表明本文的方法可有效进行Android恶意代码家族分类。本文的主要工作和成果如下:(1)研究并简化了Dalvik的官方指令集,用指令符号的方法抽象同一类型的指令操作码,并提出了一种基于N-Gram编码的指令符号序列特征。针对指令符号序列特征,利用AP聚类算法对样本进行压缩和信息增益方法进行特征筛选,结合多种分类算法进行模型训练与验证,有效实现了一种高效的Android恶意代码的检测模型。(2)提出了一种可快速实现bytecode生成图的方法,并深入研究了DEX文件结构与bytecode生成图纹理之间的对应关系。然后,利用GIST算法提取图像特征,并用Random Forest算法对特征分类进而实现恶意家族分类的最终效果。(3)设计并实现了Android恶意代码智能检测平台,该平台可以满足在线APK分析服务的应用场景。