TCP SYN 洪水(又名 SYN 洪水)是一种 分布式拒绝服务 ( DDoS ) 攻击,它利用正常 TCP 三向握手的一部分 来消耗目标服务器上的资源并使其无响应。本质上,对于 SYN flood DDoS,攻击者发送 TCP 连接请求的速度比目标机器处理请求的速度快,从而导致网络饱和。,,
攻击描述,当客户端和服务器建立正常的 TCP“三次握手”时,交换看起来像这样:,在 SYN 泛洪攻击中,攻击者向目标服务器上的每个端口重复发送 SYN 数据包,通常使用伪造的 IP 地址。服务器不知道受到攻击,收到多个看似合法的请求以建立通信。它使用来自每个开放端口的 SYN-ACK 数据包响应每次尝试。,恶意客户端要么不发送预期的 ACK,要么(如果 IP 地址被欺骗)从一开始就不会收到 SYN-ACK。无论哪种方式,受到攻击的服务器都会等待一段时间来等待对其 SYN-ACK 数据包的确认。,在此期间,服务器无法通过发送 RST 数据包关闭连接,连接保持打开状态。在连接超时之前,另一个SYN 数据包将到达。这导致越来越多的连接处于半开状态——事实上,SYN 泛洪攻击也被称为“半开”攻击。最终,当服务器的连接溢出表填满时,对合法客户端的服务将被拒绝,服务器甚至可能出现故障或崩溃。,虽然上面描述的“经典”SYN 泛洪试图耗尽网络端口,但 SYN 数据包也可用于DDoS 攻击,这些攻击试图用虚假数据包堵塞您的管道以实现网络饱和。数据包的类型并不重要。尽管如此,SYN 数据包仍经常被使用,因为它们在默认情况下最不可能被拒绝。,
缓解方法,虽然现代操作系统可以更好地管理资源,这使得连接表溢出变得更加困难,但服务器仍然容易受到SYN 洪水攻击。,有许多常用技术可以缓解 SYN 泛洪攻击,包括:,微块——管理员可以在服务器内存中为每个传入的 SYN 请求分配一个微记录(少至 16 字节),而不是一个完整的连接对象。,SYN cookies——使用加密哈希,服务器发送其 SYN-ACK 响应,其中包含一个序列号 (seqno),该序列号由客户端 IP 地址、端口号和可能的其他唯一标识信息构成。当客户端响应时,此哈希包含在 ACK 数据包中。服务器验证 ACK,然后才为连接分配内存。,RST cookies——对于给定客户端的第一个请求,服务器故意发送无效的 SYN-ACK。这应该会导致客户端生成一个 RST 数据包,告诉服务器出了什么问题。如果收到,服务器知道请求是合法的,记录客户端,并接受来自它的后续传入连接。,堆栈调整——管理员可以调整 TCP 堆栈以减轻 SYN 泛洪的影响。这可能涉及减少超时,直到堆栈释放分配给连接的内存,或有选择地丢弃传入连接。,显然,上述所有方法都依赖于目标网络处理大规模流量 DDoS 攻击的能力,其流量为每秒数十G(甚至数百G)。,
,TCP SYN 洪水(又名 SYN 洪水)是一种 分布式拒绝服务 ( DDoS ) 攻击,它利用正常 TCP 三向握手的一部分 来消耗目标服务器上的资源并使其无响应。本质上,对于 SYN flood DDoS,攻击者发送 TCP 连接请求的速度比目标机器处理请求的速度快,从而导致网络饱和。,恶意客户端要么不发送预期的 ACK,要么(如果 IP 地址被欺骗)从一开始就不会收到 SYN-ACK。无论哪种方式,受到攻击的服务器都会等待一段时间来等待对其 SYN-ACK 数据包的确认。,
什么是SYN洪水攻击?
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《什么是SYN洪水攻击?》
文章链接:https://zhuji.vsping.com/339616.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《什么是SYN洪水攻击?》
文章链接:https://zhuji.vsping.com/339616.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。