2000年年初的Yahoo!等大型网站被攻击,以及几个月前,美国的CA根服务器遭受攻击,都是拒绝服务攻击(DoS)惹的祸,因此,可以毫不夸张地说,目前DoS已然是网络安全中的一个引人关注的老大难问题。DoS为什么有这么大的“能量”呢?
拒绝服务攻击分两种
拒绝服务攻击,通常是以消耗服务器端资源为目标,通过伪造超过服务器处理能力的请求数据造成服务器响应阻塞,使正常的用户请求得不到应答,以实现攻击目的。由于DoS攻击工具的泛滥,及所针对的协议层的缺陷短时无法改变的事实,DoS也就成为了流传最广、最难防范的攻击方式。
拒绝服务攻击的两种方式
拒绝服务攻击根据其攻击的手法和目的不同,有两种不同的存在形式:一种是以消耗目标主机的可用资源为目的,使目标服务器忙于应付大量的非法的,无用的连接请求,占用了服务器所有的资源,造成服务器对正常的请求无法再做出及时响应,从而形成事实上的服务中断。这也是最常见的拒绝服务攻击形式。这种攻击主要利用的是网络协议或者是系统的一些特点和漏洞进行攻击,主要的攻击方法有Land、Teardrop、SYN Flood、UDP Flood、ICMP Flood、Smurf等等,针对这些漏洞的攻击,目前在网络中都有大量成熟的现成工具可以利用,比较常见和有效的有Trinoo、TFN、Stacheldraht、TFN2K等;另一种拒绝服务攻击是以消耗服务器连路的有效带宽为目的,比如服务器的出口为2M的带宽线路,攻击者通过发送大量的有用或无用数据包,将整条链路带宽全部占用,从而使合法用户请求无法通过链路到达服务器,服务器对部分合法请求的回应也无法返回用户,造成服务中断。对于这种攻击,可以说非常难以区分和防范,它本来就是利用网络发展过程中不可避免的资源紧缺造成的矛盾进行攻击,大量的合法请求只要涌向一个资源有限的网络系统,就可能造成服务故障,很难说这样的行为是攻击行为还是正常的访问,在去年那场有名的中美黑客大战中,就有人号召国人集中力量共同点击访问美国白宫的网站,生成大量的流量,从而造成对白宫网站的拒绝服务攻击的事实。当然从现实来说,这是不合实际和难以奏效的,但是从占用网络资源实现攻击目的的手段来说,它又的确是符合这种攻击的原理和特点的。从这种方式可以看出,对于这种攻击,无论从技术和法律上都难以防范和追查。
DoS攻击不同应对措施不同
鉴于DoS攻击主要利用协议特征和漏洞进行攻击,我们在防御DoS攻击时也要与之对应,分别提出相应的解决方案。目前主要的防DoS攻击的技术手段有:
Syn-Cookie(主机)/Syn-Gate(网关)
在服务器和外部网络之间部署代理服务器(在大多数号称具有防Syn Flood攻击的防火墙所采用的方式),通过代理服务器发送Syn/Ack报文,在收到客户端的Syn包后,防火墙代替服务器向客户端发送Syn/Ack包,如果客户端在一段时间内没有应答或中间的网络设备发回了ICMP错误消息,防火墙则丢弃此状态信息;如果客户端的Ack到达,防火墙代替客户端向服务器发送Syn包,并完成后续的握手最终建立客户端到服务器的连接。通过这种Syn-Cookie技术,保证每个Syn包源的真实有效性,确保服务器不被虚假请求浪费资源,从而彻底防范对服务器的Syn-Flood攻击。
Random Drop算法
它是当流量达到一定的数量限度时,所采取的一种通过降低性能,保证服务的不得已的方法,其过程是这样的:当流量达到一定的阀值的时候,开始按照一定的算法丢弃后续的报文,保持主机的处理能力,这样对于用户而言,许多合法的请求可能被主机随机丢弃,但是有部分请求还是可以得到服务器响应,保证服务不间断运行的。
带宽限制和QoS保证
通过对报文种类、来源等各种特性设置阀值参数,保证主要服务稳定可靠的资源供给。
负载均衡
这种方法不能说是专门用来解决DoS问题的,但是它在应对拒绝服务攻击方面也起到了重大的作用。
专业防御DoS攻击产品还不多
当前,各个厂商对于DoS攻击提出的解决方法,主要是针对以耗尽系统资源为目的的某些攻击进行的防御,利用以上提出方法或选择其中的一种或几种应用在网关产品中,最主要的就是在防火墙中对Syn Flood、UDP Flood等攻击进行防御,目前专门防御DoS攻击的产品,国内的有绿盟科技推出的“黑洞Collapsar”。据了解,黑洞的防护原理主要是使用多种算法识别攻击流量和正常流量,能保证在高强度攻击环境下95%以上的连接保持率和新连接发起成功率。目前,该产品能够对SYN、ACK、UDP、ICMP和MStream等多种常见的FloodDoS攻击进行防护,同时可以防止连接耗尽,对典型的资源比拼型攻击也具有良好的防护能力。在国外,例如Toplayer和Radware等公司也有类似产品,其防御原理基本相同。