什么是SYN泛洪攻击 TCP SYN泛洪(又称SYN泛洪)是一种分布式拒绝服务(DDoS)攻击,它利用部分正常的TCP三次握手来消耗目标服务器上的资源并使其无响应。 基本上,使用SYN flood DDoS,黑客利用TCP三次握手的原理,不断请求计算机资源,来达到服务器瘫痪的目的。 DDoS进行TCP攻击具体描述 当客户端和服务器建立正常的TCP“三次握手”时,交换看起来像这样: 客户端通过向服务器发送SYN(同步)消息来请求连接。 服务器通过向客户端发送SYN-ACK(同步 - 确认)消息来确认。 客户端使用ACK(确认)消息进行响应,并建立连接。 在SYN Flood攻击中,攻击者通常使用伪造的IP地址向目标服务器上的每个端口发送重复的SYN数据包。服务器不知道攻击,会收到多个显然是合法的建立通信的请求。它使用来自每个开放端口的SYN-ACK数据包响应每次尝试。 恶意客户端要么不发送预期的ACK,要么 - 如果IP地址被欺骗 - 从不首先接收SYN-ACK。无论哪种方式,受到攻击的服务器都会等待一段时间确认其SYN-ACK数据包。 想了解更多知识请阅读《如何通过PHP进行简单的DDoS防御》 DDoS进行TCP的过程。 在此期间,服务器无法通过发送RST数据包来关闭连接,并且连接保持打开状态。在连接超时之前,另一个SYN数据包将到达。这使得越来越多的连接半开 - 实际上SYN泛洪攻击也被称为“半开”攻击。最终,当服务器的连接溢出表填满时,对合法客户端的服务将被拒绝,服务器甚至可能出现故障或崩溃。 虽然上面描述的“经典”SYN泛洪试图耗尽网络端口,但SYN数据包也可用于DDoS攻击,这些攻击试图用假数据包阻塞管道以实现网络饱和。数据包的类型并不重要。但是,经常使用SYN数据包,因为它们最不可能在默认情况下被拒绝。 缓解方法 虽然现代操作系统更适合管理资源,这使得连接表溢出更加困难,但服务器仍然容易受到SYN泛洪攻击。 有许多常见的技术可以缓解SYN泛洪攻击,包括: Micro blocks -管理员可以为服务器内存中的每个传入SYN请求分配一个微记录(少至16个字节),而不是完整的连接对象。 SYNcookie-使用加密散列,服务器发送其SYN-ACK响应,其序列号(seqno)由客户端IP地址,端口号和可能的其他唯一标识信息构成。当客户端响应时,该哈希包含在ACK包中。服务器验证ACK,然后仅为连接分配内存。 RST cookie- 对于来自给定客户端的第一个请求,服务器故意发送无效的SYN-ACK。这应该导致客户端生成一个RST数据包,告诉服务器出了什么问题。如果收到此消息,则服务器知道请求是合法的,记录客户端,并接受来自它的后续传入连接。 堆栈调整 -管理员可以调整TCP堆栈以减轻SYN泛洪的影响。这可能涉及减少超时,直到堆栈释放分配给连接的内存,或选择性地丢弃传入连接。 显然,所有上述方法都依赖于目标网络处理大规模体积DDoS攻击的能力,其流量以每秒数十千兆比特(甚至数百千兆比特)的速度进行测量。 新睿云抵抗DDoS的高防IP利用大规模的服务器集群来清洗中心网络之间平衡传入的DDoS请求的连接。凭借其强大的硬实力,新睿云可以机房清理能力超过攻击者资源,使DDoS攻击无效。该服务按需扩展构建,提供充足的资源来处理即使是最大的容量DDoS攻击。 为了确保业务连续性,新睿云的过滤算法持续分析传入的SYN请求,使用SYN cookie有选择地将资源分配给合法访问者。这样可以实现透明的DDoS缓解,无需停机,无任何业务中断的延迟。https://www.xinruiyun.cn/ddos/1895.html
|