1.6.8 拒绝服务攻击

在前面讨论的攻击方式中,大多数是基于协议的弱点、服务器软件的缺陷和人为因素而实施的。拒绝服务(DoS,Denial-of-Service)攻击则与之不同,它们仅仅是过度使用服务,使软件、硬件过度运行,使网络连接超出其容量。目的是造成自动关机或系统瘫痪,或者降低服务质量。这种攻击通常不会造成文件删除或数据丢失,因此是一种比较温和的攻击。

这类攻击往往比较明显,较容易发现。例如,关闭一个服务很容易被检测到。尽管攻击很容易暴露,但要找到攻击的源头却十分困难。这类攻击往往生成伪装的数据包,其中含有随机和无效的返回地址。

分布式拒绝服务(DDoS,Distributed Denial-of-Service)攻击使用很多Internet主机,同时向某个目标发起攻击。通常,参与攻击的主机却不明不白地成为攻击者的帮凶。这些主机可能已经被攻击者攻破,或者安装了恶意的代码。DDoS攻击通常难以恢复,因为攻击有可能来自世界各地。

目前,由于黑客采用DDoS攻击成功地攻击了几个著名的网站,如Yahoo、微软及SCO等,它已经引起全世界的广泛关注。DDoS其实是DoS攻击的一种,不同的是它能够使用许多台计算机通过网络同时对某个网站发起攻击。它们的工作原理如下。

(1)黑客通过Internet将木马程序植入尽可能多的计算机上。这些计算机分布在全世界不同的区域。被植入的木马程序绑定在计算机的某个端口上,等待接受攻击命令。

(2)攻击者在Internet的某个地方安装一个主控程序,该主控程序中含有一个木马程序所处位置的列表。此后,主控程序等待黑客发出命令。

(3)攻击者等待时机,做好攻击命令前的准备。

(4)等攻击的时机一到,攻击者就会向主控程序发出一个消息,其中包括要攻击的目标地址。主控程序就会向每个植入木马程序的计算机发送攻击命令,这个命令中包含攻击目标的地址。

(5)这些木马程序立即向攻击目标发送大量的数据包。这些数据包的数量巨大,足以使其瘫痪。

从主控程序向下发出的攻击命令中通常使用伪装的源地址,有些则采用密码技术使其难以识别。从植入木马程序的计算机发出的数据包也使用了伪装的IP源地址,要想追查数据包的来源非常困难。此外,主控程序常常使用ICMP响应机制与攻击目标通信。许多防火墙都开放了ICMP协议。

现在网络上流行许多DDOS攻击工具,还有它们的许多变种。其中之一是Tribe Flood Network(TFN)。从许多网站上都可以获得其源代码。黑客可以选择使用各种Flood技术,如UDP Flood,TCP SYN Flood,ICMP响应Flood,Smurf攻击等。从主控程序返回的ICMP响应数据包会告诉木马程序采用哪一种Flood攻击方式。此外,还有其他DDOS工具,如TFN2K(比TFN更先进的工具,可以攻击Windows NT和许多UNIX系统),Trinoo和Stacheldraht等。最后一个工具十分先进,它具有加密连接和自动升级的特征。

现在一些新的工具越来越高明。Slapper是一个攻击Linux系统的蠕虫,它可以在许多网络节点中间建立实体到实体(peer-to-peer)的网络,使主控程序的通信问题变得更容易。还有一些工具则使用IRC信道作为控制通道。

对于拒绝服务攻击,没有什么灵丹妙药,我们只能采取一些措施减轻攻击的强度,但绝对不可能完全消除它们。遇到这种攻击时,可以采取以下四种办法来进行处理:

(1)寻找一种方法来过滤掉这些不良的数据包;

(2)提高对接收数据进行处理的能力;

(3)追查并关闭那些发动攻击的站点;

(4)增加硬件设备或提高网络容量,以从容处理正常的负载和攻击数据流量。

当然,以上这些措施都不是完美的,只能与攻击者展开较量。到底谁能取得这场斗争的胜利,取决于对手能够走多远。