今天分享的论文是《Adversarial Malware Binaries: Evading Deep Learning for Malware Detection in Executables》
这是一篇关于对抗攻击的论文,针对深度学习神经网络。
机器学习已经被用作检测恶意可执行文件的有用工 具。从恶意软件样本中检索的数据,如头文件、指令序列甚至 原始字节,被用来学习区分良性和恶意软件的模型。然而,也 已经表明,机器学习和深度神经网络可能会被规避攻击(也称为 敌对示例)所欺骗,即输入数据的微小变化会在测试时导致错误 分类。在这项工作中,本文研究了使用深度网络从原始字节学 习的恶意软件检测方法的脆弱性。本文提出了一种基于梯度的 攻击,它能够通过仅改变每个恶意软件样本末尾的几个特定字 节,同时保留其侵入功能,来避开最近提出的适合于此目的的 深度网络。令人鼓舞的结果表明,本文的恶意软件二进制文件 以很高的概率避开了目标网络,即使它们只有不到 1%的字节被 修改。
在本文中,旨在声明部署一种盲目分析可执行字节 的可靠检测方法可能非常困难。学习算法不能自动学习难 以操纵的、不变的信息,这些信息可靠地表征恶意软件, 如果不是主动设计的话,请记住这一点[4],要么提供适当的训练示例,要么对哪 些字节可能被恶意操作的先验知识进行编码。因此,抵抗 由动机良好的歹徒提供的对抗性攻击的鲁棒性是一个关键 的设计特征。这项工作提供了这个问题的初步证据,本文 的目标是在未来进一步调查。
本文攻击的深度神经网络是 Raff 等人[18]提出的 MalConv 网 络 , 如下图所示:
下面是一个典型的二维字节嵌入空间示意图,图中展示了每个字节 mi 相对于直线 gj(η) 的距离 di 以及投影长度 si。在此情形下,攻击算法会对填充字节 zj 进行修改,将其变为 mv,其中 dv=mini:si>0di,即 mv 是具有投影(且该投影在 gj(η) 上与 nj 方向一致)的字节中距离最近的字节。
算法:
本文实际复现了文献[18]中提出的深度神经网络,并按照第四节所述算法实施了规避攻击。接下来,本文首先介绍所采用的实验设置,然后通过对比所提出的基于梯度的方法与简单随机字节添加的效率,对所得结果展开讨论。
数据集。本文采用了一个包含9195个恶意软件样本的数据集,这些样本取自多个来源,包括VirusShare、Citadel和APT1。此外,为评估网络性能,本文还使用了4000个从热门搜索引擎中随机检索并下载的良性样本。
网络性能。本文通过将数据集划分为训练集和测试集来评估深度神经网络的性能,训练集和测试集各包含初始数据集中50%的样本。为避免因特定的训练-测试划分而导致结果出现偏差,本文重复了这一过程三次并对结果取平均值。在此设置下,本文得到的平均精确率为92.83% ± 5.56%(均值和标准差),平均召回率为84.68% ± 11.71%。
讨论与分析
在此,本文探讨一下分析过程中存在的一些局限性。
首先,由于攻击的计算复杂度较高,本文仅使用200个恶意软件样本评估了攻击的有效性,更全面的分析将留待未来开展。与文献[18]相比,本文采用的数据集规模较小,且考虑的输入文件大小d为10⁶,而非2·10⁶。这两个因素均可能使MalConv更容易被规避。相反,本文发现,在文件末尾追加字节会降低基于梯度方法的有效性。为更好地说明这一点,本文在图5中展示了在所有攻击样本上计算得到的梯度w的平均范数,文件前部字节的该值要高得多。这是合理的,因为文件长度各不相同,且随着离文件起始字节越来越远,找到可用于区分恶意软件和良性文件的信息性(非填充)字节的概率会降低。从攻击者的角度来看,这也意味着修改文件前部字节可能会使f(x)大幅降低,从而大幅提高规避成功的概率。然而,如第二节所述,在保持文件功能的前提下修改文件内部字节可能相当复杂,具体取决于特定文件及其各节的内容。这无疑是未来研究中一个值得探索的有趣方向。
做个总结和未来展望
在本研究中,评估了以原始字节作为输入的基于神经网络的恶意软件检测方法的鲁棒性。本文提出了一种通用的基于梯度的方法,该方法通过选择应修改哪些字节来改变分类器的决策结果。本文将该方法应用于一组恶意样本,在样本末尾注入少量优化后的字节,并利用这些样本攻击MalConv网络架构,最终实现了最高60%的规避率。
这些结果从对抗性角度对基于字节的分析方法的适用性提出了质疑。具体而言,对原始字节序列应用深度学习可能会引发新的安全漏洞。基于二进制文件的方法通常基于这样一个假设:从学习角度来看,所有节(文件中的数据块)具有同等重要性。然而,这一说法受到了挑战,因为包含指令的节(如代码节)与包含调试信息等内容的节之间通常存在显著的语义差异。因此,直接对目标文件进行操作可能比预期的更容易实现。
在未来的研究中,本文计划重点探究这一问题,通过探索对可执行文件进行细粒度、自动化的修改,这些修改可能比在文件末尾注入填充字节更难应对。本文还计划在更大规模、更能代表近期恶意软件趋势的数据集上重复本研究的评估工作(正如Rossow等人[20]所倡导的那样)。无论如何,本文相信本研究揭示了基于原始字节训练的深度学习恶意软件检测器存在的严重漏洞,凸显了开发更鲁棒、更具原则性的检测方法的必要性。值得注意的是,近期关于机器学习算法可解释性的研究也可能为实现这一目标提供有趣的见解[10],[15]。