找回密码
 注册创意安天

使用可视化图像矩阵进行恶意软件分析【安天技术公益翻译组 译注】

[复制链接]
发表于 2015-7-20 15:33 | 显示全部楼层 |阅读模式
使用可视化图像矩阵进行恶意软件分析


非官方中文译本 • 安天技术公益翻译组 译注
      
  
文档信息
  
  
论文题目
  
  
Malware Analysis Using  Visualized Image Matrices
  
  
论文作者
  
  
KyoungSoo Han,BooJoong Kang,Eul Gyu Im
  
  
发布单位
  
  
《世界科学杂志》
  
  
原文链接/出处
  
    
  
论文发布日期
  
   
2014/7/16
   
  
译文发布日期
  
   
2014/9/30
   
  
论文摘要&关键词
  
  
摘要:本文提出了一种新型的恶意软件可视化分析方法,该方法不仅包含将二进制文件转换成图像的可视化方法,还包含这些图像之间的相似度计算方法。该方法利用从恶意软件样本中提取的操作码序列生成图像矩阵的RGB颜色像素,并计算图像矩阵的相似度。
  
关键词:恶意软件;可视化;图像;矩阵;相似度
  
译者
  安天技术公益翻译组
校对者
  安天技术公益翻译组
  
免责声明
  
•       本译文译者为安天实验室工程师,本文系出自个人兴趣在业余时间所译,本文原文来自互联网的公共方式,译者力图忠于所获得之电子版本进行翻译,但受翻译水平和技术水平所限,不能完全保证译文完全与原文含义一致,同时对所获得原文是否存在臆造、或者是否与其原始版本一致未进行可靠性验证和评价。
•       本译文对应原文所有观点亦不受本译文中任何打字、排版、印刷或翻译错误的影响。译者与安天实验室不对译文及原文中包含或引用的信息的真实性、准确性、可靠性、或完整性提供任何明示或暗示的保证。译者与安天实验室亦对原文和译文的任何内容不承担任何责任。翻译本文的行为不代表译者和安天实验室对原文立场持有任何立场和态度。
•       译者与安天实验室均与原作者与原始发布者没有联系,亦未获得相关的版权授权,鉴于译者及安天实验室出于学习参考之目的翻译本文,而无出版、发售译文等任何商业利益意图,因此亦不对任何可能因此导致的版权问题承担责任。
•       本文为安天内部参考文献,主要用于安天实验室内部进行外语和技术学习使用,亦向中国大陆境内的网络安全领域的研究人士进行有限分享。望尊重译者的劳动和意愿,不得以任何方式修改本译文。译者和安天实验室并未授权任何人士和第三方二次分享本译文,因此第三方对本译文的全部或者部分所做的分享、传播、报道、张贴行为,及所带来的后果与译者和安天实验室无关。本译文亦不得用于任何商业目的,基于上述问题产生的法律责任,译者与安天实验室一律不予承担。

  


欣达维出版公司
《科学世界杂志》
2014年卷,文章编号132713,15页
http://dx.doi.org/10.1155/2014/132713 logo.png

研究文章
使用可视化图像矩阵进行恶意软件分析


KyoungSoo Han,1 BooJoong Kang,2 and Eul Gyu Im3
1        韩国,首尔,汉阳大学,计算机与软件系, 133-791
2        韩国,首尔,汉阳大学,电子与计算机工程系,133-791
3        韩国,首尔,汉阳大学,计算机科学与工程系,133-791

请与作者Eul Gyu Im通信;imeg@hanyang.ac.kr

2014年3月14日收到; 2014年5月19日接受;2014年7月16日发布

学术责任编辑:Fei Yu

版权所有©2014,KyoungSoo Han等人。这是知识共享署名许可下的可访问文章,在原文适当引用的前提下,允许在任何媒介下无限制地使用、传播和复制本文。

        本文提出了一种新型的恶意软件可视化分析方法,该方法不仅包含将二进制文件转换成图像的可视化方法,还包含这些图像之间的相似度计算方法。该方法利用从恶意软件样本中提取的操作码序列生成图像矩阵的RGB颜色像素,并计算图像矩阵的相似度。特别是,该方法可用于压缩的恶意软件样本,即通过动态分析将其运用到提取的执行痕迹。当生成图像后,我们可以只从包含诸如功能和应用程序编程接口(API)调用相关的指令的块中提取操作码序列,从而降低负载。此外,我们提出了一种能够为每个恶意软件家族生成代表性图像的技术,以减少未知样本类别和图像矩阵的颜色像素信息(用于计算图像相似度)之间的比较次数。我们的实验结果表明,恶意软件的图像矩阵可以有效地静态和动态地分类恶意软件家族,其准确率分别为0.9896和0.9732。


