对抗机器学习:Deceiving End-to-End Deep Learning Malware Detectors using Adversarial Examples

论文url

https://arxiv.org/pdf/1802.04528.pdf

@article{kreuk2018deceiving,
title={Deceiving end-to-end deep learning malware detectors using adversarial examples},
author={Kreuk, Felix and Barak, Assi and Aviv-Reuven, Shir and Baruch, Moran and Pinkas, Benny and Keshet, Joseph},
journal={arXiv preprint arXiv:1802.04528},
year={2018}
}

论文motivation

上一篇论文 Generating Adversarial Malware Examples for Black-box Attacks Based on GAN 在做攻击的时候,虽然是黑盒攻击,但是还是假设目标模型使用的那些特定的特征。这种假设实际上是并不合理的,因为有些时候我们还真的很难测试出Black -box detector究竟用了啥特征。

于是作者就想攻击攻击End2End的恶意软件检测方法,想依托于模型的End2end来摆脱对特征选择的假设。

论文尝试解决的问题

论文尝试解决三个问题:

攻击端到端的基于深度学习的恶意软件检测模型

之所以把攻击目标选择为端到端的模型,是为了绕过特征选择的假设。因为端到端的模型使用的是整个恶意软件的信息,它没有特征选择的过程。

尝试往恶意软件里面插入一些payload,这些payload会导致恶意软件被分类为Benign,同时又不会破坏恶意软件的功能

作者使用FGSM白盒攻击方法。

要使用FGSM,首先得保证目标函数是可导,同时要求输入应该是个连续的量。而恶意软件,是由一个个的字节构成,他们的取值只能0-255,都是些离散的整数。于是需要想办法解决输入变量是整数的问题。

作者的方法是使用一个Embedding 矩阵 M L × d M^{L\times d} ,把0-255这256个离散的字映射到256个 R d R^d 空间里面连续的向量。把对抗样本的寻找,从原始的离散空间 I = { 0..255 } L I=\{0..255\}^L 变换到 R d R^d 连续空间。在 R d R^d 空间寻找好对抗样本 z ^ \hat z 后,再把 z ^ \hat z R d R^d 映射回原来的输入空间 I I 。咋映射呢?它的方法是这样的:
假设输入空间的样本为 x x ,它包含了 L L 个字节。首先遍历这 L L 个字节把各个字节依次替换为对应的一个 R d R^d 的向量。于是得到 z = [ v 1 , v 2 , v 3 , . . . , v L ] z=[v_1,v_2,v_3,...,v_L] ,然后选择它的对抗样本 z ^ \hat z 。接下来,对于 z ^ \hat z 的每一维度 z j z_j ,寻找离各个维度最近的映射向量 M i M_i ,把i 作为 z j z_j 在原输入空间的表示。

其次,添加的payload既要影响模型的分类,还不能影响程序的功能。在恶意软件随便插入一个Payload肯定是为影响程序的功能的,怎么办呢?

作者考虑到,在PE文件里面,存在一些空洞,可以根据PE结构在合适的位置插入payload.

算法:
在这里插入图片描述

攻击效果

在无穷范数约束下,可以达到98.83%的攻击成功率。
而且Payload可以即插入到文件末尾,也可以插入到PE文件的其他位置,而且攻击成功率保持不变。但是,这么随便乱插,肯定会影响功能性的。
其次,不同PE文件找到的payload具有一定的迁移性。从PE文件A找出的payload,追加到PE文件B后面依然具有75%的成功率。
另外,payload的size是不固定的。

启发

  1. 样本的functionality的维持,可以通过领域知识来实现。比如PE的空隙。
  2. 使用Embedding方法将离散输入空间变换到连续空间,然后在连续空间寻找对抗样本,最后再返回到离散输入空间。

不足

这是一个白盒攻击;虽然没有所谓的特征选择的假设,但是文中的方法需要拿到端到端模型的模型参数,它对环境的要求反而比前人的方法更严苛了。

发布了307 篇原创文章 · 获赞 268 · 访问量 56万+

猜你喜欢

转载自blog.csdn.net/jmh1996/article/details/102976327