Security ❀ UDP/TCP传输层常见DOS攻击详解

文章目录

  • [1. UDP协议基础](#1. UDP协议基础)
  • [2. UDP Flood](#2. UDP Flood)
    • [2.1. 攻击原理](#2.1. 攻击原理)
    • [2.2. 防护方法](#2.2. 防护方法)
  • [3. TCP三次握手和四次挥手](#3. TCP三次握手和四次挥手)
    • [3.1. 三次握手](#3.1. 三次握手)
    • [3.2. 四次挥手](#3.2. 四次挥手)
  • [4. SYN Flood](#4. SYN Flood)
    • [4.1. 攻击原理](#4.1. 攻击原理)
    • [4.2. 防护方法](#4.2. 防护方法)
  • [5. SYN-ACK Flood](#5. SYN-ACK Flood)
    • [5.1. 攻击原理](#5.1. 攻击原理)
    • [5.2. 防护方法](#5.2. 防护方法)
  • [6. ACK Flood](#6. ACK Flood)
    • [6.1. 攻击原理](#6.1. 攻击原理)
    • [6.2. 防护方法](#6.2. 防护方法)
  • [7. FIN/RST Flood](#7. FIN/RST Flood)
    • [7.1. 攻击原理](#7.1. 攻击原理)
    • [7.2. 防护方法](#7.2. 防护方法)
  • [8. TCP连接耗尽](#8. TCP连接耗尽)
    • [8.1. 攻击原理](#8.1. 攻击原理)
    • [8.2. 防护方法](#8.2. 防护方法)
  • [9. 异常报文](#9. 异常报文)
    • [9.1. 攻击原理](#9.1. 攻击原理)
    • [9.2. 防护方法](#9.2. 防护方法)

1. UDP协议基础

UDP - 用户数据报协议:是一种无连接的四层传输协议,不提供数据的校验机制。当报文成功发送之后不再关心此报文是否完整的到达对端。

可以简单理解为:以牺牲协议安全性为前提,减少了需要传输的内容,UDP报文资源消耗更小,处理和传输速度更快,因此大部分的音频和视频数据均使用UDP协议传输。

2. UDP Flood

2.1. 攻击原理

黑客发送大量UDP协议报文到目标,由于UDP协议无法进行数据校验,因此目标会处理大量UDP报文而占用其业务资源。

2.2. 防护方法

  • 常用端口限速:常见UDP协议,如DNS、NTP、SNMP等协议均有固定端口,可以对其端口进行阈值限速处理,防止流量过大;
  • 特征提取过滤:UDP报文伪造多为工具输出,因此具有一定的特征值,常位于协议包的尾部,因此可以尝试获取UDP协议包载荷的最后几个字节,这个字节数最好为递增值(如1-8内递增变动),还需要注意偏移量。

3. TCP三次握手和四次挥手

3.1. 三次握手

  • SYN:第一次握手,客户端向服务器发起连接请求,报文中设置SYN标志位为1,序号为0;
  • SYN-ACK:第二次握手,服务器收到客户端请求后,向客户端回应报文,报文中设置SYN和ACK标志位为1,序号为0(服务器与客户端的序列号都是自维护递增关系,可以在Next Seq Number字段查看下一个序列号的值),确认序号为客户端的序号+1,即0+1=1;
  • ACK:第三次握手,客户端收到服务器回应的报文后,检查报文中的确认序列号是否正常,如果正确则发送确认报文,确认报文中ACK标志位为1,确认序列号为服务器的序列号+1,即为0+1=1;

    经过上述三次握手之后,TCP连接建立完成。若中间机制存在异常,则会发送RST报文(RST标志位为1)中断TCP连接会话,并重新建立新的连接。

3.2. 四次挥手

  • FIN:TCP断开连接时第一次握手由服务器发起,报文中FIN标和ACK标志位为1,序号为11;
  • ACK:第二次握手,客户端收到服务器发送的FIN报文之后,向服务器发送回应报文,报文中ACK标志位为1,确认序列号为服务器FIN报文中序列号+1,即为11+1=12;
  • FIN:第三次握手,此时客户端也需要关闭与服务器的连接,客户端向服务器发送FIN报文,报文中FIN标和ACK标志位为1,序号为22(服务器与客户端的序列号都是自维护递增关系,可以在Next Seq Number字段查看下一个序列号的值);
  • ACK:第四次握手,服务器收到客户端发送的FIN报文之后,向客户端发送回应报文,报文中ACK标志位为1,确认序列号为客户端FIN报文中序列号+1,即为22+1=23;

4. SYN Flood

4.1. 攻击原理

攻击者利用攻击或操纵僵尸网络主机发送大量TCP SYN报文,当服务器回应SYN-ACK报文后,攻击者不再回应ACK,导致三次握手连接无法建立,因此服务器上会残留大量的TCP半连接,导致其服务资源的浪费。

4.2. 防护方法

  • 基本源认证:当流量触发防护阈值时,新的SYN报文被防护设备拦截,防护设备向客户端发送一个SYN-ACK报文, 其携带了错误的ACK Seq,真实客户端收到了带错误的序号报文,会RST当前连接,重新发起新的连接,防护设备若收到此IP的RST报文,则对IP加白即可。
  • 高级源认证:与基本源认证不同的是,高级源认证发送的是正常的SYN-ACK报文,只不过连接的超时时间比TCP连接更加短,在限定时间内无法收到ACK时则断开此链接,不再进行多余的等待;
  • 首包丢弃:防护设备丢弃第一个SYN报文并且同时记录其报文的三元组信息,此时会触发TCP重传机制,当新的SYN报文匹配到已保存的三元组后进行加白即可。

5. SYN-ACK Flood

5.1. 攻击原理

在TCP连接中,SYN-ACK报文是用来确认第一次握手的机制,如果攻击者利用工具或者操纵僵尸主机发送大量SYN-ACK报文到目标机器,目标会首先判断该报文是否属于当前正在建立的三次握手范畴内,不属于的话会直接发送RST报文中断此次连接,目标机器忙于发送大量的RST报文而导致资源消耗。

5.2. 防护方法

  • 反向确认法:当流量触发防护阈值时,收到SYN-ACK报文时会记录其三元组信息,进行反向SYN连接探测,若源头做出响应,直接进行RST并将IP加白,反之无响应时则判断为虚假源。

6. ACK Flood

6.1. 攻击原理

在TCP连接中,ACK报文出现在第三次握手,用来确认第二次的SYN-ACK报文,攻击者利用工具或者操纵僵尸主机发送大量ACK报文,服务器忙于处理这些凭空出现的ACK报文而导致资源耗尽。

6.2. 防护方法

  • 会话匹配模式:对ACK进行会话检查,如果ACK报文没有命中会话,则以此ACK报文的三元组信息建立会话进行存储,后续ACK报文进行会话检查,若命中会话则继续检查报文的序列号Seq Number,正确则放过,反之丢弃;
  • 加强会话模式:不允许第一个ACK报文通过创建会话,只校验完成TCP三次握手的会话,没有命中的ACK均被丢弃,在引流场景下可能存在来回路径不一致问题(请求被代理,响应不过代理),会影响到因为转发的ACK报文。

7. FIN/RST Flood

7.1. 攻击原理

在TCP连接中,FIN和RST报文均用来关闭TCP连接,这两种报文仍然会被大量伪造用来消耗服务器资源。

7.2. 防护方法

  • 会话匹配模式:若会话由SYN或SYN-ACK建立,则允许FIN/RST通过;若会话由其他报文创建,则检查报文内序列号,正确则通过,反之丢弃。

8. TCP连接耗尽

8.1. 攻击原理

攻击者利用僵尸机器大量创建TCP连接,当连接建立完成后

  • 立即发送FIN或RST断开连接,同时快速发起新的连接,重复进行操作即可消耗服务器系统资源;
  • 攻击者发送很少的报文来维持连接状态,以消耗服务器系统资源。

8.2. 防护方法

  • 连接数监控:防护设备可以设置TCP连接速率,当受保护的TCP目标新建了连接,针对源IP进行统计,若某个IP在指定的时间内发起的TCP新建连接数超过了设置阈值,则进行拉黑操作。
  • 报文数量监控:防护设备监控受保护目标的TCP连接,设置在特定时间内通过报文的数量阈值,若时间段内若低于设置阈值的传输报文数量,则断开此异常TCP连接即可。

9. 异常报文

TCP特殊标志位:

  • URG:置1时表示紧急指针有效;
  • ACK:置1时表示确认序号有效;
  • PSH:置1时表示接收方收到数据段后应该尽快送到应用程序;
  • RST:置1时表示重新建立连接;
  • SYN:置1时表示发起一个连接;
  • FIN:置1时表示发送方完成发送任务,释放连接。

9.1. 攻击原理

TCP协议标志位置1严格遵守协议规范,其不遵循规范的报文即为异常报文。

9.2. 防护方法

监控标志位置1的情况:

  • 六个标志位都为1或0;
  • SYN和FIN同时为1;
  • SYN和RST同时为1;
  • FIN和RST同时为1;
  • 仅FIN为1;
  • 仅PSH为1;
  • 仅URG为1;
  • 带有载荷的SYN和SYN-ACK报文;
  • SYN、RST、FIN为1的分片报文;
    ...
相关推荐
深圳市青牛科技实业有限公司15 分钟前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
Mr.谢尔比1 小时前
电赛入门之软件stm32keil+cubemx
stm32·单片机·嵌入式硬件·mcu·信息与通信·信号处理
LightningJie1 小时前
STM32中ARR(自动重装寄存器)为什么要减1
stm32·单片机·嵌入式硬件
西瓜籽@2 小时前
STM32——毕设基于单片机的多功能节能窗控制系统
stm32·单片机·课程设计
方方怪2 小时前
与IP网络规划相关的知识点
服务器·网络·tcp/ip
远翔调光芯片^138287988724 小时前
远翔升压恒流芯片FP7209X与FP7209M什么区别?做以下应用市场摄影补光灯、便携灯、智能家居(调光)市场、太阳能、车灯、洗墙灯、舞台灯必看!
科技·单片机·智能家居·能源
极客小张5 小时前
基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路
stm32·单片机·嵌入式硬件·mqtt·sqlite·毕业设计·智能充电桩
千天夜6 小时前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
xiaoxiongip6667 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
m0_739312878 小时前
【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)
stm32·单片机·嵌入式硬件