本文主要是介绍堪称灾难级攻击的 UDP FLOOD洪水攻击,应该如何防护?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
DDOS又称为分布式拒绝服务,全称是Distributed Denial of Service。DDOS本是利用合理的请求造成资源过载,导致服务不可用,从而造成服务器拒绝正常流量服务。就如酒店里的房间是有固定的数量的,比如一个酒店有50个房间,当50个房间都住满人之后,再有新的用户想住进来,就必须要等之前入住的用户先出去。如果入住的用户一直不出去,那么酒店就无法迎接新的用户,导致酒店负荷过载,这种情况就是“拒绝服务”。如果想继续提供资源,那么酒店应该提升自己的资源量,服务器也是同样的道理。其中UDP攻击,是目前市场上比较讨人厌的一种直接攻击的方式。
UDP Flood攻击
由于UDP属于无连接协议,消耗的系统资源较少,相同条件下容易产生更高的流量,是流量型攻击的主要手段。当受害系统接收到一个UDP数据包的时候,它会确定目的端口正在等待中的应用程序。当它发现该端口中并不存在正在等待的应用程序,它就会产生一个目的地址无法连接的ICMP数据包发送给该伪造的源地址。如果向受害者计算机端口发送了足够多的UDP数据包的时候,系统就会造成拒绝服务攻击,因此,UDP FLOOD成为了流量型拒绝服务攻击的主要手段。
UDP Flood是如何发生的?
顾名思义,UDP Flood是指用洪水一样的UDP报文进行攻击。不同于TCP协议,UDP协议是一种无连接的协议,使用UDP协议传输报文之前,客户端和服务器之间不建立连接,如果在从客户端到服务器端的传递过程中出现报文的丢失,协议本身也不做任何检测或提示。这种报文处理方式决定了UDP协议资源消耗小、处理速度快,在被广泛应用的同时也为攻击者发动UDP Flood攻击提供了可能。
传统UDP Flood攻击是一种消耗攻击和被攻击双方资源的带宽类攻击方式。攻击者通过僵尸网络向目标设备发送大量伪造的UDP报文,这种报文一般为大包且速率非常快,通常会造成链路拥塞甚至网络瘫痪的危害。这种攻击方式由于技术含量较低,现在已经越来越少被使用
近几年来,越来越多的攻击者选择使用UDP反射放大攻击。UDP反射放大攻击有两个特点,一是属于UDP协议,二是目的端口号固定。UDP反射放大攻击的原理类似,以常见的NTP(Network Time Protocol)反射放大攻击为例,其有两个关键点:反射和放大。
1.1 反射攻击
在UDP协议中,正常情况下,客户端发送请求包到服务器,服务器返回响应包给客户端,一次交互就已完成,中间没有校验过程。反射攻击正是利用了UDP协议面向无连接、缺少源认证机制的特点,将请求包的源IP地址篡改为攻击目标的IP地址,最终服务器返回的响应包就会被送到攻击目标,形成反射攻击。
1.2 放大攻击
攻击者通常利用互联网的基础架构来进行放大攻击。由于网络中开放的NTP服务器非常多,攻击者会利用僵尸主机同时向NTP服务器发起大量的Monlist请求,1个Monlist请求包可以引发100个响应包。通常1个NTP请求包只有90字节的大小,而1个回应报文通常为482字节,100个回应报文就是48200字节,可以发现回应报文是请求报文的500倍左右,这就形成了四两拨千斤的放大攻击,最终造成链路拥塞甚至网络瘫痪。
1.3 UDP FLOOD
攻击的危害
UDP Flood
属于带宽类攻击,攻击者通过僵尸网络向目标服务器发起大量的UDP
报文,这种UDP
报文通常为大包,且速率非常快,通常会造成以下危害:
-
消耗网络带宽资源,严重时造成链路拥塞
-
大量变源变端口的
UDP Flood
会导致依靠会话转发的网络设备,性能降低甚至会话耗尽,从而导致网络瘫痪。
如何防御UDP FLOOD
攻击
针对UDP FLOOD
攻击的主要设备是防火墙,常规的做法是限流(基于目的IP
地址、基于目的安全区域、基于会话的限流)来实现,但这种方法容易造成业务上的误判,所以华为技术文档推出指纹学习的功能:
由攻击工具伪造的攻击报文通常都拥有相同的特征字段,比如都包含某一字符串或整个报文内容一致,而对于UDP
反射放大攻击中那些由真实网络设备发出的报文,在数据段不具备相同特征,但其目的端口都是固定的,所以不难发现UDP Flood
攻击报文都具有一定的特征。确定攻击报文的特征后即可进行过滤,特征过滤也就是常说的指纹过滤。指纹过滤包括静态指纹过滤和动态指纹学习两种方法。
1、静态指纹过滤:
UDP
报文的数据段、源IP
地址、源端口、目的IP
地址、目的端口都可能隐藏着攻击报文的特征。对于已知的攻击特征,可以直接配置到设备的过滤器参数中。配置了静态指纹过滤后会对收到的报文进行特征匹配,对于匹配到攻击特征的报文进行丢弃、限流等下一步操作。
2、动态指纹学习:
在攻击特征未知的情况下,可通过动态指纹学习进行攻击防御。对于一些攻击工具发起的UDP Flood
攻击,攻击报文通常都拥有相同的特征字段,指纹学习就是对一些有规律的UDP Flood
攻击报文进行统计和特征识别,当报文达到告警阈值时则开始进行指纹学习。如果相同的特征频繁出现,就会被学习成指纹,后续命中指纹的报文则被判定为攻击报文,进行丢弃、限流等后续操作。
3、使用德迅抗D盾:
抗D盾是新一代的智能分布式云接入系统,接入节点采用多机房集群部署模式,隐藏真实服务器IP,但是“抗D盾”是比CDN应用范围更广的接入方式,适合任何TCP 端类应用包括(游戏、APP、微端、端类内嵌WEB等)。用户连接状态在各机房之间实时同步,节点间切换过程中用户无感知,保持TCP连接不中断,轻松应对任何网络攻击,做到完全免疫,无视攻击流量
通过上述方式可以缓解部分UDP反射放大型DDOS攻击,但如果面对大流量洪水攻击时,可能效果并不是很明显。对于像金融、游戏、电商、教育等对安全性要求较高的企业,德迅云安全还是建议通过接入专业的高防服务来保障服务器的稳定运行。在未来的一段时间里,UDP反射放大型DDOS攻击将会更加频繁的出现,DDOS攻击已经从G时代正式进入的T时代,各大互联网企业和网络安全公司将面临更大的网络安全挑战。
这篇关于堪称灾难级攻击的 UDP FLOOD洪水攻击,应该如何防护?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!