AI安全(4)Black-Box Adversarial Attacks Against Deep Learning Based Malware Binaries Detection with GAN

Black-Box Adversarial Attacks Against Deep Learning Based Malware Binaries Detection with GAN

摘要:

【目的】为了有效地检测恶意软件,有越来越多的基于原始软件二进制文件的深度学习方法。最近的研究表明,深度学习模型很容易被愚弄,通过对输入引入细微的扰动而做出错误的决定,这在对抗性攻击中吸引了大量的工作。【缺点】然而,大多数现有的攻击方法都是基于手动特性(例如API调用)或白盒设置,使得这些攻击在当前的现实场景中是不切实际的。【工作】在这项工作中,我们提出了一种新的攻击框架,称为GAPGAN,它通过生成对抗网络(GANs)生成对抗有效负载(填充字节)。据我们所知,这是第一个针对基于深度学习的恶意软件二进制文件检测在字节级别执行端到端黑盒攻击的工作。【创新一】在我们的攻击框架中,我们将输入的离散恶意软件二进制文件映射到连续空间,然后将其提供给GAPGAN的生成器以生成对抗性有效载荷。我们将有效载荷附加到原始二进制文件中,以便在保留其功能的同时创建一个对抗性示例。【创新二】我们建议使用动态阈值来减少有效载荷从连续格式映射回原始离散格式时的有效性损失。为了平衡生成器对有效负载和对抗性样本的关注,我们使用了一种自动权重调整策略。【结果】我们用恶意软件和良性软件训练GAPGAN。一旦训练完成,生成器可以在不到20毫秒的时间内生成一个只包含输入恶意软件的对抗性样本,我们应用GAPGAN攻击最先进的探测器MalConv,只需附加2.5%的有效负载即可达到100%的攻击成功率。我们也在不同的防御方法下攻击具有不同结构的深度学习模型。实验结果表明,GAPGAN在效率和有效性上都优于其他最新的攻击模型。

一、说明

深度神经网络已经取得了巨大的成功,越来越多的工作倾向于使用深度学习进行有效的恶意软件检测。其中,一些工作(例如,[5]和[12])基于可能包含程序恶意行为的手动功能(例如,API调用)检测恶意软件,一些工作(例如,[21]、[24]和[4])直接使用软件信息而不运行,其他工作(例如,[13]和[20])集成上述策略或使用其他方法,如可视化。最近,有一种趋势是使用原始二进制文件进行恶意软件检测,它可以有效地挖掘文件不同部分之间的潜在关系。随着恶意软件的快速发展,防御效率在当今的现实场景中变得至关重要,这使得基于原始二进制文件的端到端检测更具前景。

然而,许多研究工作([25]、[7]、[17]、[9]和[27])表明,深层神经网络容易受到对抗性攻击。攻击者对原始数据添加了人类无法察觉的小干扰,这可能会误导分类器做出错误的决策。这些研究指出,深度学习算法和人工智能应用的安全性面临严重威胁。

在恶意软件检测中,大多数对抗性攻击(例如,[14]、[15]和[3]问题空间扰动】)依赖于检测器的完整信息(例如,白盒攻击)。然而,这种攻击有其局限性,例如,目标模型必须完全暴露给攻击者。同时,之前的攻击工作(例如,[11]、[2]和[23] 【特征空间扰动】)基于推测用于训练探测器的手动特征。如果猜测是错误的,或者一旦后卫改变了训练策略,这种攻击将无效。基于原始二进制文件的检测的广泛使用也使得这种需要大量资源和时间来提取特征的攻击不适用。与手动特性不同,即使稍加修改,也不能简单地更改原始二进制数据,否则会损坏其功能。此外,二进制数据的大小差异很大,这进一步增加了攻击难度。我们还发现,在保存生成的对抗性样本时,将连续空间中的对抗性有效载荷转换回离散二进制时,会忽略细微的扰动,这会影响对抗性攻击的有效性。因此,如何在保护原有功能的同时,对基于恶意软件二进制文件的深度学习模型进行有效而实用的黑盒攻击仍然是一个巨大的挑战。本文提出了一种新的攻击框架GAPGAN,该框架通过GANs生成对抗性有效载荷。据我们所知,这是第一项针对基于深度学习的恶意软件二进制文件检测在字节级别执行端到端黑盒攻击的工作。我们应用GAPGAN攻击最先进的检测器MalConv[21]以及其他具有不同结构的深度学习模型。实验表明,我们的模型可以实现较高的攻击成功率,并且在效率和有效性方面优于其他最先进的攻击方法。

