什么是udp攻击,为什么udp攻击这难防御

简介: UDP是无连接的传输协议,常用于需要速度但不要求可靠性的场景,如DNS查询、流媒体等。UDP Flood是DDoS攻击的一种,通过大量伪造的UDP报文消耗目标带宽,可能导致网络瘫痪。防御UDP Flood包括限流、静态指纹过滤和动态指纹学习。应用加速技术提供抗DDoS、CC防护、环境安全检测等功能,通过隐藏真实IP、加密传输和智能调度增强安全性。

一、前言
老王和老李吵架败了,老王寒夜负气离家出走。老王衣服单薄,老李心疼老王,想给老王打电话哄他回家,可是打老王电话死活不接。此时换做你是老李,怎么办?

发短消息啊。此时的老李发现短消息竟然如此好用,几个认错的短消息一发,老王回来了,老王与老李又手拉手涛声依旧了!!!

老李不会问这个问题:既然手机有了电话功能,为何还要有短消息功能?

电话固然好,即时(Realtime)通信,可以实时传达大量信息,但是却无法满足人类所有的通信需求。

短消息,异步通信,实时性差,但是却可以弥补电话通信的市场空白,和电话携手一起满足人类所有的通信需求。

老王刷信用卡,银行会给老王发短消息,告知消费记录,这非常便利。如果只有电话,老王每次刷卡银行需要给老王打电话通知,老王正在忙,哪有空接这种电话。但是老王如果不接电话,这种通信就是无效的。在老王看来,这就是骚扰电话,短消息通信显然比电话通知更合理。

生活中通信的场景太多了,但是大体都可归纳为两种:

需要建立连接(connection-oriented)的电话模式,如电话、微信语音/视频聊天、电视节目点播等。

无需建立连接(connectionless)的短消息模式,如广播、电报、寻呼、短消息、微信消息、电子邮件等等。

扯了那么多,好像和UDP没有什么关联,其实关联很大。TCP/IP协议发明的时间节点大概在上世纪60年代。那个时间节点的通信主要有电话、电报、广播、电视。TCP/IP设计者希望TCP/IP像80年代的邮电局,既可以打电话,又可以发电报(短消息)。

于是就有了两个协议:TCP,Transport Control Protocol,这个可以提供类似打电话的连接服务。UDP,User Datagram(数据报)Protocol,这个可以提供短消息服务。

无论是连接服务的TCP,还是无连接的UDP,都需要有运输大队来将从用户(用户程序)承揽的TCP/UDP Packet转运给通信的双方,这个运输大队就是IP协议。

汽车大队IP也是无连接的,完全可以替代UDP,UDP存在有何意义?

这个问题可能是小德真正想表达的。可是IP怎么让接收方知道是哪个进程的包裹呢?

可以使用IP包头的Protocol字段,该字段一个字节长,取值空间为0-255,理论上可以分辨256个进程。

超过了256个进程就无法分辨了吧?

有看官会说,只要设计者将Protocol设计得更长一些,比如两个字节,不可以分辨65536个进程了吗?这个和UDP的目的端口号是一致的。

问题又来了,接收方如何知道数据包来自于哪个源IP地址的哪个进程?

无法知道了吧?

看来还得在IP包头里添加一个类似于源端口号的字段,用于标识源IP上的进程。

这好像也不是什么难事,只要设计者将UDP的源端口号,目的端口号放在IP头,岂不是完美解决问题?

依然有扩展性的难题,凡是无法扩展的协议,都会面临扩展性的难题。目前的TCP/IP使用两级扩展,即网络层+传输层两级扩展,理论上扩展能力是无限的。

如果有一天需要增添一个传输层协议,只要在IP Protocol给该协议一个序号,然后该协议使用长的端口号,用于辨识用户进程,这种扩展能力是几乎没有上线的。

但是由于IPv4的地址长度有限,无法扩展,这也是IPv4最大的局限性,但是这个局限性和UDP无关。UDP存在的意义,提供短消息通信模式,弥补通信市场空白。使用网络层+UDP扩展,使得UDP能够提供最大65536用户进程辨识度。

二、什么是UDP Flood
小德还是先从UDP协议讲起。在讲SYN Flood的时候,我们知道了TCP协议是一种面向连接的传输协议。但是UDP协议与TCP协议不同,UDP是一个无连接协议。使用UDP协议传输数据之前,客户端和服务器之间不建立连接,如果在从客户端到服务器端的传递过程中出现数据的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议。

既然UDP是一种不可靠的网络协议,那么还有什么使用价值或必要呢?

其实不然,在有些情况下UDP协议可能会变得非常有用。因为UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使传输速度受到严重的影响。反观UDP,由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使传输速度得到了保证。

