【论文阅读】Generic Black-Box End-to-End Attack Against State of the art API Call Based Malware Classifiers
作者:Ishai Rosenberg
大学:Ben-Gurion University of the Negev
时间:2018.6.4
1. 做了什么?
对一个通过机器学习训练的,通过API调用来分类恶意软件的分类器的攻击。
这个攻击可以使分类器不能成功识别恶意软件,并且不改变原有软件的功能。
实现了GADGET,一个可以直接将二进制恶意软件文件转换为分类器无法检测的二进制文件,并不需要访问文件源代码。
2. 一些概念:
2.1 Machine learning malware classififiers(基于机器学习的恶意软件分类器)
优点:1. 可以自动训练,节省时间;
2. 只要分类器并不是基于指纹特征或者某个特定的特征(如Hash值)来分类,面对不可见威胁时泛化能力较强。
2.2 Adversarial Examples(对抗样本)
对输入样本故意添加一些人无法察觉的细微的干扰,导致模型以高置信度给出一个错误的输出。
- 可以针对一张已经有正确分类的image,对其进行细微的像素修改,可以在DNN下被错分为其他label。
样本x的label为熊猫,在对x添加部分干扰后,在人眼中仍然分为熊猫,但对深度模型,却将其错分为长臂猿,且给出了高达99.3%的置信度。
像素攻击:改动图片上的一个像素,就能让神经网络认错图,甚至还可以诱导它返回特定的结果。
改动图片上的一个像素,就能让神经网络认错图,甚至还可以诱导它返回特定的结果
2. 同样,根据DNN,很容易产生一张在人眼下毫无意义的image,但是在DNN中能够获得高confidence的label。
两种EA算法生成的样本,这些样本人类完全无法识别,但深度学习模型会以高置信度对它们进行分类,例如将噪声识别为狮子。
2.2.1: Adversarial examples for API sequences(生成API序列对抗样本与生成图像对抗样本并不同):
- API序列由长度可变的离散符号组成,但图像可以用固定维度的矩阵表示为矩阵,且矩阵的值是连续的。
- 对于对抗API序列,其必须验证原始的恶意功能是完整的。
- 对抗样本的迁移性:针对一种模型的对抗样本通常对另一种模型也奏效,即使这两个模型不是用同一数据集训练的。
2.3 几种攻击方法:
White-box attack:白盒攻击,对模型和训练集完全了解。
Black-box attack:黑盒攻击:对模型不了解,对训练集不了解或了解很少。
Real-word attack:在真实世界攻击。如将对抗样本打印出来,用手机拍照识别。
targeted attack:使得图像都被错分到给定类别上。
non-target attack:事先不知道需要攻击的网络细节,也不指定预测的类别,生成对抗样本来欺骗防守方的网络。
mimicry attack: 编写恶意的exploit,该exp模拟良性代码系统调用的痕迹,因为能够逃逸检测。
disguise attack: 仅修改系统调用的参数使良性系统调用生成恶意行为 。
No-op attack: 添加语义的no-ops-系统调用,其没有影响,或者是不相干的影响,即,打开一个不存在的文件。
Equivalence attack: 使用一个不同的系统调用来达到恶意的目的.
2.4 decision boundary(决策界限)
2.5 end-to-end:
2.6 结果分类:
虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True positive),如果实例是负类被预测成正类,称之为假正类(False positive)。相应地,如果实例是负类被预测成负类,称之为真负类(True negative),正类被预测成负类则为假负类(false negative)。
列联表如下表所示,1代表正类,0代表负类。(预测正确:true,预测是正类:positive)
预测 | ||||
---|---|---|---|---|
1 | 0 | 合计 | ||
实际 | 1 | True Positive(TP) | False Negative(FN) | Actual Positive(TP+FN) |
0 | False Positive(FP) | True Negative(TN) | Actual Negative(FP+TN) | |
合计 | Predicted Positive(TP+FP) | Predicted Negative(FN+TN) | TP+FP+FN+TN |
从列联表引入两个新名词。
其一是真正类率(true positive rate ,TPR), 计算公式为 TPR=TP/ ( TP+ FN),刻画的是分类器所识别出的 正实例占所有正实例的比例。
另外一个是负正类率(false positive rate, FPR),计算公式为 FPR= FP / (FP + TN),计算的是分类器错认为负类的正实例占所有负实例的比例。
还有一个真负类率(True Negative Rate,TNR),也称为specificity,计算公式为TNR= TN/ ( FP+ TN) = 1 - FPR。
3. 如何实现?
一些问题:程序调用API的过程;