使用到UDP协议的情况下该如何防护

一、UDP协议概述

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

1.UDP的应用场景

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

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

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

1.UDP Flood攻击

概述:

UDP Flood attack是一种DoS攻击(Denial-of-Service attack,拒绝服务攻击)

它指将大量UDP数据包发送到目标服务器,且速率非常快,通常会造成服务器资源耗尽,无法响应正常的请求,严重时会导致链路拥塞。保护目标服务器的防火墙也可能因 UDP 泛滥而耗尽,从而导致对合法流量的拒绝服务

(1)攻击原理

服务器在特定端口接收到 UDP 数据包时,它会通过两个步骤进行响应:

    1.服务器首先检查是否有程序在侦听该端口的请求
    2.如果没有程序在该端口侦听,则服务器以ICMP (ping) 数据包的格式回复给发送者

因此,对于大量的UDP数据包,服务器将被迫发送多个ICMP数据包,资源很快被耗尽,最终导致其他客户端无法访问它。同时,攻击者还可以欺骗UDP数据包的IP地址,确保过多的ICMP数据包不会返回给他们

(2)攻击判断
UDP洪水攻击有一些特征,可以根据以下特征来判断是否为UDP洪水攻击

    源IP或源端口变化频繁
    大量针对一个端口
    报文负载一般保持不变或具有规律的变化

(3)防御方法

方法一:载荷检查

    1.基于目的IP地址、目的安全区域或会话进行UDP流量统计

    2.当UDP流量超过阈值时,会触发载荷检查,将超过部分丢弃

方法二:指纹学习

    1.指纹由Anti-DDoS设备动态学习生成
    2.当UDP流量超过阈值时,会将攻击报文的一段显著特征学习为指纹
    3.丢弃后续能够与指纹匹配的报文。

方法三:关联TCP类服务防范

原理:

    1.UDP是无连接的协议,无法通过源认证的方法防御UDP洪水攻击
    2.关联TCP业务,UDP业务流量需要通过TCP业务流量认证或控制

步骤:

    1.当UDP业务受到攻击时,对关联的TCP业务强制启动防御
    2.通过关联防御产生TCP白名单,以确定同一源的UDP流量的走向
    3.命中白名单的源的UDP流量允许通过,否则就被丢弃

2.UDP反射放大攻击

UDP反射放大攻击(UDP Reflection Attack)是一种针对网络层的DoS(分布式拒绝服务)攻击方法,这种攻击的基本原理是,攻击者通过向目标主机发送大量的UDP数据包,并在源IP地址中使用反射技术,使得这些数据包被发送回源主机,由于目标主机没有对这些数据包进行任何处理,因此会消耗大量的资源,从而导致服务降级或中断。

(1)攻击原理

1、攻击者首先需要获取目标主机的IP地址和端口号,这可以通过各种手段实现,例如使用字典攻击、暴力破解等方法。

2、攻击者向目标主机发送大量的UDP数据包,这些数据包通常包含随机生成的数据,但也可能是恶意代码,由于UDP协议不提供拥塞控制和流量整形功能,因此这些数据包会被无限制地发送出去。

3、在源IP地址中使用反射技术,反射技术的基本原理是,将数据包发送到一个公共的IP地址(例如224.0.0.251),然后由ICMP Echo请求消息将响应消息发送回源主机,这样一来,数据包就会被发送回源主机,而目标主机并不知道这些数据包是从哪里来的。

4、由于目标主机没有对这些数据包进行任何处理,因此会消耗大量的资源,从而导致服务降级或中断。

(2)攻击防范建议

1、限制UDP端口的使用,只允许受信任的应用程序使用特定的UDP端口,以减少潜在的攻击面。

2、使用TCP协议代替UDP协议,TCP协议提供了拥塞控制和流量整形功能,可以有效地防止UDP反射放大攻击。
3、配置防火墙规则,对于来自未知IP地址的数据包,可以阻止其进入网络,可以设置过滤规则,以防止恶意数据包的传播。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666923.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java仓库进销存商品库存管理系统springboot+vue

库存管理信息系统研究的内容涉及库存管理的全过程,包括入库、出库、退 货、订货、库存统计查询等等。 根据上述工作流程,库存管理系统将包含以下内容 1)登录信息的输入,密码的修改。 2)基本信息的输入,包括…

JavaScript中,try...catch 语句

在JavaScript中,try...catch 语句用于处理运行时错误。这种结构允许你尝试执行可能会失败的代码,如果失败,则执行 catch 块中的代码。 try 块包含你想要尝试执行的代码,而 catch 块包含当 try 块中的代码抛出错误时执行的代码。 …

部门管理的主要内容:从目标设定到团队发展的全面指南

部门管理是指对一个组织机构中的各个部门进行协调、规划和管理的过程。部门管理的主要内容包括以下几个方面:部门目标和职责的规划、部门人员的管理、部门绩效的评估和监控、部门之间的协调和沟通、部门文化和价值观的塑造。下面为大家具体介绍这些内容 1、部门目标…

vue2混入声明组件、交互流程