正是UDP协议的广泛应用,为黑客们发动UDP Flood攻击提供了平台。UDP Flood属于带宽类攻击,黑客们通过僵尸网络向目标服务器发起大量的UDP报文,这种UDP报文通常为大包,且速率非常快,通常会造成以下危害:

消耗网络带宽资源,严重时造成链路拥塞。

大量变源变端口的UDP Flood会导致依靠会话转发的网络设备,性能降低甚至会话耗尽,从而导致网络瘫痪。

三、UDP Flood是如何发生的?
顾名思义,UDP Flood是指用洪水一样的UDP报文进行攻击。不同于TCP协议,UDP协议是一种无连接的协议,使用UDP协议传输报文之前,客户端和服务器之间不建立连接,如果在从客户端到服务器端的传递过程中出现报文的丢失,协议本身也不做任何检测或提示。这种报文处理方式决定了UDP协议资源消耗小、处理速度快,在被广泛应用的同时也为攻击者发动UDP Flood攻击提供了可能。

传统UDP Flood攻击是一种消耗攻击和被攻击双方资源的带宽类攻击方式。攻击者通过僵尸网络向目标设备发送大量伪造的UDP报文,这种报文一般为大包且速率非常快,通常会造成链路拥塞甚至网络瘫痪的危害。这种攻击方式由于技术含量较低,现在已经越来越少被使用。

图片.png

近几年来,越来越多的攻击者选择使用UDP反射放大攻击。UDP反射放大攻击有两个特点,一是属于UDP协议,二是目的端口号固定。UDP反射放大攻击的原理类似,以常见的NTP(Network Time Protocol)反射放大攻击为例,其有两个关键点:反射和放大。

(一)反射攻击
在UDP协议中,正常情况下,客户端发送请求包到服务器,服务器返回响应包给客户端,一次交互就已完成,中间没有校验过程。反射攻击正是利用了UDP协议面向无连接、缺少源认证机制的特点,将请求包的源IP地址篡改为攻击目标的IP地址,最终服务器返回的响应包就会被送到攻击目标,形成反射攻击。

图片.png

(二)放大攻击

攻击者通常利用互联网的基础架构来进行放大攻击。由于网络中开放的NTP服务器非常多,攻击者会利用僵尸主机同时向NTP服务器发起大量的Monlist请求,1个Monlist请求包可以引发100个响应包。通常1个NTP请求包只有90字节的大小,而1个回应报文通常为482字节,100个回应报文就是48200字节,可以发现回应报文是请求报文的500倍左右,这就形成了四两拨千斤的放大攻击,最终造成链路拥塞甚至网络瘫痪。

图片.png

四、如何防御UDP Flood?
由于UDP协议不建立连接,对UDP Flood的防御并不能像SYN Flood一样进行源探测。最初防火墙对UDP Flood的防御方式就是限流,将链路中的UDP报文控制在合理的带宽范围之内,可基于目的IP地址、目的安全区域和会话进行限流。虽然限流可以有效缓解链路带宽的压力,但这种方式可能会丢弃一些正常报文,因此需要新的手段防御UDP Flood。

由攻击工具伪造的攻击报文通常都拥有相同的特征字段,比如都包含某一字符串或整个报文内容一致,而对于UDP反射放大攻击中那些由真实网络设备发出的报文,在数据段不具备相同特征,但其目的端口都是固定的,所以不难发现UDP Flood攻击报文都具有一定的特征。确定攻击报文的特征后即可进行过滤,特征过滤也就是常说的指纹过滤。指纹过滤包括静态指纹过滤和动态指纹学习两种方法。

图片.png

(一)静态指纹过滤

UDP报文的数据段、源IP地址、源端口、目的IP地址、目的端口都可能隐藏着攻击报文的特征。对于已知的攻击特征,可以直接配置到设备的过滤器参数中。配置了静态指纹过滤后会对收到的报文进行特征匹配,对于匹配到攻击特征的报文进行丢弃、限流等下一步操作。

(二)动态指纹学习

在攻击特征未知的情况下,可通过动态指纹学习进行攻击防御。对于一些攻击工具发起的UDP Flood攻击,攻击报文通常都拥有相同的特征字段,指纹学习就是对一些有规律的UDP Flood攻击报文进行统计和特征识别,当报文达到告警阈值时则开始进行指纹学习。如果相同的特征频繁出现,就会被学习成指纹,后续命中指纹的报文则被判定为攻击报文,进行丢弃、限流等后续操作。

(三)应用加速(客户端安全)
应用加速是新一代的智能分布式云接入系统,采用创新级SD-WAN跨域技术,针对高防机房痛点进行专线穿透打通并搭配高速通道技术,用户可自主选择是否隐藏真实服务器IP,节点间切换过程中用户不会有任何感知,始终保持TCP连接不中断, 适合任何TCP端类应用包括(游戏、APP、微端、端类内嵌Web等)