We have the following contributions:

  • 我们提出了一种新的对抗性攻击框架GAPGAN,该框架在字节级对基于深度学习的恶意软件二进制检测执行端到端的黑盒攻击,使攻击更加高效。
  • 在GAPGAN中,生成器生成对抗性有效载荷,ap将其挂起到原始数据,以制作恶意软件对抗性样本,同时保留其功能。一旦训练过程完成,生成器可以在不到二十毫秒的时间内高效地生成每个对抗性样本。
  • 我们建议在将有效负载从连续空间映射回离散二进制文件时,使用动态阈值来减少有效负载有效性的损失。为了平衡生成器对有效负载和对抗性样本的关注,我们采用了自动权重调整策略。
  • 我们应用GAPGAN攻击最先进的恶意软件检测器MalConv。实验表明,GAPGAN生成的对抗性样本在附加2.5%数据长度的对抗性有效载荷进行检测时,攻击成功率可达100%。实验还表明,GAPGAN在不同防御方式下的效率和有效性均优于其他最先进的攻击方法。

论文的剩余部分由五个部分组成:第二部分介绍了本文的研究背景和相关工作。在第3节中,我们将解释攻击框架GAPGAN的详细信息。在第4节中,我们描述了实验设置,包括数据集、指标和目标模型。在第5节中,我们展示了我们的实验结果。在第6节中,我们总结了我们的工作并给出了结论。

二、背景和相关工作

2.1 针对恶意软件检测的对抗性攻击

大多数用于恶意软件检测的传统机器学习和深度学习方法(例如,[5]和[12])侧重于从程序的行为信息中提取的手动特征,如签名和API调用。对于这种检测方法,早期的攻击工作主要基于防守者应该使用的手动特征。一些工作建议使用API作为二进制特性,然后采用深度学习模型来生成对抗性样本([11]和[8])。一种基于API调用序列的不同方法使用优化过程来执行对抗性攻击【23】。[2] 建议使用强化学习进行攻击,它包含大量手动信息作为特征,例如PE头元数据、节元数据和字节直方图。Xu等人[29]提出了一种基于遗传编程的攻击方法,对文件结构进行随机操作。然而,这些攻击需要专家经验和大量的时间来获得有效的特征,一旦防御者知道用于攻击的特征,快速更新的检测器就可以轻松规避攻击。

最近的恶意软件检测工作(例如,[21]、[24]和[4])更注重对原始软件二进制文件使用深度学习模型,因为深度神经网络可以有效地挖掘原始数据中的潜在特征,而无需大量数据预处理和先验经验。为了赶上最新的恶意软件检测技术,攻击者开始寻找可应用于原始软件二进制文件的新方法(例如,[14]、[15]和[3])。与提取的特征不同,原始二进制数据不能简单地更改,否则可能会丢失重要功能。此外,原始二进制文件具有可变的输入大小,这会进一步使这些攻击比以前更加棘手。

[14] 提出了第一种字节级的对抗性攻击,它结合了梯度上升和贪婪策略。它会在文件末尾逐个追加字节,以保留其功能。然而,它执行的白盒攻击在现实场景中有局限性,模型需要计算每个填充字节的梯度,这会消耗大量时间和资源。[15] 还提出了一种通过注入局部扰动来处理离散序列的方法。但是,它处于白盒设置中,效率不高。[3] 提出了白盒和黑盒方法。在黑盒方法中,它随机选择良性数据块并将其附加到恶意软件数据中,每次都测试结果。在执行攻击之前,获取有效块需要大量时间。这种方法简单但繁琐且效率低下,不适用于有效的恶意软件对抗性样本生成。相反,我们将展示我们的端到端框架可以在黑盒环境中进行攻击,并在更短的时间内生成对抗性样本。

2.2 Generative Adversarial Networks (GANs)

近年来,生成性对抗网络(GANs)[6]广泛应用于计算机视觉任务中(例如,[30]、[16]和[1])。根据他们的高水平模仿能力,一些作品(例如,[11]和[28])采用GANs进行对抗性攻击。最具代表性的攻击方法使用称为蒸馏的方法将鉴别器与目标模型的输出相匹配,训练生成器生成可能误导鉴别器的数据。通过这种方式,敌对样本可以间接攻击目标模型,即敌对样本的可转移性[19]。与之前的工作不同,我们使用生成器生成对抗性有效载荷,用于在不破坏其功能的情况下制作对抗性样本。在我们的模型中,一旦GANs的训练过程完成,生成器可以在很短的时间内仅使用输入的恶意软件二进制文件独立生成恶意软件对抗样本。

