国内资深黑客浅谈恶意代码的研究分析(图)

ZDNet 安全频道频道 更新时间:2008-06-13 作者: 来源:SohuIT

本文关键词:恶意代码 恶意程序 PE文件

  国外著名的某安全公司指出:2007年互联网上传播的有记载的新型恶意程序(包括病毒,蠕虫,木马等)数目达2,227,415个,同2006年的结果(535,131个)相比翻升了四倍,恶意软件总数量达到354GB。许多反病毒专家认为这些恶意软件的急速增加已经达到了一种很极端的情况。恶意软件的快速发展、广泛传播,以及新型化、复杂化,使得展示出更强的破坏性和更多样的传播方式。2008年安全公司对于恶意软件的分析研究也将面临更大的挑战。叶子在本篇文章中将带领大家初步了解一下恶意代码及其相关的分析研究过程。



  恶意代码(malicious code)是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。恶意程序创作者有一套不断扩充且技术先进的工具组合可供他们任意运用,其中包含了傀儡程序与傀儡网络、Rootkit、社交工程技巧、间谍程序与广告程序等等。他们受到金钱利益驱使的情况更甚于以往,而且创造出许多专门生产恶意程序、犯罪程序与间谍程序/广告程序的地下经济体。他们不再制作以删除文件及破坏大量计算机为目的的恶意程序,改以潜藏于计算机中,等候傀儡程序主控者下达命令采取各种行动,或在适当时机窃取个人信息的恶意程序取而代之。他们不断创造出行踪更隐匿的恶意程序,像是视频垃圾邮件-内含视频而非文字的垃圾邮件。



  恶意代码按传播方式可以分成几类:病毒,木马,蠕虫,移动代码。



  病毒一般都具有自我复制的功能,同时,它们还可以把自己的副本分发到其他文件、程序或电脑中去。病毒一般镶嵌在主机的程序中,当被感染文件执行操作的时候(例如:打开一个文件,运行一个程序,点击邮件的附件等),病毒就会自我繁殖。



  特洛伊木马这类恶意代码是根据古希腊神话中的木马来命名的,它从表面上看是正常的程序,但是实际上却隐含着恶意意图。一些木马程序会通过覆盖系统中已经存在的文件的方式存在于系统之中,同时它能以加载恶意代码动态库的方式携带恶意代码程序,还有一些木马会以一个软件的身份出现(例如:一个可供下载的游戏,将木马捆绑在软件安装程序上),但它实际上是一个窃取密码的工具。这类应用通常在网络游戏盗号木马上。大多数木马都可以使木马的控制者登录到被感染电脑上,并拥有绝大部分的管理员级别的控制权限。为了达到这个目的,木马一般都包括一个客户端和一个服务器端。客户端放在木马控制者的电脑中,服务器端放置在被入侵电脑中,木马控制者通过客户端与被入侵电脑的服务器端建立远程连接。一旦连接建立,木马控制者就可以通过对被入侵电脑发送指令来传输和修改文件。通常木马具有很强的隐敝性,会采用多种手段隐藏木马。隐藏恶意进程的痕迹,例如使恶意进程不在进程列表中显示出来等。常见的木马有灰鸽子、彩虹桥、Poison_Ivy、守望者、上兴远控、turkojan等一些木马。



  蠕虫是一种能在没有任何用户动作的情况下自动传染计算机的病毒变形。蠕虫不修改文件,而是常驻在内存里并复制自己。蠕虫使用操作系统的一部分,这部分对于用户来说是自动且无形的。通常只有在它的无法控制的疯狂复制占用了系统资源使得其他的 任务缓慢甚至停滞的情况下才会发现它们。蠕虫的自我复制不像其他的病毒,它可以自动创建与它的功能完全相同的副本,并在没人干涉的情况下自动运行。蠕虫是通过系统存在的漏洞和设置的不安全性(例如:设置共享)来进行入侵的。它的自身特性可以使它以极快的速度传输(在几秒中内从地球的一端传送到另一端)。其中比较典型的有Blaster和SQL Slammer。



  移动代码是能够从主机传输到客户端计算机上并执行的代码,它通常是作为病毒,蠕虫,或是特洛伊木马的一部分被传送到客户计算机上的。另外,移动代码可以利用系统的漏洞进行入侵,例如非法的数据访问和盗取root账号。通常用于编写移动代码的工具包括Java applets,ActiveX,JavaScript,和VBScript。



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



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



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



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



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



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



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



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



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



  



  



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



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

安全频道 恶意代码 最新报道

安全频道 恶意程序 最新报道

安全频道 PE文件 最新报道

[an error occurred while processing this directive]