研究人员新推出k-最近邻(kNN)分类法,可快速进行恶意软件检测!

   电子分析员        

每天都有数十万个新的恶意文件被创建。现有的基于模式的防病毒解决方案难以检测这些新的恶意文件。针对此问题,研究人员提出了基于人工智能(AI)的恶意软件检测方法。然而,这需要很长时间。基于相似散列的检测也被提出;但是,它的检出率较低。为了解决这些问题,研究人员提出了k最近邻(kNN)分类方法,通过使用相似散列的vant- point (VP)树进行恶意软件检测。当研究人员使用kNN分类时,研究人员减少了67%的检测时间,提高了25%的检测率。对于使用相似散列的VP树,研究人员减少了20%的相似散列搜索时间。


相关论文以题为“Combined kNN Classification and Hierarchical Similarity Hash for Fast Malware Detection”发表在《Applied Sciences》上。


研究人员新推出k-最近邻(kNN)分类法,可快速进行恶意软件检测!


每天都有数十万个新的恶意文件被创建。现有的基于模式的防病毒解决方案很难检测到这些新的恶意文件,因为它们不包含模式。为了解决这些问题,人们研究了基于人工智能(AI)的恶意软件检测方法。


基于人工智能的恶意软件检测包括两个阶段。在第一阶段,从恶意文件中提取特征;第二阶段使用训练数据训练深度学习模型,并使用测试数据进行测试。有两种方法用于从恶意文件中提取特征。第一种是从恶意文件中提取操作码的静态方法。第二种是动态方法,通过在沙箱中运行恶意文件获得应用程序接口(API)系统调用序列。


恶意软件检测的深度学习模型包括基于卷积神经网络的模型、基于long - short memory (long - short memory, LSTM)的模型以及将CNN和LSTM结合使用的模型。深度学习模型对恶意软件检测具有很高的检测率。然而,判断文件是否是恶意文件需要很长时间。其他研究已经研究了使用相似散列检测恶意文件。研究人员提出了一种相似散列的趋势微位置敏感散列(TLSH)。如果文件中的一个位发生了变化,它的加密哈希(例如MD5)将与原始哈希完全不同。然而,它的相似散列与原始散列非常相似。因此,当两个相似散列相似时,这两个文件就相似。基于相似散列的恶意软件检测比基于深度学习的恶意软件检测更快,但其检出率较低。


在本文中,研究人员提出了两种方法来解决这些问题,如图1所示:用于检测恶意软件的k近邻(kNN)分类和使用相似散列的有利点(VP)树。首先,利用kNN分类进行恶意软件检测,研究人员将训练数据分为三组,如下所示:


研究人员新推出k-最近邻(kNN)分类法,可快速进行恶意软件检测!


图1. 建议的用于快速检测恶意软件的系统。TLSH:趋势科技本地敏感哈希。VP:优势。kNN:k最近邻。DL:深度学习。


TLSH


相似散列的目的是查找文件的变体。每天都有成千上万的恶意文件被创建,这使得使用现有的基于模式的反病毒解决方案来检测它们变得很困难。相似散列可以帮助解决这个问题。当已知现有文件是正常或恶意文件时,如果新文件具有类似的哈希值,则可以判断它与现有文件类似。


相似散列的属性如下。一个加密散列,例如MD5,如果文件只是略有不同,就会产生一个完全不同的散列值。但是,对于相似散列,相似的文件具有相似的散列值,而不同的文件具有不同的相似-散列值。


TLSH是相似散列的一个典型例子。TLSH的创建如下所示。首先,使用一个五元素滑动窗口处理文件中的字节字符串,以计算桶计数数组。其次,计算四分位点q1、q2和q3。第三,构造摘要头值。第四,通过处理桶数组构造摘要体。


首先,如图2所示,使用Pearson散列将文件的字节字符串计数到一个128维数组中。也就是说,通过5个元素窗口计算出的Pearson散列值与128个桶中的一个相匹配,桶计数增加1。


研究人员新推出k-最近邻(kNN)分类法,可快速进行恶意软件检测!


图2.TLSH。


其次,计算四分位数点。75%的桶计数大于或等于q1, 50%的桶计数大于或等于q2, 25%的桶计数大于或等于q3。


研究人员新推出k-最近邻(kNN)分类法,可快速进行恶意软件检测!


第三,如图2所示,相似散列的前三个字节的第一个字节是校验和,第二个字节是文件的长度,第三个字节从q1, q2, q3开始计算,如下所示。


研究人员新推出k-最近邻(kNN)分类法,可快速进行恶意软件检测!


VP树


VP树的目的是快速找到kNN。第一步是生成vp树,第二步是搜索vp树。


VP树生成如下。当点数较多时,随机选取一个有利点(VP)。然后,研究人员计算有利点与其他点之间的距离。研究人员把有利点的半径设为距离的中间值。然后,研究人员把点分为两组:内和外。有利点和内部团体中的一个点之间的距离小于有利点的半径。有利点和外部群体中的一个点之间的距离大于有利点的半径。然后,内组的点被分配到有利点的左子树,外组的点被分配到右子树。然后,研究人员在子树中递归地重复这个过程。


例如,研究人员选择n1作为有利位置,如图3所示。然后研究人员计算n1和其他点之间的距离。研究人员设n1的半径为距离的中值。然后,研究人员把这些点分成两组。


研究人员新推出k-最近邻(kNN)分类法,可快速进行恶意软件检测!


图3.VP-tree概念。


内组的点被分配到n1的左子树,外组的点被分配到n1的右子树,如图4所示。


研究人员新推出k-最近邻(kNN)分类法,可快速进行恶意软件检测!


图4.VP-tree一代。


结论


在本文中,研究人员提出了两种方法来提高恶意软件检测的速度。首先,研究人员提出了kNN分类以提高检测率,减少检测时间。其次,研究人员使用VP树提供了一个相似散列来提高相似散列搜索速度。采用kNN分类方法,检测率提高25%,检测时间缩短67%。通过使用带有相似散列的VP树,研究人员减少了20%的搜索时间。


在这项研究中,研究人员确定一个文件是否是恶意的。因此,研究人员将这些文件分为正常组、恶意组和未确定组。然而,有不同类型的恶意软件,如木马、后门、蠕虫、滴管和病毒。因此,研究人员需要kNN分类来指定恶意软件的类型。研究人员可以使用两次kNN分类。在首次使用kNN分类时,研究人员将文件分为正常组、恶意组和未决定组。在第二次使用kNN分类时,研究人员可以将恶意文件分为木马组、后门组、蠕虫组、滴管组、病毒组和未确定组。


此外,研究人员提出了一种改进VP树以减少搜索时间的方法。最初,研究人员期望当有n个训练文件时,搜索时间为O(logn)。然而,研究人员在实验中发现,查询圈往往与内部空间和外部空间的有利位置重叠。因此,研究人员必须频繁地搜索有利点的左子树和右子树。研究人员期望通过使用m树的来代替VP树的两个子树,可以减少搜索时间。


另一方面,最近有一些关于利用GAN规避恶意软件检测的研究。GAN可用于修改恶意软件,使用生成器由鉴别器判定为正常。据报道,氮化镓显著降低了检出率。研究人员需要一种方法来防止躲避恶意软件检测。研究人员希望利用基于深度学习和相似度哈希的检测方法可以在一定程度上解决这一问题。


论文链接:https://www.mdpi.com/2076-3417/10/15/5173/htm



最新评论(0)条评论
不吐不快,我来说两句

还没有人评论哦,抢沙发吧~

相关新闻推荐