针对UDP协议的攻击与防御

news/2024/5/18 15:29:16 标签: 网络, udp, tcp/ip

一、UDP协议概述

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

1.UDP的报文格式

UDP的报文格式如图1所示。

图1 UDP报文格式

UDP报文中各字段的含义如下:

(1)源端口(16位):发送方的端口号。

(2)目的端口(16位):接收方的端口号。

(3)报文长度(16位):表示UDP报文总长度,包括首部和数据部分。

(4)校验和(16位):对整个UDP数据段进行校验,防止报文首部出错。

由此可见,UDP报文首部没有确认机制或传输保证,所以UDP的错误处理往往由上层协议(应用层)来承担。

2.UDP的应用场景

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

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

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

1.UDP Flood攻击

(1)攻击原理

UDP Flood属于一种带宽类的DDoS攻击,攻击者通常会结合源IP地址欺骗技术,利用僵尸网络向目标发送大量的UDP报文,这种UDP报文通常为大包,且速率非常快。UDP Flood通常会消耗网络带宽资源,严重时造成链路拥塞;同时,大量随机源IP和随机源端口的UDP Flood会导致依靠会话转发的网络设备性能降低甚至资源耗尽,从而导致网络瘫痪。

(2)防御方法

方法一:限流

这种方法的基本思路是利用DDoS防护系统对UDP报文进行限流,将链路中的UDP报文控制在合理的带宽范围之内。

可以采用两种方式针对UDP Flood进行限流:一是以某个IP地址作为统计对象,对到达这个IP地址的UDP流量进行统计并限流,超过部分丢弃;二是以UDP会话作为统计对象,如果某条会话上的UDP报文速率达到了告警阈值,这条会话就会被锁定,后续命中这条会话的UDP报文都被丢弃。

方法二:指纹学习

一般来说,黑客为了加大攻击频率,快速、长时间挤占目标的网络带宽,在使用DDoS攻击工具实现UDP Flood时,会直接在内存中存放一段内容,然后高频发送到目标,所以攻击报文具有很高的相似性(比如都包含某一个字符串,或整个报文内容一致);而正常业务的每个UDP报文负载内容一般都是不一样的。所以,DDoS防护系统可以通过收集具有相同特征的字符串来检测UDP Flood攻击,这样可以有效降低误报率。

指纹学习就是通过分析客户端向服务器发送的UDP报文载荷是否有大量的一致内容,来判定这个UDP报文是否异常。如图2所示,DDoS防护系统对到达指定目的地的UDP报文进行统计,当UDP报文达到告警阈值时,开始对UDP报文的指纹进行学习。如果相同的特征频繁出现,就会被学习成指纹,后续命中该指纹的报文将被判定为攻击报文,并作为攻击特征进行过滤。目前,市面上绝大多数的DDoS防护系统产品均采用指纹学习的方法来防御UDP Flood攻击。

图2 指纹学习

2.UDP反射放大攻击

对于攻击者来说,传统的UDP flood是一种消耗目标资源、同时也消耗自身资源的攻击方式。UDP flood攻击过程中,攻防双方其实是在拼“资源”,比谁的带宽大、资源多,比谁能坚持到最后。而新型的UDP反射放大攻击则是一种“四两拨千斤”的DDoS攻击方式,攻击者可以更小的代价获得更好的攻击效果。因此在现网中,UDP反射放大攻击越来越多地被使用。

(1)攻击原理

许多基于UDP的服务具有“小请求、大响应”的特性,即这些服务在响应客户端的请求时,响应包的大小要远大于请求包。UDP反射放大攻击正是利用了这一点。

以Memcached服务为例,Memcached是一种开源的高性能分布式内存对象缓存服务,通过查询缓存数据库,直接返回访问请求,加快应用程序的响应效率,同时降低对数据库的访问次数。也正是这种服务机制,使攻击者有了可乘之机,借用正常服务达到攻击的目的。

Memcached支持UDP协议的访问请求,默认将UDP端口11211对外开放。因此,攻击者只需要通过快速的端口扫描,便可以收集到全球大量没有任何防护措施的Memcached服务器,随后攻击者只需要向Memcached服务器的UDP端口11211发送伪造的特定请求报文,该请求报文的源地址被设置成了攻击目标的IP地址。服务器在收到该请求报文后,则会将“放大”后的响应报文发送至攻击目标处,如图3所示。攻击者甚至可以利用僵尸网络作为请求源,向Memcached服务器发起“群体”请求,则返回的响应报文将成指数级上升,比原始请求报文扩大几百至几万倍,从而通过反射加放大的形式,使攻击目标拥塞,无法正常提供服务,达到低成本化、高隐蔽性的攻击效果。

