论文部分内容阅读
由于安卓已成为最为主流的智能手机操作系统,一系列针对安卓操作系统的恶意软件也层出不穷。这些恶意软件可以在用户不知情的情况下造成用户账户信息、通信记录甚至是个人照片等隐私信息的泄露,给用户带来精神和经济上无可估量的损失。面对安卓恶意软件的不断增多的问题,对安卓恶意软件进行检测的研究就显得极其重要。在过去几年中,基于机器学习来对安卓恶意软件进行防御和检测的方法被相继提出,这些方法通常与静态分析或是动态分析结合起来进行检测,但都存在着一定的局限性。比如,静态分析需要反编译安卓程序来提取其静态特征,而动态分析需要在沙箱或是虚拟机中监视安卓软件的行为,这都将花费大量时间。此外,静态分析在反编译过程中还会占据大量本地资源,而动态分析有时会将安卓程序上传到云端进行检测,这一过程也会耗费大量网络资源。而且,在一些没有反编译工具、沙箱或是虚拟机的特定场景下便无法对安卓软件进行检测。针对静态分析和动态分析的不足之处,本文提出了一种基于局部二值模式和主成分分析的安卓恶意软件方法,即首先通过直接读取安卓软件的二进制序列来生成二进制序列灰度图像,随后对生成的灰度图像进行局部二值模式纹理特征提取,形成特征向量,再采用主成分分析方法对提取到的安卓二进制纹理特征向量进行降维,最后再使用K近邻方法对降维后的特征向量进行分类。本文的主要贡献如下:首先,提出了一种新型的基于二进制序列纹理特征的安卓恶意软件检测方法,该方法能直接将安卓软件进行可视化,提取其纹理特征向量进行检测;其次,本文所提出的方法能实现有效地对安卓恶意软件进行检测且无需任何反编译工具,沙箱或是虚拟机;最后,通过在5560个安卓恶意软件和5127个安卓非恶意软件的数据集上的实验表明,本文所提出的方法能保证较高的安卓恶意软件检测准确度,且能极大降低时间开销和资源开销。