6.4.2 蠕虫病毒的工作机制

6.4.2 蠕虫病毒的工作机制

1.蠕虫病毒的机理

从编程的角度来看,蠕虫病毒由两部分组成:主程序和引导程序。主程序一旦在计算机中建立,就可以开始收集与当前计算机联网的其他计算机的信息。它能通过读取公共配置文件并检测当前计算机的联网状态信息,尝试利用系统的缺陷在远程计算机上建立引导程序。引导程序负责把蠕虫病毒带入它所感染的每一台计算机中。

主程序中最重要的是传播模块。传播模块实现了自动入侵功能,这是蠕虫病毒能力的最高体现。传播模块可以笼统地分为扫描、攻击和复制三个步骤。

(1)扫描。蠕虫病毒的扫描功能主要负责探视远程主机的漏洞,这模拟了攻防的Scan过程。当蠕虫病毒向某个主机发送探测漏洞的信息并收到成功的应答后,就得到了一个潜在的传播对象。

(2)攻击。蠕虫病毒按特定漏洞的攻击方法对潜在的传播对象进行自动攻击,以取得该主机的合适权限,为后续步骤做准备。

(3)复制。在特定权限下,复制功能实现蠕虫病毒引导程序的远程建立工作,即把引导程序复制到攻击对象上。

蠕虫病毒的攻击流程如图6.14所示。

图6.14 蠕虫病毒攻击流程

蠕虫病毒程序常驻于一台或多台计算机中,并具有自动重新定位的能力。如果它检测到网络中某台计算机未被占用,它就把自身的一个复制发送给那台计算机。每个程序段都能把自身的复制重新定位于另一台计算机中,并且能够识别出它自己所占用的计算机。

最早的蠕虫病毒是针对IRC的蠕虫程序,这类病毒在20世纪90年代早期曾经广泛流行,但是随着即时聊天系统的普及和基于浏览器的阅读方式逐渐成为交流的主要方式,这种病毒出现的机会也就越来越小了。

当前流行的病毒主要采用一些已经公开的漏洞、脚本以及电子邮件等进行传播。最近,一个Microsoft Windows DCOM RPC接口远程缓冲区溢出漏洞被发现,直接影响到Windows NT/2000/XP等支持RPC服务的系统。有些病毒开始利用该漏洞传播。

2.蠕虫病毒程序功能模型

蠕虫病毒程序功能模型如图6.15所示。

图6.15 蠕虫病毒程序功能模型

蠕虫病毒基本功能由5个功能模块组成。

(1)搜索模块:寻找下一台要传染的机器,为提高搜索效率,可以采用一系列的搜索算法。

(2)攻击模块:在被感染的机器上建立传输通道,为减少第一次传染数据传输量,可以采用引导式结构。

(3)传输模块:计算机间的蠕虫程序复制。

(4)信息搜集模块:搜集和建立被传染机器上的信息。

(5)繁殖模块:建立自身的多个副本,在同一台机器上提高传染效率,判断避免重复传染。

蠕虫病毒扩展功能又由4个功能模块组成。

(1)隐藏模块:隐藏蠕虫病毒程序,使简单的检测不能发现。

(2)破坏模块:摧毁或破坏被感染计算机,或在被感染的计算机上留下后门程序等等。

(3)通信模块:蠕虫病毒间、蠕虫病毒同黑客间进行交流,可能是未来蠕虫病毒发展的侧重点。

(4)控制模块:调整蠕虫病毒行为,更新其他功能模块,控制被感染计算机,可能是未来蠕虫病毒发展的侧重点。

3.蠕虫病毒的工作流程

蠕虫病毒的工作流程可以分为漏洞扫描、攻击、传染、现场处理4个阶段,首先,蠕虫病毒程序随机(或在某种倾向性策略下)选取某一段IP地址,接着对这一地址段上的主机扫描,当扫描到有漏洞的计算机系统后,将蠕虫病毒主体迁移到目标主机。然后,蠕虫病毒程序进入被感染的系统,对目标主机进行现场处理。同时,蠕虫病毒程序生成多个副本,重复上述流程。各个步骤的简繁程度也不同,有的非常复杂,有的则非常简单。