1.        简介

        恶意软件作者已通过各种手段生成了新的恶意软件及恶意软件变种,如重用模块或使用自动化的恶意软件生成工具。某些恶意行为模块被重复用于变种中,所以同一个家族的恶意软件变种可能具有类似的二进制模式,这些模式可以用于检测恶意软件并对恶意软件家族进行分类。此外,大多数反病毒程序主要采用恶意软件特征(也就是字符串模式)来检测恶意软件[1]。然而,诸如混淆或压缩技术的各种检测规避技术被应用到恶意软件变种中,以规避基于特征的反病毒程序的检测,使得安全分析人员难以检测到恶意软件[2,3]。在恶意软件生成技术的帮助下,恶意软件的数量逐年增加。

        尽管安全分析人员和研究人员一直在研究各种分析技术来处理恶意软件变种,但是无法完全分析它们,这是因为采取规避技术的恶意软件正在呈指数形式增加。因此,新的恶意软件分析技术应该减少安全分析人员的负担。最近,一些恶意软件可视化技术已经被提出,以帮助安全分析人员分析恶意软件。

        在本文中,我们提出了一种新的方法来可视化地分析恶意软件,并将恶意软件家族分类。该方法将提取自恶意软件的操作码序列转化为图像(称为图像矩阵),并且计算图像之间的相似度。此外,该方法适用于通过动态分析提取的执行痕迹,所以,我们可以用来分析采用诸如混淆和压缩等规避技术的恶意软件。为了减少计算负载,我们使用主要块选择技术,只从与关键行为有关的块提取操作码序列,例如功能和应用程序编程接口(API)调用[2]。每个恶意软件家族的代表图像都会生成,并用于未知样本的迅速分类。使用这些图像矩阵,我们量化图像的RGB颜色像素信息并计算像素的相似度,从而获得图像之间的相似度。

        本文的组成部分如下。在第2章中,我们介绍了恶意软件分析相关的研究。在第3章,我们提出了利用可视化操作码序列的恶意软件分析方法和计算相似度的方法,实验结果在第4章呈现。最后,第5章给出了结论和未来的发展方向。

2.        相关研究

        在一般情况下,用来检测和分类恶意软件的分析方法可以被归类为静态或动态分析[4]。在恶意软件的静态分析中,各种方法,如控制流图(CFG)分析[5-7]、调用图分析[8,9]、字节级分析[10]、基于指令的分析[11-14]以及基于相似度的分析[15,16]已经被提出了。

        通过将提取的指令反汇编成块,并连接块之间的有向边,从而生成CFG。使用这些CFS作为特征的一些恶意软件分析方法已经被提出了。Cesare 和Xiang[5]提出了一个方法,将CFG定义为字符串形式的特征,包含有序节点的图形边的清单,并使用Dice系数算法[17]测量特征之间的相似度。 Bonfante等人[6]提出了通过语法和语义分析将CFG转换成基于树形的有限状态机的方法,,然后将其作为特征。Briones和Gomez [7]提出了一种基于CFG的自动分类系统。CFG被归纳为3个数组,包括基本块的数量、边的数量、子调用的次数,然后将两个函数进行对比。然而,如果复杂的信息被归纳为很小的量,可能会出现高误报。

        大量的研究旨在根据各种信息(例如系统调用、函数、API调用)检测恶意软件,这些信息在操作系统中用于恶意软件的执行。Shang等人[8]提出了生成函数调用图的方法,代表了函数调用者和被调用者之间的关系,并将此作为恶意软件样本的特征,然后他们利用这些函数调用图特征计算相似度。Kinable和Kostakis[9]通过使用图聚类技术将恶意软件分类。他们提出的方法生成针对恶意软件样本中包含的函数的调用图,并且通过图形编辑距离算法计算出调用图的结构相似度分值,并在此基础上进行聚类。

        通过反汇编提取出的指令的统计信息可以在恶意软件的静态分析中使用。Rad和Masrom[11]提出了基于指令频率来分类变形恶意软件的方法。由于指令频率大多是不改变的(即使恶意软件采用了混淆技术),所以指令频率可以作为恶意软件的特征。因此,他们提出的方法使用从恶意软件样本提取的指令频率来计算距离,然后根据距离值划分变形恶意软件。Bilar[12]指出,不同的恶意软件有不同的指令频率。特别是,他们发现,恶意软件中的罕见指令可以成为更好的恶意软件分类预测指标。Han等人[13]提出了利用指令频率的方法。该方法生成的指令序列根据指令频率进行分类,他们指出,相同的恶意软件家族的指令序列之间的距离具有低距离值。Santos等人[14]提出了使用n-gram指令频率的恶意软件分类方法,其中n-gram指令包括n指令。在所提出的方法中,他们为每个n指令序列生成了向量,并将该向量作为特征。

        此外,动态分析方法已经被提出,包括污点、基于行为的方法和API调用监控。Egele等人[18]提出了使用污点技术的方法,跟踪任何浏览器助手对象(BHO)处理的信息流的行为。如果BHO泄漏敏感信息,BHO就会被归类为恶意软件。Fredrikson等人[19]提出了一种方法,使用图挖掘技术自动地提取行为特性。该方法识别同一恶意软件家族中每个类似的恶意行为的核心CFG,从而进行聚类,然后将这些概括为重要特征。此外,使用仿真器进行动态监控的方法已经被提出。Vinod等人[20]通过仿真器中的动态监控跟踪恶意软件的API调用,并测量其频率,提取关键的API。Miao等人[21]开发了一种被称为“API捕获”的工具,能够自动提取主要特征,如系统调用的参数、返回值和错误状况。

        尽管有许多静态和动态分析方法可用,但仍然需要新的技术来补充现有的技术,以提高安全人员分析恶意软件的能力和便利性。最近,一些可视化的方法被提出,以帮助安全分析人员观察恶意软件的功能和行为[22]。Trinius等人[23]提出了可视化API调用的百分比的方法,并将恶意软件的行为可视化为两个图像,分别称为“树形图”和“线程图”。Saxe等人[24]开发了能够生成两个图像的系统。一个图像显示从恶意软件系统调用行为日志中提取的系统调用序列,而另一个图像显示所选样本之间的相似度和差异。Conti等人[25]提出了一种可视化系统,能够显示恶意软件样本字节信息的图像,例如字节的值、字节存在、复制的字节序列等。Anderson等人[26]提出了一种显示恶意软件样本之间的相似度的方法,该方法采用名为“热图”的图像。Nataraj等人[27]将字节信息转换为灰阶图像,并使用图像处理划分恶意软件。使用字节值生成图像之后,它们对图像采用抽象表示技术,也就是说,GIST[28,29],从而计算结构特征。此外,他们证明了利用图像处理的二进制结构分析技术能够比现有的恶意软件分类方法更快速地分类恶意软件[30]。然而,由于结构分析方法具有较大的计算负载,该方法面临着处理大量恶意软件的问题[31]。

        在本文中,我们提出了使用图像矩阵来可视化地表示恶意软件的新颖分析方法,这样能够容易地检测恶意软件的功能,而且可以比其他可视化方法更加迅速地计算不同恶意软件样本之间的相似度。

