通常而言,DOS的网络数据包同样是利用TCP/IP协议在Internet传输。这些数据包本身一般是无害的,但是如果数据包异常过多,就会造成网络设备或者服务器过载,迅速消耗了系统资源,造成服务拒绝,这就是DOS攻击的基本工作原理。DOS攻击之所以难于防护,其关键之处就在于非法流量和合法流量相互混杂,防护过程中无法有效的检测到DOS攻击。加之许多DOS攻击都采用了伪造源地址IP的技术,从而成功的躲避了基于统计模式工具的识别。
具体DOS攻击实现有如下几种方法:
1 、SYN FLOOD
利用服务器的连接缓冲区,设置特殊的TCP包头,向服务器端不断地发送大量只有SYN标志的TCP连接请求。当服务器接收的时候,认为是没有建立起来的连接请求,于是这些请求建立会话,排到缓冲区队列中。如果发送的SYN请求超过了服务器能容纳的限度,缓冲区队列占满,那么服务器就不再接收新的请求了,因此其他合法用户的连接都会被拒绝掉。
2 、IP欺骗DOS攻击
这种攻击利用RST位来实现。假设现在有一个合法用户 (1.1.1.1) 已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为 1.1.1.1 ,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,会认为从 1.1.1.1 发送的连接有错误,从而清空缓冲区中建立好的连接。这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。攻击者伪造大量的IP地址,向目标主机发送RST数据,从而使服务器不对合法用户服务。
3 、带宽DOS攻击(UDP Flood ,ICMP Flood)
这类攻击完全利用连接带宽足够大,持续向目标服务器发送大量请求,如UDP的包, ICMP的ping包,来消耗服务器的缓冲区,或者仅消耗服务器的连接带宽,从而达到网络拥塞,使服务器不能正常提供服务。
DDOS攻击
单一的DOS攻击一般是采用一对一方式的,“分布式拒绝服务攻击”(Distributed Denial of Service ,简称DDOS)是建立在传统的DOS攻击基础之上一类攻击方式。当计算机与网络的处理能力加大了,用一台攻击机来攻击不再能起作用的话,攻击者就使用10台甚至100台攻击机同时攻击。这就是DDOS。DDOS就是利用更多的傀儡机“肉鸡”来同时发起进攻,更大规模的来进攻受害者,破坏力更强。
现在,高速广泛连接的网络给大家带来了方便,但同时也为DDOS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了,攻击也更加隐蔽。
当主机服务器被DDOS攻击时,通常会有如下现象 :
• 被攻击主机上有大量等待的TCP连接
• 网络中充斥着大量的无用的数据包,源地址一般为伪造的
• 高流量无用数据造成网络拥塞,使受害主机无法正常和外界通讯
• 反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求
• 系统服务器 CPU 利用率极高,处理速度缓慢,甚至宕机