[翻译]利用基于压缩的图挖掘技术进行基于行为的恶意软件检测技术

利用基于压缩的图挖掘技术进行基于行为的恶意软件检测


 

摘要——基于行为的检测方法通常用来处理经过了静态混淆的恶意软件的威胁。这种方法通常使用图来代表进程或者系统的行为,通常使用基于频率的挖掘技术,从恶意软件图的数据集中提取特征模式。分子挖掘领域最近的研究表明,基于频率的图挖掘算法通常会寻找高辨识度模式的次最优方法。我们提出了一种恶意软件检测的方法,使用基于量化数据流图的压缩挖掘方法,来获得精确度较高的检测模型。我们在一组大型多样的恶意软件数据集上的实验显示,我们的方法在比基于频率的检测模型高出了600%的检测有效度。

 

关键词——恶意软件检测,量化数据流分析,数据挖掘,图挖掘,机器学习

 

1  概要

意软件仍然是目前最大的IT安全威胁之一,每天都有成千上万个变种出现,每年造成了数十亿美元的损失。随着恶意软件的开发成为了一种有利可图的商业模型[1][2],今天的恶意软件背景十分复杂,而且会利用多样的混淆及反调试技术[3][4]。这就对传统的基于特征的检测造成了威胁,因为多态的恶意软件通常会自动建立看上去完全不同的混淆二进制兄弟进程。

作为一种应对措施,基于行为的恶意软件检测技术在过去十年有了很大的发展。与静态检测不同,基于行为的检测方法不使用恶意样本的二进制文件进行分析和检测,而是通过学习恶意软件,然后再检测典型的恶意软件行为。目前来说,有一种流行的行为模型使用图来表示系统调用[5][6][7][8][9][10][11]或资源依赖[12][13]。最常见的利用这类基于图的行为模型来检测恶意软件的方法,是通过扫描未知图来获取典型的恶意软件的行为模式(即子图。注:为简介起见,我们规定术语模式和子图,可以和术语系统调用和Windows API调用互换)。这些模式的仓库,要不就是手动指定,要不就是利用图挖掘从已知的恶意软件图中来提取。

图挖掘的核心思想就是确定在一个训练集中,由许多个图共享的判别模式:有助于准确地将已知恶意样本的图和良性样本的图分离的模式。大多数使用图挖掘来识别恶意软件方法都是从频率的角度来确定一个模式是否有用[5][6][7][8][9][10][11][14][15]。这就意味着,一个模式是否有用,取决于它在被分析样本中出现的频率,而与模式中其他属性无关。所以,基于图挖掘的基于行为的恶意软件检测通常会使用基于频率的算法,比如AGM[16]gFSG[17]或者是GSpan[18]

最近从分子(图)挖掘领域得到的结果显示,与所谓的基于压缩的挖掘方法相比,基于频率的挖掘通常会产出更小的interesting(?),因此模式的区分度也更不明显[19]。与基于频率的挖掘技术相比较,基于压缩的挖掘技术确实考虑了一个模式结构上的复杂性,来决定它是否有用。他们通过account for(?) 一个模式收缩挖掘集图形的能力来实现的。也就是说,一个压缩挖掘集中大部分图的模式,即使出现的的频率低于另一个具有更有限压缩能力的更简单的模式,可能也仍然会比一个更简单出现频率却更高的模式具有更好的区分性。(为了避免混淆,请注意“压缩”应该以一种直观的方式来理解,而不是信息论中的方式:我们通常认为,“压缩”是有损的。)

据我们所知,基于压缩的图挖掘进行恶意软件检测的有效性迄今为止,还没有被人关注过。我们看到了很好的理由来相信,在分子挖掘领域中的观点会被迁移到恶意软件分析上。这种假设被我们在一项初步研究中得到的结果证实,在这里,我们对从大量恶意软件样本中获得的数据流图使用了先进的基于频率的挖掘技术[18]。由此产生的模式,即使在原则上是有区别的且在恶意软件检测中是有效的,但却完全是一些非常简单的行为,比如读取系统的库函数,或者是写入注册表项。使用这样简单的模式应用在恶意软件检测上是有问题的,因为他们可能:a)对分析恶意软件家族的变化非常敏感,b)处于同样的原因,比较容易circumvent[20]c)可能会错过一些比较重要且更复杂的恶意软件的特定行为模式,比如自我复制。

