深度学习&计算机视觉技术正在每个可能的领域中取得进步。随着计算能力的提高,许多组织使用它们来解决或最小化许多日常问题。在最近的一次演讲中 AVAR 2018, Quick Heal AI team presented an approach of effectively using 深度学习for 恶意软件 classification. Here we are giving detailed technical blog for the same.
介绍
PE文件是大多数恶意软件攻击的根源,本质上会造成相应的损坏。典型的攻击始于通过电子邮件,网站或其他常用机制下载PE文件。检测此类恶意PE文件的传统方法包括基于规则的方法。基于签名的静态方法到基于行为的动态方法(例如仿真器,沙箱等)。但是,它们在一般检测高级恶意软件的竞赛中处于劣势。下图显示了Crysis 勒索软件(这是孤岛危机的解密工具)。这里的样本非常混乱,以至于它容易绕过基于规则或基于签名的检测机制。

为了对抗这种机制,我们引入了基于机器学习的检测。在这里,我们使用许多算法(例如SVM,随机森林)进行通用检测。

但是ML需要样品收集&训练前进行特征提取。特征工程是一项繁琐的任务&需要人类专业知识&时间。随着恶意软件寻找绕过它的方法,它变得越来越复杂。像 对抗ML 恶意软件样本经过培训以绕过ML的步伐正在迅速发展,以逃避基于属性的ML模型。让我们来看另一个例子。此处显示了感染前后的XPaj感染器样本标题。在添加时,XPaj对原始文件的头几乎没有任何更改。仅靠文件标题属性训练的ML模型无法检测到这些样本。

深度学习has come a long way in recently in the field of image classification & 计算机视觉。关于体彩3d分类问题,有很多成功的故事 图片网 &Resnet。因此,我们考虑将体彩3d分类用于检测恶意文件。
将PE文件转换为体彩3d
第一个挑战是以体彩3d的形式表示PE文件。来自大量资源,我们的数据集中有大量的PE文件。我们也标记这些文件。为了生成体彩3d,我们使用了一个著名的开源工具,称为 端口EX 。该工具主要生成三种类型的体彩3d,如下图所示。
首先,它们是一个字节图体彩3d(图3),其中每个字节或一组字节代表不同的颜色像素,如图所示。然后在末尾填充零以保持体彩3d大小不变。在此字节图体彩3d中,零为黑色,FF为白色像素。可见的ASCII字符是蓝色像素。等等。

在第二类型的体彩3d中,单色像素的比例表示不同的字节。这里(图4)字节由黑色的灰度像素0x00和白色的灰度像素0xFF表示。
在最后一种类型中(图5),PE结构体彩3d以不同的彩色像素表示PE文件的每个结构。像示例中一样,绿色表示资源,黄色表示导入,天蓝色像素表示附加数据。在将PE文件表示为体彩3d之后,我们可以通过简单地查看它们来指出两个不同文件的相似性。以下是此类文件的两个示例。

图6和7分别显示了Wannacry和Cerber勒索软件的两个不同样本的相似性。


深度学习Overview
拥有大量数据,即体彩3d都经过了干净的转换& 恶意软件 files, we now apply 深度学习algorithms on these samples. 深度学习(DL) 或深度神经网络(DNN)是机器学习(ML)的特殊类别。人工神经网络(ANN)是DNN的构建块。人工神经网络从生物神经系统中获得启发。体彩3d分类问题使用一类特殊的DNN。他们是 卷积神经网络(CNN)。 CNN是简单前馈神经网络的一类,其中输出经过下一层传递而不会像循环神经网络那样形成周期。它们具有非线性激活功能,可以减少受过训练的特征的线性度。 CNN中有四种类型的图层,它们是
- 卷积层
- 池化层
- 展平层
- 全连接层
卷积层使用多个特征检测器,也称为过滤器或卷积内核。这些滤镜在输入体彩3d上滑动以生成特征图。每个特征检测器都会生成与其尝试学习的特征相对应的不同特征图。特征检测器通常是3X3尺寸的小型矩阵。
然后,池化层接收这些生成的特征图。该层负责仅合并那些重要的特征,并留下不需要的特征,从而减少过度拟合并缩短培训时间。池化可以是最大池化,平均池化,平均池化等。
展平层基本上将合并的特征图转换为单列向量。然后将此向量传递到ANN的完全连接层。图8显示了简单CNN的所有层。

实验& Results
一旦我们确定了算法和样本,训练过程就与我们在我们的机器学习中提到的所有机器学习方法类似。 机器学习博客。 DL的另一个有用分支是转移学习。在 转移学习 训练任务使用在不同训练数据上训练的另一个模型的权重作为训练过程的初始权重。像VGG16这样的模型在Imagenet质询上具有很好的准确性。我们可以将它们用作培训的起点。在表1中,我们显示了使用“转移学习”进行的一些实验。
模型 | 型号细节 | 检出率 | FP比率 | |||
数据集 | 建筑 | 纪元数 | ||||
清洁 | 恶意软件 | |||||
1 | 100k | 20k赎金 | VGG16 | 100 | 90.45 | 0.46 |
2 | 100k | 20k赎金 | VGG16最后几层可训练 | 100 | 91.27 | 0.21 |
3 | 100k | 50k | VGG16 | 20 | 89.67 | 0.38 |
4 | 200K | 100k | 层可训练的VGG16 | 20 | 91.04 | 0.19 |
(表1:转移学习实验)
我们的检测率很高,但误报是关注的问题之一。随着我们增加训练集的规模,结果进一步改善。在第二个实验中,我们从头开始设计了多层CNN模型。我们在较大的数据集上获得了比勒索数据更好的结果。对于赎金数据,我们只有少量样本需要训练(表2)。
模型 | 型号细节 | 检出率 | FP比率 | |||
数据集 | 建筑 | 纪元数 | ||||
清洁 | 恶意软件 | |||||
1 | 100k | 20k赎金 | 8层CNN模型 | 20 | 89.36 | 0.61 |
2 | 100k | 50k | 8层CNN模型 | 20 | 91.27 | 0.84 |
3 | 200K | 100k | 8层CNN模型 | 20 | 92.67 | 0.16 |
(Tab. 2: 深度学习Experiments)
结论
随着我们使用体彩3d分类模型获得更高的检测率,深度学习将成为我们检测先进威胁的工具库的一个很好的补充。但是,由于也存在错误的检测。因此,我们不能将其用作独立机制。取而代之的是,我们将机器学习,深度学习的功能与Cloud不断增长的功能相结合,以在检测方面取得巨大成功&将大大减少错误。
没意见