三、方法

在本节中,我们将简要解释输入二进制文件和对抗性示例的形式化定义,然后介绍GAPGAN的框架和策略细节。

3.1 问题定义

问题定义】软件的二进制文件由属于离散空间 \(\mathcal{X}=\{0, \ldots, 255\}\) 的字节序列组成。设 \(b=\left(b_1, \ldots, b_n\right) \in \mathcal{X}^n\) 表示一个二进制文件,其中\(n\)是字节序列的长度,因文件而异。二进制文件\(b\)带有标签\(y \in\{-1,1\}\),其中\(y=1\)表示它是良性软件\(b_{b e n}\),否则它是恶意软件\(b_{m a l}\)

恶意软件检测器旨在学习一个映射函数\(f\) : \(x \rightarrow\{-1,1\}\),满足\(f\left(b_{\text {mal }}\right)=-1\)\(f\left(x_{\text {ben }}\right)=1\)。相反,对抗攻击的目标是找到一个模型\(g\)并生成一个有效的对抗样本 \(b_{a d v}=g\left(b_{m a l}\right)\) ,使得恶意软件检测器将其分类为良性软件,即\(f\left(b_{a d v}\right)=1\)。同时,\(b_{a d v}\)必须保留\(b_{\mathrm{mal}}\)的原始功能。【可执行】

3.2 GAPGAN:

image-20210602221731158
image-20210707153446579

【框架流程概述】图1显示了拟议框架GAPGAN的概述。它包括两个阶段:训练过程和进攻过程。在训练过程中,我们同时训练生成器网络G和鉴别器D,其中G打算为输入恶意软件生成对抗性有效载荷,并将它们连接起来以制作对抗性样本,而D试图提取目标黑箱检测器f,并模仿f对原始良性样本和生成的对抗性样本的判定。在攻击过程中,我们只需要经过训练的生成器来攻击黑箱检测器。

【扰动添加概述】为了在制作恶意软件的对抗性示例时保护其原始功能,有一些流行的方法,如使用调试日志和在运行前压缩数据,但它们是费时费力。通过仔细选择和操纵执行的其他攻击非常复杂,可能需要特定的经验,不适用于有效的对抗性攻击。受之前工作([3]和[14])的启发,我们选择在文件末尾附加字节(有效载荷)以保留其功能,这很简单,不需要任何专家经验.

【数据预处理】由于软件文件的长度\(n\)变化很大,我们首先将零(表示为图1中的蓝色部分)附加到输入二进制文件的末尾,以匹配网络的输入大小\(t\),即\(b^{\prime}=\left(b_1, \ldots, b_n, 0, \ldots, 0\right) \in \mathcal{X}^t\),其中\(t \geq n\)。通过这种方式,我们可以将不同长度的每个样本输入到具有固定大小的特定网络中。然后,我们通过归一化将离散二进制中的每个字节映射到连续空间\([-1,1]\)。我们将归一化后的输入定义为\(x\),其中\(x=\left(x_1, \ldots, x_t\right) \in \mathbb{R}^t\)。【值得注意的是,为了保留可执行文件的多态性,没有将输入进行归一化。】

在数据预处理之后,将标准化的恶意软件xmal馈送到生成器G。然后,G基于xmal的相应特征生成对抗性负载aadv(在图1中表示为红色部分):

\[ aadv = G(xmal) (1) \]

我们将aadv附加到xmal的末尾以制作对抗性恶意软件样本xadv;

\[ xadv = [xmal,aadv] \]

其中[·,·]表示连接操作。

在训练D时,我们将xadv和xben都合并到数据池中。在每次迭代中,我们从数据池中抽取混合示例批次,然后使用它们来查询黑盒检测器f。接下来,我们使用f响应的标签来拟合D,使得D的决策边界尽可能接近f。

在训练过程中,生成器G学习创建可以避开鉴别器D的样本。此外,随着D和我们的目标模型f之间的相似性的提高,G对f的对抗性攻击能力也将提高。最后,由于对抗性攻击的可转移性,G生成的对抗性样本也可以有效地避开f。

