简介:, SYN Flood是当前最流行的DoS(拒绝服务攻击)与DdoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。,基本原理:,,问题就出在TCP连接的 三次握手中,假设一个用户向服务器发送了SYN 报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到 客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源—-数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃—即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟 客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYN Flood攻击(SYN 洪水攻击)。, , , ,简介:, ,
随着网络犯罪分子利用互联网使用增加的优势,DDoS(分布式拒绝服务)攻击的效力急剧增加。这是一种攻击,其中受害者的服务或网站被攻击者通过恶意流量淹没它而被破坏。在很大程度上,DDoS 数量增加的关键原因与攻击方法的采用增加有关:SYN(同步数据包洪水)攻击。,,以卡巴斯基2019 年和 2020 年的 DDoS 攻击统计为例,在DDoS 攻击类型中,SYN Flood 攻击在 2019 年 Q1 占据了相当大的份额。虽然2020 年 DDoS 攻击类型发生了一些明显的变化, SYN Flood 是榜单上唯一的不动产,但其份额持续增长并触及 92.6% 的最高纪录。,事实证明,超过 80% 的 DDoS 攻击使用 SYN 泛洪方法,这种方法可以造成与 DDoS 攻击相关的所有损害:消费者信任的丧失、收入的损失、财务数据、IP 或客户信息的盗窃,以及软件和硬件损坏。让我们探讨一下什么是 SYN(同步)攻击以及如何防止这种攻击。,SYN Flood攻击又称半开攻击,是一种协议攻击,它利用网络通信中的漏洞,使受害者的服务器对合法请求不可用。通过消耗所有服务器资源,这种类型的攻击甚至可以破坏能够处理数百万个连接的高容量组件。,由于SYN Flood DDoS 攻击利用 TCP 三向握手连接及其在处理半开连接方面的局限性,让我们从正常的 TCP 握手机制如何工作开始,然后继续讨论 SYN 攻击如何干扰连接。,在 SYN 泛洪攻击中,黑客伪装成客户端,以高于受害机器可以处理的速率发送 TCP SYN 连接请求。它是一种资源耗尽型 DoS 攻击。黑客可以通过三种不同的方式进行 SYN 洪水攻击:,, 1. 直接SYN洪水攻击,在这种方法中,黑客使用自己的 IP 地址发起攻击。他向服务器发送多个 SYN 请求。但是,当服务器以 SYN-ACK 响应时,作为确认,他不会以 ACK 响应,而是继续向受害服务器发送新的 SYN 请求。,在服务器等待 ACK 的同时,SYN 报文的到来使服务器资源保留了一定时间,连接会话处于半开状态,最终导致服务器无法正常运行,拒绝合法客户端的请求。,在这种直接攻击方法中,为了确保忽略 SYN/ACK 数据包,黑客会相应地配置防火墙或将流量限制为传出的 SYN 请求。由于黑客使用自己的 IP 地址,因此攻击者更容易被检测到。这种攻击很少使用。, 2. SYN 欺骗攻击,作为避免被检测到的替代方法,恶意攻击从欺骗/伪造的 IP 地址发送 SYN 数据包。服务器收到 SYN 请求后,向伪造的 IP 地址发送 SYN-ACK 并等待响应。由于欺骗源没有发送数据包,因此它们没有响应。,对于这种 SYN Flood 攻击,攻击者会选择未使用的 IP 地址,从而确保系统永远不会响应 SYN-ACK 响应。, 3. DDoS(分布式拒绝服务)SYN攻击,在这种 SYN 泛洪攻击的变种中,受害服务器在攻击者的控制下同时从多台受感染的计算机接收 SYN 数据包。这种被劫持机器的组合称为僵尸网络。,SYN Flood 的脆弱性早已为人所知,因此已经利用了几种 SYN Flood 攻击缓解措施。一些SYN攻击防护如下:,, 1. 增加积压队列,每个操作系统分配一定的内存来保存半开连接作为 SYN 积压。如果达到限制,它将开始断开连接。为了防止 SYN 攻击,我们可以增加 backlog 的限制,以避免拒绝合法连接。, 2. 回收最旧的半开连接,SYN 攻击保护的另一种方法是通过删除最旧的半开连接来重用 SYN 积压的内存。这为新连接创造了空间,并确保在洪水攻击期间系统在一定限度内保持可访问性。这种缓解方法对大容量 SYN Flood DDoS 攻击无效。,...
TCP SYN 洪水(又名 SYN 洪水)是一种 分布式拒绝服务 ( DDoS ) 攻击,它利用正常 TCP 三向握手的一部分 来消耗目标服务器上的资源并使其无响应。本质上,使用 SYN flood DDoS,攻击者发送 TCP 连接请求的速度比目标机器处理它们的速度更快,从而导致网络饱和。,, 攻击描述,当客户端和服务器建立正常的 TCP “三次握手”时,交换看起来像这样:,在 SYN 泛洪攻击中,攻击者经常使用虚假 IP 地址向目标服务器上的每个端口发送重复的 SYN 数据包。服务器在没有意识到攻击的情况下,接收到多个明显合法的建立通信请求。它使用来自每个开放端口的 SYN-ACK 数据包来响应每次尝试。,恶意客户端要么不发送预期的 ACK,要么——如果 IP 地址被欺骗——从一开始就不会收到 SYN-ACK。无论哪种方式,受到攻击的服务器都将等待对其 SYN-ACK 数据包的确认一段时间。,在此期间,服务器无法通过发送 RST 数据包来关闭连接,连接保持打开状态。在连接超时之前,另一个SYN 数据包将到达。这使得越来越多的连接处于半开状态——事实上,SYN 泛洪攻击也被称为“半开”攻击。最终,随着服务器的连接溢出表填满,对合法客户端的服务将被拒绝,服务器甚至可能出现故障或崩溃。,虽然上面描述的“经典”SYN 洪水试图耗尽网络端口,但 SYN 数据包也可用于DDoS 攻击,试图用假数据包堵塞管道以实现网络饱和。数据包的类型并不重要。尽管如此,还是经常使用 SYN 数据包,因为它们在默认情况下被拒绝的可能性最小。,, 缓解方法,尽管现代操作系统能够更好地管理资源,这使得连接表溢出变得更加困难,但服务器仍然容易受到SYN 洪水攻击。,有许多常用技术可以缓解 SYN 洪水攻击,包括:,显然,上述所有方法都依赖于目标网络处理大规模 DDoS 攻击的能力,流量以每秒数十千兆(甚至数百千兆)为单位。Imperva 缓解了 38 天的 SYN 泛洪和 DNS 泛洪 多向量 DDoS 攻击。,,Imperva DDoS 保护 利用 Anycast 技术 来平衡其高性能清理中心全球网络中传入的 DDoS 请求。凭借其全球网络的综合能力,Incapsula 可以经济高效地超过攻击者资源,从而使 DDoS 攻击无效。该服务可按需扩展,提供充足的资源来应对最大规模的 DDoS 攻击。,为确保业务连续性,Imperva 过滤算法不断分析传入的 SYN 请求,使用 SYN cookie 有选择地将资源分配给合法访问者。这实现了透明的 DDoS 缓解,没有停机时间,任何其他业务中断的延迟。, ,TCP SYN 洪水(又名 SYN 洪水)是一种 分布式拒绝服务 ( DDoS ) 攻击,它利用正常 TCP 三向握手的一部分 来消耗目标服务器上的资源并使其无响应。本质上,使用 SYN flood DDoS,攻击者发送 TCP 连接请求的速度比目标机器处理它们的速度更快,从而导致网络饱和。,恶意客户端要么不发送预期的 ACK,要么——如果 IP 地址被欺骗——从一开始就不会收到 SYN-ACK。无论哪种方式,受到攻击的服务器都将等待对其 SYN-ACK 数据包的确认一段时间。,