因此,我们提出使用一个基于压缩的图挖掘方法来提取行为模式。采用文献[13]中基于行为的恶意软件检测模型,将恶意软件行为表示成定量数据流图(QDFGs),我们展示了,使用基于压缩算法挖掘出来的模式,比纯基于频率方法挖掘的模式,在恶意软件检测率方面更胜一筹。进一步有,考虑使用QDFGs编码的量化数据流来确定图压缩级别,比使用图结构属性来计算压缩因子会产生更好的效果。

问题。我们解决了在恶意软件行为图中寻找interesting模式的问题,它们具有足够强的辨识度,以一个合理的挖掘开销,来提供很高的检测准确度。特别地,我们的目标是模式有效的概念,就像是相关工作里介绍的那样,比简单的考虑模式频率作为效率度量拥有更好的检测结果。

解决办法。为了挖掘辨识度高的恶意软件行为模式,我们采用并调整了一款著名的针对QDFGs的基于压缩图挖掘的算法。QDFGs将恶意软件行为建模成系统实体之间量化数据流的集合,并由执行的系统调用引导。匹配从知名恶意软件和良性软件中获得的模式,我们训练一个有监督的分类器,用于对未知的恶意软件样本进行分类。

贡献。据我们所知,我们是i)第一个基于压缩的图挖掘技术来使用定量数据流信息进行基于行为的恶意软件检测,ii)我们表明,使用基于压缩的挖掘得到的模式,比常见的基于频率的挖掘算法获得到的模式,精确度提到了600%

组织结构。第2节中,概述图挖掘和构成我们方法的定量数据流模型,第3节介绍具体步骤。第4节讨论了评估指标,我们的成果在第5节中展示,第6节用来总结。

 

预备工作

接下来,我们会对文章中的抽象系统做一个简介,将低级行为表示为QDFGs,我们可以将其用于对恶意软件行为的建模。我们也将会简单地介绍一下图挖掘的概念。

2.1  定量数据流图

目前已经证明,直接利用行系统调用来检测的方法对行为混淆[20]是很敏感的。因此,我们使用一个更加抽象的模型来抓取系统调用跟踪来作为QDFGs

QDFGs将系统在一个特定时间段内的行为表示为在诸如进程,文件,注册表或者网络套接字等系统实体之间聚合(量化)数据流。QDFGs是通过将拦截的系统调用跟踪解释为系统实体对之间的量化数据流而形成的。举个例子,执行了一个ReadFileWindows API调用,会产生一定量的从读取文件流向发出调用的该进程的字节流。相反地,一个WriteFileWindows API调用,会产生用发出调用的进程到要写入的文件的数据流。

QDFG中的节点是系统实体。边是将发生在实体(节点)间的数据交换建模成一组系统调用执行。也就是说,QDFG是图

其中是对所有可能的QDFG节点集来建模;表示节点间可能的边的集合;标号函数的集合将节点或者边的属性映射到他们对应的值上。标记函数使用诸如节点类型(),传输数据的聚合量等附加信息来注释节点和边。

具有明显数据流语义的(即当执行时导致系统实体间有流传输)系统调用由集合来建模。一个数据流事件表示的数据单元在时刻从源节点转移到目的节点,标签函数用来标记时间戳和对应流上的相关附加信息。由于我们稍后不需要将单独的数据流进行重建,而是要精简和聚合模型,我们通过对节点对之间所有的数据流的size属性进行加和,而不为每一个事件单独建立一条边。

QDFGs是通过拦截相关的系统事件,即系统或API调用,通过引用监视器[21]生成并持续更新的,并根据其数据流语义解释它们。在正式定义图更新函数之前,我们需要一些辅助符号,它创建或更新对应于检测到的数据流事件的图节点或边:对于,我们定义属性更新函数,其中。对于多属性的更新,我们使用的概念。额外地,两个标记函数的组成由定义。