一旦训练过程完成,我们就可以使用训练后的G在很短的时间内生成对抗性样本,只需输入恶意软件。值得注意的是,我们在攻击过程中放弃了填充零,以减少有效载荷的整个长度。根据我们的实际经验,这会使攻击成功率略有下降,但损失是可以接受的。此外,我们需要将对抗性样本转换回离散空间作为可执行文件。

【模型结构】为了使我们的框架适应不同长度的恶意软件二进制文件和有效负载,生成器网络设计为具有可变的输入和输出大小。更具体地说,生成器首先使用两个卷积层提取输入的特征。然后,它使用完全连接的图层调整高级特征的大小。经过两层反卷积和一层1∗ 1卷积,产生对抗性有效载荷。另一方面,鉴别器使用卷积层和完全连接层进行二元分类。请注意,如果确定了输入数据的大小和我们决定生成的有效负载的长度,我们可以使用它们作为输入来轻松调整GAPGAN的结构,因为生成器和鉴别器中的层都是完全连接的。

3.3 Black-box Attacks Strategy

生成器G:

  1. 将n长度的字节序列添加到t长度(t>n)

  2. 通过标准化将离散二进制文件中的每个字节映射到一个连续空间[-1,1]

  3. 填充后的恶意软件样本输入到生成器生成对抗样本\(adv\)

  4. 讲对抗样本\(adv\)添加到填充后的恶意软件样本

检测器D:

  1. 将对抗样本和良性样本中抽取在黑盒上打标签
  2. 用黑盒打上的标签数据去拟合检测器D,使得D的决策边界尽可能接近黑盒

训练结束:

  1. 在攻击过程中放弃了填充零,以减少有效负载的整个长度。
  2. 将对抗性样本转换回离散空间作为可执行文件

生成器:生成器G的目的是学习Xmal的特征,Xmal的原始标签是y=−1,并生成相应的有效样本Xadv,这会误导D将其预测为y=1的“良性”。在我们的实践经验中,G往往更关注D对xadv的预测结果,这带来了一个严重的问题,即对抗有效载荷aadv的有效性得不到很好的提高。因此,我们让G同时考虑xadv的全局和局部(即xadv和aadv)有效性。生成器G的对抗性损失函数为: \[ LG = −(1 − β)Ex∼pxadv(D(x)) − βEa∼paadv(D(a)) \]

其中,β是一个超参数,用于在xadv和aadv之间保持生成器注意力的平衡。我们试图找到β的最佳值,然而,固定的β并不总是表现得最好,因为每次攻击程序运行时,网络的条件都不同。因此,最好的β应该具有自适应调整的能力。受[18]的启发,我们考虑根据D到xadv和aadv的输出自动调整β,这分别代表了它们的攻击有效性。我们给出了自动调谐机制:

image-20210603141233344

如果xadv比aadv更有效,那么D到xadv的输出期望就更大。自动机构将增加β 间接提高aadv的学习率。我们将在实验中证明它的有效性。

【介绍动态蒸馏】

判别器:我们使用鉴别器D来动态提取目标黑盒模型f。更具体地说,我们从数据池中采样一批混合数据,通过查询f来获得标签。样本及其相应的标签用于基于距离度量H拟合D。D的蒸馏损失为:

image-20210603141837636

D试图学习f对xben和xadv的决策策略。通过这种方式,D被视为替代检测器,用于将对抗性样本的攻击有效性转移到最终目标黑盒模型f。

动态阈值策略:在攻击过程中,我们将生成敌方样本并保存在本地。然而,我们发现当我们将对抗性样本从对抗性连续空间映射回二进制的离散空间时,细微的扰动将被忽略。大部分包含攻击有效性的有效载荷将被忽略,因为它们的值很小。为了解决这个问题,我们建议使用动态阈值策略来限制有效载荷的最小值:

image-20210603143629837

其中e表示有效载荷中的每个字节,i是当前训练迭代时间,Tmax是最大训练迭代时间,西格玛是最大阈值。我们直接将具有小值的字节设置为阈值以下的零。然而,如果我们使用静态阈值,G的学习过程将会丢失。如果一个字节的值很小,但有一定的攻击效果,它首先会被设置为零的阈值。然后G将继续对字节或其他相邻字节添加扰动,以提高该区域的对抗攻击效能。最后该字节或其他相邻字节将被修改,以填充设置为零的字节的对抗攻击损失。

值得注意的是,在我们设置后,所有的调整过程都将使用梯度下降算法自动执行 . 在上述工作的基础上,黑匣子攻击对恶意软件检测的总体算法如算法1所示。在第5节中,我们将展示我们的攻击实验的细节。

