Press "Enter" to skip to content

基于RNN的分类器利用局部特征和复杂符号序列检测隐蔽的恶意软件

 

第一节. 导言

 

嵌入式硬件计算技术在计算机系统中的大量应用,使得系统安全成为一个不可或缺的问题。在多种安全威胁中,恶意软件因其设计、制作和传播到设备中的复杂性相对较低而成为重要的威胁。恶意软件,是指攻击者开发的软件程序或应用程序,目的是为了在未经授权的情况下存取计算机装置,以及进行恶意活动,例如窃取数据、存取敏感信息如凭证,以及在未经使用者许可的情况下操作储存的信息。

 

传统的、原始的基于软件的恶意软件检测技术,如基于签名和基于语义的异常检测技术,已经存在了二十多年,虽然有效,但它们产生了显着的计算和处理开销,但在检测隐藏的威胁方面仍然效率低下。为了克服基于软件的恶意软件检测技术的这一障碍中的工作提出利用通过片上硬件性能计数器(HPC)寄存器捕获的微结构事件痕迹。尽管与基于软件的技术相比,性能较好,但基于HPC的方法无法有效检测隐身恶意软件。

 

由于隐身恶意软件会将自身分解为良性代码,并在运行时动态地重新组合以发起恶意行为,因此仅仅利用全局化特征来检测隐身恶意软件是不够的。这就促使我们必须对局部特征进行同化和提取,以实现对隐身恶意软件的高效检测。

 

为了克服现有工作的不足,解决上述挑战,在本工作中,我们引入了一种新型的混合技术,尽管采用了先进的制作技术,但使用机器学习来检测传统恶意软件和隐身恶意软件,并且效率很高。本工作实现这种高性能恶意软件检测的主要贡献可以从以下三个方面来概述。

 

我们提出的传统隐身恶意软件检测技术采用了基于HPC的方法以及基于局部特征的技术。在基于HPC的方案中,在运行时收集给定应用的HPC痕迹,并通过传统的ML分类器进行验证,进行恶意软件的检测和分类。

 

在基于局部特征的方法中,应用二进制文件被翻译成图像二进制文件,从中提取局部特征,并通过长短期记忆(LSTM)循环神经网络(RNN)进行处理,用于恶意软件的检测和分类。

 

根据给定应用的分类置信度,将两种方法提出的类作为最终输出。

 

我们已经在超过6000个传统恶意软件样本(后门、rootkit、木马、病毒和蠕虫)、2500个隐形恶意软件样本和1500个良性样本上评估了所提出的双管齐下的方法和新颖的局部特征提取技术。对传统恶意软件样本的准确率为94%,对隐形恶意软件的准确率接近90%,F1-score为92%,召回率为91%。

 

第二节. 动机

 

在这里,我们讨论了激励和推动我们提出混合双管齐下恶意软件检测技术的关键发现。图1a、图1b和图1c分别以热图的形式直观地展示了良性、隐形恶意软件和传统恶意软件应用的特征。

 

 

y轴(图像模式)代表应用程序可执行文件中的模式,x轴(模式)代表整个数据集语料库中的观察模式。热图中每个像素的强度是生成热图的文件中各个模式之间的余弦相似度百分比。高强度表示在特定的应用中给定模式的充分存在,这表明各种整体模式之间的密切匹配。

 

我们从绘制的热图中得出以下观察结果。(1)在图1a中,这是一个良性应用的热图,我们可以观察到从图案编号183到671的高强度(暗)区域。然而,在恶意软件的情况下,同样的区域出现的强度较低,如图1c。此外,在整个恶意软件热图(图1b和图1c)中,没有观察到这样的强度区域。(2)在隐身恶意软件的热图(图1b)中,可以观察到对于给定的整体模式,隐身图像模式中的热图并不均匀,即可以观察到等距离的水平光照强度区域和类似的褪色水平区域,说明隐身恶意软件的模式发生不均匀;(3)隐身恶意软件热图的模式强度分布在各个模式中,而在传统恶意软件的情况下是局部的,如图1c和图1b中观察到的。总的来说,这使得隐身恶意软件更难检测。基于以上观察,我们提出了提取和利用局部化特征来区分隐身恶意软件、传统恶意软件和良性应用。

 

