DDoS 攻击是在线业务的主要关注点。 根据 Akamai 的 2021年年度安全报告 ,DDoS 攻击总数增加了 179.66%!
这个数字表明,在过去两年中,数量惊人的企业已成为犯罪分子、活动家和黑客出于邪恶原因的目标。 它不仅会拒绝为企业用户提供服务,还会导致昂贵的账单。 一些 DDoS 攻击甚至可能对企业造成经济损失!
从尝试使用基于 ping 命令的 ICMP 回显请求泛洪目标到多向量攻击,DDoS 攻击多年来变得越来越庞大和复杂。 在这篇文章中,我们将了解不同类型的 DDoS 攻击。 以下是不同 DDoS 攻击类型的列表。
应用程序级攻击
DDoS 攻击可以针对特定应用程序或编码错误的网站,以利用其弱点并因此导致整个服务器瘫痪。 WordPress和 Joomla 是可以针对耗尽服务器资源的两个应用程序示例 – RAM、CPU 等。数据库也可以针对旨在利用这些漏洞的 SQL 注入。
然后,由于资源耗尽,耗尽的服务器无法处理合法请求。 存在安全漏洞的网站和应用程序也容易受到想要窃取信息的黑客的攻击。
零日 (0day) DDoS
这是一个标准术语(如 John Doe),用于描述利用新漏洞的攻击。 这些零日 DDoS 漏洞没有补丁或有效的防御机制。
平洪水
作为 ICMP 洪水的演进版本,这种 DDoS 攻击也是特定于应用程序的。 当服务器从一个非常大的源 IP 集合中接收到大量欺骗性的 Ping 数据包时,它就会成为 Ping Flood 攻击的目标。 这种攻击的目标是用 ping 数据包淹没目标,直到它下线。
它旨在消耗网络中的所有可用带宽和资源,直到它完全耗尽并关闭。 这种类型的 DDoS 攻击也不容易检测,因为它很容易类似于合法流量。
IP空攻击
数据包包含 IPv4 标头,其中包含有关正在使用的传输协议的信息。 当攻击者将此字段的值设置为零时,这些数据包可以绕过旨在扫描 TCP、IP 和 ICMP 的安全措施。 当目标服务器尝试处理这些数据包时,它最终会耗尽其资源并重新启动。
CharGEN 洪水
这是一个非常古老的协议,可以用来执行放大的攻击。 CharGEN 放大攻击是通过向运行 CharGEN 的启用互联网的设备发送携带目标欺骗 IP 的小数据包来执行的。 这些对此类设备的欺骗性请求随后用于将 UDP 泛洪作为这些设备的响应发送到目标。
大多数支持 Internet 的打印机、复印机等都默认启用此协议,并可用于执行 CharGEN 攻击。 这可用于在端口 19 上使用 UDP 数据包泛滥目标。当目标尝试理解这些请求时,它将失败。 服务器最终将耗尽其资源并脱机或重新启动。
SNMP 洪水
与 CharGEN 攻击一样,SNMP 也可用于放大攻击。 SNMP 主要用于网络设备。 SNMP 放大攻击是通过向运行 SNMP 的启用 Internet 的设备发送携带目标欺骗 IP 的小数据包来执行的。
这些对此类设备的欺骗性请求随后用于将 UDP 泛洪作为这些设备的响应发送到目标。 但是,与 CHARGEN 和 DNS 攻击相比,SNMP 的放大效应可能更大。 当目标试图理解大量请求时,它最终会耗尽其资源并离线或重新启动。
NTP 洪水
NTP 协议是另一种可公开访问的网络协议。 NTP 放大攻击也可以通过向运行 NTP 的启用互联网的设备发送携带目标欺骗 IP 的小数据包来执行。
这些对此类设备的欺骗性请求随后用于将 UDP 泛洪作为这些设备的响应发送到目标。 当目标试图理解大量请求时,它最终会耗尽其资源并离线或重新启动。
SSDP 洪水
支持 SSDP 的网络设备也可以从 Internet 访问 UPnP,这是生成 SSDP 放大洪水的简单来源。 SSDP放大攻击也是通过向设备发送携带目标欺骗IP的小数据包来进行的。
这些对此类设备的欺骗性请求用于将 UDP 泛洪作为这些设备的响应发送到目标。 当目标试图理解大量请求时,它最终会耗尽其资源并离线或重新启动。
其他放大的 DDoS 攻击
所有放大攻击都使用上述针对 CHARGEN、NTP 等的相同策略。其他 UDP 协议已被确定为执行放大洪水攻击 US CERT 的可能工具有:
- SNMPv2
- 网络BIOS
- QOTD
- BitTorrent
- 什么时候
- 地震网络协议
- Steam 协议
分段 HTTP 泛滥
在这个针对已知漏洞的复杂攻击示例中,具有有效 IP 的 BOT 用于与 Web 服务器建立有效的 HTTP 连接。 然后,机器人将 HTTP 数据包拆分成微小的片段,并在超时之前尽可能慢地发送到目标。 这种方法允许攻击者长时间保持连接活动,而不会警告任何防御机制。
攻击者可以使用一个 BOT 启动多个未检测到的、扩展的和消耗资源的会话。 像 Apache 这样的流行 Web 服务器没有有效的超时机制。 这是一个 DDoS 安全漏洞,一些 BOT 可以利用它来停止 Web 服务。
HTTP 洪水
BOT 的真实 IP 用于避免怀疑。 用于执行攻击的 BOT 数量与此攻击的源 IP 范围相同。 由于 BOT 的 IP 地址没有被欺骗,因此防御机制没有理由标记这些有效的 HTTP 请求。
一个 BOT 可用于发送大量 GET、POST 或其他 HTTP 请求来执行攻击。 可以在 HTTP DDoS 攻击中组合多个机器人,以完全削弱目标服务器。
单会话 HTTP 洪水
攻击者可以利用 HTTP 1.1 中的漏洞从单个 HTTP 会话发送多个请求。 这允许攻击者从少数会话中发送大量请求。 换句话说,攻击者可以绕过 DDoS 防御机制对允许的会话数量的限制。
Single Session HTTP Flood 还针对服务器的资源来触发系统完全关闭或性能不佳。
单一请求 HTTP 泛洪
当防御机制演变为阻止许多传入的数据包时,像 Single Packet HTTP Flood 这样的攻击被设计为避开这些防御的变通方法。 HTTP 洪水的这种演变利用了 HTTP 技术中的另一个漏洞。 通过在一个 HTTP 数据包中屏蔽这些请求,单个 HTTP 会话可以发出多个 HTTP 请求。
该技术通过将数据包速率保持在允许的范围内,允许攻击在耗尽服务器资源的同时保持隐形。
递归 HTTP GET 泛滥
为了使攻击高度成功,它必须尽可能长时间地保持未被发现。 不被发现的最佳方法是在执行另一次攻击时保持在所有限制范围内,从而显示为合法请求。 递归 GET 通过收集页面或图像列表并似乎正在浏览这些页面或图像来自行实现这一点。
这种攻击可以与 HTTP 洪水攻击结合使用,以获得最大的影响。
随机递归 GET 洪水
此攻击是递归 GET 攻击的一种专门构建的变体。 它专为按顺序排列页面的论坛、博客和其他网站而设计。 与递归 GET 一样,它似乎也在浏览页面。 由于页面名称是按顺序排列的,为了保持作为合法用户的外观,它每次使用来自有效页面范围的随机数来发送新的 GET 请求。
随机递归 GET 还旨在通过大量 GET 请求降低其目标的性能,并拒绝对真实用户的访问。
多向量攻击
我们讨论了攻击者将递归 GET 攻击与 HTTP 洪水攻击相结合以放大攻击的影响。 这只是攻击者同时使用两种类型的 DDoS 攻击来针对服务器的一个示例。 攻击还可以结合多种方法,让处理 DDoS 攻击的工程师感到困惑。
这些攻击是最难处理的,并且能够摧毁一些受到最佳保护的服务器和网络。
SYN 洪水
这种攻击利用了客户端、主机和服务器之间的三向 TCP 通信过程的设计。 在这个过程中,客户端通过生成一个 SYN 包来发起一个新的会话。 主机分配并检查这些会话,直到它们被客户端关闭。 为了进行 SYN Flood 攻击,攻击者从欺骗的 IP 地址向目标服务器发送大量 SYN 数据包。
这种攻击一直持续到耗尽服务器的连接表内存——存储和处理这些传入的 SYN 数据包。 结果是服务器由于资源耗尽而无法处理合法请求,直到攻击持续。
SYN-ACK 泛洪
这种 DDoS 攻击利用了三向 TCP 通信过程的第二步。 在此步骤中,侦听主机生成一个 SYN-ACK 数据包以确认传入的 SYN 数据包。 在 SYN-ACK Flood 攻击中,大量伪造的 SYN-ACK 数据包被发送到目标服务器。 当服务器试图处理大量请求时,攻击试图耗尽服务器的资源——它的 RAM、CPU 等。
结果是服务器由于资源耗尽而无法处理合法请求,直到攻击持续。
ACK 和 PUSH ACK 泛洪
在活动的 TCP-SYN 会话期间,ACK 或 PUSH ACK 数据包将信息传送到主机和客户端机器,直到会话结束。 在 ACK & PUSH ACK 洪水攻击期间,大量的欺骗性 ACK 数据包被发送到目标服务器以使其泄气。
由于这些数据包没有与服务器连接列表上的任何会话链接,因此服务器会花费更多资源来处理这些请求。 结果是服务器由于资源耗尽而无法处理合法请求,直到攻击持续。
ACK 分片泛滥
在 ACK & PUSH ACK Flood 攻击的这种带宽消耗版本中使用了分段的 ACK 数据包。 为了执行这种攻击,1500 字节的分段数据包被发送到目标服务器。 这些数据包更容易在未被检测到的情况下到达其目标,因为它们通常不会被路由器在 IP 级别重新组合。
这使得攻击者可以通过路由设备发送少量包含不相关数据的数据包,从而消耗大量带宽。 此攻击通过尝试消耗网络中的所有可用带宽来影响目标网络中的所有服务器。
RST/FIN 洪水
在成功的三向或四向 TCP-SYN 会话后,服务器会交换 RST 或 FIN 数据包以关闭主机和客户端计算机之间的 TCP-SYN 会话。 在 RST 或 FIN Flood 攻击中,目标服务器会收到大量不属于目标服务器上任何会话的欺骗性 RST 或 FIN 数据包。
当服务器试图处理这些无效请求时,攻击试图耗尽服务器的资源——它的 RAM、CPU 等。 结果是服务器由于资源耗尽而无法处理合法请求。
同义IP攻击
为了使服务器宕机,大量携带目标服务器的源 IP 和目标 IP 的 TCP-SYN 数据包被发送到目标服务器。 即使数据包携带目标服务器的源和目标 IP 信息,这些数据也不重要。
Synonymous IP 攻击的目标是耗尽服务器的资源——RAM、CPU 等,因为它试图计算这种异常。 然后,由于资源耗尽,耗尽的服务器无法处理合法请求。
欺骗性会话泛滥
上述一些 DDoS 攻击无法欺骗大多数现代防御机制,但 DDoS 攻击也在不断发展以绕过这些防御。 Fake Session 攻击试图通过携带一个 SYN、多个 ACK 和一个或多个 RST 或 FIN 数据包来伪装有效的 TCP 会话来绕过安全性。
这种攻击可以绕过仅监视网络上传入流量的防御机制。 这些 DDoS 攻击还可能耗尽目标的资源并导致系统完全关闭或系统性能不可接受。
多个 SYN-ACK 欺骗性会话泛滥
此版本的虚假会话攻击包含多个 SYN 和多个 ACK 数据包以及一个或多个 RST 或 FIN 数据包。 多 SYN-ACK 假会话是演进 DDoS 攻击的另一个例子。 它们被更改为绕过依赖非常具体的规则来防止此类攻击的防御机制。
与 Fake Session 攻击一样,这种攻击也可以耗尽目标的资源并导致系统完全关闭或系统性能不可接受。
多个 ACK 欺骗会话泛滥
在这个版本的 Fake Session 中完全跳过了 SYN。 多个 ACK 数据包用于开始和携带攻击。 这些 ACK 包后面跟着一个或多个 RST 或 FIN 包,以完成 TCP 会话的伪装。
与最初的 SYN-Flood 攻击相比,这些攻击往往更成功地保持在雷达之下,因为它们产生的 TCP-SYN 流量较低。 与其来源一样,Multiple ACK Fake Session 攻击也可以耗尽目标的资源并导致系统完全关闭或系统性能不可接受。
会话攻击
为了绕过防御,这种攻击不使用欺骗性 IP,而是使用用于执行攻击的 BOT 的真实 IP 地址。 用于执行攻击的 BOT 数量与此攻击的源 IP 范围相同。 这种攻击是通过在 BOT 和目标服务器之间创建 TCP-SYN 会话来执行的。
然后通过延迟 ACK 数据包延长该会话直到超时。 会话攻击试图通过这些空会话耗尽服务器的资源。 这反过来又会导致系统完全关闭或系统性能无法接受。
滥用应用程序攻击
攻击者首先入侵托管 P2P 服务等高流量应用程序的客户端计算机。 来自这些客户端机器的流量然后被重定向到目标服务器。 目标服务器在尝试接受和协商过多的流量时会耗尽其资源。 在这种情况下,防御机制不会被触发,因为被黑客入侵的客户端机器实际上是在尝试与目标服务器建立有效连接。
在成功将流量重定向到目标后,随着攻击的进行,攻击者会断开网络并变得无法追踪。 滥用应用程序攻击以服务器的资源为目标,并试图将其关闭或破坏其性能。
UDP洪水
顾名思义,在这种类型的 DDoS 攻击中,服务器被 UDP 数据包淹没。 与 TCP 不同,客户端和主机之间没有端到端的通信过程。 这使得防御机制更难识别 UDP Flood 攻击。 大量伪造的 UDP 数据包从大量源 IP 发送到目标服务器以将其关闭。
UDP洪水攻击可以通过在攻击数据包中包含目标服务器的端口和IP地址来针对随机服务器或网络中的特定服务器。 这种攻击的目标是消耗网络中的带宽,直到所有可用带宽都用完为止。
UDP 分片泛滥
这是另一种不易检测到的巧妙掩盖的 DDoS 攻击。 此攻击产生的活动类似于有效流量,并且所有流量都保持在限制范围内。 此版本的 UDP Flood 攻击发送更大但碎片化的数据包,通过发送更少的碎片化 UDP 数据包来耗尽更多带宽。
当目标服务器试图将这些不相关的、伪造的分段 UDP 数据包放在一起时,它会失败。 最终,所有可用资源都用尽,服务器可能会重新启动。
DNS 泛滥
最著名的 DDoS 攻击之一,此版本的 UDP 洪水攻击是特定于应用程序的——在这种情况下是 DNS 服务器。 它也是最难检测和预防的 DDoS 攻击之一。 为了执行,攻击者会发送大量伪造的 DNS 请求数据包,这些数据包看起来与来自大量源 IP 的真实请求没有什么不同。
这使得目标服务器无法区分合法的 DNS 请求和看似合法的 DNS 请求。 在尝试服务所有请求时,服务器会耗尽其资源。 攻击会消耗网络中的所有可用带宽,直到完全耗尽。
网络电话泛滥
此版本的特定于应用程序的 UDP 泛洪针对 VoIP 服务器。 攻击者从一个非常大的源 IP 集发送大量欺骗性的 VoIP 请求数据包。 当 VoIP 服务器充斥着欺骗性请求时,它会在尝试为有效和无效请求提供服务时耗尽所有可用资源。
这会重新启动服务器或对服务器的性能造成影响并耗尽可用带宽。 VoIP 泛洪可以包含固定或随机源 IP。 固定源 IP 地址攻击不易检测,因为它会自我掩饰,看起来与合法流量没有什么不同。
媒体数据泛滥
与 VoIP 洪水一样,服务器也可能受到音频和视频等媒体数据的攻击。 攻击者从一个非常大的源 IP 集合中发送大量的欺骗性媒体数据包。 当服务器充斥着欺骗性媒体数据请求时,它会耗尽所有可用资源和网络带宽来处理这些请求。
除了使用欺骗性媒体数据包攻击服务器之外,这种攻击在其他方面都类似于 VoIP 泛洪。 当它们使用固定源 IP 时,也很难检测到这些攻击,因为这给了它们一个合法的外观。 该攻击旨在消耗网络中所有可用的服务器资源和带宽,直到完全耗尽。
直接 UDP 泛洪
目标服务器受到大量 Non-Spoofed UDP 数据包的攻击。 为了掩盖攻击,攻击者不会欺骗 BOT 的实际 IP 地址。 用于执行攻击的 BOT 数量与此攻击的源 IP 范围相同。 该攻击旨在消耗网络中的所有可用带宽和资源,直到它完全耗尽并关闭。 这种类型的 DDoS 攻击也不容易检测,因为它类似于合法流量。
ICMP 洪水
与 UDP 一样,ICMP 堆栈也没有用于数据交换的端到端过程。 这使得检测 ICMP 洪水攻击变得更加困难。 攻击者从一个非常大的源 IP 集发送大量的欺骗性 ICMP 数据包。 当服务器充斥着大量的欺骗性 ICMP 数据包时,它的资源在尝试处理这些请求时就会耗尽。 这种过载会重新启动服务器或对其性能产生巨大影响。
ICMP 洪水攻击可以通过在数据包中包含目标服务器的端口和 IP 地址来针对随机服务器或网络中的特定服务器。 这种攻击的目标是消耗网络中的带宽,直到它耗尽可用带宽。
ICMP 碎片泛滥
此版本的 ICMP 洪水攻击通过发送更少的碎片 ICMP 数据包来发送更大的数据包以耗尽更多带宽。 当目标服务器试图将这些伪造的、没有关联的碎片化 ICMP 数据包放在一起时,它会失败。 服务器最终耗尽其资源并重新启动。