外国著名的某平安公司指出:年互联网上流传的有纪录的新型恶意程序(包罗病毒,蠕虫,木马等)数目达2,,个,同年的效果(,个)相比翻升了四倍,恶意软件总数目到达GB。许多反病毒专家以为这些恶意软件的急速增添已经到达了一种很极端的情形。恶意软件的快速生长、广泛流传,以及新型化、复杂化,使得展示出更强的损坏性和更多样的流传方式。年平安公司对于恶意软件的剖析研究也将面临更大的挑战。叶子在本篇文章中将率领人人开端领会一下恶意代码及其相关的剖析研究历程。 恶意代码(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的壳在使用。