第三节.建议的恶意软件检测方法

 

A. 拟议方法概述

 

首先,我们介绍了我们提出的双管齐下的方法概述,如图2所示,用于高效的恶意软件检测,然后是深入的细节。如图2所示,传入的应用(传统的恶意软件或良性或隐性恶意软件)同时被送入基于HPC的方法和基于局部特征提取的计算机视觉方法。在基于HPC的方法中,在运行时收集突出的HPCs信息,然后反馈给ML分类器进行恶意软件检测。需要的突出的HPC,通过离线获取所有可行的

 

HPC值,并送入主成分分析(PCA)进行特征还原。而基于HPC的技术是对传入文件进行动态分析,基于局部特征的方法是一种静态方法,利用基于计算机视觉的处理方法进行恶意软件检测。在这种方法中,传入的二进制文件被转换为灰度图像。从该灰度图像中提取出模式,并通过采用RNN-LSTM进一步标记,与存储的隐身恶意软件和传统恶意软件的模式进行比较。根据两种技术的分类置信度,将置信度较高的技术所预测的类作为输入应用的输出类。下面我们将对各个方法的细节进行描述。

 

B. 基于HPC的检测方法

 

在基于HPC的检测技术中,我们需要通过HPC捕捉到的微架构事件痕迹来进行恶意软件检测。其中一个挑战是,在一个给定的时间-instance中,可以提取的片上HPC数量有限。然而,执行一个应用程序会产生几十个微架构事件。因此,要进行实时恶意软件检测,需要确定哪些非平凡的微结构事件可以通过有限数量的HPC捕获,并产生高检测性能。为了实现这一目标,我们使用主成分分析(PCA)对所有通过迭代执行应用程序离线捕获的微架构事件痕迹进行特征/事件还原。基于PCA,我们决定最突出的事件,并在运行时监控它们。事件的排序确定如下:其中为任意应用的皮尔逊相关系数,为任意传入的应用,为输出数据包含不同的类别(在我们的案例中为后门、rootkit、木马、病毒和蠕虫),cov()测量输入和输出之间的协方差,var()和var()分别测量输入和输出数据的方差。根据排名,我们可以选择最突出的HPC,并在运行时监控它们,以实现高效的恶意软件检测。这些在运行时收集到的还原特征被提供给ML分类器作为输入,ML分类器以较高的置信度确定恶意软件类别标签(Y^⇒后门、rootkit、木马、病毒和蠕虫)(a)。这种基于HPC的恶意软件检测技术对传统恶意软件的检测和分类速度快、鲁棒性强、准确率高,但它在面积、功率和延迟方面存在开销。尽管取得了一定的优势,但由于恶意软件嵌入到良性应用中时对HPC的污染,这种方法在隐身恶意软件上并不能获得更高的性能。为了解决这一关键问题,并行采用了一种基于计算机视觉的方法。

 

 

 

C. 基于局部特征提取的检测

 

在基于计算机视觉的检测技术中,应用二进制文件转换为灰度图像进行局部特征提取。传入的二进制文件被读取为8位无符号整数的向量,然后结构化为一个二维数组。可以将其可视化为一个范围为[0],[255](0:黑,255:白)的灰度图像。图像的宽度固定为256,高度允许根据文件大小而变化。因为,所有文件的大小都在60 kB – 100 kB之间,建议宽度为256[7]。对转换后的二进制图像进行光栅扫描,如图2所示,以找到图像模式。每个图案的块大小为32X32。我们利用余弦相似度来区分多个图案,即如果两个图案的余弦相似度高于一个阈值(在本工作中基于已进行的实验为0.75),则认为它们是相同的。当数据库中找到多个匹配的图案时,则考虑余弦相似度高的图案。一旦图像模式被识别为给定的二进制文件,整个图像二进制被转换为一个模式序列(每个模式都有一个标签)。这个标签序列被送入一个长短期记忆(LSTM)循环神经网络(RNN)。RNN可以喂养相同长度的序列。我们对序列进行零的填充,以使其长度一致。

 