1.png

图 1:该方法的概览


3.        我们提出的方法

3.1概述

        我们提出的可视化恶意软件分析方法由3个步骤组成,如图1所示,在步骤1中,从恶意软件二进制样本或动态执行痕迹中提取操作码序列。步骤2生成图像矩阵,其中操作码序列被记录为RGB颜色像素。步骤3计算图像矩阵之间的相似度。在以下各节中,我们将对每个步骤进行详细说明。

3.2提取操作码序列

        图2显示了通过静态分析和动态分析从恶意软件二进制样本或动态执行痕迹中提取操作码序列的过程。

3.2.1基本块提取

        要从恶意软件二进制样本提取操作码序列,需要首先对二进制样本文件进行反汇编,使用反汇编工具(如IDA Pro[32]或OllyDbg[33])将其反汇编为基本块。但是,如果恶意软件样本使用了混淆或压缩技术,则使用反汇编器进行静态分析是不可行的[34,35]。因此,一些恶意软件样本(使用混淆或压缩技术)需要在动态分析环境[36]中执行。

        在动态分析中,如图3所示,一些重复的指令序列都包括在动态执行痕迹中,因为程序可以进行循环或重复调用,并且这些重复序列可以增加执行痕迹和处理负载的大小。Kang等人[37]提出了一种动态执行痕迹的重复过滤方法。在采用重复过滤方法之后,我们从动态执行痕迹中提取过滤的基本块。最后,如果基本块是从病毒样本或动态执行痕迹中提取的,则采用我们的方法从基本块中提取主要块。我们在下一节中介绍。

3.2.2主要块选择

        在本文提出的恶意软件分析方法中,我们从二进制反汇编结果或动态执行痕迹中提取所有的基本块。如果所有的基本块被用于分析,则基本块中包含一些操作系统中的二进制文件执行块。此外,从恶意软件样本中提取的基本块中可能包括许多无意义的块。其结果是,安全分析人员需要分析的基本块数量增加,区分恶意软件特征就变得更加困难。此外,两个恶意软件样本的基本块之间的比较数量也急剧增加。与此相反,如果可以减少不必要块的数量,则可以尽可能地减少恶意软件分析时间,不仅可以减少单个恶意软件分析时间成本,还可以大大减少恶意软件样本数量。因此,我们从所有基本块中选择具备相关的可疑行为和功能的一些块。

        如图4所示,主要块包括CALL指令、用于调用API的库函数、以及其它用户定义的函数。这是因为,用户定义的函数和各种系统调用用于执行大多数程序的行为和功能。如果块包含这些函数调用指令,则可以在恶意软件分析时提取恶意软件特征[2]。通过主要块选择技术,可以减少图像矩阵生成时间。

2.png

图 2:操作码序列的提取过程


3.png

图 3:重复指令序列的例子


4.png

图 4:主要块选择


3.2.3操作码序列提取

        为了提取恶意软件特征,如图5所示,各个主要块的操作码序列被用作恶意软件信息。只有每个操作码的前3个字符被用于生成块的信息。使用3字符操作码的原因如下。从用于Intel X86汇编语言的整个操作码集合中,41.4%具有3个字符,这类操作码在二进制文件中的出现频率比其它操作码更高。另一方面,28.8%的操作码具有4个字符,17.8%具有5个字符,5.2%具有超过6个字符。因此,它们的出现频率相对较低。此外,即使被减少到3个字符,各个操作码的含义仍被保持,所以不同的操作码也可被区分开来。例如,4个字符的操作码,如PUSH,被减少到3个字符PUS;或两个字符的操作码OR通过添加一个空字符增加为3个字符。然后,这些3个字符的操作码被连接到一起,并且字符串将块表示为操作码序列,操作码序列在下一步骤中用于生成图像矩阵的像素。

