您的位置: 新闻资讯 > 行业动态 > 正文

探秘 DDoS 之 UDP 攻击:威胁与应对(图文)


来源:mozhe 2024-10-10

UDP 攻击,全称 UDP 洪水攻击或 UDP 淹没攻击,是 DDoS(分布式拒绝服务攻击)的一种常见形式。UDP 是一种无连接的协议,在数据传输前不需要像 TCP 那样建立连接,这使得 UDP 传输速度快,但也更容易被攻击者利用。
UDP 攻击主要通过向目标服务器发送大量的 UDP 数据包,使服务器资源被大量占用,从而影响正常服务。就好比学校中午放学时的食堂,学生大量飞奔食堂,但食堂窗口就那么多,学生数量太多,就只能挤在窗口前等待。DDoS 流量攻击也是差不多道理,发送海量数据包,顷刻占满服务器资源,导致不能正常访问。
在正常情况下,客户端发送请求包到服务端,服务端会返回响应包到客户端。由于 UDP 协议是面向无连接的,所以客户端发送请求包的源 IP 很容易进行伪造。当把源 IP 修改为受害者的 IP,最终服务端返回的响应包就会返回到受害者的 IP,这就形成了一次放大攻击。放大攻击就是一次小的请求包最终会收到一个或者多个多于请求包许多倍的响应包,这样就可以做到放大攻击流量的效果。
UDP 攻击作为典型的流量型攻击,具有攻击强度大、方式简单、后果严重等特点。UDP 攻击通常会发送大量的 UDP 流量到目标,以消耗其网络带宽或系统资源。由于 UDP 是无连接的协议,攻击者可以轻松地伪造源 IP 地址,伪造大量的 UDP 数据包。UDP 攻击可能导致目标网络或服务器性能下降或服务中断,影响正常的网络连接。虽然 UDP 攻击具有上述特点,但 UDP 流量通常具有正常的网络行为特征,使得识别和防范 UDP 攻击具有一定的难度。

二、攻击方式与特点

(一)多种攻击方式


1. UDP Flood:UDP Flood 又称 UDP 洪水攻击或 UDP 淹没攻击。其原理是通过向目标服务器发送大量的 UDP 小包,冲击目标服务器,如常见的利用大量 UDP 小包冲击 DNS 服务器、Radius 认证服务器、流媒体视频服务器等。正常应用情况下,UDP 包双向流量会基本相等,且大小和内容都是随机的。但在攻击情况下,针对同一目标 IP 的 UDP 包在一侧大量出现,并且内容和大小都比较固定。例如,100k bps 的 UDP Flood 经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。
2. NTP 反射放大攻击:NTP 放大攻击是一种基于反射的容量耗尽分布式拒绝服务攻击。攻击者利用网络时间协议(NTP)服务器功能,发送放大的 UDP 流量。其工作原理是攻击者使用僵尸网络将带有伪造 IP 地址的 UDP 包发送到启用了 monlist 命令的 NTP 服务器,每个包的伪造 IP 地址都指向受害者的真实 IP 地址。每个 UDP 数据包使用其 monlist 命令向 NTP 服务器发出请求,导致较大的响应。然后,服务器用结果数据响应欺骗性的地址,目标的 IP 地址接收响应,其周边的网络基础设施被大量流量淹没,从而导致拒绝服务。例如,针对服务器内存中 600 个地址的 monlist 请求将比初始请求大 206 倍,攻击者使用 1 GB 互联网流量就能发动一次超过 200 GB 的攻击。
3. SunRPC 反射攻击:RPCBind 服务绑定在默认 TCP 或 UDP 端口 111,同时开放在外网,黑客通过批量扫描开放的 111 UCP 端口的服务器,利用 UDP 反射放大 DDoS 攻击原理发送虚假 UDP 请求,伪造源 IP 地址,将请求包中的源 IP 地址替换成攻击目标,反射服务器收到请求包发送响应来完成整个攻击流程。

(二)攻击特点鲜明


