华为OD技术面真题 - 计算机网络相关 - 4

文章目录

  • [简单介绍一下SYN Flood](#简单介绍一下SYN Flood)
  • [SYN Flood的常见形式](#SYN Flood的常见形式)
  • [如何缓解SYN FLood](#如何缓解SYN FLood)
  • [介绍一下UDP Flood](#介绍一下UDP Flood)
  • [如何缓解UDP Flood](#如何缓解UDP Flood)
  • 简单说说中间人攻击

简单介绍一下SYN Flood

SYN Flood 是互联网上最原始、最经典的 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击之一,旨在耗尽可用服务器资源,致使服务器无法传输合法流量。SYN Flood 本质利用了 TCP 协议的三次握手机制,攻击者通常利用工具或者控制僵尸主机向服务器发送海量的变源 IP 地址或变源端口的 TCP SYN 报文,服务器响应了这些报文后就会生成大量的半连接,当系统资源被耗尽后,服务器将无法提供正常的服务。

SYN Flood的原理

客户端首先发送SYN给服务器端,要求 服务器端做好接收数据的准备;服务器端收到后反馈 SYN-ACK(Synchronization-Acknowledgement) 消息给 客户端,这个消息的目的有两个:

  • 向 客户端 确认已做好接收数据的准备,
  • 同时要求 客户端 也做好接收数据的准备,此时 服务器端 已向 A 确认好接收状态,并等待 A 的确认,连接处于半开状态(Half-Open) ,顾名思义只开了一半;客户端 收到后再次发送 ACK (Acknowledgement) 消息给 服务器端,向 服务器端 确认也做好了接收数据的准备,至此三次握手完成,「连接」就建立了。

服务器端在反馈SYN-ACK之后,此时进入半开状态,服务器端不确定发给客户端的SYN-ACK消息或者客户端反馈的ACK消息是否会丢在半路,所以会给每个待完成的半开连接都设一个Timer ,如果超过时间还没有收到 客户端 的 ACK 消息,则重新发送一次 SYN-ACK 消息给 客户端,直到重试超过一定次数时才会放弃。服务器端维持半开连接会需要分配内核资源,攻击方就是利用大量肉鸡向服务器端发送SYN消息,但不回复ACK,导致内核资源被完全消耗/超过最大限制,从而导致无法建立正常的连接请求。

SYN Flood的常见形式

  • 直接攻击: 不伪造 IP 地址的 SYN 洪水攻击称为直接攻击。在此类攻击中,攻击者完全不屏蔽其 IP 地址。由于攻击者使用具有真实 IP 地址的单一源设备发起攻击,因此很容易发现并清理攻击者。
  • 欺骗攻击: 恶意用户还可以伪造其发送的各个 SYN 数据包的 IP 地址,以便阻止缓解措施并加大身份暴露难度。虽然数据包可能经过伪装,但还是可以通过这些数据包追根溯源。
  • 分布式攻击:如果使用僵尸网络发起攻击,则追溯攻击源头的可能性很低。随着混淆级别的攀升,攻击者可能还会命令每台分布式设备伪造其发送数据包的 IP 地址。

如何缓解SYN FLood

  • 拓展积压队列:每个操作系统都允许具有一定数量的半开连接。若要响应大量 SYN 数据包,一种方法是增加操作系统允许的最大半开连接数目。延迟出现拒绝服务情况的时机
  • 回收最先创建的TCP半开连接:当达到操作系统设置的半开连接数量时,回收/销毁最先创建TCP半开连接,以用来处理最新的TCP连接。海量的攻击,这种方式也不太奏效
  • SYN COOKIE: 服务器 不立即分配资源,把连接信息编码进 SYN-ACK 的序列号里,只有当客户端回 ACK 时,才真正建连接.

介绍一下UDP Flood

UDP Flood 也是一种拒绝服务攻击,将大量的用户数据报协议(UDP )数据包发送到目标服务器,目的是压倒该设备的处理和响应能力。原理:UDP Flood 主要通过利用服务器响应发送到其中一个端口的 UDP 数据包所采取的步骤。在正常情况下,当服务器在特定端口接收到 UDP 数据包时,会经过两个步骤:

  • 服务器首先检查是否正在运行正在侦听指定端口的请求的程序。
  • 如果没有程序在该端口接收数据包,则服务器使用 ICMP(ping)数据包进行响应,以通知发送方目的地不可达。

UDP FLOOD就是利用上面步骤的原理,同时发送大量的UDP数据包(随机端口),服务器没有对应程序就需要反馈ICMP报文,从而导致服务器资源(带宽、CPU等)被耗尽,无法处理正常的UDP报文。

如何缓解UDP Flood

  • 限制UDP服务,不需要使用的端口一定要关。未开端口报文防火墙直接丢弃。
  • 通过防火墙限制UDP接收报文的速率。
  • 限制了 ICMP 报文的响应速率,以中断需要 ICMP 响应的 DDoS攻击。

简单说说中间人攻击

中间人攻击是指攻击者悄悄插入通信双方之间,在双方都"以为在直接通信"的情况下:

  • 窃听通信内容

  • 篡改数据

  • 冒充通信一方

    客户端 <------> 攻击者(中间人) <------> 服务器

常见中间人攻击方式:

  • ARP欺骗:发生区域网中。由于ARP 协议没有认证机制,攻击者伪造 ARP 响应告诉受害者网关 IP 是我的 MAC, 导致受害者所有流量先经过攻击者,从而达成中间人攻击。
  • DNS劫持/欺骗:篡改 DNS 响应,把域名解析到攻击者控制的 IP。从而让受害者访问到假网站
  • HTTP中间人:通过安装恶意根证书,欺骗用户忽略证书警告等手段,直接获取到受害者明文 HTTPS 内容。
相关推荐
liulilittle12 小时前
TCP KCC v1.0(卡尔曼拥塞控制)
linux·服务器·网络·tcp/ip·计算机网络·tcp·通信
梁辰兴15 小时前
计算机网络基础:动态主机配置协议 DHCP
网络·计算机网络·dhcp·计算机网络基础·动态主机配置协议·梁辰兴
梁辰兴17 小时前
计算机网络基础:简单网络管理协议 SNMP
网络·计算机网络·计算机·snmp·计算机网络基础·梁辰兴·简单网络管理协议
liulilittle17 小时前
用户态 TCP 端口转发:对 CUBIC 友好,对 BBR/KCC 收益不大
运维·网络·tcp/ip·计算机网络·信息与通信·tcp·通信
非凡大爹17 小时前
路由信息库 (RIB)、 路由表 (RT)与 转发信息库 / 转发表(FIB)的异同
网络·计算机网络
憧憬成为java架构高手的小白17 小时前
计算机网络管理
服务器·网络·计算机网络
LBJ辉18 小时前
第 4 章 网络层
计算机网络·考研
酉鬼女又兒19 小时前
零基础入门虚拟局域网VLAN:从广播域问题根源到802.1q帧格式、三大端口类型及实战例题全解析
网络·网络协议·计算机网络·网络安全·职场和发展·智能路由器·求职招聘
liulilittle1 天前
关于拥塞控制的几点思考
网络·c++·tcp/ip·计算机网络·信息与通信·tcp·通信
liulilittle1 天前
过冲:拥塞控制的呼吸与盲行
linux·网络·c++·tcp/ip·计算机网络·tcp·通信