3.3图像矩阵的生成

        图6展示了步骤2(将操作码序列转化为图像矩阵的像素)的过程。散列函数用于决定像素的𝑋-𝑌坐标和RGB颜色。
为了将二进制文件可视化为图像矩阵,图像矩阵的长度和宽度都被初始化为2n,其中𝑛由用户选定。为了减少散列函数的冲突概率,n应该足够大。在我们的实验中,我们选择了𝑛等于8,以减少冲突。

        坐标定义模块和RGB颜色定义模块被用于生成图像矩阵。首先,坐标定义模块定义关于每个代码块的图像矩阵的像素的(𝑥,𝑦)坐标。其次,RGB颜色定义模块定义了图像矩阵的像素的颜色值。 RGB颜色是通过计算红、绿和蓝色的8位值来定义的。

        SimHash[38]被应用于步骤1的操作码提取,以确定像素的坐标和颜色值。SimHash是局部敏感哈希函数,用于相似语句检测系统,它假定:如果输入值是相似的,则输出值也是相似的。也就是说,由于SimHash 将输入字符串令牌化并为每个令牌生成哈希值。如果两个输入字符串中的一些令牌是不同的,则生成的哈希值不会完全不同,而是相似的。

5.png

图 5:用作恶意软件信息的操作码序列


6.png

图 6:用操作码序列生成图像


        因此,如果操作码序列的字符串相似,那么输出将是相似的,它们将映射到图像矩阵中的相似坐标上。

        一旦各个像素的坐标和RGB颜色确定,RGB颜色图像将被记录在图像矩阵的各个坐标上。为了使得分析人员更加方便地进行可视化分析,相应坐标的像素被同时记录下来。如图7所示,一个块从(𝑥-1,𝑦-1)到(𝑥+ 1,𝑦+ 1)坐标的9个像素被记录。

        如果多个操作码序列的定义坐标是相邻的,导致图像相互重叠,如图8所示,则将RGB颜色的总和作为新像素的颜色。如果颜色总和超过255(0xFF),结果将被设置为255。例如,如果RGB1是(255,0,0),RGB2是(0,176,50),则新的颜色则是(255,176,50)。

        根据主要块,图像矩阵上记录的像素的数量会有所不同。并且随着图像数量的增加,重叠的像素的数量也会增加。如果有太多的重叠的图像,那么就需要增加图像矩阵的大小。

7.png

图 7:一个操作码序列的九个像素


8.png

图 8:记录重叠像素的方法


3.4代表性图像矩阵提取

        因为每个恶意软件家族中存在许多恶意软件变种,随着恶意软件样本数量的增加,相似度计算的总量和时间也会增加。因此,我们提取每个恶意软件家族的代性图像矩阵,以减少恶意软件的相似度计算的成本。也就是说,当一个新的恶意软件的样本被发现时,我们将其图像矩阵与恶意软件家族代表性图像矩阵进行对比,而非将其与现有恶意软件样本的所有图像矩阵进行对比,从而减少相似度计算的时间。

        如图9所示,为了提取每个恶意软件家族的代表性图像矩阵,我们首先要生成恶意软件家族中的样本的图像矩阵。然后,通过只记录具有相同坐标和RGB颜色的图像矩阵,从而提取代表性图像矩阵。图9展示了生成恶意软件家族的代表性图像矩阵的例子。

3.5利用图像矩阵计算相似度

        使用图像矩阵进行相似度计算的优点是比使用字符串类型的操作码序列的精确匹配更快速,即使散列冲突会造成一些额外的误报。当使用字符串时,由于发现完全匹配的字符串对的过程,时间复杂度被定义为𝑂(𝑛2)。然而,如果图像矩阵被用于计算相似度,因为操作码序列的坐标和颜色都是通过SimHash定义的,则寻找字符串对的过程被跳过。因此,使用图像矩阵的相似度计算的时间复杂度被定义为O(n),因为只有记录在两个图像矩阵的相同坐标上的像素颜色信息用于计算图像矩阵之间的相似度。

        首先对每个图像矩阵中的像素执行像素相似度计算。在这种情况下,相似度计算的最重要的考虑因素是:只有记录各个像素矩阵中的RGB颜色的像素应该被使用。图像矩阵在黑色背景的正方图像上有RGB颜色像素。如果黑色像素也被用于相似度计算,则不同恶意软件家族样本之间的相似度可能非常高。因此,当计算图像矩阵的相似度时,两个图像矩阵中相同坐标的像素的下述情况应该被考虑,如图10所示。在这种情况下,基于向量角度的距离测量算法用于计算颜色像素之间的相似度。此算法通过将构成各个图像的颜色像素表示为3D向量来计算相似值,如图(1)所示,然后使用角度和大小信息:

