论文部分内容阅读
近年来,移动互联网的发展使得智能手机成为我们生活中不可缺少的一部分,极大的方便了人们的生活。然而,人们在使用手机的过程却不得不面临着隐私和财产安全问题。由于Android的流行性和自身的开放性,迅速成为了不法分子的攻击目标。因此,如何有效的检测Android恶意软件,具有很重要的学术意义和现实意义。现有的对Android恶意软件的静态分析往往局限于某一特征,比如字符串特征如权限、API(Application Programming Interface)调用,或者结构性特征如函数调用图、数据流图等。但随着恶意软件攻击行为的不断变化,仅使用一种特征进行分析,往往会出现检测错误的情况。因此,本文从多特征的角度刻画Android应用软件,从而提高检测的准确率。本文的主要研究内容和创新点包括:(1)提出基于操作码序列的Android恶意软件检测模型。该模型创新性的结合了函数调用图和操作码文本序列,通过函数调用的顺序对操作码文本序列重新组织,并使用长短期记忆神经网络(LSTM)构建模型。在此基础上,结合敏感函数、函数调用序列等设计了5种特征进行对比实验。实验结果表明基于函数调用顺序的操作码序列相对于无序的操作码序列以及单纯的函数调用序列有明显的优势。(2)提出基于操作码图像的Android恶意软件检测模型。该模型通过将操作码序列转化成灰度图,以一张图像的形式表征一个Android应用,同时为了提高训练和检测的效率,选择使用轻量级的卷积神经网络(CNN)实现灰度图的分类。传统的直接使用字节码序列转换成代码图像的方法往往面临生成图像的大小不一致的问题,而本文设计的图像生成方法可以避免这个情况。文中共给出了两种将操作码序列转换成灰度图的方法,一种是基于操作码对的频率,另一种基于操作码对的TF-IDF值。实验结果表明了使用操作码图像进行恶意软件检测的有效性。(3)提出基于深度学习的Android恶意软件检测融合模型。为了在多个层面对Android应用进行描述,本文提出了基于操作码序列和基于操作码图像的融合模型。将按照函数调用顺序组织的操作码序列经过LSTM处理后得到的特征,和操作码图像经过CNN后得到的特征进行特征拼接,并使用分类器对该拼接特征分类,最终得出检测的结果。实验结果表明了本文设计的融合模型的检测效果优于单模型。