为了简化对QDFG组件(即节点、边、属性和标记函数)的访问,我们还引入了元组选择器表示法:举例来说,G.N表示QDFG中的节点集N

图更新函数用(2)式来定义。

为了QDFG模型可以通用于Windows恶意软件检测上下文,我们将抽象的QDFG节点映射到具体的Windows资源上,如进程、文件、套接字或注册表项。此外,我们通过对所有Windows API函数建模来实例化数据流事件集合,这些函数在执行时可能会导致系统实体之间出现数据流。这包括如ReadFileWriteFile的文件系统访问函数,如WinSock recvsend函数的网络编程函数,包括ReadProcessMemoryWriteProcessMemory在内的内存访问函数,或是对注册表操作的RegQueryValueRegSetValue函数。

我们直观地展示了函数是如何在这个只针对两个样本函数的模型中被形式化的。事件形式化的详细列表在其他地方有描述[13]

使用ReadFile函数,一个进程从文件读取指定大小的字节到其内存中。相关参数:调用进程,源文件,存储字节,时间。映射:

使用WriteFile函数,一个进程可以将指定大小的字节写进一个文件。相关参数:调用进程,目标文件,写入字节数,时间。映射:

2.2 图挖掘

图挖掘特指更一般的数据挖掘概念。传统意义上,数据挖掘侧重于从非结构化或半结构化数据中提取规则和模式[22]。以图表的形式构造数据在计算机科学中非常常见,并且非常自然地应用于化学、生物学和医学中的问题。将数据挖掘的概念扩展到从结构化图数据中提取模式是近年来备受关注的问题。

图挖掘算法可以是lazy的,也可以是exhaustive的,同时也是基于频率或基于压缩的。Exhaustive图挖掘算法评估从一组图中生成的所有可能的子图,以分离出最具描述性的子图。这通常涉及到计算每个模式候选图和集合中每个图之间的同构。由于这归结为NP复杂的完全子图同构问题,穷举图挖掘算法的可扩展性较差,在庞大的数据集上运行代价比较高。从好的方面来说,它们可以通过构造产生最佳的识别模式。

Lazy图挖掘算法不对所有可能的子图进行评估。取而代之地,它们将领域知识或结构启发式方法结合到搜索过程中,以快速修剪搜索空间中不太可能产生interesting模式的部分。Lazy算法通常比exhaustive算法快,但会从剪枝的搜索空间中漏掉潜在的判别模式。

基于频率的图形挖掘算法如GSPAN[18]AGM [16],仅通过模式在训练数据中出现的频率(也称为模式的频率或支持)来定义模式的效用水平。通常不考虑模式的复杂性或其他属性。

基于压缩的挖掘方法,如Subdue[19]GBI[24]通常也会考虑模式的频率。此外,它们还解释了模式的结构复杂度。这通常是通过评估在将训练集中与模式同构的所有子图压缩到单个节点时可以实现的图压缩程度来实现的。压缩因子,定义为未压缩图和压缩图的复杂度之间的比率,然后决定其是否有用。因此,基于压缩的图挖掘算法有时可能倾向于使用频率较低但压缩程度较高的模式,而不是更频繁的模式。最近在分子挖掘领域的工作表明,通过压缩获得的模式比用纯频率方法提取的模式性能更好[19]

我们认为我们的方法是基于压缩的,因为我们采用了一种基于压缩的lazy图挖掘算法[19]。我们期望它能在有效性和效率之间提供一个很好的权衡,通过结合领域知识和先进的候选者选择技术来剪除模式的搜索空间。

 

 

原文《Leveraging Compression-Based Graph Mining for Behavior-Based Malware Detection

发表于TDSC 2019

地址: https://ieeexplore.ieee.org/document/7867799

posted @ 2019-11-03 00:06  月如霜  阅读(356)  评论(0编辑  收藏  举报