(a)情况1:如果两个图像矩阵中的区域的所有像素都是黑色,则不会进行像素相似度计算,并选择下一个像素。
(b) 情况2:如果选定区域中的一个像素为黑色,且其他图像中的相应像素是彩色的,则像素相似度将被定义为0。
(c)情况3:如果两个像素不是黑色而是彩色,则采用基于向量角度的距离测量算法来计算颜色像素相似度[39],如下所示:
8-1.png


        当考虑各种情况时,图像矩阵的相似度值的计算利用(2)所示的像素相似度计算的结果。即情况3中所计算的像素相似度值的总和除以情况2和3中计算出的像素的数量,以计算平均值:
8-2.png


4.        实验结果

4.1实验数据和环境

        使用本文中的可视化分析工具和表1中所示的恶意软件样本,生成图像矩阵,并计算相似度。首先,集合A包括来自16个家族的290个恶意软件样本,这些样本没有采用检测避免技术,例如模糊和压缩。使用反汇编器和静态分析,从这些恶意软件样本中提取基本块。第二,集合B包括来自14个家族的560个恶意软件样本,其中包括压缩和非压缩的恶意软件样本。在动态分析环境中,我们通过PIN工具利用这些恶意软件样本生成动态执行痕迹,然后通过重复过滤技术从动态执行痕迹中提取过滤后的基本块,如第3.2.1节所述。

9.png

图 9:代表性图像矩阵的提取


10.png

图 10:像素相似度计算中考虑的3种情况


        在实验中,我们构建了一个实验环境,包括分析服务器、恶意软件服务器和监控机,如图11所示。我们在分析服务器中设置了VMware vSphere ESXi 5.1,它具有Intel Xeon E5-1607处理器和24GB的主内存,我们安装了两个Windows操作系统作为客户机操作系统。在第一个Windows操作系统中,动态执行痕迹通过PIN提取。在另一个Windows操作系统中,则通过可视化分析工具来生成图像矩阵并计算相似度。提供给分析服务器的恶意软件样本和从分析服务器中提取的动态执行痕迹被存储在恶意软件服务器中。监控机通过PowerCLI工具(远程命令行接口)来控制分析服务器。

4.2静态分析实验

        对于此部分的实验,我们反汇编了集合A中的恶意软件样本,并从基本块提取了主要块。然后,我们利用这些主要块的操作码序列生成了图像矩阵并分析它们之间的相似度。

4.2.1图像矩阵生成

        在本文的实验中,我们将生成的图像矩阵的大小设置为256×256像素。如表2所示,采用这种图像矩阵大小的原因可简要概括为文件大小、相似度计算时间以及分类准确度之间的折衷。通过(3)计算准确度:
10-1.png


        图12显示了集合A中各个家族的恶意软件样本所生成的图像矩阵的例子。这只包括每个恶意软件家族的3个图像矩阵和1个代表性图像矩阵(通过记录那些普遍存在于所有图像矩阵的像素而提取出代表性图像矩阵)。由于用作恶意软件信息的操作码序列的数量改变,记录在图像矩阵的像素的数量也会不同。在恶意软件的情况下,许多相同或相似的RGB颜色像素出现于同意家族的恶意软件样本的图像矩阵中。然而,即使像素被记录在不同图像矩阵的相同坐标上,如果相关像素的RGB颜色信息不同,像素的相似度也会有不同的值。我们的结果表明,同一恶意软件家族中的变种的图像矩阵是相似的,而不同家族的恶意软件样本的图像矩阵则明显不同。

        图13显示了采用了主要块选择技术前后的图像矩阵的差异。图像级数表示记录在图像矩阵中的像素的数量减少,原因是从基本块中选择主要块。采用主要块选择技术后相似度发生变化,这将在下节中介绍。
11.png

图 11:实验环境


12.png

图 12:恶意软件家族样本的图像矩阵


表 1:恶意软件样本

T1.png


表 2:图像矩阵大小的选择

T2.png


4.2.2主要块选择

        采用主要块选择后的图像矩阵相似度的计算如图14和15所示。当采用主要块选择技术后,同一家族中恶意软件样本的相似度变化的范围是从0.002(Tab家族)到0.147(Lemmy家族)。不用家族的样本的相似度变化范围是0.001(Eva家族)到0.053(Klez家族)。其结果是,同一家族中的恶意软件样本之间的相似度值大于0.6,而不同家族中的恶意软件样本之间的相似度的值在0.1以下。因此,虽然采用主要块选择技术会导致相似度值的变化,但是可以减少图像矩阵的生成时间,并且可以发现相似度值的明显差异。

表 3:任意选择的未知恶意软件样本

T3.png


