DDOS攻击

DOS攻击

DOS攻击是Denial of Service的简称,即拒绝服务攻击;其主要通过洪水攻击的方式,耗尽目标机器的资源或者网络带宽,造成服务服务中断或者停止;DOS攻击攻击源为单一电脑;

DDOS攻击

DDOS攻击是Distributed Denial of Service的缩写,即分布式拒绝服务攻击;攻击者利用多台已被攻陷的“僵尸”电脑(或者叫肉机),向目标机器发起攻击,从而放大攻击的程度;DDOS攻击源为多台电脑;

攻击的方式

带宽消耗型
Ping of Death(死亡之ping)

是一种向目标电脑发送错误封包的或恶意ping指令的攻击方式;以前的大部分电脑无法处理大于IPv4最大封包大小(65,535字节)的ping封包。因此发送这样大小的ping可以令目标电脑协议栈处理流程中的内存分配超限,导致系统崩溃;

Tear Drop(泪滴攻击)

泪滴攻击指的是向目标机器发送损坏的IP包,诸如重叠的包或过大的包载荷。借由这些手段,该攻击可以通过TCP/IP协议栈中分片重组代码中的bug来瘫痪各种不同的操作系统;

ICMP Flood(ICMP洪水)

ICMP Flood则是向目标机器大量的发送ICMP包,从而占用大量的服务器和带宽资源;

UDP Flood(UDP洪水)

UDP是一种无连接协议,当数据包通过UDP发送时,所有的数据包在发送和接收时不需要进行握手验证。当大量UDP数据包发送给受害系统时,可能会导致带宽饱和从而使得合法服务无法请求访问受害系统。遭受DDoS UDP洪泛攻击时,UDP数据包的目的端口可能是随机或指定的端口,受害系统将尝试处理接收到的数据包以确定本地运行的服务。如果没有应用程序在目标端口运行,受害系统将对源IP发出ICMP数据包,表明“目标端口不可达”。某些情况下,攻击者会伪造源IP地址以隐藏自己,这样从受害系统返回的数据包不会直接回到僵尸主机,而是被发送到被伪造地址的主机。有时UDP洪泛攻击也可能影响受害系统周围的网络连接,这可能导致受害系统附近的正常系统遇到问题;

资源消耗型
LAND(LAND攻击)

这种攻击方式与SYN floods类似,不过在LAND攻击包中的原地址和目标地址都是攻击对象的IP。这种攻击会导致被攻击的机器死循环,最终耗尽资源而死机。具体来讲,伪造包将导致接受服务器向它自己的地址发送SYN一ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时,从而大量的长时间的占用系统资源;

CC(挑战黑洞)

CC攻击使用代理服务器向受害服务器发送大量貌似合法的请求(通常使用HTTP GET),从而造成大量的并发访问,直至服务器资源耗尽;

SYN Flood(SYN洪水)

SYN Flood攻击利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽;攻击者大量的向目标服务器发送SYN包,服务器需要处理该数据包,建立请求控制块,并回复SYN-ACK,但攻击者并不会响应该ACK,导致链接无法正常建立;此时服务器需要不断重发SYN-ACK,直至超时为止,资源才能释放;如果大量的SYN包攻击会导致服务器资源耗尽,即使不耗尽,也会导致因为这些半开连接的存在,导致正常的服务请求无法得到及时的处理;

中间设备对ICMP Flood,UDP Flood,SYN Flood的防御

ICMP Flood

1. 创建ICMP Flood检测白名单,将不需要检测的IP加入其中;

2. 对防御IP地址设置ICMP包数阈值;

3. ICMP数据包到来,如果源IP地址不在白名单中,则统计被访问的目的IP的每秒ICMP包数,若包数已经超过阈值限制,则认为是攻击,做丢包处理;

UDP Flood

1. 创建UDP Flood检测白名单,将不需要检测的IP加入其中;

2. 对防御IP地址设置UDP包数阈值;

3. UDP数据包到来,如果源IP地址不在白名单中,则统计被访问的目的IP的每秒UDP包数,若包数已经超过阈值限制,则认为是攻击,做丢包处理;

TCP SYN Flood

1. 创建SYN Flood检测白名单,将不需要检测的IP加入其中;

2. 对防御IP地址设置SYN新建连接数(或者半开连接数)阈值;

3. SYN包到来,首先判断是否在白名单,如果在白名单中则通过,否则继续检查;

4. 若不在白名单,中间设备收到SYN包,先查找目的IP对应的SYN连接数(或者半开连接数)是否超过阈值,若未超过,则放行,交给目的服务器处理;若已经超过了阈值,可以直接丢包,或者由中间设备对该连接建立过程进行TCP代理,以避免无效连接,代理使用SYN Cookie或者Safe Reset技术;

后续单开一篇文章把SYN Flood详细总结下;

本文链接:DDOS攻击

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注