学习RNN的模式发生如下。让ut和ht分别表示时间实例t的输入和状态向量,让Win、Wrec、b、Wout、bout分别是输入到隐藏层的权重矩阵、递归权重矩阵、偏置、输出权重矩阵和输出偏置。让w和e分别为隐藏层和输出层的激活函数。在我们提出的工作中,隐藏层采用tanh,输出采用softmax。然后,递归模型由以下公式描述:

 

 

该RNN模型最终被用于根据公式(2)和公式(3)对传入的隐形恶意软件二进制进行分类,并预测相应的类标签Xt。利用RNN的原理是利用攻击者利用时间以及空间上的依赖性来制作隐形恶意软件。

 

对于给定的输入应用,我们有2个标签(相同或不同)通过基于HPC和计算机视觉的方法预测。在我们的工作中,我们考虑了这两种方法预测的置信度,并且预测器中置信度高于阈值(a = 75%,通过试错法确定)的标签被认为是输入应用的相关类。

 

 

 

 

第四节 实验结果

 

A. 实验设置

 

所提出的方法是在英特尔核心i7-8750H CPU和16GB内存上实现的。我们已经从VirusTotal获得了恶意软件应用程序[9]。我们利用良性的应用程序,如文档(.pdf, .txt, .docx),将上述恶意软件类的二进制文件通过代码混淆(代码重新定位[10])过程整合到其中,以创建2500个隐身的恶意软件样本。我们将恶意软件代码随机放入一个良性文件中,以增加隐蔽性。利用这个过程来创建1600个隐身恶意软件。基于HPC的机制利用单层神经网络,隐藏层有10个神经元。RNN模型具有阈值为0.7的1维丢弃层,LSTM层具有64个神经元和0.7的递归丢弃,然后是具有softmax激活的密集层。它使用ADAM优化器,损失是基于分类交叉熵计算的。

 

B. 恶意软件检测的性能

 

对于传统的恶意软件,即作为独立线程产生的恶意软件,基于HPC的恶意软件检测准确率达到了近90%。然而,对于隐身恶意软件,基于HPC的恶意软件检测准确率被打破,平均为54%(为简洁起见,没有绘制这些单独的结果)。然而,在提出的混合方法中,尽管进行了代码混淆,但准确率还是分别达到了94%。

 

从图3可以看出序列分类器的性能比较。我们观察到,对于传统的恶意软件应用,基于我们局部特征提取方法的RNN序列分类器,对传统恶意软件的分类准确率最高,准确率达到94%。传统序列分类技术对隐身恶意软件的性能变差,而我们基于局部化特征提取的方法对隐身恶意软件的准确率达到了近90%。最重要的观察是,在使用各种混淆技术,如随机代码混淆、代码重定位和多态性等技术检测嵌入在良性应用中的隐形恶意软件时,准确率是确定的。

 

除了准确率,我们还对恶意软件检测的其他性能指标进行了评估和比较,如图4所示。所提出的方法论的精确性得分为0.93,平均F-1得分和召回得分分别为0.94和0.96。我们得出结论,与其他方法相比,提出的方法所达到的召回得分和F-1得分分别高出约24%和23%。

 

从图5中可以看出,利用提出的恶意软件检测方法,曲线下的面积非常接近1,这表明有较高的鲁棒性。考虑到评估证据,我们可以证实我们提出的混合恶意软件检测技术在检测传统和隐形恶意软件方面优于其他机制。

 

第五节. 结论

 

我们提出了一种利用架构(trace)以及代码属性的混合方法,由HPCs和提取的局部特征组成,用于隐蔽的恶意软件检测。在基于HPC的方法中,我们确定恶意软件检测中最突出的HPC,并将其反馈给ML分类器进行恶意软件检测。同时,我们将传入的应用提供给设计的图像处理技术,将应用二进制转换为灰度图像,并在空间分布上提取模式。在序列分类方面,我们利用RNN来提取和处理局部特征,以达到最高的平均准确率,比隐身恶意软件高90%,比传统恶意软件应用高94%。因此,我们得出结论,我们提出的方法在检测隐身恶意软件和传统恶意软件方面是稳健的。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注