分析蠕虫及压缩的网络流量

利用压缩来分析蠕虫病毒和网络数据
摘要
网络蠕虫已经对系统和网络运作构成分布广泛的威胁。为了更有效与蠕虫对抗,分析最新的发现的蠕虫程序和攻击方式是有必要的。这篇文章说明了如何利用基于Kolmogorov复杂性的技术来对网络蠕虫和传输分析的。利用压缩,不同的种类的蠕虫都能由成群。这样就使得我们能判定一个未知的蠕虫二进制文件事实上是否是现存的极简单、自动运行方式的蠕虫的下一个版本。在对恶意二进制文件的初始分析中,这也许是个有用的工具。进一步,压缩对辨别不同类型的网络传输也是有帮助的,因此有助于探测到传输的异常:通过仅查看一个网络的会话的压缩率也许就可以侦测到特定的异常。我们更进一步的说明如何利用压缩来察觉恶意的网络会话,极类似于大家熟悉的入侵企图。这种技术可能有利于探测一种攻击的不同变异,所以它能有效阻止标示的隐藏。我们提供了两种新的Snort的插件,它对这两种方法都做了详细说明。
1 引言
近些年来,网络蠕虫的大量涌现出来,例如Sasser 和Msblaster,已经对全世界的数百万系统造成了破坏。蠕虫是自动运行的程序,可以发掘联网计算机的漏洞,并控制它们。蠕虫一旦成功地感染了一个系统,它们就会持续不断拓展受害者范围。当一个蠕虫程序发现一台新的脆弱的电脑,它也会使使这台机器受到感染。蠕虫就这样通过网络主动地扩散。
如果蠕虫造成大量的问题,重要的是开发对抗它们的防护体。为了达偿所愿,我们需要详细的分析它们。如果发现系统感染了蠕虫,我们最想知道的就是这是怎样发生的,蠕虫进行的什么可能操作,以及如何阻止以后再次感染。本文倾向于介绍诊断的步骤的第一步的一种如下:我们想确定,我们以前是否见过这种蠕虫或者它是否类似于一种众所周知的蠕虫。我们可以分析蠕虫的二进制可执行文件去获取这方面信息。许多公开的蠕虫,像Sasser,经常有许多变种。这些通常是由同一作者发布的相继版本,用来扩展这个蠕虫的功能。所有这些版本一起可以组成一个相联系的蠕虫类。利用浓缩分析,首先可以将不同版本的蠕虫按类划分。通过归类分析,我们把一个未知的蠕虫程序与大量的已知的蠕虫进行比较,判别出其归属类,这样就简化深层次的分析。这种非常简单的方法不能利用任何手工文本比较或者在传统分析利用的包含在蠕虫中特殊的选定的形式。许多混乱的二进制文件利用UPX来压缩,然后可修改它来阻止解压。这样就使基于反汇编二进制文件和比较两个程序的执行流的方法来分析二进制文件变得相当困难。令人惊奇的是,我们的方法即使利用UPX加壳,仍然发挥作用,尽管有些偏差。因此在对新捕获的蠕虫程序初始分析中,======是一个有用的工具。
受感染的系统和网络攻击通常使网络传输发生变化。为了确认和制止这样的攻击,应当去监视这些变化。最具代表性情况下,利用在网络传输中搜索特定形式方法来探测到反常。例如,当字符串“msblast.exe”在TCP会话中被发现时,Snort[11]就能发出警报。只要知道我们所寻找的形式,这种方法就能很好的发挥作用。这里,我们感兴趣的是即使不知道要搜索的形式,我们也能确认出异常。首先,我们利用压缩来探究不同类型网络传输的复杂性。这些复杂性的差别可以使我们粗略了解何种类型的应用协议能引发特定的网络交互。直观讲,对象的复杂性是由它压缩性能来决定的。如果其能压缩性能优良,我们说它复杂性低。另一方面,如果它几乎不能被压缩,那我们就认为它有高复杂性。例如,SSH协议的复杂性非常高。如果我们观测到TCP协议相同的端口有相当低的复杂性,就能对异常有所察觉。这并不需要异常的额外的知识或者对特定的传输形式进行搜索。对Snor插件的压缩,如果所观察的传输的复杂性没有落在特定范围,Snort就会引发警报。
最后,我们利用压缩比较不同的传输协议。新的攻击程序或者新版本的蠕虫可能产生稍微不同的网络传输,其中不再包含我们搜索特定的形式,以此来躲避查杀。这里我们所感兴趣的是辨别出与现存类似的形式。确且地说,如果两种会话协议的组合复杂性不比它们各自的更复杂,我们就认为它们是紧密联系的。也就是这样一种情况,如果两种通讯非常相似并且能相互能很好的解释对方。我们可以利用这种方法来判定可观测得TCP通讯是否与已记录的相应于已知的攻击通讯相似。NCD Snort 插件在一个可观测的通讯与给定的通讯有一定差异是就Snort发出警报。即使压缩对网络通讯的操作是相当耗时的,我们认为这种方法对探测新的攻击类型仍然是有用的。只要辨识攻击,就可以构建特定形式并将它用在传统的入侵检测中。
1.1 相关工作
Halvar Flake [5] 以及Carrera and Erd¡äelyi  利用基于图形的方法在比较可执行程序中取得了骄人的成绩。最近,Halvar Flake也已经利用这种方法对malware 进行了分析。对同一种可执行文件的不同版本进行比较,可能获得蠕虫涉及实际安全问题。这需要对二进制文件反汇编。然而,这种方法对优点在于揭露关于安全隐患的本质实际信息,这里我们注意的焦点是不同的。我们提供了不用反汇编就能判别已知蠕虫的类别的快速方法,这可以用到可执行文件的初步分析。基于这种分析,就能更准确地利用其它方法。
为了确定网路传输的本质,进行了大量的工作。由于我们没有事先选择形式或者特定性质,这就使我们方法根本上不同于其它方法。我们让压缩器来完成指出所有的相似性。
此前Kulkarni and Bush [6]已经考虑过利用基于Kolmogorov复杂性来监视网络传输。然而他们的方法是不同的,因为他们没有利用压缩估计Kolmogorov复杂性。主要是他们认为在网络传输中反常并没有表现出来,因为它们的复杂性要比正常的网络传输还要低。然而,我们发现例如由硬件中继发出假信息就是这样的,我们假设反常通常要比我们认为正常的协议要复杂。例如,如果我们发现HTTP端口80传输正常同时有一部分的复杂性要高的多,这可能就是恶意入侵者造成的,它正在向外传输加密的会话。在这个特定的例子中,由于恶意传输增加了复杂性。
Evans and Barnett [4比较针对FTP服务器攻击于FTP的合法传输的复杂性。他们通过分析合法和非法的FTP传输文件头

你可能感兴趣的:(病毒汇编和调试逆向技术加脱壳,网络,windows,工具,测试,通讯,linux)