前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是udp攻击,为什么udp攻击这难防御

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

原创
作者头像
德迅云安全--陈琦琦
发布2024-06-21 16:35:40
1520
发布2024-06-21 16:35:40

一、前言

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

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

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

电话固然好,即时(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报文通常为大包,且速率非常快,通常会造成以下危害:

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

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

三、UDP Flood是如何发生的?

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

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

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

(一)反射攻击

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

(二)放大攻击

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

四、如何防御UDP Flood?

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

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

(一)静态指纹过滤

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

(二)动态指纹学习

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

(三)应用加速(客户端安全)

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

优势:

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防御

CC防御

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、什么是UDP Flood
  • 三、UDP Flood是如何发生的?
    • (一)反射攻击
      • (二)放大攻击
      • 四、如何防御UDP Flood?
        • (一)静态指纹过滤
          • (二)动态指纹学习
            • (三)应用加速(客户端安全)
              • 1.功能:
              • 2.分析:
              • 3.防御架构
          相关产品与服务
          业务风险情报
          业务风险情报(Business Risk Intelligence,BRI)为您提供全面、实时、精准的业务风险情报服务。通过简单的 API 接入,您即可获取业务中 IP、号码、APP、URL 等的画像数据,对其风险进行精确评估,做到对业务风险、黑产攻击实时感知、评估、应对、止损。您也可利用业务风险情报服务搭建或完善自身的风控体系,补充自身风险情报数据,提升对风险的感知、应对能力。BRI 支持按需付费,您可根据您的需求,选取不同的套餐,更易优化成本。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档