使用到UDP协议的情况下该如何防护

简介: 使用到UDP协议的情况下该如何防护

一、UDP协议概述

UDP(User Datagram Protocol,用户数据报协议)是TCP/IP协议栈中的一种无连接的传输协议,能够提供面向事务的简单不可靠数据传输服务。

1.UDP的应用场景

由于缺乏可靠性且属于非连接导向协议,基于UDP协议的应用一般必须允许一定量的丢包、出错和复制粘贴。与TCP协议不同,UDP协议主要用于支持不需要可靠机制、对传输性能要求较高的应用,比如常见的DNS,就是由客户端发起解析请求,然后服务器直接应答响应,避免了TCP的建立与断开连接以及过多的协议报头所产生的开销,提高了传输效率。再如,流媒体、即时多媒体游戏和IP电话(VoIP)等对实时性要求较高的应用,都是建立在UDP协议之上的。此外,UDP还用于组播协议,如在局域网里共享屏幕教学,使用组播发送数据可以避免由TCP产生的大量连接。

二、针对UDP协议的攻击与防御

由于UDP是一种无连接的协议,缺乏可靠性机制,相对于TCP来说,它更容易遭受欺骗攻击。同时,UDP在传输数据上表现出的“高效”特点也常常被攻击者所利用,用来发起DDoS攻击,例如UDP Flood攻击、UDP反射放大攻击等。

1.UDP Flood攻击

概述:

UDP Flood attack是一种DoS攻击(Denial-of-Service attack,拒绝服务攻击)

它指将大量UDP数据包发送到目标服务器,且速率非常快,通常会造成服务器资源耗尽,无法响应正常的请求,严重时会导致链路拥塞。保护目标服务器的防火墙也可能因 UDP 泛滥而耗尽,从而导致对合法流量的拒绝服务

(1)攻击原理

服务器在特定端口接收到 UDP 数据包时,它会通过两个步骤进行响应:

1.服务器首先检查是否有程序在侦听该端口的请求
2.如果没有程序在该端口侦听,则服务器以ICMP (ping) 数据包的格式回复给发送者

因此,对于大量的UDP数据包,服务器将被迫发送多个ICMP数据包,资源很快被耗尽,最终导致其他客户端无法访问它。同时,攻击者还可以欺骗UDP数据包的IP地址,确保过多的ICMP数据包不会返回给他们

(2)攻击判断
UDP洪水攻击有一些特征,可以根据以下特征来判断是否为UDP洪水攻击

源IP或源端口变化频繁
大量针对一个端口
报文负载一般保持不变或具有规律的变化

(3)防御方法

方法一:载荷检查

1.基于目的IP地址、目的安全区域或会话进行UDP流量统计

2.当UDP流量超过阈值时,会触发载荷检查,将超过部分丢弃

方法二:指纹学习

1.指纹由Anti-DDoS设备动态学习生成
2.当UDP流量超过阈值时,会将攻击报文的一段显著特征学习为指纹
3.丢弃后续能够与指纹匹配的报文。

方法三:关联TCP类服务防范

原理:

1.UDP是无连接的协议,无法通过源认证的方法防御UDP洪水攻击
2.关联TCP业务,UDP业务流量需要通过TCP业务流量认证或控制

步骤:

1.当UDP业务受到攻击时,对关联的TCP业务强制启动防御
2.通过关联防御产生TCP白名单,以确定同一源的UDP流量的走向
3.命中白名单的源的UDP流量允许通过,否则就被丢弃

2.UDP反射放大攻击

UDP反射放大攻击(UDP Reflection Attack)是一种针对网络层的DoS(分布式拒绝服务)攻击方法,这种攻击的基本原理是,攻击者通过向目标主机发送大量的UDP数据包,并在源IP地址中使用反射技术,使得这些数据包被发送回源主机,由于目标主机没有对这些数据包进行任何处理,因此会消耗大量的资源,从而导致服务降级或中断。

(1)攻击原理

1、攻击者首先需要获取目标主机的IP地址和端口号,这可以通过各种手段实现,例如使用字典攻击、暴力破解等方法。

2、攻击者向目标主机发送大量的UDP数据包,这些数据包通常包含随机生成的数据,但也可能是恶意代码,由于UDP协议不提供拥塞控制和流量整形功能,因此这些数据包会被无限制地发送出去。

3、在源IP地址中使用反射技术,反射技术的基本原理是,将数据包发送到一个公共的IP地址(例如224.0.0.251),然后由ICMP Echo请求消息将响应消息发送回源主机,这样一来,数据包就会被发送回源主机,而目标主机并不知道这些数据包是从哪里来的。

4、由于目标主机没有对这些数据包进行任何处理,因此会消耗大量的资源,从而导致服务降级或中断。

(2)攻击防范建议

1、限制UDP端口的使用,只允许受信任的应用程序使用特定的UDP端口,以减少潜在的攻击面。

2、使用TCP协议代替UDP协议,TCP协议提供了拥塞控制和流量整形功能,可以有效地防止UDP反射放大攻击。
3、配置防火墙规则,对于来自未知IP地址的数据包,可以阻止其进入网络,可以设置过滤规则,以防止恶意数据包的传播。

相关文章
|
3月前
|
网络协议
【计算机网络】为什么DNS协议采用的是UDP作为传输层协议,而不是TCP?
【1月更文挑战第10天】【计算机网络】为什么DNS协议采用的是UDP作为传输层协议,而不是TCP?
|
4月前
|
存储 缓存 网络协议
dpdk课程学习之练习笔记二(arp, udp协议api测试)
dpdk课程学习之练习笔记二(arp, udp协议api测试)
67 0
|
3月前
|
网络协议 Linux 数据处理
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
83 3
|
3月前
|
缓存 网络协议 NoSQL
基于UDP的可靠性传输协议-KCP简介
基于UDP的可靠性传输协议-KCP简介
|
2天前
|
缓存 网络协议 安全
TCP和UDP 传输层协议的区别
TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。
7 2
|
3月前
|
网络协议
网络编程-UDP协议(发送数据和接收数据)
网络编程-UDP协议(发送数据和接收数据)
|
1月前
|
网络协议 数据格式
|
2月前
|
域名解析 网络协议 安全
【JavaEE初阶】 UDP协议的详细解析
【JavaEE初阶】 UDP协议的详细解析
|
3月前
|
网络协议 网络性能优化
【计算机网络】UDP 协议特点解析
【1月更文挑战第27天】【计算机网络】UDP 协议特点解析
|
3月前
|
网络协议 安全 网络性能优化
【网络工程师】<软考中级>传输层协议TCP/UDP&常用应用层协议
【1月更文挑战第27天】【网络工程师】<软考中级>传输层协议TCP/UDP&常用应用层协议