UDP 攻击具有鲜明的特点。首先,攻击强度大,攻击者可发送大量的 UDP 流量到目标,消耗其网络带宽或系统资源。其次,攻击方式简单,由于 UDP 是无连接的协议,攻击者可以轻松地伪造源 IP 地址,伪造大量的 UDP 数据包。再者,攻击后果严重,可能导致目标网络或服务器性能下降或服务中断,影响正常的网络连接。最后,虽然 UDP 攻击具有上述特点,但 UDP 流量通常具有正常的网络行为特征,使得识别和防范 UDP 攻击具有一定的难度。例如,在正常网络环境中,UDP 包的大小和内容随机变化,但在攻击状态下,针对同一目标 IP 的 UDP 包在一侧大量出现,且内容和大小都比较固定,然而这种变化在复杂的网络环境中并不容易被快速识别和防范。

三、案例解析

(一)游戏直播平台事件


2013 年 12 月 30 日,网游界发生了一起 “追杀” 事件。PhantmL0rd 和黑客组织 DERP Trolling 成为事件主角。PhantomL0rd 是美国最大在线游戏直播平台 Twitch 的知名博主,DERP Trolling 是一个黑客组织。在这一天,PhantmL0rd 连续在多场游戏对战中遭到 DERP Trolling 的 “追杀”,凡是 PhantmL0rd 参加的网络游戏,都不同程度地遭到了 DDoS 攻击。英雄联盟、EA 官网、暴雪战网、DOTA2 官网、企鹅俱乐部等知名游戏网站都因遭到 DDoS 攻击而瘫痪。调查发现,PhantomL0rd 实际上是这次事件的幕后主使。他为了保住自己 “王” 的地位,和 DERP Trolling 串通,一旦比赛过程中打不过对手,DERP Trolling 就向游戏服务器发动 DDoS 攻击,让比赛异常终止。DERP Trolling 在这次 “追杀” 事件中,采用的是 NTP 反射放大攻击。从记载来看,DERP Trolling 应该是第一个利用 NTP 服务器进行大规模反射放大攻击的黑客组织。这次 “追杀” 事件之后,NTP 反射放大攻击一夜之间变得非常火热。2014 新年的第一周,NTP 反射放大攻击占到了 DDoS 攻击流量的 69%。

(二)阿里云服务器事件


事件描述:阿里云报警检测到异常事件,意味着服务器上开启了 “Chargen/DNS/NTP/SNMP/SSDP” 这些 UDP 端口服务,黑客通过向该 ECS 发送伪造源 IP 和源端口的恶意 UDP 查询包,迫使该 ECS 向受害者发起了 UDP DDOS 攻击。源 IP 为 xx.xx.xx.xx,源 PORT 为 111,目的 PORT 为 963,攻击类型为 SunRPC 反射攻击,扫描 IP 频数为 3,扫描 TCP 包频数为 11480,持续时间(分钟)为 55。解决方案是自查 ECS 中 19、53、123、161、1900 UDP 端口是否处于监听状态,若开启就关闭。再查看 111 端口,若发现异常可通过 kill 命令关闭相关进程。以上只是临时解决办法,实际生产还需要通过指定防火墙规则来过滤才行。如果业务需要启动该 UDP 服务,可以启动并指定防火墙规则来过滤,添加禁止所有规则,添加允许信任源 IP,如使用 iptables 命令进行设置。

(三)UDP 单包攻击测试案例


Supernova 测试仪可以模拟 UDP 单包攻击,每个虚拟用户以最快速度发送 UDPv4 单包攻击,尝试耗尽受测设备资源,以致其瘫痪。工作原理是 UDP 协议是一种无连接协议,传输数据迅速,只要受害目标有使用 UDP 端口,提供相关服务,很容易遭受 UDP 攻击。往往会利用大量的 UDP 小包冲击服务器,将线路上的骨干设备打瘫。测试仪一共可以发送九种类型的 UDP 单包攻击,包括 UDP 多播风暴、UDP 广播风暴攻击、UDP Flood 攻击等。测试拓扑分为网关模式和应用服务模式。在网关模式下,创建 UDPV4 单包攻击用例,配置测试仪端口 IP 地址、参数,查看运行状态,配置防火墙拦截规则,再次运行用例。对预期结果进行验证可通过防火墙信息日志和监控界面,当防火墙开启时,能拦截攻击报文,服务端报文接收数量为 0;关闭阈值监控时,服务端报文接收数量恢复正常。

四、应对策略