4.2.3代表性图像矩阵的提取

        对于这个实验,我们选择了集合A之外的任意的未知恶意软件样本。然后,我们分析该未知样本的图像矩阵与各个家族中的所有290个图像矩阵和16个代表性图像矩阵之间的相似度计算时间和相似度值。  

        图16示出了该未知样本与各个家族所有恶意软件样本的图像矩阵及代表性图像矩阵的相似度计算的结果。当使用所有的图像矩阵时,Tab家族的平均相似度值为0.781,而所有其他家族的相似度值则小于0.05。当使用各个家族的代表性图像矩阵时,Tab家族的平均相似度值是0.348,而其它家族的相似度值则小于0.03。因此,未知样本有望成为Tab家族的一个变种。事实上,用于本实验的未知样本的诊断名称为Trojan-Dropper.Win32.Tab.gd.。

        表3显示了本实验所使用的未知恶意软件样本的列表,包括使用代表性图像矩阵的相似度计算的结果。除了Agobot.02.a和Sdbot.04.a,这些恶意软件样本被检测为集合A中的各个家族的变种,而代表性图像矩阵的相似度值的范围是0.181到0.352。由于Agobot.02.a和Sdbot.04.a样本不是集合A中恶意软件家族的变种,相比于现有各个家族的代表性图像矩阵,它们的相似度值非常低。
13.png

图 13:使用和不使用主要块选择时的图像矩阵对比


14.png

图 14:采用主要块选择技术后,各个家族的恶意软件样本的图像矩阵的相似度计算。(左)
图 15:采用主要块选择技术后,不同家族的恶意软件样本的图像矩阵的相似度计算。(右)


4.2.4恶意软件分类的可行性

        图17显示了采用我们提出的所有方法(即,主要块选择技术和代表性图像矩阵提取技术)后的相似度值的变化。同一家族的恶意软件样本之间的相似度值界于0.19和0.36之间,而不同家族的恶意软件样本之间的相似度均小于0.05。分类准确度(使用通过静态分析生成的图像矩阵得到)是0.9896。也就是说,集合A中只有3个恶意软件样本被错误分类为其他恶意软件家族。

16.png

图 16:未知样本与各个家族的代表性图像矩阵的相似度值


17.png

图 17:使用3个提出的技术得到的相似度计算结果


        我们得到的结果稍好于使用二进制结构分析[30]的平均分类准确度0.9757。因此,我们得出结论,我们的方法对于恶意软件分类是可行的,因为相比于来自不同家族的恶意软件样本,同一家族的恶意软件样本之间的相似度会比较高。

4.3基于执行痕迹的实验

        对于基于执行痕迹的实验,我们使用PIN工具在动态分析环境中执行集合B中的恶意软件样本(如表1所示)。然后生成动态执行痕迹,之后从这些执行痕迹中提取需进行经

        过重复过滤的基本块。过滤后,选择与可疑行为和功能有关的主要块。我们提出的技术被应用到这些执行痕迹中,以生成图像矩阵并分析相似度。
18.png

图 18:下面的重复过滤和重大块选择应用改变执行跟踪的大小


        图18显示了采用重复过滤和主要块选择技术之后执行痕迹的减少。如果采用重复过滤技术后,执行痕迹第一次减少,然后又采用了主要块选择技术,那么相比于初始执行痕迹,执行痕迹的平均减少量为76.5%(最低69.3%,最高83.6%)。

        图19显示了采用重复过滤和主要块选择技术之后生成的图像矩阵的变化。当比较3个图像矩阵时,我们发现记录在图像矩阵中的像素的数量减少了。

        图20和图21显示了采用重复过滤和主要块选择技术之后相似度值的变化。虽然变化值都不大,但是如果正确设置相似度阈值,那么有些恶意软件家族还是能够予以区分的。

        在这些实验中,同一家族的恶意软件样本的平均相似度值大约是0.65,不同家族的恶意软件样本的平均相似度值大约是0.36。相比于先前所介绍的静态分析结果,基于执行痕迹的实验结果显示出了相对较小的差异。这些结果的原因是:当每个家族的恶意软件样本在动态环境中执行来提取动态执行痕迹时,相似的系统动态链接库(DLL)就会被调用。其结果是,由于DLL调用和其在动态执行痕迹中的执行,相似的操作码序列被记录在各个家族的图像矩阵中,所以相似度值会增加。然而,使用图像矩阵(根据执行痕迹而生成),集合B中只有15个恶意软件样本被错误分类,而这种结果类似于[30]中的准确性。
19.png

图 19:采用重复过滤和主要块选择技术之后生成的图像矩阵的变化


20.png

图 20:采用重复过滤和主要块选择技术之后,同一家族中样本的相似度值的变化。(左)
图 21:采用重复过滤和主要块选择技术之后,不同家族中样本的相似度值的变化。(右)


5.        结论和未来工作

        在本文中,我们提出了一种新颖的方法,通过生成图像矩阵来可视化地分析恶意软件样本。为了生成图像矩阵,我们通过静态分析和动态分析来提取操作码序列。此外,我们使用图像矩阵中的RGB颜色像素的向量化值来计算恶意软件变种之间的相似度。使用图像矩阵的相似度计算方法比使用字符串类操作码序列或基本块的精确匹配更加快速。我们所提出的方法作为一种可视化分析工具。实验结果表明,同一家族的恶意软件样本转换为图像矩阵后是相似的,而恶意软件变种之间的相似度更高。采用我们的方法,安全分析人员可以直观地分析恶意软件样本,并可以区分相似的恶意软件样本作进一步分析。我们未来的研究包括使用基于GPGPU的并行技术和实时处理的更快速的恶意软件检测和分类。

