他部分到目标机。有些蠕虫的探测部 分可以将整个蠕虫载入目标机,有些蠕虫则需要利用探测部 分的传播引擎代码执行一个用来传输蠕虫代码的命令将蠕 虫的其他部分传播到计算机中。当蠕虫传播到计算机中,便运行蠕虫代码,改变系统配置,用来在系统中隐藏自己。
目标选择算法:蠕虫在进入到目标机之后,便开始寻找新的攻击目标,这部分工作是由目标选择算法完成。蠕虫会自动扫描由目标选择算法确定的地址,然后检查是否有合适的易攻击的对象。蠕虫的选择算法有如下方法:
电子邮件地址:一个蠕虫可以从受害计算机的邮件阅读 器或邮件服务器中得到电子邮件地址,任何发送信息到受害计算机或从受害计算机接收信息的计算机都将成为下一个 潜在的目标。
主机列表:一些蠕虫从本地主机上的各种计算机列表中 获得地址,例如存储在主机文件(UNIX 中的/etc/hosts 和 Windows 中的 LMHOSTS)中的那些。
域名服务(DNS)查询:蠕虫可以连接到包含其它计算机地址的本地域名服务器,这些计算机地址即成为蠕虫的攻击对象。
任意选择一个目标网络地址:蠕虫可以任意地选择一个目标网络地址。由于网络延时,在局域网上传播速度要远距 离传播蠕虫快得多,因此,许多目标选择算法优先选择当前 蠕虫所在的较近的网络地址。
扫描引擎。目标引擎获得攻击目标的地址后,蠕虫 便可以利用扫描引擎对目标传送数据包,以此来判断此目标 是否适合攻击。
有效载荷。进入到计算机之后,蠕虫的有效载荷可 以实施某种行为,如打开一个后门,然后攻击者就可以远程 控制目标计算机。或者安装一个分布式的拒绝服务淹没代 理,攻击者可以命令他侵占其它受害计算机。
3.攻击模式
3.1 扫描-攻击-复制
从新闻中看到关于蠕虫的报道,报道中总是强调蠕虫如何发送大量的数据包,造成网络拥塞,影响网络通信速度。实际上这不是蠕虫程序的本意,造成网络拥塞对蠕虫程序的发布者没有什么好处。如果可能的话,蠕虫程序的发布者更
第 3 页 共 7 页
希望蠕虫隐蔽的传播出去,因为蠕虫传播出去后,蠕虫的发布者就可以获得大量的可以利用的计算资源,这样他获得的利益比起造成网络拥塞的后果来说显然强上万倍。但是,现有的蠕虫采用的扫描方法不可避免的会引起大量的网络拥塞,这是蠕虫技术发展的一个瓶颈,如果能突破这个难关,蠕虫技术的发展就会进入一个新的阶段。
现在流行的蠕虫采用的传播技术目标一般是尽快地传播到尽量多的电脑中,于是扫描模块采用的扫描策略是这样的:
随机选取某一段IP地址,然后对这一地址段上的主机扫描。笨点的扫描程序可能会不断重复上面这一过程。这样,随着蠕虫的传播,新感染的主机也开始进行这种扫描,这些扫描程序不知道那些地址已经被扫描过,它只是简单的随机扫描互联网。于是蠕虫传播的越广,网络上的扫描包就越多。即使扫描程序发出的探测包很小,积少成多,大量蠕虫程序的扫描引起的网络拥塞就非常严重了。
聪明点的作者会对扫描策略进行一些改进,比如在IP地址段的选择上,可以主要针对当前主机所在的网段扫描,对外网段则随机选择几个小的IP地址段进行扫描。对扫描次数进行限制,只进行几次扫描。把扫描分散在不同的时间段进行。扫描策略设计的原则有三点:
1.尽量减少重复的扫描,使扫描发送的数据包总量减少到最小 2.保证扫描覆盖到尽量大的范围
3.处理好扫描的时间分布,使得扫描不要集中在某一时间内发生。怎样找到一个合适的策略需要在考虑以上原则的前提下进行分析,甚至需要试验验证。
扫描发送的探测包是根据不同的漏洞进行设计的。比如,针对远程缓冲区溢出漏洞可以发送溢出代码来探测,针对web的cgi漏洞就需要发送一个特殊的http请求来探测。当然发送探测代码之前首先要确定相应端口是否开放,这样可以提高扫描效率。一旦确认漏洞存在后就可以进行相应的攻击步骤,不同的漏洞有不同的攻击手法,只要明白了漏洞的利用方法,在程序中实现这一过程就可以了。这一部关键的问题是对漏洞的理解和利用。关于如何分析漏洞不是本文要讨论的内容。
攻击成功后,一般是获得一个远程主机的shell,对win2k系统来说就是cmd.exe,得到这个shell后我们就拥有了对整个系统的控制权。复制过程也有
第 4 页 共 7 页
很多种方法,可以利用系统本身的程序实现,也可以用蠕虫自代的程序实现。复制过程实际上就是一个文件传输的过程,实现网络文件传输很简单,这里不再讨论。
3.2模式的使用
既然称之为模式,那么它就是可以复用的。也就是说,我们只要简单地改变这个模式中各个具体环节的代码,就可以实现一个自己的蠕虫了。比如扫描部分和复制部分的代码完成后,一旦有一个新的漏洞出现,我们只要把攻击部分的代码补充上就可以了。
利用模式我们甚至可以编写一个蠕虫制造机。当然利用模式也可以编写一个自动入侵系统,模式化的操作用程序实现起来并不复杂。
3.3蠕虫传播的其他可能模式
除了上面介绍的传播模式外,还可能会有别的模式出现。
比如,我们可以把利用邮件进行自动传播也作为一种模式。这种模式的描述为:由邮件地址薄获得邮件地址-群发带有蠕虫程序的邮件-邮件被动打开,蠕虫程序启动。这里面每一步都可以有不同的实现方法,而且这个模式也实现了自动传播所以我们可以把它作为一种蠕虫的传播模式。
随着蠕虫技术的发展,今后还会有其他的传播模式出现。
4.从安全防御的角度看蠕虫的传播模式
我们针对蠕虫的传播模式来分析如何防止蠕虫的传播思路会清晰很多。对蠕虫传播的一般模式来说,我们目前做的安全防护工作主要是针对其第二环即\攻击\部分,为了防止攻击,要采取的措施就是及早发现漏洞并打上补丁。其实更重要的是第一环节的防护,对扫描的防护现在人们常用的方法是使用防护墙来过滤扫描。使用防火墙的方法有局限性,因为很多用户并不知道如何使用防火墙,所以当蠕虫仍然能传播开来,有防火墙保护的主机只能保证自己的安全,但是网络已经被破坏了。另外一种方案是从网络整体来考虑如何防止蠕虫的传播。
第 5 页 共 7 页
从一般模式的过程来看,大规模扫描是蠕虫传播的重要步骤,如果能防止或限制扫描的进行,那么就可以防止蠕虫的传播了。可能的方法是在网关或者路由器上加一个过滤器,当检测到某个地址发送扫描包就过滤掉该包。具体实现时可能要考虑到如何识别扫描包与正常包的问题,这有待进一步研究。
了解了蠕虫的传播模式,可以很容易实现针对蠕虫的入侵检测系统。蠕虫的扫描会有一定的模式,扫描包有一定的特征串,这些都可以作为入侵检测的入侵特征。了解了这些特征就可以针对其制定入侵检测规则。
总结
网络蠕虫病毒作为一种互联网高速发展下的一种新型病毒,必将对网络
产生巨大的危险。在防御上,已经不再是由单独的杀毒厂商所能够解决,而需要网络安全公司,系统厂商,防病毒厂商及用户共同参与,构筑全方位的防范体系!
蠕虫和黑客技术的结合,使得对蠕虫的分析,检测和防范具有一定的难
度,同时对蠕虫的网络传播性,网络流量特性建立数学模型也是有待研究的工作!
第 6 页 共 7 页
参考文献:
[1]王康.张亮.文俊杰.基于 Plupii 蠕虫分析的 Linux 病毒发展 趋势研究[M].北京:
网络安全技术与应用.2008.
[2]孙达.“SQL 蠕虫”病毒之分析.北京:网络安全技术与应 用.2002.
[3]王双滨.Windows 使用中病毒、蠕虫和木马的防治.哈尔滨: 电脑学习.2007. [4]姚学民,浅谈“蠕虫”和“木马”病毒的防治.南宁:广西气 象.2006.
第 7 页 共 7 页