UDP Flood攻击「建议收藏」

UDP Flood攻击「建议收藏」本文转载自华为企业互动社区大家好,强叔又来了!上一期,强叔给大家介绍了SYNFlood的攻击和防御,本期强叔将带领大家一起来学习一下另一种常见的流量型攻击:UDPFlood。讲UDPFlood之前,强叔还是先从UDP协议讲起。在讲SYNFlood的时候,我们知道了TCP协议是一种面向连接的传输协议。但是UDP协议与TCP协议不同,UDP是一个无连接协议。使用UDP协议传输数据之前…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本文转载自华为企业互动社区

大家好,强叔又来了!上一期,强叔给大家介绍了SYN Flood的攻击和防御,本期强叔将带领大家一起来学习一下另一种常见的流量型攻击:UDP Flood。

讲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的防御并不能像SYN Flood一样,进行源探测,因为它不建立连接。那应该怎么防御呢?
最初防火墙对UDP Flood的防御方式就是限流,通过限流将链路中的UDP报文控制在合理的带宽范围之内。
防火墙上针对UDP Flood的限流有三种:

  •  基于目的IP地址的限流:即以某个IP地址作为统计对象,对到达这个IP地址的UDP流量进行统计并限流,超过部分丢弃。
  • 基于目的安全区域的限流:即以某个安全区域作为统计对象,对到达这个安全区域的UDP流量进行统计并限流,超过部分丢弃。
  •  基于会话的限流:即对每条UDP会话上的报文速率进行统计,如果会话上的UDP报文速率达到了告警阈值,这条会话就会被锁定,后续命中这条会话的UDP报文都被丢弃。当这条会话连续3秒或者3秒以上没有流量时,防火墙会解锁此会话,后续命中此会话的报文可以继续通过。

限流虽然可以有效缓解链路带宽的压力,但是这种方式简单粗暴,容易对正常业务造成误判。为了解决这个问题,防火墙又进一步推出了针对UDP Flood的指纹学习功能。 

UDP Flood攻击「建议收藏」
UDP Flood的指纹学习功能

仔细分析,不难发现,UDP Flood攻击报文具有一定的特点,这些攻击报文通常都拥有相同的特征字段,比如都包含某一个字符串,或整个报文内容一致。这些字段来自于DDoS工具自带的默认字符串,所以防火墙是通过收集这些字符串来检测UDP Flood。这种防御算法在现网使用很多,主要因为黑客为了加大攻击频率,快速、长时间挤占攻击目标所在网络带宽,在使用攻击工具实现时直接在内存存放一段内容,然后高频发送到攻击目标,所以攻击报文具有很高的相似性。而正常业务的UDP报文一般每个报文负载内容都是不一样的,这样可以减少误判。

从下面的抓包中可以看出,到达相同目的IP地址的两个UDP报文的载荷是完全一样的,如果防火墙收到大量的类似这样的UDP报文,那么就有可能是发生了UDP Flood攻击。
  

UDP Flood攻击「建议收藏」
UDP-Flood攻击-报文1
UDP Flood攻击「建议收藏」
UDP-Flood攻击-报文2

指纹学习是通过分析客户端向服务器发送的UDP报文载荷是否有大量的一致内容,来判定这个UDP报文是否异常。防火墙对到达指定目的地的UDP报文进行统计,当UDP报文达到告警阈值时,开始对UDP报文的指纹进行学习。如果相同的特征频繁出现,就会被学习成指纹,后续命中指纹的报文判定这是攻击报文,作为攻击特征进行过滤。

 

强叔再给大家总结一下,防火墙防御UDP Flood攻击主要有两种方式:限流和指纹学习,两种方式各有利弊。限流方式属于暴力型,可以很快将UDP流量限制在一个合理的范围内,但是不分青红皂白,超过就丢,可能会丢弃一些正常报文;而指纹学习属于理智型,不会随意丢弃报文,但是发生攻击后需要有个指纹学习的过程。目前,指纹学习功能是针对UDP Flood攻击的主流防御手段,在华为防火墙产品中广泛应用。

强叔提问
大家之前有没有配置过防火墙的UDP Flood防御功能?在配置过程中有遇到过什么样的问题吗?

扫描二维码,关注“小眼睛的梦呓”公众号,在手机端查看文章
扫描二维码,关注“清远的梦呓”公众号,在手机端查看文章

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186771.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea永久激活注册码(已测有效)「建议收藏」

    idea永久激活注册码(已测有效),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    205
  • python打包exe的方法

    cxfreeze,pyinstaller,py2exe三种方式cxfreeze最简单,安装后脚本在python_home\Scripts下面执行pythoncxfreeze全路径要打包的py文件 –target-dir

    2022年4月8日
    27
  • shell中if语句_shell脚本if判断

    shell中if语句_shell脚本if判断提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、if语句1.if单分支判断2.if双分支判断3.if多分支判断总结提示:以下是本篇文章正文内容,下面案例可供参考一、if语句1.if单分支判断●当“条件成立”时执行命令序列●否则不执行任合操作语法格式♦if空格条件测试then命令序列fiif加空格加一个条件测试,如果这个条件测试结果为真那么就执行then后面的命令序列,这个命令序列可以是一条命令也可以是多条命令只要条件测试为真,.

    2022年8月18日
    5
  • pytest skipif_pytest不是内部或外部命令

    pytest skipif_pytest不是内部或外部命令前言pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能Skip和xfail:处理那些不会成功的测试用例你可以对那些在某些特定平台上不能运行的测试用

    2022年7月30日
    4
  • Java课程设计源码——学生信息管理系统 SQL「建议收藏」

    Java课程设计源码——学生信息管理系统 SQL「建议收藏」packageshujuku;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;importjava.sql.*;importjavax.swing.table.*;classallstudentextendsJFrameimplementsAct…

    2022年10月15日
    4
  • C语言打印short、long、long long和unsigned类型整数[通俗易懂]

    C语言打印short、long、long long和unsigned类型整数[通俗易懂]要打印unsignedint数字,可以使用%u符号。打印long数值,可以使用%d格式说明符。如果系统的int和long类型具有同样的长度,使用%d就可以打印long数值,但是这会给程序移植到其他系统(这两种数据类型的长度不一样的系统)带来麻烦,所以建议使用%ld打印long数值。在x和o符号前也可以使用l前缀,因此%lx表示以十六进制格式打印长整数,%lo表示

    2022年6月5日
    216

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号