(一)技术层面措施
  1. 升级防火墙和路由器:现代防火墙和路由器通常具备一定的抗攻击能力,可以通过升级设备固件和软件,提高其对 UDP 攻击的识别和过滤能力。例如,一些高端防火墙可以根据 UDP 数据包的特征,如源 IP 地址、目的 IP 地址、端口号、数据包大小等,进行深度包检测,过滤掉非法的网络流量。
  1. 过滤非法网络流量:可以在网络关键节点部署流量过滤设备,对来源不明的有害数据进行过滤。例如,根据 UDP 攻击报文的特征,如固定的内容、大小或特定的端口号等,设置过滤规则,将这些恶意数据包拦截在网络之外。据统计,通过有效的流量过滤,可以减轻高达 70% 的 UDP 攻击压力。
  1. 配置 UDP 访问控制:可以根据业务需求,配置 UDP 访问控制规则。例如,只允许特定 IP 地址或 IP 段的设备访问特定的 UDP 服务端口。这样可以有效防止来自非法来源的 UDP 攻击。
  1. 使用高级协议:一些高级协议,如 IPSEC(Internet Protocol Security),可以提供加密和认证功能,增强网络通信的安全性。通过使用这些协议,可以在一定程度上防止 UDP 攻击。
  1. 实时监控网络状态:建立实时的网络监控系统,及时发现 UDP 攻击的迹象。例如,可以通过监控网络流量、服务器负载、连接数等指标,一旦发现异常情况,立即采取相应的应对措施。

(二)代码层面防御


以下是一个用 Python 实现对特定 IP 地址或 IP 段的 UDP 访问控制的代码示例:

 
import socketserver
import ipaddress
# 允许访问的 IP 列表
ALLOWED_IPS = [ipaddress.IPv4Address('192.168.0.0/24')]
class UDPHandler(socketserver.BaseRequestHandler):
def handle(self):
client_ip = self.client_address[0]
if not any(client_ip in ip_network for ip_network in ALLOWED_IPS):
print(f"Rejected UDP packet from {client_ip}")
return
data = self.request[0].strip()
# 在这里处理正常的 UDP 数据包...
print(f"Received UDP packet from {client_ip}: {data}")
if __name__ == "__main__":
with socketserver.UDPServer(("0.0.0.0", 5005), UDPHandler) as server:
server.serve_forever()
通过这段代码,可以有效地控制对 UDP 服务的访问,防止非法的 UDP 数据包进入系统。

(三)其他应对手段

  1. 采用高防服务器:如果 UDP 攻击频繁且强度大,可以考虑采用高防服务器。高防服务器通常具备强大的带宽和专业的防护设备,可以有效地抵御 UDP 攻击。例如,一些高防服务器可以提供高达数 T 的防护带宽,能够应对大规模的 UDP 攻击。
  1. 限制连接数:使用安全产品限制受保护主机的连接数,即每秒访问数量,可以确保受保护主机在网络层处理上不超过负荷。同时,限制客户端发起的连接数,可以有效降低傀儡机的攻击效果。
  1. UDP Flood 防御技术:一般最简单的方法就是不对外开放 UDP 服务。如果必须开放 UDP 服务,则可以根据该服务业务 UDP 最大包长设置 UDP 最大包大小以过滤异常流量。还有一种办法就是建立 UDP 连接规则,要求所有去往该端口的 UDP 包,必须首先与 TCP 端口建立 TCP 连接,然后才能使用 UDP 通讯。
  1. Syn Flood 防御技术:包括 syn cookie/syn proxy 类防护技术、Safereset 技术和 syn 重传技术等。这些技术对所有的 syn 包均主动回应,探测发起 syn 包的源 IP 地址是否真实存在,如果该 IP 地址真实存在,则该 IP 会回应防护设备的探测包,从而建立 TCP 连接。
  1. CC 防御技术:对是否 HTTP Get 的判断,要统计到达每个服务器的每秒钟的 GET 请求数,如果远远超过正常值,就要对 HTTP 协议解码,找出 HTTP Get 及其参数。然后判断某个 GET 请求是来自代理服务器还是恶意请求,并回应一个带 Key 的响应要求,请求发起端作出相应的回馈。如果发起端不响应则说明是利用工具发起的请求,这样 HTTP Get 请求就无法到达服务器,达到防护的效果。

墨者安全 防护盾

墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。

热门文章

X

7x24 小时

免费技术支持

15625276999


-->