摘 要 随着网络应用的日益广泛,网络结构框架已经暴露在众多网络安全的威胁之下,ddos攻击随处可见,人们为克服ddos攻击进行了大量研究,提出了多种解决方案。本文系统分析了ddos攻击的原理和方法,在分析具体的攻击工具的基础上给出防御方法。
关键词 拒绝服务攻击;分布式拒绝服务攻击;扫描;黑客
1 引言
随着网络应用的日益广泛,网络结构框架已经暴露在众多网络安全的威胁之下,其中拒绝服务(dos)攻击和基于dos的分布式拒绝服务(ddos)攻击最为常见。例如,2000年黑客们使用ddos连续攻击了yahoo、ebay、amazon等许多知名网站,致使一些站点中断服务长达数小时甚至几天,国内的新浪、163等站点也遭到类似的攻击。2001年5月对cert co-ordination center的攻击,2002年5月对ednet的攻击都造成了很大的损失[1]。在2001年4月的中美黑客大战中,ddos也被广泛使用。随着高速网络的不断普及,尤其是随着近年来网络蠕虫的不断发展,更大规模ddos攻击的威胁也越来越大。
2 分布式拒绝服务(ddos)攻击
dos是指攻击者在一定时间内向网络发送大量的服务请求,消耗系统资源或网络带宽,占用及超越被攻击主机的处理能力,导致网络或系统不胜负荷,停止对合法用户提供正常的网络服务;ddos是在dos的基础上引入了client/server机制,使得攻击强度更大,隐藏性更高。WWW.133229.coM
2.1 ddos攻击原理
ddos采用多层的客户/服务器模式,一个完整的ddos攻击体系一般包含四个部分:攻击控制台、攻击服务器、攻击傀儡机和攻击目标,其攻击体系结构如图1所示。
◆ 攻击控制台。攻击者利用它来操纵整个攻击过程,它向攻击服务器下达攻击命令。
◆ 攻击服务器也叫主控端,它是攻击者非法入侵并且安装特定程序的一些主机。它接收从攻击控制台发过来的各种命令。同时,它也控制了大量的攻击傀儡机,并向它们转发攻击控制台的攻击指令。
◆ 攻击傀儡机也叫代理端,它也是攻击者非法入侵并且安装特定程序的一些主机。它们上面运行攻击程序,用于对目标发起攻击。它受控于主控端,从主控端接收攻击命令,是攻击的执行者。
2.2 ddos攻击的特点
ddos攻击作为一种特殊的dos攻击方式,相对于传统的拒绝服务攻击有自己很多的特点:首先,分布式拒绝服务的攻击效果更加明显。使用分布式拒绝服务,可以从多个傀儡主机同时向攻击目标发送攻击数据,可以在很短的时间内发送大量的数据包,使攻击目标的系统无法提供正常的服务。另外,由于采用了多层客户机/服务器模式,减少了由攻击者下达攻击命令时可能存在的拥塞,也增加了攻击的紧凑性。即使攻击目标探测到攻击,也可能来不及采取有效措施来应对攻击。其次,分布式拒绝服务攻击更加难以防范。因为分布式拒绝服务的攻击数据流来自很多个源且攻击工具多使用随机ip技术,增加了与合法访问数据流的相似性,这使得对攻击更加难以判断和防范。
最后,分布式拒绝服务对于攻击者来说更加安全。由于采用了多层客户机/服务器模式,增大了回溯查找攻击者的难度,从而可以更加有效地保护攻击者。另外,采用多层客户机/服务器模式,使得下达攻击指令的数据流更加分散,不容易被监控系统察觉,从而暴露攻击者的位置与意图。
3 攻击策略及防范
目前,随着多种ddos攻击工具如tfn、tfn2k、stacheldraht、trinoo等的广泛传播,所面临ddos攻击的风险更是急剧增长[2]。所以,如何有效的防御ddos攻击成为当前一个亟待解决的问题。下面,本文针对这几种常用的攻击工具给出具体的防范措施。
3.1 tfn(tribe flood network)攻击及防范
tfn是德国著名黑客mixter编写的,与trinoo相似,都是在互联网的大量unix系统中开发和测试的。它由客户端程序和守护程序组成,通过绑定到tcp端口的root shell控制,实施icmp flood,syn flood,udp flood等多种拒绝服务的分布式网络攻击。
tfn客户端、主控端和代理端主机相互间通信时使用ic-mp echo和icmp echoreply数据包。针对tfn攻击的基本特性可采用如下抵御策略:
◆ 发动tfn时,攻击者要访问master程序并向它发送一个或多个目标ip地址,然后master程序与所有代理程序通信,指示它们发动攻击。master程序与代理程序之间的通信使用icmp回音/应答信息包,实际要执行的指示以二进制形式包含在16位id域中。icmp使信息包协议过滤成为可能,通过配置路由器或入侵检测系统,不允许所有的icmp回音或回音/应答信息包进入网络就可以达到挫败tfn代理的目的,但是这样会影响所有使用这些功能的internet程序,如ping。master程序读取一个ip地址列表,其中包含代理程序的位置。这个列表可能使用如“blowfish”的加密程序进行加密,如果没有加密,就可以从这个列表方便地识别出代理信息。
◆ 用于发现系统上tfn代理程序的是程序td,发现系统上master程序的是程序tfn。代理并不查看icmp回音/应答信息包来自哪里,因此使用伪装icmp信息包冲刷掉这些过程是可能的[9]。
3.2 tfn2k攻击及防范
tfn2k代表tfn 2000版,是mixter编写的tfn后续版本。这个新的ddos工具已在原有的基础上大大前进了一步,它也是由两部分组成,即客户端程序和在代理端主机上的守护进程。客户端向守护进程发送攻击指定的目标主机列表,代理端守护进程据此对目标进行拒绝服务攻击。由一个客户端程序控制的多个代理端主机,能够在攻击过程中相互协同,保证攻击的连续性。客户端程序和代理端的网络通信是经过加密的,还可能混杂许多虚假数据包。整个tfn2k网络可能使用不同的tcp,udp或icmp包进行通信,而且客户端还能伪造其ip地址。所有这些特性都使发展防御tfn2k攻击的策略和技术非常困难或效率低下。
tfn2k非常隐蔽,这些手段使得它很难被检测到。因为没有端口号,所以很难探测,即使在正常的基础上使用端口扫描程序也无法探测到用户的系统正被用作tfn2k服务器[10]。目前仍没有能有效防御tfn2k拒绝服务攻击的方法,最有效的策略是防止网络资源被用作客户端或代理端。
根据tfn2k的基本特性,可采用的预防手段有以下几种:
◆ 只使用应用代理型防火墙,这能够有效地阻止所有的tfn2k通信。但只使用应用代理服务器通常是不切实际的,因此只能尽可能地使用最少的非代理服务。
◆ 禁止不必要的icmp,tcp和udp通信,特别是对于icmp数据,可只允许icmp类型3(destination unreachable,目标不可到达)数据包通过。如果不能禁止icmp协议,那就禁止主动提供或所有的icmp echoreply包。
◆ 禁止不在允许端口列表中的所有udp和tcp包。
◆ 配置防火墙过滤所有可能的伪造数据包。
◆ 对系统进行补丁和安全配置,以防止攻击者入侵并安装tfn2k。
3.3 trinoo攻击及防范
trinoo是发布最早的主流工具,因而功能没有tfn2k那么强大。因为tfn2k使用icmp所以非常隐蔽,在被攻击的计算机上没有端口可以检测。trinoo使用tcp和udp,因而如果在正常的基础上用扫描程序检测端口,攻击程序很容易被检测到。
trinoo的工作方式是通过一个远程控制程序和主控(master)通信,指挥守护进程(服务器程序)发动攻击[8]。对于trinoo,守护进程驻存在实际进行攻击的系统上,而master控制守护进程系统攻击者控制了足够数量的傀儡机并在傀
儡机上安装配置好ddos软件,便建立好了trinoo网络,随时可以进行攻击。