译文仅供参考,具体内容表达以及含义原文为准
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。然后,递归模型由以下公式描述:
第四节 实验结果
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%。因此,我们得出结论,我们提出的方法在检测隐身恶意软件和传统恶意软件方面是稳健的。
欢迎登录安全客 -有思想的安全新媒体http://www.anquanke.com/加入交流群113129131获取更多最新资讯
原文链接:https://www.anquanke.com/post/id/216483
相关资源:Veneer:文件屏蔽软件-开源-其它代码类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!