利益冲突

        本文作者宣布,关于本文的发表不存在任何利益冲突。

致谢

        该研究项目在2013年获得文化、体育和旅游部(MCST)和韩国著作权委员会的支持。本文是根据发表于《适应和收敛系统研究2013》(RACS’2013)的前一版本所修订的[40] 。

参考文献

[1] M. Christodorescu and S. Jha, “Testing malware detectors,” in Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA ’04), pp. 34–44, July 2004.
[2] B. Kang, T. Kim, H. Kwon, Y. Choi, and E. G. Im,  “Malware classification method via binary content comparison,” in Proceedings of the ACM Research in Applied Computation Symposium (RACS '12), pp. 316–321, San Antonio, Tex, USA, October 2012.
[3] A. Moser, C. Kruegel, and E. Kirda, “Limits of static analysis for malware detection,” in Proceedings of the 23rd Annual Computer Security Applications Conference (ACSAC ’07), pp. 421–430, Miami Beach, Fla, USA, 2007.
[4] M. D. Ernst, “Static and dynamic analysis: synergy and duality,” in Proceedings of the ICSE Workshop on Dynamic Analysis (WODA ’03), pp. 24–27, Citeseer, 2003.
[5] S. Cesare and Y. Xiang, “A fast flowgraph based classification system for packed and polymorphic malware on the endhost,” in Proceedings of the 24th IEEE International Conference on Advanced Information Networking and Applications (AINA ’10), pp. 721–728, Perth, Australia, April 2010.
[6] G. Bonfante, M. Kaczmarek, and J.-Y. Marion, “Architecture of a morphological malware detector,” Journal in Computer Virology, vol. 5, pp. 263–270, 2009.
[7] I. Briones and A. Gomez, “Graphs, entropy and grid computing: automatic comparison of malware,” in Proceedings of the Virus Bulletin Conference (VB ’08), pp. 1–12, Ottawa, Canada, October 2008, http://pandalabs.pandasecurity.com/blogs/ images/PandaLabs/2008/10/07/IsmaelBriones-VB2008.pdf.
[8] S. Shang, N. Zheng, J. Xu, M. Xu, and H. Zhang, “Detecting mal- ware variants via function-call graph similarity,” in Proceedings of the 5th International Conference on Malicious and Unwanted Software (MALWARE ’10), pp. 113–120, Nancy, France, 2010.
[9] J. Kinable and O. Kostakis, “Malware classification based on call graph clustering,” Journal in Computer Virology, vol. 7, no. 4, pp. 233–245, 2011.
[10] S. M. Tabish, M. Z. Shafiq, and M. Farooq, “Malware detection using statistical analysis of byte-level file content,” in Proceedings of the ACM SIGKDD Workshop on Cyber Security and Intelligence Informatics (CSI-KDD ’09), pp. 23–31, ACM, June 2009.
[11] B. B. Rad and M. Masrom, “Metamorphic virus variants classification using opcode frequency histogram,” in Proceedings of the 14th WSEAS International Conference on Computers, pp. 147– 155, Corfu Island, Greece, July 2010.
[12] D. Bilar, “Opcodes as predictor for malware,” International Journal of Electronic Security and Digital Forensics, vol. 1, pp. 156–168, 2007.
[13] K. S. Han, S.-R. Kim, and E. G. Im, “Instruction frequency- based malware classification method,” Information, vol. 15, no. 7, pp. 2973–2984, 2012.
[14] I. Santos, F. Brezo, J. Nieves et al., “Idea: Opcode-sequence-based malware detection,” in Engineering Secure Software and Systems, pp. 35–43, Springer, 2010.
[15] A. H. Sung, J. Xu, P. Chavez, and S. Mukkamala, “Static analyzer of  vicious  executables  (SAVE),”  in  Proceedings  of  the  20th Annual  Computer  Security  Applications  Conference  (ACSAC '04), pp. 326–334, December 2004.
[16] A.  Walenstein, M.  Venable, M.  Hayes, C.  Thompson, and A. Lakhotia, “Exploiting similarity between variants to defeat malware,” in Proceedings of the BlackHat DC Conference, 2007.
[17] G. Chowdhury, Introduction to Modern Information Retrieval, Facet publishing, 2010.
[18] M. Egele, C. Kruegel, E. Kirda, H. Yin, and D. X. Song, “Dynamic spyware analysis,” in Proceedings of the Usenix Annual Technical Conference, pp. 233–246, 2007.
[19] M. Fredrikson, S. Jha, M. Christodorescu, R. Sailer, and X. Yan, “Synthesizing near-optimal malware specifications from suspicious behaviors,” in Proceeding of the 31st IEEE Symposium on Security and Privacy (SP '10), pp. 45–60, Oakland, Calif, USA, May 2010.
[20] P. Vinod, H. Jain, Y. K. Golecha, M. S. Gaur, and V. Laxmi, “Medusa: metamorphic malware dynamic analysis using sig- nature from API,” in Proceedings of the 3rd International Conference on Security of Information and Networks (SIN ’10), pp. 263–269, ACM, September 2010.
[21] Q. G. Miao, Y. Wang, Y. Cao, X. G. Zhang, and Z. L. Liu, “API Capture—a tool for monitoring the behavior of malware,” in Proceedings of the 3rd International Conference on Advanced Computer Theory and Engineering (ICACTE ’10), pp. V4-390– V4-394, August 2010.
[22] K. S. Han, J. H. Lim, B. Kang, and E. G. Im, “Malware analysis using visualized images and entropy graphs,” International Journal of Information Security, 2014.
[23] P. Trinius, T. Holz, J. Go¨bel, and F. C. Freiling, “Visual analysis of malware behavior using treemaps and thread graphs,” in Proceedings of the 6th International Workshop on Visualization for Cyber Security (VizSec ’09), pp. 33–38, Atlantic City, NJ, USA, October 2009.
[24] J. Saxe, D. Mentis, and C. Greamo, “Visualization of shared system call sequence relationships in large malware corpora,” in Proceedings of the 9th International Symposium on Visualization for Cyber Security (VizSec ’12), pp. 33–40, ACM, October 2012.
[25] G. Conti, E. Dean, M. Sinda, and B. Sangster, “Visual reverse engineering of binary and data files,” in Visualization for Computer Security, pp. 1–17, Springer, Berlin, Germany, 2008.
[26] B. Anderson, C. Storlie, and T. Lane, “Improving malware classification: bridging the static/dynamic gap,” in Proceedings of the 5th ACM Workshop on Security and Artificial Intelligence (AISec '12), pp. 3–14, Raleigh, NC, USA, October 2012.
[27] L. Nataraj, S. Karthikeyan, G. Jacob, and B. Manjunath, “Mal- ware images: visualization and automatic classification,” in Proceedings of the 8th International Symposium on Visualization for Cyber Security, p. 4, ACM, 2011.
[28] A. Oliva and A. Torralba, “Modeling the shape of the scene: a holistic representation of the spatial envelope,” International Journal of Computer Vision, vol. 42, no. 3, pp. 145–175, 2001.
[29] A. Torralba, K. P. Murphy, W. T. Freeman, and M. A. Rubin, “Context-based vision system for place and object recognition,” in Proceedings of the 9th IEEE International Conference on Computer Vision, pp. 273–280, IEEE, October 2003.
[30] L. Nataraj, V. Yegneswaran, P. Porras, and J. Zhang, “A comparative assessment of malware classification using binary texture analysis and dynamic analysis,” in Proceedings of the 4th ACM Workshop on Security and Artificial Intelligence (AISec ’11), pp. 21–30, 2011.
[31] Y. Kang and A. Sugimoto, “Image categorization and semantic segmentation using scale-optimized textons,” Journal of IT Convergence Practice, vol. 2, pp. 2–14, 2014.
[32] C. Eagle, The IDA Pro Book: The Unofficial Guide to the World’s Most Popular Disassembler, No Starch Press, 2008.
[33] O. Yuschuk, “Ollydbg,” 2007, http://www.ollydbg.de.
[34] Y. Wei, Z. Zheng, and N. Ansari, “Revealing packed malware,” IEEE Security and Privacy, vol. 6, no. 5, pp. 65–69, 2008.
[35] P.  Royal, M.  Halpin, D.  Dagon, R.   Edmonds,   and   W. Lee, “PolyUnpack: automating the hidden-code extraction of unpack-executing malware,” in Proceeding of the 22nd Annual Computer Security Applications Conference (ACSAC '06), pp. 289–300, Miami Beach, Fla, USA, December 2006.
[36] S. Berkowits, “Pin—A Dynamic Binary  Instrumentation Tool,” 2012,   https://software.intel.com/en-us ... strumentation-tool.
[37] B. Kang, K. S. Han, B. Kang, and E. G. Im, “Malware categorization using dynamic mnemonic frequency analysis with redundancy filtering,” 2013.
[38] M. S. Charikar, “Similarity estimation techniques from round- ing algorithms,” in Proceedings of the 34th Annual ACM Sym- posium on Theory of Computing, pp. 380–388, ACM, New York, NY, USA, 2002.
[39] D. Androutsos, K. N. Plataniotis, and A. N. Venetsanopoulos, “Novel vector-based approach to color image retrieval using a vector angular-based distance measure,” Computer Vision and Image Understanding, vol. 75, no. 1, pp. 46–58, 1999.
[40] K. S. Han, J. H. Lim, and E. G. Im, “Malware analysis method using visualization of binary files,” in Proceedings of the 2013 Research in Adaptive and Convergent Systems, pp. 317–321, ACM, 2013.

英文原文报告下载: Malware Analysis Using Visualized Image Matrices.pdf (7.93 MB, 下载次数: 67)
安天公益翻译(非官方中文译文)下载: 使用可视化图像矩阵进行恶意软件分析[非官方中文译本 • 安天实验室译].pdf (1.66 MB, 下载次数: 79)
您需要登录后才可以回帖 登录 | 注册创意安天

本版积分规则

Archiver|手机版|小黑屋|创意安天 ( 京ICP备09068574,ICP证100468号。 )

GMT+8, 2024-12-22 13:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表