优势:

图片.png

1.功能:

抗DDoS攻击
服务节点针对终端完全隐身,黑客无法获知攻击目标,无法直接针对服务节点发起全面攻击。从而保障APP正常快速运行

CC防护/数据加密传输
通过与防护节点建立加密隧道,接管客户端与服务器端网络连接,一链一密,可准确识别攻击者与正常访客。非正常访客(黑客)发送的数据包被直接丢弃,肉鸡使用一次便被精准识别,结合精准访问控制可实现 CC全面识别防御,从根本上解决 CC攻击问题,做到真正为用户业务保驾护航

环境安全检测
通过SDK 可以精准识别每个终端当前运行环境风险(虚拟机、模拟器运行、加速器、系统root/越狱、修改器、多开运行、调试/注入/Hook/DUMP)和网络环境 信息(代理、4G/WIFI、链路质量、网络线路、网络延迟)通过设备信誉模型智能评估设备风险等级,为智能调度、身份可信识别提供多维度参考数据,同时辅以智能入侵检测引擎,标记检测到的风险设备,结合精准访问控制可精准拦截识别出 的可疑设备

应用安全管控
AntiDDoS-SDK 可对应用自身风险进行检测,通过APP签名技术,有效识别应用风险,防止应用被广告病毒植入、二次打包、功能屏蔽、仿冒钓鱼等恶意破解。基于SASE架构,隐藏业务真实主机,黑客无法在互联网上发起扫描和定向入侵

业务安全防护
安全加速 SDK 基于SASE架构,天生具备WAF 和业务安全防护能力。依托设备风险识别和可信访问,阻断一切未经认证的流量,可高效解决恶意注册、撞库、暴力破解、针对APP的大流量CC攻击、短信/验证码接口被刷、机器批量投票、灌水/恶意评论、渠道刷量作弊等业务问题

SDK安全加固
对AntiDDoS-SDK 进行了高强度安全加固,防止黑客进行反编译、逆向分析,反调试技术可保障业务防护逻辑不被破解

2.分析:
大数据分析
通过大数据分析获取每个终端访客的活跃度、终端到防护节点的网络链路、设备信誉等级等信息给智能分析决策提供了重要参考,同时对访问及防护日志进行大数据分析,从日志中挖掘威胁情报、进行安全数据分析、运营数据分析,主动完善防护策略

全网访问加速
通过终端环境信息检测和设备信誉评估,从分布式节点中每一个终端调度分配最优节点,智能选择最优解析线路,实现就近节点接入,结合UDP多路传输、跨国跨境加速等技术,提高全网用户访问速度,确保访问低延迟和高可靠性,有效提升访客体验

攻击溯源
智能调度系统详细记录节点调度信息,因每个IP节点属于每个终端独用资源,因此若被分配到的IP遭受攻击,根据调度信息可快速定位攻击设备,实时分析僵尸网络、C2 控制端,同时依靠威胁数据分析可以极大提升攻击溯源成功机率

多维度全面监控
实现对海量防护节点多维度、细颗粒度的全面监控,当监控到节点有异常时可及时剥离异常节点,实现故障自动隔离和业务风险隔离

3.防御架构
DDoS防御

图片.png

CC防御

图片.png

相关文章
|
6月前
|
监控 安全 网络安全
|
6月前
|
缓存 网络协议 网络性能优化
【计算机网络-传输层】TCP/UDP、SYN泛洪攻击、三次握手四次挥手
【计算机网络-传输层】TCP/UDP、SYN泛洪攻击、三次握手四次挥手
|
缓存 网络协议 安全
网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御
网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御
923 0
|
移动开发 安全 网络安全
PHP使用UDP发包,PHPDDOS,PHP攻击
PHP使用UDP发包,PHPDDOS,PHP攻击
948 0
|
安全 测试技术 区块链
游戏安全资讯精选 2018年第八期:3975款游戏被查处,游戏圈重击;Memcached被利用UDP反射攻击漏洞预警;VentureBeat称区块链或可定位和消除恶意可执行代码的安全问题
3975款游戏被查处,游戏圈重击;Memcached被利用UDP反射攻击漏洞预警;VentureBeat称区块链或可定位和消除恶意可执行代码的安全问题
6041 0
|
Web App开发 安全 测试技术
【重要安全预警】Memcached被利用UDP反射攻击漏洞预警
本周,阿里云安全中心监测到互联网上存在利用Memcached服务漏洞进行的恶意攻击。如果客户默认开放UDP协议且未做访问控制,在运行Memcached服务时可能会被黑客利用,导致出方向的带宽消耗或CPU资源消耗。
8518 0
|
18天前
|
网络协议 算法 网络性能优化
|
6天前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
17 4