图3 UDP反射放大攻击实例

除了上面提到的Memcached,目前还有其他十多种基于UDP的协议,均可以用于反射放大攻击,放大倍数从几倍到几万倍,如表1所示。

表1 可用于UDP反射放大攻击的协议

协议

端口

理论放大倍数

DNS

53

28~54

NTP

123

556.9

SNMP

161

6.3

SSDP

1900

30.8

Portmap

111

7~28

QOTD

17

140.3

CharGen

19

358.8

TFTP

69

60

NetBIOS

138

3.8

Memcached

11211

10000~50000

WS_Discovery

3702

70~500

CLDAP

389

56~70

(2)防御方法

UDP反射放大攻击的防御方法与传统UDP Flood攻击的防御方法基本相同,这里不再赘述。

三、小结

本文介绍了UDP协议的基础知识及应用场景,并重点描述了两种针对UDP协议的攻击原理及防御方法。就目前而言,指纹学习是防御UDP协议攻击最为有效的技术。


http://www.niftyadmin.cn/n/362071.html

相关文章

【2】Jmeter获取token,模拟多用户并发及token存储文本文件

按以下步骤来,以下各种处理程序的放置位置很重要!!不然会出现各种问题: 1、setup线程组 前置获取token的接口(login,以下都用login表示获取token接口)请求,获取类似token等后续需要…

Kotlin SOLID 原则

Kotlin SOLID 原则 许多 Kotlin 开发者并不完全了解 SOLID 原理,即使他们知道,他们也不知道为什么要使用它。您准备好了解所有细节了吗? 介绍 亲爱的 Kotlin 爱好者,您好!欢迎来到我的新文章。今天我要讲的是 Kotli…

ubuntu 安装ffmpeg

一、我的编译环境 ubuntu 22 ffmpeg 4.36 二、安装必要的依赖 sudo apt-get update sudo apt-get install -y \autoconf \automake \build-essential \cmake \git-core \libass-dev \libfreetype6-dev \libsdl2-dev \libtool \libva-dev \libvdpau-dev \libvorbis-dev \lib…

lwIP更新记08:TCP 回调函数中调用 tcp_abort 终于安全了

从 lwIP-1.4.0 开始,tcp 回调函数中调用 tcp_abort 函数终于安全了。 在此之前,如果从 tcp 回调函数中调用 tcp_abort,则会访问未分配的内存。 应用程序关闭连接,正常情况下是调用 tcp_close 函数,经过 4 次握手安全的…

ORB-LSAM2:ComputeKeyPointsOctTree()提取特征:maxY = iniY + hCell + 6 为怎么是+6而不是+3?

如标题所示&#xff0c;本博客主要讲述 void ORBextractor::ComputeKeyPointsOctTree(vector<vector<KeyPoint>> &allKeypoints){}函数中maxY iniY hCell 6 为怎么是6而不是3&#xff1f; 为了连续性&#xff0c;会介绍一下ComputeKeyPointsOctTree函数&a…

Linux——进程概念详解

目录 一.什么是进程&#xff1f; 2.PCB的含义&#xff0c;为什么会存在PCB&#xff1f; 整体解析操作系统对进程的管理方式&#xff1a; 二.对比Windows系统&#xff1a; 三.Linux——进程 学习一个新指令&#xff1a;ps ajx 四.接下来学习几个进程的系统调用函数&#xff1…

分享Python采集66个焦点图,总有一款适合您

分享Python采集66个焦点图&#xff0c;总有一款适合您 Python采集的66个焦点图下载链接&#xff1a;https://pan.baidu.com/s/1nHoPaUp2Bqtrs5d7J-XdwA?pwd3yfb 提取码&#xff1a;3yfb jQuery SuperSlide插件自适应banner大图焦点图片轮播切换特效 jQuerySwiper仿魅族幻灯…

深眸科技|机器视觉应用优势显著赋能生产,技术崛起获发展前景

近年来&#xff0c;机器视觉已经逐渐渗透进工业制造领域的各个方面&#xff0c;并已经成为工业自动化和智能化的核心&#xff0c;无论是“中国制造2025”还是“工业4.0”都离不开机器视觉&#xff0c;机器视觉将为智能制造打开一个新的世界。 随着人工智能、云计算、5G等技术的…