vue2中可以使用混入,在当前页面中将混入中声明的组件进行注入 写法 父组件声明混入文件: import mixComponent from "/mixins/mixComponent" export default {mixins:[mixComponent] }mixComponent文件定义方式,类似于一个vue文…

自学网安-IIS服务器

部署环境:win2003 配置环境:winxp ip:10.1.1.2 win2003 ip:10.1.1.1 开始安装 双击“应用程序服务器” 双击“Internet 信息服务(IIS)” 勾选万维网服务,确定然后下一步 查看端口号;netstat …

ConcurrentHashMap的使用以及源码分析

一、ConcurrentHashMap? 1.1 存储结构 ConcurrentHashMap是线程安全的HashMap ConcurrentHashMap在JDK1.8中是以CASsynchronized实现的线程安全 CAS:在没有hash冲突时(Node要放在数组上时) synchronized:在出现ha…

Java 日期时间相互转换 格式化输出

Java 日期时间相互转换 格式化输出 package com.zhong.time;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class SimpleDateFormatTest {public static void main(String[] args) throws ParseException {Date date n…

impala与kudu进行集成

文章目录 概要Kudu与Impala整合配置Impala内部表Impala外部表Impala sql操作kuduImpala jdbc操作表如果使用了Hadoop 使用了Kerberos认证,可使用如下方式进行连接。 概要 Impala是一个开源的高效率的SQL查询引擎,用于查询存储在Hadoop分布式文件系统&am…

设计模式1-访问者模式

访问者模式是一种行为设计模式,它允许你定义在对象结构中的元素上进行操作的新操作,而无需修改这些元素的类。这种模式的主要思想是将算法与元素的结构分离开,使得可以在不修改元素结构的情况下定义新的操作。 所谓算法与元素结构分离&#x…

极速上手:使用Jmeter轻松实现N种参数化

参数化的方式: 一、使用用户自定义变量 一种方式:直接在测试计划中添加用户自定义变量 另外一种方式:配置元件——用户自定义变量 示例:用户自定义变量,登录手机号码 在接口请求的时候,进行引用 请求之后&…

32ADC模数转换器&AD单通道&多通道

目录 一.简介 二.逐次逼近法​编辑 三.结构框图 四.小tips (1)转换模式 (2)触发控制 (3)数据对齐 (4)转换时间 (5)校准 (6)硬件电路 五.相关函数 …

vue使用es的reduce方法编译报错Error: Can‘t resolve ‘core-js/modules/es.array.reduce.js‘

哈喽 大家好啊 最近在vue使用es的reduce方法编译报错Error: Cant resolve core-js/modules/es.array.reduce.js 报错如图所示: 解决方案: npm install --save core-js 然后重新编译下将正常了 参考原文: 使用import异步加载语法报错_module not foun…

Android Split APK介绍

文章目录 Split APKSplit APK 详细介绍概念Android App Bundle(AAB)Split APK 的优势动态分发减小安装包大小模块化和渠道分发 Split APK 的类型基于屏幕密度### 基于 CPU 架构基于语言 实现 Split APK Split APK Split APK 是 Android 中一种应用程序安…

SpringBoot实战第二天

今日战报 继续完善用户相关接口开发: 1.完成获取用户信息功能 2.完成更新用户信息功能 3.完成更新用户头像功能 4.完成更新用户密码功能 获取用户信息 接口文档 如接口文档所示,我们需要做的就是从header中的Authorization中读取token,解码…

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 #微信#媒体

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 参考答案如图所示

stable-diffusion | v1-5-pruned.ckpt和v1-5-pruned-emaonly.ckpt的区别

https://github.com/runwayml/stable-diffusion?tabreadme-ov-file#reference-sampling-script 对于 1.5 模型,其中可能包括四部分:标准模型、文本编码器、VAE模型、EMA模型。 标准模型:生成图片的核心模块,潜空间中的前向扩散和…

C语言中那些后知后觉的细节冷知识(二)typedef、死循环、位移、内存访问

系列文章目录 C语言中那些后知后觉的细节冷知识(一)static、const、volatile、数组、宏 C语言中那些后知后觉的细节冷知识(二)typedef、死循环、位移、内存访问 持续更新中… … 文章目录 系列文章目录前言一、typedef二、死循环…

Qt之漂亮的地球

这个画的是一个东西围绕着中心的地球不停的旋转,可以放在界面的中部,增加美感。 展示 界面展示 设计过程 标题在之前的博客有写过,这里不再重复 下面是关于地球旋转的相关 1.资源文件添加 先将相关的资源文件添加,三个图片 2…

【lesson32】MySQL用户管理

文章目录 用户管理介绍用户用户信息创建用户 删除用户修改用户密码数据库的权限给用户授权回收权限 用户管理介绍 用户 用户信息 MySQL中的用户,都存储在系统数据库mysql的user表中 //操作语法 mysql> use mysql; Database changed mysql> select host,use…

微信小程序封装wx.request以及小程序登录

1.封装wx.request const GET GET; const POST POST; const PUT PUT; const FORM FORM; const DELETE DELETE;const baseURL https://alimini.ck9696.com/wxmall; // const baseURL http://192.168.0.17:8601/wxmall; var app getApp(); function request(method, url…