image-20220606212943284

四、实验装置(EXPERIMENTAL SETUP)

本节介绍了我们的攻击实验准备工作,包括数据集评估指标以及我们选择和训练的目标模型

4.1 数据集

研究二进制文件长度对攻击的影响

恶意软件和良性软件数据从不同来源收集,用于我们的对抗性攻击实验,如表1所示。恶意软件样本从VirusTotal4Microsoft恶意软件分类挑战赛(Kaggle 2015)下载【22】。良性软件示例由Windows软件包管理器Chocolate Software5下载。将数据分为四个数据集,使恶意软件的二进制长度分布接近每个数据集中的良性软件。使用具有不同最大和平均长度的数据集1、2和3来研究二进制文件长度对攻击的影响。数据集2和数据集4具有不同的来源,但长度分布很近,用于评估攻击算法的泛化

image-20210603152949793

评估方法:攻击成功率(ASR)指标

image-20210603153146322

4.2 Target Black-box Models

四种目标模型

我们选择最先进的恶意软件检测器MalConv[21]作为我们的主要目标黑箱模型。MalConv首先将输入二进制文件中的每个字节嵌入到8维向量中,然后使用两个具有不同激活函数的卷积层进行分类。我们为每个数据集训练一个输入大小为2000000的MalConv检测器。表2显示了每个MalConv探测器在培训后的测试精度。它表明,经过训练的MalConv检测器具有与[21]中类似的性能。

为了测试对抗攻击方法的泛化性,我们还使用了四种不同结构的深度学习模型作为目标模型。为了减少输入二进制文件的大尺寸,我们考虑在每个深度学习模型中添加CNN结构。输入二进制文件中的每个字节都以与MalConv相同的方式嵌入到8维向量中。我们在数据集2和4上训练这四个模型,检测精度如表2所示。结果表明,这四种检测器也达到了较好的分类精度。

image-20220524173957601

五、EXPERIMENTAL RESULTS

在本节中,我们将展示GAPGAN在对抗性攻击实验中的有效性。我们还将其与不同防御下的其他最先进的攻击方法进行了比较。

我们首先应用GAPGAN以不同长度的对抗性有效载荷攻击四个经过训练的MalConv(我们在上一节中展示了它们)。有效负载率用于表示有效负载长度与二进制文件长度的比率,以进行检测。根据表3所示的对不同数据集的攻击性能,可以看出GAPGAN可以对MalConv模型执行有效的黑盒攻击。从数据集2和数据集4的结果可以看出,敌对样本对不同数据的攻击成功率较高。此外,由于有效载荷率的增加,原始长度较短的对抗性二进制文件可能具有更好的攻击效果。值得一提的是,从数据集1生成的对抗性样本的ASR可以达到100%,只有一小部分有效载荷,即检测数据总长度的2.5%

image-20210603152949793

image-20220524175422368

我们发现,当ASR已经达到很高的值时,使用较大的有效负载可能只会提高很少的攻击成功率(例如,当附加10%的有效负载时,ASR为98.21%,但当附加两倍长度的有效负载时,ASR仅提高1.79%)。然而,随着有效载荷长度的增加,被检测的风险和成本将增加。同时,为了证明GAPGAN生成的对抗性有效载荷的有效性,我们将其与随机有效载荷进行比较,如图2所示。我们发现,与随机生成的有效载荷相比,具有GAPGAN生成的有效载荷的对抗性样本具有更好的攻击效果。还可以看出,随机有效载荷的ASR与有效载荷率成正比,而对抗性有效载荷随着有效载荷率的增加而迅速增加,当达到较高值时,ASR的增长速度减慢。我们认为,每个数据集都存在最佳的有效负载率,即当附加较大的有效负载时,ASR的增长率将快速下降。

image-20220524174337289

5.2 与最新攻击方法的比较

黑盒、速度、攻击等级

  1. 基于梯度优化的方法:Adversarial malware binaries: Evading deep learning for malware detection in executables

  2. 基于API调用序列的AdvSeq方法:Generic black-box end-to-end attack against state of the art API call based malware classifiers

  3. 基于API调用序列的MalGAN

