什么是 ACK 泛洪 DDoS 攻击?
ACK 泛洪攻击是指攻击者尝试使用TCP ACK 数据包使服务器过载。与其他DDoS 攻击一样,ACK 洪水的目标是通过使用垃圾数据减慢或崩溃目标来拒绝向其他用户提供服务。目标服务器必须处理收到的每个 ACK 数据包,这会占用大量计算能力,无法为合法用户提供服务。
想象一个恶作剧的来电者用假消息填满某人的语音信箱,这样来自真实来电者的语音邮件就无法通过。现在想象这些假消息中的每一条都说:“嗨,我打电话是说我收到了你的消息。” 这有点像 ACK 泛洪 DDoS 攻击中发生的情况。
什么是数据包?
通过 Internet 发送的所有数据都被分解为称为数据包的更小段。想想当有人想在 Twitter 上提出一个深入的观点或讲述一个长篇故事时,他们必须将他们的文本分成 280 个字符的部分,然后在一系列推文中发布,而不是一次发布。对于那些不使用 Twitter 的人,想想没有专门的短信应用程序的手机是如何将长 SMS 文本消息分解成更小的部分的。
传输控制协议 (TCP) 是 Internet 通信的重要组成部分。使用 TCP 协议发送的数据包在数据包标头中附加了信息。TCP 协议使用数据包头来告诉接收者有多少数据包以及它们应该以什么顺序到达。标头还可以指示数据包的长度、数据包的类型等。
这有点像命名文件夹以便人们知道其中的内容。回到 Twitter 的例子,发布一长串推文的人通常会指出该系列推文的总数和每条推文的编号,以帮助读者跟进。
什么是ACK包?
ACK 是“确认”的缩写。ACK 数据包是任何确认接收到一条消息或一系列数据包的 TCP 数据包。ACK 数据包的技术定义是在报头中设置了“ACK”标志的 TCP 数据包。
ACK 数据包是 TCP 握手的一部分,这是一系列三个步骤,可在 Internet 上的任何两个连接的设备之间开始对话(就像人们在开始对话之前可能在现实生活中通过握手互相问候一样)。TCP握手的三个步骤是:
00001. 视线
00002. 同步确认
00003. 唉
打开连接的设备——比如用户的笔记本电脑——通过发送一个 SYN(“同步”的缩写)数据包来启动三向握手。连接另一端的设备——假设它是一个托管在线购物网站的服务器——回复一个 SYN ACK 数据包。最后,用户的笔记本电脑发送一个ACK包,三向握手完成。此过程可确保两个设备都在线并准备好接收额外的数据包,在此示例中,这些数据包将允许用户加载网站。
然而,这不是唯一一次使用 ACK 数据包。TCP 协议要求连接的设备确认它们已按顺序接收到所有数据包。假设用户访问托管图像的网页。图像被分解成数据包并发送到用户的浏览器。一旦整个图像到达,用户的设备就会向主机服务器发送一个 ACK 数据包,以确认没有一个像素丢失。如果没有这个 ACK 数据包,主机服务器必须再次发送图像。
由于 ACK 数据包是在报头中设置了 ACK 标志的任何 TCP 数据包,因此 ACK 可以是膝上型电脑发送到服务器的不同消息的一部分。如果用户填写表格并向服务器提交数据,膝上型计算机可以将这些数据包之一作为图像的 ACK 数据包。它不需要是一个单独的数据包。
ACK 泛洪攻击是如何工作的?
ACK 泛洪攻击的目标是需要处理收到的每个数据包的设备。防火墙和服务器最有可能成为 ACK 泛滥的目标。负载平衡器、路由器和交换机不易受到这些攻击。
合法和非法 ACK 数据包看起来基本相同,如果不使用内容交付网络 (CDN)过滤掉不必要的 ACK 数据包,则很难阻止 ACK 泛洪。虽然它们看起来很相似,但在 ACK DDoS 攻击中使用的数据包不包含数据包的主要部分,也称为有效载荷。为了看起来合法,它们只需要在 TCP 标头中包含 ACK 标志。
ACK 泛洪是第 4 层(传输层)DDoS 攻击。了解第 4 层和 OSI 模型。
SYN ACK 泛洪攻击如何工作?
SYN ACK Flood DDoS 攻击与 ACK 攻击略有不同,但基本思想仍然相同:用过多的数据包压倒目标。
记住 TCP 三向握手的工作原理:握手的第二步是 SYN ACK 数据包。通常,服务器发送此 SYN ACK 数据包以响应来自客户端设备的 SYN 数据包。在 SYN ACK DDoS 攻击中,攻击者使用 SYN ACK 数据包淹没目标。这些数据包根本不是三向握手的一部分;他们的唯一目的就是破坏目标的正常运作。
攻击者也有可能在SYN 泛洪 DDoS 攻击中使用 SYN 数据包。