安全专家浅谈恶意代码的研究分析(2)

  了解了恶意代码的基本概念后,叶子再跟大家一起来研究对恶意代码的分析流程

◆首先,我们通过各种渠道收集到最新的未知恶意代码样本时,进行文件格式分析。通过PEID之类的工具进行文件格式检查,分析样本是否进行加壳处理?样本是何种语言编写的?以及是否有其它附加的数据等。样本经过加壳的程序,需要对其进行查壳,确定程序的加壳类型,并通过脱壳工具或手段进行脱壳,分析出程序的编程语言。如果无法查出壳类型,则认为是一个未知的壳,可以结合动态脱壳进行分析。另外通过PE文件的区段来确定是否有附加进去的数据。

◆接着,我们对样本文件的属性进行查看分析。查看样本的数字签名,排除伪造签名的情况。对于持有那些大公司的数字签名,可以通过文件属性中的相关信息进行查看分析。另外查看文件的文件属性,可以对文件的是否正常、或已被修改的情况进一步的分析。

接下来,我们对样本的行为进行分析,分析它的本地感染行为,以及网络传播行为。本地行为分析过程需要使用文件监视工具、注册表监视工具来确定恶意代码对系统做了哪些行为。通常情况下样本会释放出病毒体,并把它拷贝到系统目录下,而且通过添加注册表到系统启动项、系统服务启动、注入系统进程中等等方式。另外通过网络抓包工具(sniffer、IRIS等),分析其与哪个网站进行连接,打开哪个端口,下载哪些文件,执行哪些操作命令等等的过程。

然后,我们通过静态反汇编工具(IDA等)对的恶意代码程序的PE文件进行反汇编。通过分析静态反汇编后的文件中所使用的字符串、API函数等信息,来判断此样本的基本功能和特点。通过查看PE文件的导入表来判断基本功能和特点等。

最后,我们通过动态调试对恶意代码加载调试,进一步分析代码的操作。用动态调试器(OD等工具)载入病毒后,在程序进程的各个可疑的地方下断点,根据代码来确定恶意代码的有害操作。当然最后还要形成相关的恶意代码分析报告,并对恶意代码进行命名规范,而且还需要对样本使用MD5进行完整性校验。

下面叶子举个例子来对恶意代码进行分析:

从用户的网络环境中收集到熊猫烧香的变种样本,我们需要对其进行初步的分析及了解。我们先把病毒样本放入带有病毒分析环境的虚拟机中,包含分析过程需要的各种工具。

◆首先用PEID工具侦查其文件格式及壳的型号,如下图:

498)this.style.width=498;" border=0>

◆接着进行脱壳操作。(叶子在这里使用超级巡警的自动脱壳器,可以根据自己对工具的使用习惯进行选择自动脱壳工具或手工脱壳)

498)this.style.width=498;" border=0>

◆再次使用PEID进行侦查,发现还有一层Morphine的壳在使用。

498)this.style.width=498;" border=0>

你可能感兴趣的:(技术)