病毒木马查杀实战第001篇:基本查杀理论与实验环境配置
前言
《病毒木马查杀》系列以真实的病毒木马(或统称为恶意程序)为研究对象,通过现有的技术手段对其分析,总结出它的恶意行为,进而制定出相应的应对方法(如编写专杀工具),对其彻底查杀。当然,本系列更多地是讨论如何应对某一个特定的病毒,而不涉及广义的杀毒软件的编写。因为如今杀软的原理非常复杂,并不是一个人就能够完成的,加之我个人水平有限,因此不会涉及杀软编写的问题。不过,我会在以后的文章中在理论层面对此进行分析。
在本系列的文章中,对于某一个病毒或木马,我可能会从以下三个方面进行查杀:手动查杀、监测恶意行为编写专杀工具或通过逆向分析其反汇编代码进行彻底查杀。这几种方式通过对病毒的不断深入分析,从而更有效地对抗恶意程序。需要说明的是,手动查杀病毒是比较粗浅的,难以彻底清除病毒,但是有些时候却是快速而有效的。而通过行为对恶意程序进行监测,虽说比手动查杀的效果要好很多,但是有些时候往往也会有些遗漏。所以其实最好的还是通过逆向分析来了解恶意程序,只是这样往往耗时较多。
希望本系列的文章能够起到科普作用,让大家打消对病毒木马的恐惧感,使得每一位读者都能成为反病毒的专家。
病毒分析方法
一般来说,除非是感染型病毒,否则是不需要对病毒进行逆向分析的,只需要对病毒进行行为分析就可以编写专杀工具。而如果是感染型病毒,由于需要修复被病毒感染的文件,那么就不能仅仅简单地分析病毒的行为,而必须对病毒进行逆向分析,从而修复被病毒所感染的文件。因此,实际中的分析方法有以下两种:
1、行为分析。恶意程序为了达到目的,都有自己的一些特殊的行为,这些特殊的行为是正常的应用程序所没有的。比如把自己复制到系统目录下,或把自己添加进启动项,或把自己的某个DLL文件注入到其它进程中去……这些行为都不是正常的行为。我们拿到一个病毒样本后,通常就是将病毒复制到虚拟机中,然后打开监控工具,比如Process Monitor(参见《文档翻译第003篇:ProcessMonitor帮助文档(Part 3,附ProcessMonitor的简单演示)》)。将各种准备工作做好以后,在虚拟机中把病毒运行起来,看病毒对注册表、对文件进行了哪些操作,连接了哪个IP地址、创建了哪些进程等。通过观察这一系列的操作,就可以写一个程序。只要把它创建的进程结束掉,把它写入注册表的内容删除掉,把新建的文件删除掉,就等于把这个病毒杀掉了。这也是手动查杀病毒所惯用的方法。当然,这整个过程不会像说起来那么容易。
2、逆向分析。当恶意程序感染了可执行文件之后,所感染的内容是无法通过行为监控工具发现的。而病毒对可执行文件的感染,有可能是通过PE文件结构中的节与节之间的缝隙来存放病毒代码,也可能是添加一个新节来存放病毒代码。无论是哪种方式,都需要通过逆向的手段进行分析。常用的逆向分析工具有OllyDbg、IDA Pro以及WinDBG。
病毒查杀方法
病毒的查杀方法有很多种,在网络安全知识日益普及的今天,在各大杀软公司大力宣传的今天,想必大部分网络安全爱好者对于病毒查杀技术都有一定的了解。当今常见的主流病毒查杀技术有特征码查杀、启发式查杀、虚拟机查杀和主动防御等。
1、特征码查杀。特征码查杀是杀软厂商查杀病毒的一种较为原始的方法。它是通过从病毒体内提取病毒特征码,从而识别病毒。但是这种方法只能查杀已知病毒,对于未知病毒则无能为力。
2、启发式查杀。静态地通过一系列“带权规则组合”对文件进行判定,如果计算出的值高于某个界限则被认为是病毒,否则不认为是病毒。启发式查杀可以相对有效地识别出病毒,但是往往也会出现误报的情况。
3、虚拟机查杀。在内存中虚拟一个运行环境用于病毒的运行,根据其行为或释放出的已知病毒特征码,来判断其是否为病毒程序。这个技术用来应对加壳和加密的病毒比较有效,因为这两类病毒在执行时最终还是要自身脱壳和解密的,这样,杀软可以在其现出原形之后进行查杀。
4、主动防御。基于程序行为自主分析判断的实时防护技术,不以病毒的特征码作为判断病毒的依据,而是从最原始的病毒定义出发,直接将程序的行为作为判断病毒的依据。主动防御是用软件自动实现了反病毒工程师分析判断病毒的过程,解决了传统安全软件无法防御未知恶意软件的弊端,从技术上实现了对木马和病毒的主动防御。
环境的配置
我们所有的病毒分析工作都会在虚拟机中进行,因此安装虚拟机是一个必须的步骤。虚拟机也是一个软件,用于模拟计算机的硬件系统,在虚拟机中可以安装操作系统,之后可以安装各种各样的应用程序,这与真实的计算机是没有区别的。在虚拟机中的操作完全不会对我们真实的系统产生影响。但是这里要特别说明的是,某些特别强的病毒能够绕出虚拟机,进而感染我们真实的系统。这种情况可能是因为我们的虚拟机中存在漏洞,而病毒正好利用了这个漏洞。因此一定要选择最新版本的虚拟机软件。除了对病毒进行分析需要使用虚拟机外,在进行双机调试系统内核时(比如使用WinDBG),往往也是要借助于虚拟机的。常用的虚拟机有VMware和Oracle公司的VM VirtualBox。我个人最喜欢使用VMware,因为它的功能非常强大,而且基本上所有的教程都会以这款软件作为讲解对象。但是Vmware在我的系统中总是会出现莫名的问题,所以在我的实验环境中,我选择使用开源且免费的VirtualBox。
图1 VirtualBox虚拟机界面
我的VirtualBox采用的是4.3.12版,虚拟机中安装的操作系统为Windows XP Professional SP3,为其虚拟1个处理器,1GB内存、10GB硬盘空间与128M显存。而我的真实系统采用的是Windows 8.1(64位),使用Intel Core i5-3230M 2.60GHz的CPU,4GB内存。如无特别说明,本系列所有的实验都会在这个配置中完成。
这里还需要说一下系统的备份,因为在分析病毒程序时,我们的虚拟系统或多或少地会被病毒所破坏,而备份功能则可以将系统很好地恢复到被破坏前的状态。在VirtualBox中,可以在“控制”菜单下选择“生成备份”,输入备份名称后保存。这样,以后如果想还原系统,可以选择“恢复备份”,如下图所示(请注意红框中的内容):
图2 对系统进行备份
至此,我们的实验环境基本配置完毕。虚拟机中的系统尚未安装任何软件,我会在不同的实验中再进行说明。