我们将GAPGAN与恶意软件检测任务中其他最先进的对抗性攻击方法进行了比较,即Opt。基于梯度优化的方法【14】、基于API调用序列的AdvSeq方法【23】和基于API调用和GANs的MalGAN方法【11】。其结果如表4所示。可以看出,只有Opt。方法在白盒设置中执行攻击。从攻击效率的角度来看,一旦攻击模型得到训练,GAPGAN和MalGAN生成对抗性样本的速度远远快于其他方法(AdvSeq也基于复杂的优化过程,这被认为是无效的)。然而,只有GAPGAN在字节级别执行有效的黑盒攻击,这在现实场景中更具威胁性。为了进一步探索针对基于二进制文件的检测的攻击方法的有效性,我们选择比较GAPGAN和Opt。方法,即字节级攻击方法。选择具有随机有效载荷的对抗性样本进行比较。从表5可以看出,这两种攻击方法对不同的检测器都具有良好的攻击性能。然而,GAPGAN执行高效的黑盒攻击,这被认为是应用程序中对抗性攻击的关键。

image-20220524174702187

针对二进制文件检测的攻击方法的有效性,我们选择GAPGAN和Opt进行比较,两种攻击方法对不同的检测器都有很好的攻击性能。然而,GAPGAN执行高效的黑盒攻击,这对于应用中的对抗性攻击至关重要。

image-20210603162247046

5.3 不同防御方式下的攻击性能

人们提出了许多防御方法来防御各种攻击。使模型对对抗性样本具有鲁棒性的最常用方法是对抗性训练[7],它在训练过程中引入对抗性扰动,使深度学习模型调整决策策略。另一种有效的防御方法[26]随机消除输入数据,以消除对抗性样本的攻击有效性。我们比较了随机有效载荷与GAPGAN和Opt生成的对抗性样本的攻击效果。在这些防御之下。为了模拟真实场景,我们假设攻击者不知道有关防御的任何信息。在RND防御方法的实验中,我们随机消除10%的输入数据,并测试对抗样本的攻击成功率。由于检测器的结构包含一个嵌入层,因此在对抗性训练防御方法中无法传递梯度。因此,我们建议使用用于提取检测器的替代模型来生成具有对抗性干扰的训练数据。新的训练数据用于提高检测器的鲁棒性。使用之前的探测器生成的对抗性样本将在重新培训的探测器上进行评估。表6显示了防御攻击的结果。我们表明,在大多数情况下,GAPGAN的攻击性能优于Opt。方法,尤其是在对抗性训练的防守下。一种可能的解释是Opt。该方法过度依赖于目标模型的结构和梯度信息。此外,有效载荷中的一个字节由Opt根据当前敌对样本的梯度生成。方法在RND防御的随机置零过程中,当字节之间的连接被切断时,攻击的有效性会受到很大的损害。相比之下,GAPGAN考虑了整个对手样本的攻击能力,使其在防御下更有效。

为了防御各种攻击,人们提出了许多防御方法。使模型对对抗性样本具有鲁棒性的最常用方法是对抗性训练Explaining and harnessing adversarial examples,它在训练过程中引入对抗性扰动,使深度学习模型调整决策策略。另一种有效的防御方法随机消除输入数据 Adversary resistant deep neural networks with an application to malware detection,以消除对手样本的攻击效果。我们比较了随机有效载荷与GAPGAN和Opt生成的对抗样本的攻击效果。在这些防御之下。

在大多数情况下,GAPGAN的攻击性能优于Opt。方法,尤指在对抗性训练的防守下。

image-20220524175324124

5.4 动态参数的使用效果

集成比列调节

W: without using the method; S: using static parameter; D: using dynamic parameter

image-20210603164901344

动态阈值和自动权重调整策略显著提高了对抗性样本的有效性

六、结论

​ 在本文中,我们基于GAN的思想提出了一个对抗性攻击框架GAPGAN来生成对抗性样本,以对抗基于二进制文件的恶意软件检测。在我们的模型中,我们将生成器生成的对抗性有效负载附加到原始恶意软件二进制文件中,以在不破坏其原始功能的情况下创建一个对抗性示例。实验表明,GAPGAN可以有效地攻击最先进的检测器MalConv以及其他不同结构的深度学习模型。结果还表明,在现有防御机制下,我们的模型在效率和有效性上都优于其他最先进的攻击方法。GAPGAN是第一个实用的针对恶意软件检测的端到端黑盒攻击框架,对下一代流行的检测技术,即基于原始二进制文件的恶意软件检测构成威胁。虽然我们的工作集中在恶意软件二进制文件,它可以很容易地扩展到其他领域,如对抗性文本或图形生成。这使得GAPGAN成为一个很有前途的攻击框架,用于提高恶意软件检测或其他任务防御方法的健壮性。