让我们先了解一下DoS和DdoS相关的知识吧。
一、DoS/DDoS的介绍
1、什么是拒绝服务攻击(DoS)
DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
2、什么是分布式拒绝服务攻击(DDoS)
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多台傀儡机联合起来作为攻击平台(傀儡机,一般为黑客所控制的“肉鸡”),对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者通过入侵一台服务器,在得到该服务器一定的权限以后,将DDoS主控程序安装在这台服务器上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在黑客所控制的许多服务器上(包括通过其他途径获取的大量个人PC)。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
黑客通过控制傀儡机中的某一台(或他自己的计算机,为安全起见,一般他会选择一台傀儡机来控制其他的傀儡机),再利用这台傀儡机来指挥其余的傀儡机向目标服务器发动攻击。当然,这只是一个简单的示意图,还可以把上图想得更加复杂:黑客控制手中的十台、二十台傀儡机,再分别通过被这十台、二十台中的傀儡机去控制成千、上万乃至数十万的傀儡机对目标发动毁灭性的攻击。
打个形象而又不太恰当的比喻:两个人打架,其中某一个人对付不了对方,于是他把他的朋友全都叫来,多个对付一个,一个人面对那么多个人,你怎么也对付不了。
拒绝服务就是用超出被攻击目标处理能力的海量数据包消耗可用系统,带宽资源,致使正常的网络服务瘫痪的一种攻击手段。拒绝服务攻击采用的是单一的一对一的攻击手段,当CPU处理速度低、内存小及网络带宽小等,拒绝服务攻击的效果就很明显。
但是,随着互联网技术及硬件技术的飞速发展,现在的带宽都是以百兆、千兆为单位来计算,CPU多数亦是双核或四核的,内存现在也可以说是白菜价了。在这种环境下,使得拒绝服务的攻击的困难程度就加大了。
这样,分布式拒绝服务(DDoS)攻击就出现了。如果你理解了拒绝服务(DoS)攻击的话,在它的基础上,分布式拒绝服务攻击就不难理解了。如果说计算机与网络的处理攻击的能力加大了10倍,用一台傀儡机来攻击不再能起作用的话,攻击者使用10台傀儡机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
二、DoS/DDoS攻击的现象
那么,服务器被DoS/DDoS攻击会是怎样的现象呢?
1、被攻击主机上有大量等待的TCP连接;
2、网络中充斥着大量的无用的数据包,源地址为假地址或私网中才可能出现的地址;
3、制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;
4、利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求;
5、严重时会造成系统运行缓慢或假死、甚至死机;
三、DoS/DdoS攻击的类型:
1、Synflood:该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。
2、Smurf:该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。
3、Land-based:攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
4、Ping of Death:根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,