论文部分内容阅读
随着移动互联网技术的发展与普及,人们在工作学习生活中应用了越来越多的移动智能终端设备。在各种智能操作系统中,Android系统因其开放开源等特性,占有着最大的市场份额,同时也给恶意软件的生成、传播和变异提供了有利环境,成为了黑客攻击的主要目标。恶意代码广泛存在于各类智能终端以及网络设备中,每年对各类系统造成的损失数以亿万计。随着恶意代码规模的暴涨,机器学习技术被广泛地应用于恶意软件分析领域,取得了很好的效果并且已经逐渐成为主流的恶意代码分析手段。但是有研究发现,机器学习模型极易受到对抗样本的攻击,这导致基于机器学习的恶意代码分析方法也同样有着潜在的易受到对抗样本攻击的隐患。研究对抗样本攻击算法不仅可以促进相关的防御算法的发展,也可以促进更加鲁棒更加有效的恶意代码分析方法的产生。不同的机器学习模型使用不同的恶意代码特征作为其分类依据,采用的算法也不尽相同,因此针对它们的攻击方法也将有所不同。另外在研究攻击手段的同时,也要考虑攻击在现实中实施的可行性,即生成的恶意代码对抗样本是否能保持原有的功能等问题,这些也是现有的一些攻击方法没有考虑到的。本文针对以灰度图像为分类依据的Android恶意代码分类模型,探索了如何在不影响Android程序原始功能的情况下修改Android可执行文件,使其成为一个对抗样本,干扰相应的恶意软件分析模型的判断。本文做出的主要贡献如下:1.针对以灰度图像为依据的Android恶意代码分类模型,提出了一种基于灰度图像的可执行对抗样本生成方法,实现了随机攻击和目标攻击两种对抗样本攻击模式。从灰度图像入手,修改了 One Pixel Attack算法用以生成图像对抗样本,然后将生成的图像对抗样本转化成可执行的程序对抗样本。现有的一些对抗样本生成方式并不能生成可以真实运行的程序对抗样本文件,而以此方法生成的可执行对抗样本可以通过程序的形式安装、运行和传播,并且可以保持其原有的软件功能不变。设计实验实现了基于灰度图像的对抗样本生成算法,实验结果表明,基于灰度图像的可执行程序对抗样本可以使恶意软件家族分类器的准确率由96.6%降低至7%,且应用程序界面上与原程序基本相同。分析了可执行对抗样本的有效性,并且为了应对此种攻击手段,提出了几种可能的防御方案,以构建更鲁棒的恶意代码家族分类模型。2.针对以灰度图像为依据的Android恶意代码分类模型,提出了一种基于代码注入的可执行对抗样本生成方法。原理是将Android的可执行文件进行反汇编得到Smali文件,在其中插入空调用的冗余代码,改变可执行文件的代码结构,以达到使恶意代码分类器误判的目的。同样实现了随机攻击和目标攻击两种对抗样本的攻击模式,生成可执行的恶意代码对抗样本程序,保持其程序特性和原有功能不变。实验表明,基于代码注入生成的可执行对抗样本可以100%使相应的机器学习模型误判,生成的对抗样本同样可以正常安装运行在Android设备上,且应用界面与原程序相同。最后分析了这种对抗样本的特点,并提出了可能的防御方法。