Dos、Ddos的攻击及防范
DoS是指攻击者在一定时间内向网络发送大量的服务请求,消耗系统资源或网络带宽,占用及超越被攻击主机的处理能力,导致网络或系统不胜负荷,停止对合法用户提供正常的网络服务;DDoS是在DoS的基础上引入了Client/Server机制,使得攻击强度更大,隐藏性更高。
DDoS攻击原理
DDoS采用多层的客户/服务器模式,一个完整的DDoS攻击体系一般包含四个部分:攻击控制台、攻击服务器、攻击傀儡机和攻击目标。
◆ 攻击控制台。攻击者利用它来操纵整个攻击过程,它向攻击服务器下达攻击命令。
◆ 攻击服务器也叫主控端,它是攻击者非法入侵并且安装特定程序的一些主机。它接收从攻击控制台发过来的各种命令。同时,它也控制了大量的攻击傀儡机,并向它们转发攻击控制台的攻击指令。
◆ 攻击傀儡机也叫代理端,它也是攻击者非法入侵并且安装特定程序的一些主机。它们上面运行攻击程序,用于对目标发起攻击。它受控于主控端,从主控端接收攻击命令,是攻击的执行者。
DDoS攻击的特点
DDoS攻击作为一种特殊的DoS攻击方式,相对于传统的拒绝服务攻击有自己很多的特点:首先,分布式拒绝服务的攻击效果更加明显。使用分布式拒绝服务,可以从多个傀儡主机同时向攻击目标发送攻击数据,可以在很短的时间内发送大量的数据包,使攻击目标的系统无法提供正常的服务。另外,由于采用了多层客户机 /服务器模式,减少了由攻击者下达攻击命令时可能存在的拥塞,也增加了攻击的紧凑性。即使攻击目标探测到攻击,也可能来不及采取有效措施来应对攻击。其次,分布式拒绝服务攻击更加难以防范。因为分布式拒绝服务的攻击数据流来自很多个源且攻击工具多使用随机IP技术,增加了与合法访问数据流的相似性,这使得对攻击更加难以判断和防范。
攻击策略及防范
目前,随着多种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攻击的基本特性可采用如下抵御策略: Webjx.Com
◆ 发动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攻击的策略和技术非常困难或效率低下。
Webjx.Com
TFN2k非常隐蔽,这些手段使得它很难被检测到。因为没有端口号,所以很难探测,即使在正常的基础上使用端口扫描程序也无法探测到用户的系统正被用作TFN2k服务器[10]。目前仍没有能有效防御TFN2k拒绝服务攻击的方法,最有效的策略是防止网络资源被用作客户端或代理端。
Webjx.Com
根据TFN2k的基本特性,可采用的预防手段有以下几种:
◆ 只使用应用代理型防火墙,这能够有效地阻止所有的TFN2k通信。但只使用应用代理服务器通常是不切实际的,因此只能尽可能地使用最少的非代理服务。 网页教学网
◆ 禁止不必要的ICMP,TCP和UDP通信,特别是对于ICMP数据,可只允许ICMP类型3(Destination Unreachable,目标不可到达)数据包通过。如果不能禁止ICMP协议,那就禁止主动提供或所有的ICMP EchoReply包。 网页教学网
◆ 禁止不在允许端口列表中的所有UDP和TCP包。
◆ 配置防火墙过滤所有可能的伪造数据包。
Webjx.Com
◆ 对系统进行补丁和安全配置,以防止攻击者入侵并安装TFN2k。