<<返回
3.6 拒绝服务式攻击
 
 
3.6 拒绝服务式攻击
3.6.1 拒绝服务式攻击的原理
拒绝服务攻击的英文意思是Denial of Service,简称DoS。这种攻击行动使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至瘫痪而停止提供正常的网络服务。
"拒绝服务"是如何攻击的?
一般而言,对于访问Internet资源的用户,需要与服务器之间建立连接,进行一些信息交互,如图3.2所示。

图3.2 正常情况下的连接交互
但是,如果发送者发出"我来了"的连接请求后,立即离开,这时,服务器收到请求却找不到发送该请求的客户端,于是,按照协议,它等一段时间后再与客户端连接,如图3.3所示。


图3.3 非正常情况下的连接交互
当然,以上行为如果是个别的情况,那么服务器可以忍受。试想,如果用户传送众多要求确认的信息到服务器,使服务器里充斥着这种无用的信息。所有的信息都有需回复的虚假地址,以至于当服务器试图回传时,却无法找到用户。服务器于是暂时等候,有时超过一分钟,然后再切断连接。服务器切断连接时,用户再度传送新一批需要确认的信息,这个过程周而复始,最终导致服务器无法动弹,瘫痪在地。
如果攻击者利用上千台客户端同时攻击一个服务器,那么,即使该服务器CPU再多、内存再大,也无法抵御这种攻击,这就是"分布式拒绝服务攻击"。
为了提高分布式拒绝服务攻击的成功率,攻击者需要控制成百上千的被入侵主机。这些主机通常是Linux和SUN机器,但这些攻击工具也能够移植到其他平台上运行。这些攻击工具入侵主机和安装程序的过程都是自动化的。这个过程可分为以下几个步骤:
(1)探测扫描大量主机以寻找可入侵主机目标;
(2)入侵有安全漏洞的主机并获取控制权;
(3)在每台入侵主机中安装攻击程序;
(4)利用已入侵主机继续进行扫描和入侵。
由于整个过程是自动化的,攻击者能够在几秒钟内入侵一台主机并安装攻击工具。也就是说,在短短的一小时内可以入侵数千台主机。然后,通过这些主机再去攻击目标主机。所以,对于分布式拒绝服务攻击,目前难以找到有效的抵御方法。
3.6.2 拒绝服务式攻击的防范措施
从目前来看,没有绝对有效的方法来对付拒绝服务攻击。因此,只能有采取一些防范措施,避免成为被利用的工具或者成为被攻击的对象。这些措施包括:
(1)优化路由及网络结构
假如网站不单单是一台主机,而是一个较为庞大的网络的话,那么应该对路由器进行合理设置以最小化遭受拒绝服务攻击的可能性,例如,为了防止SYN flooding攻击,可以在路由器上设定TCP侦听功能,过滤所有不需要的UDP和ICMP包信息。注意,如果路由器允许发送向外的不可到达的ICMP包将会使遭受DoS攻击的可能性增大。
(2)优化对外提供服务的主机
不仅仅对于网络设备,对于潜在的有可能遭受攻击的主机也要同样进行设置保护。在服务器上禁止一切不必要的服务,此外,如果使用多宿主机(一台主机多个IP地址)的话也会给攻击者带来相当大的麻烦。我们还建议将网站分布在多个不同的物理主机上,这样每一台主机只包含了网站的一部分,防止了网站在遭受攻击时全部瘫痪。
(3)当攻击正在进行时
立即启动应付策略,尽可能快地追踪攻击包,如果发现攻击并非来自内部应当立即与服务提供商取得联系。由于攻击包的源地址很有可能是被攻击者伪装的,因此不必过分的相信该地址。应当迅速判断是否遭到了拒绝服务攻击,因为在攻击停止后,只有很短的一段时间可以追踪攻击包。
(4)经常下载系统软件补丁
这些补丁主要解决系统中以前没有被发现的漏洞。一般而言,攻击者利用已经发现的漏洞才能进入系统并安装他们自己的程序。所以最好使用最新的软件版本,并且开启系统中尽量少的服务。

(5)审核系统规则
一个合格的网管应当对自己的系统负责任,并时刻注意本系统的运转,应当清楚地了解系统和应用软件是如何运作及其原理,回顾经常采取的安全措施以及系统配置。检查著名的安全网站,时刻关心最新揭露的安全漏洞,并注意他们是否将会在自己的系统中发生。

<<返回