常见DDoS攻击
导航: 这里将一个案例事项按照流程进行了整合,这样观察起来比较清晰。部分资料来自于Cloudflare 1.DDoS介绍 2.常用DDoS攻击
|
1.常见攻击类型
1.1 Memcached DDoS攻击
什么是内存缓存DDoS攻击?
内存缓存分布式拒绝服务(DDoS)攻击是一种网络攻击,攻击者试图使目标受害者的网络流量超载。攻击者将欺骗性的请求发送到易受攻击的UDP内存缓存*服务器,该服务器随后向目标受害者发送Internet流量,从而可能使受害者的资源不堪重负。当目标的Internet基础设施过载时,就无法处理新请求,而常规流量也无法访问Internet资源,从而导致拒绝服务。
内存缓存是用于加速网站和网络的数据库缓存系统。
内存缓存攻击的工作原理
内存缓存攻击的工作方式类似于所有DDoS放大攻击,例如NTP放大和DNS放大。这种攻击欺骗性请求发送到易受攻击的服务器,该服务器随后会发出比初始请求大的数据量作为响应,因此放大了流量。
内存缓存放大攻击就好比是一个心怀恶意的青少年打电话给一家餐厅说“我要菜单上的东西每样来一份,请给我回电话并告诉我整个订单的信息”。当餐厅询问回叫号码时,他却给出目标受害者的电话号码。然后,目标会收到来自餐厅的呼叫,接到他们未请求的大量信息。
这种放大攻击的方法之所以成为可能,因为内存缓存服务器可以选择使用UDP协议进行操作。UDP是一种网络协议,允许在不首先获得所谓握手的情况下发送数据 - 握手是指双方都同意通信的网络过程。之所以使用UDP,是因为不用咨询目标主机是否愿意接收数据,无需事先征得它们的同意,就可以将大量数据发送给目标主机。
内存缓存攻击分为4个步骤:
1.攻击者将大量数据有效载荷植入暴露的内存缓存服务器上。
2.接下来,攻击者使用目标受害者的IP地址伪造HTTP GET请求。
3.带有漏洞的内存缓存服务器接收到请求,试图通过响应来提供帮助,因此将大量响应发送到目标。
4.目标服务器或其周围的基础设施无法处理从内存缓存服务器发送的大量数据,因此导致过载和对正常请求拒绝服务。
内存缓存放大攻击的规模可以达到多大?
这种攻击的放大倍数十分惊人;在实践中,有过高达51200倍的放大倍数!这意味着对于15字节的请求,可以发送750kB的响应。这是一个巨大的放大倍数,无法承受如此大量攻击流量的Web资产则面临巨大的安全风险。巨大的放大倍数加上带有漏洞的服务器使内存缓存放大攻击成为攻击者针对各种目标发起 DDoS攻击的主要用例。
如何防护内存缓存攻击?
1.禁用UDP - 对于内存缓存服务器,请确保在不需要时禁用UDP支持。默认情况下,内存缓存启用了UDP支持,这可能会使服务器容易受到攻击。
2.对内存缓存服务器进行防火墙保护 - 通过在内存缓存服务器和Internet之间添加防火墙保护,系统管理员可以根据需要使用UDP,而不必暴露于风险中。
3.防止IP欺骗 - 只要可以伪造IP地址,DDoS攻击就可以利用此漏洞将流量定向到受害者的网络。防止IP欺骗是一个规模较大的解决方案,无法由特定的系统管理员实施,它要求传输提供商禁止源IP地址源自网络外部的任何数据包离开其网络。换句话说,Internet 服务提供商(ISP)之类的公司必须筛选流量,以使离开其网络的数据包不得假装成来自其他地方的其他网络。如果所有主要的传输提供商都实施了这种筛选,基于欺骗的攻击将在一夜之间消失。
4.开发具有减少UDP响应的软件 - 消除放大攻击的另一种方法是去除任何传入请求的放大因素;如果由于UDP请求而发送的响应数据小于或等于初始请求,则放大就不复可能。
1.2 NTP放大攻击
什么是NTP放大攻击?
NTP放大攻击是基于反射的分布式拒绝服务(DDoS)攻击,在这种攻击中,攻击者利用网络时间协议(NTP)服务器功能,发送放大的UDP流量,使目标网络或服务器不堪重负,导致正常流量无法到达目标及其周围基础设施。
NTP放大攻击的工作原理
所有放大攻击都利用攻击者和目标Web资源之间的带宽消耗差异。当许多请求的成本差异被放大时,由此产生的巨大流量可以破坏网络基础设施。通过发送导致大型响应的小型查询,恶意用户可以凭借更少的资源消耗获取更大益。通过让僵尸网络中的每个机器人提出相似的请求使放大倍增,攻击者既可以躲避检测,又会获得攻击流量大幅增加的好处。
DNS洪水攻击与DNS放大攻击不同。DNS放大攻击会反射和放大来自不安全的DNS服务器的流量,以隐藏攻击的来源并提高其有效性。DNS放大攻击使用带宽连接较小的设备向不安全的DNS服务器发出大量请求。设备发出许多较小的请求,形成非常大的DNS记录,但是在发出请求时,攻击者将返回地址伪造为预期受害者的地址。放大使攻击者使用有限的攻击资源即可破坏更大的目标。
NTP放大攻击与DNS放大攻击非常相似,就好比是一个心怀恶意的青少年打电话给一家餐厅说“我要菜单上的东西每样来一份,请给我回电话并告诉我整个订单的信息”。当餐厅询问回叫号码时,他却给出目标受害者的电话号码。然后,目标会收到来自餐厅的呼叫,接到他们未请求的大量信息。
网络时间协议旨在允许联网的设备同步其内部时钟,并在Internet体系结构中发挥重要作用。通过利用在某些NTP服务器上启用的monlist命令,攻击者可以倍增其初始请求流量,从而导致较大的响应。在较旧的设备上,此命令默认为启用状态,并以对NTP服务器的请求的最后600个源IP地址作为响应。来自内存中具有600个地址的服务器的monlist请求将比初始请求大206倍。这意味着拥有1GB Internet流量的攻击者可以进行200 Gb以上的攻击 - 导致的攻击流量大幅增加。
NTP放大攻击可分为四个步骤:
1.攻击者使用僵尸网络将具有欺骗性IP地址的UDP数据包发送到启用了monlist命令的NTP服务器。每个数据包上的欺骗性IP地址指向受害者的真实IP地址。
2.每个UDP数据包使用其monlist命令向NTP服务器发出请求,导致较大的响应。
3.然后,服务器用结果数据响应欺骗性的地址。
4.目标的IP地址接到响应,并且周围的网络基础设施被大量流量淹没,从而导致拒绝服务。
由于攻击流量看似来自有效服务器的正常流量,因此很难在不阻止实际NTP服务器进行正常活动的情况下防护这种攻击流量。由于UDP数据包不需要握手,因此NTP服务器将向目标服务器发送较大的响应,而无需验证请求是否真实。这些条件,加上在默认情况下会发送较大响应的内置命令,使NTP服务器成为DDoS放大攻击的高效反射来源。
如何防护NTP放大攻击?
对于运行网站或服务的个人或公司而言,他们的缓解方案非常有限。这是因为尽管个人服务器可能是攻击目标,但并不是容量耗尽攻击主要作用所在的地方。由于攻击产生的大量流量,服务器周围的基础设施会受到影响。Internet服务提供商(ISP)或其他上游基础设施提供商可能无法处理传入的流量,变得不堪重负。在这种情况下,该ISP可能将所有流量传送到目标受害者的IP地址,保护自己,并使目标的网站离线。除Cloudflare DDoS保护之类的异地保护服务外,缓解策略主要是预防性Internet基础设施解决方案。
禁用monlist - 减少支持monlist命令的NTP服务器的数量。
修补monlist漏洞的一个简单解决方案是禁用该命令。默认情况下,4.2.7 版本之前的所有NTP软件都容易受到攻击。将NTP服务器升级到4.2.7 或更高版本,该命令即被禁用,即可修补漏洞。如果无法升级,则服务器的管理员可遵循US-CERT的说明进行必要的更改。
源IP验证 - 阻止欺骗性数据包离开网络。
由于攻击者的僵尸网络发送的UDP请求必须具有指向受害者IP地址的欺骗性源IP地址,因此,要降低基于UDP的放大攻击的有效性,其关键在于Internet服务提供商(ISP)拒绝任何具有欺骗性IP地址的内部流量。如果有数据包从网络内部发送,但其源地址看似源于网络外部,则可能是欺骗性的数据包,可以将其丢弃。Cloudflare强烈建议所有提供商实施入口筛选,并且会不时联系不知情地参与DDoS攻击(在违反BCP38的情况下)的ISP 并帮助他们意识到漏洞。
禁用NTP服务器上的monlist并在当前允许IP欺骗的网络上实施入口筛选,是在此类攻击到达其预期网络之前阻止攻击的有效方法。
云厂商Cloudflare如何防护NTP放大攻击?
有了正确配置的防火墙和足够的网络容量(除非拥有Cloudflare的规模,否则这总是不足够的),阻止NTP放大攻击等反射攻击就很简单。尽管攻击将针对单个IP地址,但cloudflare的Anycast网络会将所有攻击流量分散到不再造成破坏的地步。Cloudflare能够利用的规模优势,将攻击分配到许多数据中心,平衡负载,从而确保服务永不中断,并且攻击也不会使目标服务器的基础设施不堪重负。在最近六个月的时期内,Cloudflare的DDoS防护系统“Gatebot”检测到 6,329次简单的反射攻击(相当于每 40 分钟一次)。
1.3 DNS放大攻击
什么是DNS放大攻击?
这种DDoS攻击是基于反射的大规模分布式拒绝服务(DDoS)攻击,其中,攻击者利用开放DNS解析器的功能产生大量流量,使目标服务器或网络不堪重负,导致服务器及其周围基础设施无法访问。
DNS放大攻击的工作原理
所有放大攻击都利用攻击者和目标Web资源之间的带宽消耗差异。当许多请求的成本差异被放大时,由此产生的巨大流量可以破坏网络基础设施。通过发送导致大型响应的小型查询,恶意用户可以凭借更少的资源消耗获取更大利益。通过让僵尸网络中的每个机器人提出相似的请求使放大倍增,攻击者既可以躲避检测,又会获得攻击流量大幅增加的好处。
一个DNS放大攻击中的一个机器人就好比是一个心怀恶意的青少年打电话给一家餐厅说“我要菜单上的东西每样来一份,请给我回电话并告诉我整个订单的信息”。当餐厅询问回叫号码时,他却给出目标受害者的电话号码。然后,目标会收到来自餐厅的呼叫,接到他们未请求的大量信息。
由于每个机器人向开放DNS解析器提出请求时都提供欺骗性IP地址,也就是目标受害者的真实源IP地址,目标随后会收到来自DNS解析器的响应。为了产生大量流量,攻击者在构造请求时,会以让DNS解析器产生尽可能大响应为目的。因此,目标接收攻击者的初始流量的放大结果,而其网络则被虚假流量堵塞,导致拒绝服务。
DNS放大可分为四个步骤:
1.攻击者使用受损的端点将有欺骗性IP地址的UDP 数据包发送到DNS重定向器。数据包上的欺骗性地址指向受害者的真实IP地址。
2.每个UDP数据包都向DNS解析器发出请求,通常传递一个参数(例如“ANY”)以接收可能的最大响应。
3.收到请求后,试图通过响应来提供帮助的DNS解析器会向欺骗性IP地址发送较大的响应。
4.目标的IP地址接到响应,并且周围的网络基础设施被大量流量淹没,从而导致拒绝服务。
尽管少量请求不足以导致网络基础设施下线,但是当此序列通过多个请求和DNS解析器进行扩展时,目标接收的数据的放大倍数可能会很大。
如何防护DNS放大攻击?
对于运行网站或服务的个人或公司而言,他们的缓解方案非常有限。这是因为尽管个人服务器可能是攻击目标,但并不是容量耗尽攻击主要作用所在的地方。由于攻击产生的大量流量,服务器周围的基础设施会受到影响。Internet服务提供商(ISP) 或其他上游基础设施提供商可能无法处理传入的流量,变得不堪重负。在这种情况下,该ISP可能将所有流量传送到目标受害者的IP地址,保护自己,并使目标的网站离线。除Cloudflare DDoS保护之类的异地保护服务外,缓解策略主要是预防性Internet基础设施解决方案。
减少开放DNS解析器的总数:DNS放大攻击的一个重要组成部分是对开放DNS解析器的访问权限。如果Internet上有配置不当的DNS解析器,那么攻击者仅仅需要找到这种DNS解析器即可利用。理想情况下,DNS解析器应仅向源自受信任域名的设备提供服务。对于基于反射的攻击,开放DNS解析器将响应Internet上任何位置的查询,因此有可能被利用。限制DNS解析器,使其仅响应来自受信任来源的查询,即可使服务器无法被用于任何类型的放大攻击。
源IP验证 - 阻止欺骗性数据包离开网络:由于攻击者的僵尸网络发送的UDP请求必须具有指向受害者IP地址的欺骗性源IP地址,因此,要降低基于UDP的放大攻击的有效性,其关键在于Internet服务提供商(ISP)拒绝任何具有欺骗性IP地址的内部流量。如果有数据包从网络内部发送,但其源地址看似源于网络外部,则可能是欺骗性的数据包,可以将其丢弃。Cloudflare 强烈建议所有提供商实施入口筛选,并且会不时联系不知情地参与DDoS攻击的 ISP 并帮助他们意识到漏洞。
1.4 SSDP攻击
什么是SSDP DDoS攻击?
简单服务发现协议(SSDP)攻击是一种基于反射的分布式拒绝服务(DDoS)攻击,它利用通用即插即用(UPnP)网络协议将放大的流量发送给目标受害者,使目标的基础设施不堪重负并使它们的Web资源脱机。
这是一个免费工具,可检查您的公共IP是否具有暴露的SSDP设备:https://badupnp.benjojo.co.uk/
SSDP攻击的工作原理
在正常情况下,SSDP协议用于允许UPnP设备向网络上的其他设备广播其存在。例如,当UPnP打印机连接到典型网络时,在它收到IP地址之后,该打印机能够通过将消息发送到称为多播地址的特殊IP地址,以向网络上的计算机通告其服务。然后,多播地址将新打印机的存在告知网络上的所有计算机。一旦计算机收到有关打印机的发现消息,它就会向打印机发出请求,要求打印机完整描述其服务。然后,打印机将发出其提供的所有内容的完整列表来直接响应该计算机。SSDP 攻击通过要求设备响应目标受害者来利用最终步骤的服务请求。
下面是典型的SSDP DDoS攻击的6个步骤:
1.首先,攻击者进行扫描,寻找可以用作放大因子的即插即用设备。
2.攻击者发现联网设备后,创建所有发出响应的设备的列表。
3.攻击者使用目标受害者的欺骗性IP地址创建UDP 数据包。
4.然后,攻击者使用僵尸网络通过设置某些标志(比如ssdp:rootdevice或ssdp:all),向每个即插即用设备发送一个欺骗性发现数据包,并请求尽可能多的数据。
5.结果,每个设备都会向目标受害者发送回复,其数据量最多达到攻击者请求的30倍。
6.然后,目标从所有设备接收大量流量,因此不堪重负,可能导致对正常流量拒绝服务。
如何防护SSDP攻击?
对于网络管理员,一个关键的防护措施是在防火墙的1900端口阻止传入UDP流量。如果流量不足以使网络基础设施不堪重负,则从此端口筛选流量可能能够防护这种攻击。要深入了解SSDP攻击和更多缓解策略,请探索有关SSDP攻击的技术详情。
您是否想知道您是否有可用于DDoS攻击的带有漏洞的SSDP服务?如前所述,我们创建了一个免费工具来检查您的公共IP是否有暴露的SSDP设备。要检查SSDP DDoS漏洞,可以使用此免费工具。
1.5 慢速攻击
什么是低速缓慢攻击?
低速缓慢攻击是DoS或DDoS攻击的一种,依赖一小串非常慢的流量,可以针对应用程序或服务器资源发起攻击。与更传统的蛮力攻击相比,低速缓慢攻击所需的带宽非常小,并且难以防护,因为它们生成的流量很难与正常流量区分开。由于不需要很多资源就能发起,使用一台计算机就可以成功发起低速缓慢攻击。用于发动低速缓慢攻击的两个最受欢迎的工具是 Slowloris和R.U.D.Y.。
低速缓慢攻击的工作原理
低速缓慢攻击以基于线程的Web服务器为目标,旨在通过慢速请求捆绑每个线程,从而阻止真正的用户访问服务。在攻击时,需要非常缓慢地传输数据,但传输速度又足够快以防止服务器超时。想象有一座四车道桥梁,每个车道都有收费站。司机在收费站处停车,交出钞票或几枚硬币,然后过桥,即可为下一个司机腾出车道。现在想象一下,有四个驾驶员同时出现并占据了所有开放的车道,而他们每个人都慢慢地将小额硬币交给收费站操作员,一次交一枚硬币,堵塞所有可用车道数小时,并阻止其他驾驶员通过。这种令人丧气的情况就与低速缓慢攻击的工作原理非常相似。
攻击者可以使用HTTP标头、HTTP发布请求或TCP流量进行低速缓慢攻击。以下是3个常见的攻击示例:
-
- Slowloris工具连接到服务器,然后缓慢发送部分HTTP标头。这将导致服务器保持连接打开状态以便接收其余的标头,这样就会将线程捆绑起来。
- 另一个名为 R.U.D.Y.(死亡之子)的工具会生成HTTP发布请求以填写表单字段。它告诉服务器将发送多少数据,但随后却非常缓慢地发送数据。服务器保持连接打开,因为它预计还有更多数据。
- 另一种低速缓慢攻击是Sockstress攻击,这种攻击利用TCP/IP三向握手中的漏洞,创建出不确定的连接。
如何停止低速缓慢攻击?
用于阻止传统DDoS攻击的速率检测技术无法在低速缓慢攻击中起作用。防护低速缓慢攻击的一种方法是升级服务器的可用性;服务器可以同时维护的连接越多,攻击就越难阻塞服务器。这种方法的问题在于,攻击者可以尝试扩大攻击范围,以耗尽服务器的可用性。另一个解决方案是基于反向代理的保护,这种方案将在低速缓慢攻击到达您的源站之前进行防护。
1.6 应用程序层攻击
什么是应用程序层DDoS攻击?
应用程序层攻击又称为第7层(L7)DDoS攻击,是指旨在针对OSI模型“顶层”的恶意行为,HTTP GET和HTTP POST等常见Internet请求就发生在这一层。与DNS放大等网络层攻击相比,第7层攻击特别有效,因为它们除了消耗网络资源,还会消耗服务器资源。
应用程序层攻击的工作原理
大多数DDoS攻击的潜在有效性来自发起攻击所需的资源量与吸收或防护攻击所需的资源量之间的差异。尽管第7层攻击也符合这种情况,但这种攻击可以同时影响目标服务器和网络,因此需要更少的总带宽即可达到相同的破坏效果;应用程序层攻击消耗更少的总带宽即可造成更大的破坏。
为了探讨为什么会这样,我们看一下发出请求的客户端和响应请求的服务器之间的相对资源消耗差异。当用户发送登录到在线帐户(例如Gmail帐户)的请求时,用户的计算机必须使用的数据和资源数量很少,并且与检查登录凭据、从数据库加载相关用户数据然后发回包含所请求网页的响应这一过程中消耗的资源数量不成比例。
即使没有登录,多次收到客户端请求的服务器也必须进行数据库查询或其他API调用以生成网页。在许多设备将单个Web资产作为目标(例如在僵尸网络攻击期间)时,这种差异将进一步放大,使目标服务器不堪重负,从而对正常流量拒绝服务。在许多情况下,仅对API发起第7层攻击就足以使服务脱机。
为什么应用程序层 DDoS 攻击难以阻止?
攻击流量和正常流量很难区分,尤其是在应用程序层攻击(例如僵尸网络对受害服务器执行HTTP洪水攻击)的情况下。由于僵尸网络中的每个机器人都发出看似正常的网络请求,因此流量不是欺骗流量,而是来自可能来自“正常”来源的流量。
应用程序层攻击需要一种自适应策略,包括根据特定规则集限制可能会定期波动的流量的能力。正确配置的WAF等工具可以防护传递到源站的虚假通信量,从而大大减少DDoS尝试的影响。
对于其他攻击(例如SYN泛洪)或反射攻击(例如NTP放大),只要网络本身具有足够带宽可以承载,就可以使用策略相当有效地丢弃流量。遗憾的是,大多数网络无法承受300Gbps的放大攻击,而可以正确路由并满足第7层攻击可能产生的大量应用程序层请求的网络更是鲜见。
哪些策略有助于防护应用程序层攻击?
一种方法是对发出网络请求的设备实施质询,以测试它是否属于机器人。这是通过类似于在线创建帐户时常见的CAPTCHA测试的测试完成的。通过提出JavaScript计算挑战之类的要求,可以防护许多攻击。
其他阻止HTTP洪水的途径包括使用Web应用程序防火墙,通过IP信誉数据库以及工程师的实时网络分析来管理和筛选流量。
1.7 第三层攻击
什么是第3层DDoS攻击?
分布式拒绝服务(DDoS)攻击试图用大量数据淹没其目标。DDoS攻击好比高速公路发生交通堵塞,妨碍常规车辆抵达目的地。
第3层DDoS攻击以OSI模型中的第3层(L3)作为攻击目标。与所有DDoS攻击一样,第3层攻击的目的是使程序、服务、计算机或网络的运行变慢或使其崩溃,或者填满容量以使其他任何人都无法接收服务。L3 DDoS攻击通常通过针对网络设备和基础设施来实现。
第3层DDoS攻击与较高层攻击之间存在一些重要区别:
1.第3层攻击针对的是网络层,而不是传输层或应用程序层的进程(第4层和第7层DDoS攻击的目标)
2.第3层攻击不必首先与目标打开TCP连接
3.第3层攻击不以特定端口为目标
什么是OSI模型?
OSI模型是Internet工作原理的概念模型。OSI模型的主要宗旨是帮助人们讨论网络设备和协议,确定哪些协议供哪些软件和硬件使用,并且显示Internet如何运行而与底层硬件无关。
OSI模型将促进Internet运作的不同技术分为多个层面。总共有七层:
OSI模型中的第3层是什么?
OSI第3层称为网络层。第3层包含了造就了互联网络(即Internet)的各种协议和技术。这一层是进行跨网络路由的地方。遍历网络的数据划分为数据包,然后对这些数据包寻址并发送到第3层的目的地。此过程中最重要的协议是Internet协议(IP)。
第3层的协议不会打开连接,确保可靠数据传递或指示目标设备上的哪个服务应使用该数据;这些是第4层流程。第4层涉及使用传输协议,例如TCP和UDP。在没有第4层传输协议的前提下跨网络发送数据包就像在不确保地址正确的情况下(在地址中包括应打开信件的特定人员的姓名,或使用信誉良好的邮政服务)将信件邮寄到某一地址。数据可能会到达,也可能不会。这就是为什么许多第3层协议始终与第4层传输协议结合使用,以确保数据到达正确的位置。
但是,仍然可以通过IP将数据包发送到网络目标,而不使用传输协议。
由于第3层是无连接的,因此第3层DDoS攻击无需通过TCP打开连接或指示端口分配。第3层DDoS攻击的目标是计算机正在运行的网络软件,而不是特定的端口。
第3层使用什么协议?
下方列出了使用最广泛的第3层协议,以及最有可能在DDoS攻击中使用的协议:
-
- IP:Internet协议(IP)路由和寻址数据包,以便它们到达正确的目的地。每个连接到Internet的设备都有一个IP地址,并且IP协议将正确的IP地址附加到各个数据包上,就如在给人写信时注明地址一样。
- IPsec:IPsec是由VPN使用的加密版IP,类似于HTTPS和HTTP之间的区别。
- ICMP:Internet控制消息协议(ICMP)处理错误报告和测试。ICMP是无连接协议,不使用TCP或UDP等传输协议。相反,ICMP数据包仅通过IP发送。开发人员和网络工程师将ICMP用于ping和traceroute功能。通常一次只需要发送一个ICMP数据包。
其他第3层协议包括:
-
- IGMP:Internet组消息协议管理IP多播组,使一个网络中的多个设备可以接收相同的IP流量。
- ARP:地址解析协议仅在单个网络内使用。计算机使用此协议将IP地址映射到网络中的MAC地址(MAC地址是硬连接到每个具有Internet功能的设备中的唯一标识符,就如指纹一般)。
从理论上看,使用这些协议中的任何一种进行攻击都是可能的。ICMP通常用于向服务器发送过多无法响应的ping信号,或利用一个大型ping数据包使接收设备崩溃(这称为“死亡之Ping”)。攻击者可以通过IPsec使用垃圾数据或过大的安全性证书来淹没目标。
不过,并非所有这些协议都能真正用于DDoS攻击,而且硬件更新也杜绝了某些攻击类型的可能性。例如,ARP仅在本地网络内运行,因此攻击者首先需要连接到本地网络,然后才能进行DDoS攻击。而且,无法对现代硬件进行ICMP死亡之Ping攻击,这些硬件会忽略太大的IP数据包。
L3 DDoS攻击如何工作?
与其他类型的DDoS攻击一样,攻击者通过这些协议发送大量垃圾网络流量。操作方法有多种,具体取决于协议。垃圾流量阻碍合法用户的请求,从而减慢对其的响应或将其完全阻止。有时,过多的垃圾数据使目标资源被淹没,造成目标崩溃。
第3层DDoS攻击有哪些著名类型?
尽管其他攻击也有可能,包括仅通过IP的攻击在内,但基于ICMP的攻击最为常见。著名的ICMP攻击包括:
-
- Ping洪水:在Ping洪水DDoS攻击中,攻击者一次向服务器发送数千个甚至数百万个ping请求。
- Smurf攻击:ICMP没有适当的安全保护或验证措施,这使攻击者能够在ICMP请求中伪造IP地址。在Smurf DDoS攻击中,攻击者向数千台服务器发出ping请求,在ping请求中伪造目标的IP地址,从而使响应发往目标,而不是攻击者。大多数现代网络硬件不再容易遭受这种攻击。
- 死亡之Ping:在ICMP死亡之Ping攻击中,攻击者向目标发送超过最大允许大小的ping请求。通向目标的路由器会将ping分段成较小的数据包,以便目标接受它们,但是当它尝试从较小片段重新组合大数据包时,数据包大小将超过最大值,从而使目标崩溃。现代设备不容易遭受这种攻击。
1.8 Smurf攻击(历史性)
什么是Smurf攻击?
Smurf攻击是一种分布式拒绝服务(DDoS)攻击,攻击者尝试使用Internet控制消息协议(ICMP)数据包向目标服务器发起洪水攻击。攻击者使用目标设备的欺骗性IP地址向一个或多个计算机网络发出请求,计算机网络将响应目标服务器,因此会放大初始攻击流量并可能使目标不堪重负,使其无法访问。攻击媒介通常被认为是已解决的漏洞,并且不再普遍存在。
Smurf攻击的工作原理
尽管ICMP数据包可用于DDoS攻击,但通常它们在网络管理中起着重要的作用。利用ICMP数据包的ping应用程序被网络管理员用于测试联网的硬件设备,例如计算机、打印机或路由器。ping通常被用于查看设备是否正常运行,并跟踪消息从源设备到目标再返回源的往返时间。不幸的是,由于ICMP协议不包括握手,因此接收请求的硬件设备无法验证请求是否合法。
这种DDoS攻击就好比一个恶作剧的人打电话给办公室经理,冒充是公司的首席执行官。恶作剧者要求经理让每个员工回电给他的私人号码,说明他们的工作情况。恶作剧者给出的回叫号码是目标受害者的号码,因此受害者随后会收到许多呼叫,办公室里有多少人,就会接到多少次。
Smurf攻击的工作方式:
1.首先,Smurf恶意软件构建一个欺骗性数据包,其源地址设置为目标受害者的真实IP地址。
2.然后,数据包被发送到路由器或防火墙的IP广播地址,后者将请求发送到广播网络内的每个主机设备地址,因此网络上联网设备有多少,就会增加多少个请求。
3.网络中的每个设备都接收来自广播设备的请求,然后使用 ICMP Echo Reply数据包响应目标的欺骗性地址。
4.目标受害者随后收到大量的ICMP Echo Reply数据包,可能会不堪重负,并导致对合法流量拒绝服务。
如何防护Smurf攻击?
多年来,已经针对这种攻击媒介开发了几种防护策略,在很大程度上,这种漏洞利用被视为已得到解决。在数量有限的旧有系统上,可能仍需要应用防护技术。一个简单的解决方案是在每个网络路由器和防火墙上禁用IP广播地址。默认情况下,较旧的路由器可能会启用广播,而较新的路由器可能已将其禁用。
1.9 死亡之ping(历史性)
什么是死亡之Ping攻击?
死亡之Ping攻击是一种拒绝服务(DoS)攻击,攻击者旨在通过发送大于最大允许大小的数据包来破坏目标计算机,从而导致目标计算机冻结或崩溃。原始的死亡之Ping攻击如今并不常见。称为ICMP洪水攻击的相关攻击更为普遍。
死亡之 Ping 如何工作?
Internet控制消息协议(ICMP)回显回复消息或“ping”是用于测试网络连接的网络实用程序,其工作原理类似于声纳 – 发出“脉冲” 而该脉冲发出的“回显”告知操作员有关环境的信息。如果连接正常,则源计算机收到来自目标计算机的回复。
尽管某些ping数据包非常小,但IP4 ping数据包要大得多,并且可以达到65,535 字节的最大允许数据包大小。某些TCP/IP系统从未设计用于处理大于最大值的数据包,从而使其容易受到大于该大小的数据包的攻击。
当恶意大数据包从攻击者传输到该目标时,该数据包将分成多个分段,每个分段均低于最大大小限制。当目标计算机尝试将这些部分一起放回时,总数超出大小限制,并且可能发生缓冲区溢出,从而导致目标计算机冻结、崩溃或重启。
虽然ICMP回显可用于此攻击,但发送IP数据报的任何内容均可用于此漏洞。其中包括 TCP、UDP和 IPX 传输。
如何防护死亡之Ping DDoS攻击?
阻止攻击的一种解决方案是向重组过程添加检查,以确保在数据包重组后不会超出最大数据包大小限制。另一个解决方案是创建具有足够空间来处理超出准则最大值的数据包的内存缓冲区。
原始死亡之Ping攻击大多已经灭绝;1998年后生产的设备通常都会防止此类攻击。部分旧设备可能仍易受攻击。最近发现了针对Microsoft Windows IPv6 数据包的新型死亡之 Ping 攻击,并于 2013 年年中进行修补。
1.10 CLDAP攻击
目前,能百度到的关于CLDAP的DDos反射型攻击的资料比较少,偶然找到一份IEEE于2017年发表的相关论文。现做简单记录如下。
CLDAP简介
CLDAP是由LDAP(轻量目录访问协议)演化而来的,前者不再基于TCP,而是基于UDP。LDAP定义在RFC2251(LDAPv3)中,以TCP字节流的方式进行数据传输,由于其必要的绑定操作和频繁的数据搜索查询会在一定程度上消耗较多的TCP连接资源,IETF在1995年发布了面向无连接的轻量目录访问协议(CLDAP),官方文档为RFC1798(2003年 RFC3352将CLDAP置为历史状态)。
在CLDAP中只提供三种操作:searchRequest、searchResponse (searchResEntry和searchResDone)、abandonRequest,在不提供身份验证功能的情况下,客户端可以使用UDP数据报对LDAP服务器389端口发起操作请求。由于客户端发起searchRequest后服务端将返回searchResEntry和searchResDone两条应答消息,一般情况下执行该操作将具有较小数据包反射出较大数据包的效果。这一缺陷随即被利用进行反射放大DDos攻击,具有瘫痪中小型服务器的能力。
攻击原理
当出于某种目的利用该协议时,攻击者可以将自己的IP伪装成攻击目标IP,并向多个CLDAP服务器发送查询(如下图所示)。当这种情况发生时,服务器不确定查询是否来自正常请求者,也不确定目标IP是否合法;因此,数据请求被发送到多个CLDAP服务器,并且在收到请求时,CLDAP服务器将放大的响应分组发送到攻击目标的IP。
攻击能力及波及范围
2017年1月7日,Akamai观测到并抵御了将 CLDAP 反射用作唯一向量的最大型 DDos攻击,峰值带宽为24Gbps。它的威胁可与使用DNS的DDoS攻击相媲美,并超过了可能导致服务器崩溃的最大值(通常为1Gbps)。
Akamai还进行了一次全互联网扫描,以检测存在CLDAP反射滥用漏洞的主机。扫描结果显示,共有78531个IP存在相应漏洞。其中,数目最多的国家是美国,有17980个,其次是巴西
防御算法设计
针对多种类型DDoS攻击的检测和防御算法
论文中提到,M.Yusof等人提出过一种针对多种类型DDoS攻击的检测和防御算法,分为三步:检测、防御、生成攻击报告。
为减少和防止DDoS攻击,网络上的检测程序是必不可少的。首先,该程序检查所有传入的流量,而不考虑流量类型。如果传入的流量与DDoS相关,则根据DDoS攻击的类型进行检测。基于攻击行为,该算法按以下顺序检测攻击:UDP flooding, TCP SYN flooding, Ping of Death, Smurf。
如果在检测过程中识别出DDoS攻击,则防御过程开始。在此过程中,根据检测到的攻击类型实现阻塞。如果接收到的攻击流量每秒包含超过100个数据包,则防御算法删除该数据包。这样,通过降低传入数据包的速度和控制网络带宽的使用,防御算法只允许正常的通信量接近和进入网络,从而达到保护目的。
最后,记录检测到的DDoS攻击详细情况。根据类型创建报告,对于已确认的DDoS攻击,报告包括五项:DDoS攻击类型、分组大小、严重程度、检测时间和攻击者源。
减少CLDAP放大攻击流量算法
由以上得到启发,韩国的两位学者Suk-June Choi和Jin Kwak(即本论文作者)设计了一种减少CLDAP放大攻击流量的方法。
在检测过程中,要做出两个判断:通过扫描暴露在Internet上的CLDAP服务器的主机,检测是否从可用于攻击的服务器发送了数据包;根据攻击脚本中是否存在签名,来确定是否从CLDAP服务器检测到异常响应分组。如果使用CLDAP的异常数据包进入,则将启动下一防御过程。在防御过程中,测量相关的CLDAP服务器传输的数据包大小。如果攻击流量的放大分组大小超过预先指定的值, 则该过程控制分组带宽。它不断地检查接收到的数据包的大小,直到其在正常范围内。与M.Yusof等人提出的源阻塞方法不同,韩国学者提出的方法是通过控制数据包的带宽来稳定网络并防止CLDAP放大攻击。
最后一个阶段,程序的目标是根据检测到的CLDAP放大攻击来识别风险,并记录有关攻击的信息,内容包括:带宽大小、分组大小、攻击向量、攻击持续时间和源/目的地端口。
流程图如下:
总结与反思
CLDAP服务器用于访问Microsoft Active Directory网络上的用户帐户和密码,DDoS攻击可能会利用这些漏洞。当CLDAP在DDoS放大攻击中也被恶意利用时,高容量攻击有可能造成严重损害,足以瘫痪小到中型服务器。这种CLDAP放大攻击一直在稳步增加,目前,有效的对策仍有待进一步探索与提出。
参考文献
Choi, Suk-June, and Jin Kwak. “A Study on Reduction of DDoS Amplification Attacks in the UDP-Based CLDAP Protocol.” 2017 4th International Conference on Computer Applications and Information Processing Technology (CAIPT) (2017): n. pag. Crossref. Web.
2.洪水攻击
2.1 DNS洪水攻击
什么是DNS洪水?
域名系统(DNS)服务器是Internet的“电话簿”;它们是Internet设备查找特定Web服务器以访问Internet内容的途径。DNS洪水是分布式拒绝服务攻击(DDoS)的一种,攻击者对特定域的DNS服务器发起流量洪水,以图破坏该域的DNS解析。如果用户找不到电话簿,则它将无法查找地址以调用特定资源。通过破坏DNS解析,DNS洪水攻击将损害网站、API或Web应用程序对合法流量的响应能力。DNS洪水攻击可能很难与正常的繁忙流量区分开来,因为大量流量通常来自多个位置,它们查询域中的真实记录,完全模仿合法流量。
DNS洪水攻击的工作原理
域名系统的功能是在易于记忆的名称(例如 example.com)和难以记忆的网站服务器地址(例如192.168.0.1)之间进行转换,因此成功攻击DNS基础设施会使大多数人无法使用Internet。DNS洪水攻击构成了一种相对新型的基于DNS的攻击,随着高带宽物联网 (IoT) 僵尸网络(如Mirai)的兴起而激增。DNS 洪水攻击使用 IP 摄像头、 DVR 盒和其他IoT设备的高带宽连接来直接淹没主要提供商的DNS服务器。来自物联网设备的请求数量使DNS提供商的服务不堪重负,并阻止合法用户访问提供商的DNS服务器。
DNS洪水攻击与DNS放大攻击不同。DNS放大攻击会反射和放大来自不安全的DNS服务器的流量,以隐藏攻击的来源并提高其有效性。DNS放大攻击使用带宽连接较小的设备向不安全的DNS服务器发出大量请求。设备发出许多较小的请求,形成非常大的DNS记录,但是在发出请求时,攻击者将返回地址伪造为预期受害者的地址。放大使攻击者使用有限的攻击资源即可破坏更大的目标。
如何防护DNS洪水攻击?
DNS洪水是传统上基于放大的攻击方法的变更结果。借助易于访问的高带宽僵尸网络,攻击者现在可以针对大型组织发起攻击。在可以更新或更换受损的IoT设备之前,抵御这些攻击的唯一方法是使用大型、高度分散的DNS系统,以实时监视、吸收和阻止攻击流量
2.2 HTTP洪水
什么是HTTP洪水DDoS攻击?
HTTP洪水攻击是一种大规模分布式拒绝服务(DDoS)攻击,旨在利用HTTP请求使目标服务器不堪重负。目标因请求而达到饱和,且无法响应正常流量后,将出现拒绝服务,拒绝来自实际用户的其他请求。
HTTP洪水攻击的工作原理
HTTP洪水攻击是“第 7 层”DDoS 攻击的一种。第7层是OSI模型的应用程序层,指的是HTTP等Internet协议。HTTP是基于浏览器的Internet请求的基础,通常用于加载网页或通过Internet发送表单内容。防护应用程序层攻击特别复杂,因为恶意流量和正常流量很难区分。
为了获得最大效率,恶意行为者通常会利用或创建僵尸网络,以最大程度地扩大攻击的影响。通过利用感染了恶意软件的多台设备,攻击者可以发起大量攻击流量来进行攻击。
HTTP洪水攻击有两种:
1.HTTP GET攻击 - 在这种攻击形式下,多台计算机或其他设备相互协调,向目标服务器发送对图像、文件或其他资产的多个请求。当目标被传入的请求和响应所淹没时,来自正常流量源的其他请求将被拒绝服务。
2.HTTP POST攻击 - 一般而言,在网站上提交表单时,服务器必须处理传入的请求并将数据推送到持久层(通常是数据库)。与发送POST请求所需的处理能力和带宽相比,处理表单数据和运行必要数据库命令的过程相对密集。这种攻击利用相对资源消耗的差异,直接向目标服务器发送许多POST请求,直到目标服务器的容量饱和并拒绝服务为止。
如何防护HTTP洪水攻击?
如前所述,防护第7层攻击非常复杂,而且通常要从多方面进行。一种方法是对发出请求的设备实施质询,以测试它是否属于机器人,这与在线创建帐户时常用的CAPTCHA测试非常相似。通过提出诸如JavaScript计算挑战之类的要求,可以防护许多攻击。
其他阻止HTTP洪水攻击的途径包括使用Web应用程序防火墙 (WAF)、管理 IP 信誉数据库以跟踪和有选择地阻止恶意流量,以及由工程师进行动态分析
2.3 SYN洪水攻击
什么是SYN洪水攻击?
SYN洪水(半开连接攻击)是一种拒绝服务(DDoS)攻击,旨在耗尽可用服务器资源,致使服务器无法传输合法流量。通过重复发送初始连接请求(SYN)数据包,攻击者将可击垮目标服务器计算机上的所有可用端口,导致目标设备在响应合法流量时表现迟钝乃至全无响应。
SYN洪水攻击如何工作?
SYN洪水攻击利用TCP连接的握手过程发动攻击。正常情况下,TCP连接将完成三次握手以建立连接。
1.首先,客户端向服务器发送SYN数据包以发起连接。
2.接着,服务器通过SYN/ACK数据包对该初始数据包做出响应,以便确认通信。
3.最后,客户端返回ACK数据包以确认接到服务器发出的数据包。完成这一系列数据包发送和接收操作后,TCP连接将处于打开状态并且能够发送和接收数据。
为发起拒绝服务攻击,攻击者需利用这样一项事实:收到初始SYN数据包后,服务器将通过一个或多个SYN/ACK数据包做出回响,等待完成握手过程的最后一步。工作方式如下:
1.攻击者通常使用伪造的IP地址向目标服务器发送大量SYN数据包。
2.然后,服务器分别对每一项连接请求做出响应,并确保打开的端口做好接收响应的准备。
3.在服务器等待最后一个ACK数据包(永远不会到达)的过程中,攻击者将继续发送更多SYN 数据包。每当有新的SYN数据包到达,服务器都会临时打开一个新的端口并在一段特定时间内保持连接;用遍所有可用端口后,服务器将无法正常运行。
在网络中,如果服务器连接处于打开状态但另一端的机器连接未打开,则视为半开连接。在此类DDoS攻击中,目标服务器将使连接一直处于打开状态,静待各个连接超时,避免再次开放端口。因此,此类攻击可视为“半开连接攻击”。
恶意用户可通过三种不同方式发起SYN洪水攻击:
1.直接攻击:不伪造IP地址的SYN洪水攻击称为直接攻击。在此类攻击中,攻击者完全不屏蔽其IP地址。由于攻击者使用具有真实IP地址的单一源设备发起攻击,因此很容易发现并清理攻击者。为使目标机器呈现半开状态,黑客将阻止个人机器对服务器的SYN-ACK数据包做出响应。为此,通常采用以下两种方式实现:部署防火墙规则,阻止除SYN数据包以外的各类传出数据包;或者,对传入的所有SYN-ACK数据包进行过滤,防止其到达恶意用户机器。实际上,这种方法很少使用(即便使用过也不多见),因为此类攻击相当容易缓解 – 只需阻止每个恶意系统的IP 地址。哪怕攻击者使用僵尸网络(如Mirai僵尸网络),通常也不会刻意屏蔽受感染设备的IP。
2.欺骗攻击:恶意用户还可以伪造其发送的各个SYN数据包的IP地址,以便阻止缓解措施并加大身份暴露难度。虽然数据包可能经过伪装,但还是可以通过这些数据包追根溯源。此类检测工作很难开展,但并非不可实现;特别是,如果Internet服务提供商(ISP)愿意提供帮助,则更容易实现。
3.分布式攻击(DDoS):如果使用僵尸网络发起攻击,则追溯攻击源头的可能性很低。随着混淆级别的攀升,攻击者可能还会命令每台分布式设备伪造其发送数据包的IP地址。哪怕攻击者使用僵尸网络(如Mirai僵尸网络),通常也不会刻意屏蔽受感染设备的IP。
恶意用户可以通过SYN洪水攻击尝试在目标设备或服务中创建拒绝服务,其流量远低于其他DDoS攻击。SYN攻击不属于容量耗尽攻击,其目的并非使目标周围的网络基础设施达到饱和,只需保证大于目标操作系统的可用积压工作即可。如果攻击者能够确定积压工作规模以及每个连接保持打开状态的时间长度(超出时间将进入超时状态),攻击者将可以找出禁用系统所需的确切参数,从而将创建拒绝服务所需的总流量降至最低。
如何缓解SYN洪水攻击?
SYN洪水漏洞早已为世人所知,而且开创了大量缓解方法。其中一些方法包括:
- 扩展积压工作队列
目标设备安装的每个操作系统都允许具有一定数量的半开连接。若要响应大量SYN数据包,一种方法是增加操作系统允许的最大半开连接数目。为成功扩展最大积压工作,系统必须额外预留内存资源以处理各类新请求。如果系统没有足够的内存,无法应对增加的积压工作队列规模,将对系统性能产生负面影响,但仍然好过拒绝服务。
- 回收最先创建的TCP半开连接
另一种缓解策略是在填充积压工作后覆盖最先创建的半开连接。这项策略要求完全建立合法连接的时间低于恶意SYN数据包填充积压工作的时间。当攻击量增加或积压工作规模小于实际需求时,这项特定的防御措施将不奏效。
- SYN Cookie
此策略要求服务器创建Cookie。为避免在填充积压工作时断开连接,服务器使用SYN-ACK数据包响应每一项连接请求,而后从积压工作中删除SYN请求,同时从内存中删除请求,保证端口保持打开状态并做好重新建立连接的准备。如果连接是合法请求并且已将最后一个ACK数据包从客户端机器发回服务器,服务器将重建(存在一些限制)SYN积压工作队列条目。虽然这项缓解措施势必会丢失一些TCP连接信息,但好过因此导致对合法用户发起拒绝服务攻击。
2.4 ACK洪水攻击
什么是ACK洪水DDoS攻击?
ACK洪水攻击是指攻击者试图用TCP ACK数据包使服务器过载。像其他DDoS攻击一样,ACK洪水的目的是通过使用垃圾数据来减慢攻击目标的速度或使其崩溃,从而导致拒绝向其他用户提供服务。目标服务器被迫处理接收到的每个ACK数据包,消耗太多计算能力,以致无法为合法用户提供服务。
想象一下,一个恶作剧呼叫者用虚假消息填充某人的语音信箱,使真实呼叫者的语音留言无法进入。现在假设,这些虚假消息全部说的是:“嗨,我打电话来是跟你说我已收到你的信息。”这有点像在ACK洪水DDoS攻击中发生的情况。
什么是数据包?
通过Internet发送的所有数据都分割为较小的片段,称为数据包。想象一下,某人想在Twitter上发表一个深入的观点或讲一个长篇故事,不得不将其文本分割成280个字符的片段,并以一系列推文的形式发布,而不是一次性发布全部。对于那些不使用Twitter的人,可以想一下没有专用短信应用的手机如何将长短信文本分成几个较小的部分。
传输控制协议(TCP)是Internet通信的重要组成部分。使用TCP协议发送的数据包在其标头中包含附加的信息。TCP协议使用数据包标头来告诉接收方有多少个数据包以及它们应以什么顺序到达。标头还可以指示数据包的长度和类型等信息。
这有点像给文件夹取名,让人们知道其中的内容。回到Twitter的例子,发布大量推文的人通常会指明该系列中有多少条推文,以及每条推文的编号以帮助读者阅读它们。
ACK数据包隶属于TCP 握手,后者是三个连续的步骤,用于在Internet上任何两个连接的设备之间启动对话(就像现实生活中人们在开始交谈之前通过握手来问候一样)。TCP握手的三个步骤是:
1.SYN
2.SYN ACK
3.ACK
打开连接的设备(比如,用户的笔记本电脑)通过发送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 攻击。
SYN ACK洪水攻击如何工作?
SYN ACK洪水DDoS攻击与ACK攻击略有不同,但基本思路仍然相同:用过多的数据包来压垮目标。
记住TCP三向握手的工作方式:握手的第二步是SYN ACK 数据包。通常,服务器在响应来自客户端设备的SYN数据包时发送此SYN ACK数据包。在SYN ACK DDoS 攻击中,攻击者使大量SYN ACK数据包涌向目标。这些数据包根本不属于三向握手协议的一部分,它们的唯一目的是打断目标的正常运作。
攻击者也有可能在SYN洪水 DDoS 攻击使用 SYN 数据包。
2.5 UDP洪水攻击
什么是UDP洪水攻击?
UDP洪水是一种拒绝服务攻击,攻击者将大量用户数据报协议(UDP) 数据包发送到目标服务器,旨在让该设备的处理和响应能力无力承担。由于UDP洪水攻击,保护目标服务器的防火墙也可能不堪重负,导致对正常流量拒绝服务。
UDP洪水攻击的工作原理
UDP洪水的工作原理主要是利用服务器响应发送到其端口之一的UDP数据包时所采取的步骤。在正常情况下,服务器在特定端口上收到UDP数据包时,将通过以下两个步骤进行响应:
1.服务器首先检查是否有任何当前侦听指定端口请求的程序正在运行。
2.如果该端口上没有程序正在接收数据包,则服务器将以ICMP (ping)数据包作为响应,以告知发送方目标不可达。
UDP洪水就好比酒店接待员转接呼叫的情况。首先,接待员接到电话,呼叫者要求将其连接到特定客房。然后,接待员需要查看所有房间的列表,以确保客人在客房内,并愿意接听电话。如果接待员了解到客人没有接听电话,他们就必须重新接听电话,并告诉呼叫者客人不会接听电话。如果所有电话线路都突然同时发出类似请求,他们很快就会变得不堪重负。
当服务器接收到新的UDP数据包时,它会逐步进行处理,并在此过程中利用服务器资源来处理请求。传输UDP数据包时,每个数据包都将包括源设备的IP地址。在这种类型的DDoS攻击期间,攻击者通常不会使用自己的真实IP地址,而是将伪造UDP数据包的源IP地址,从而避免攻击者的真实位置被暴露,并且由于来自目标服务器的数据包而达到饱和状态。
由于目标服务器利用资源来检查并响应每个接收到的UDP数据包,当收到大量UDP数据包时,目标资源会很快耗尽,从而导致对正常流量拒绝服务。
如何防护UDP洪水攻击?
大多数操作系统限制ICMP数据包的响应速率,部分原因是为了中断需要ICMP响应的DDoS攻击。这种防护措施的一个缺点是,在攻击期间,合法数据包也可能在此过程中被过滤。如果UDP洪水的大小足以使目标服务器的防火墙的状态表饱和,则在服务器级别发生的任何防护都将是不够的,因为瓶颈将发生在目标设备的上游。
2.6 Ping(ICMP)洪水攻击
什么是Ping(ICMP)洪水攻击?
Ping洪水是一种拒绝服务攻击,攻击者试图用ICMP回显请求包使目标设备不堪重负,导致正常流量无法正常访问目标。当攻击流量来自多个设备时,攻击将成为DDoS或分布式拒绝服务攻击。
Ping洪水攻击的工作原理
Ping洪水攻击中会利用Internet控制消息协议(ICMP),后者是网络设备用来通信的Internet层协议。网络诊断工具traceroute和ping 都使用ICMP工作。通常,ICMP回显请求和回显回复消息被用于ping网络设备,以便诊断设备的运行状况和连接性以及发送方和设备之间的连接。
ICMP请求需要一些服务器资源来处理每个请求并发送响应。该请求对于传入消息(回显请求)和传出响应(回显回复)也都需要带宽。Ping洪水攻击旨在利用虚假流量使目标设备无法响应大量请求和/或让网络连接超负荷。通过利用ICMP请求使僵尸网络中的许多设备针对相同的Internet资产或基础设施组件,攻击流量将大大增加,进而可能导致正常网络活动的中断。在以前,攻击者通常会在伪造的IP地址中进行欺骗来掩盖发送设备。借助现代僵尸网络攻击,恶意行为者几乎不需要掩盖机器人IP的需要,而是依靠未伪造的机器人构成的大型网络来使目标的容量达到饱和。
Ping(ICMP)洪水的DDoS形式可分为2个重复步骤:
1.攻击者使用多个设备将许多ICMP回显请求数据包发送到目标服务器。
2.然后目标服务器将ICMP回显回复包发送到每个请求设备的IP地址作为响应。
Ping洪水的破坏效果与对目标服务器发出的请求数量成正比。与基于反射的DDoS攻击(例如NTP放大和DNS放大攻击),Ping洪水的攻击流量是对称的;目标设备接收的带宽量是每个机器人发送的总流量之和。
如何防护Ping洪水攻击?
禁用ping洪水最简单的方法是禁用目标路由器、计算机或其他设备的ICMP功能。网络管理员访问设备的管理界面,并禁用其使用ICMP发送和接收任何请求的能力,即可有效地消除对请求的处理和对回显回复的处理。在此后,所有涉及ICMP的网络活动都会被禁用,设备对ping请求、traceroute请求和其他网络活动无响应。
2.7 QUIC洪水攻击
什么是QUIC协议?
QUIC协议是一种通过Internet发送数据的新方法,它比早期协议更加快速,高效和安全。QUIC属于传输协议,这意味着它会影响数据在Internet上的传输方式。像几乎所有 Internet协议一样,QUIC可以被恶意用来进行DDoS攻击。
以更专业的术语来说,QUIC协议是一种传输层协议,理论上可以取代TCP(一种传输协议)和TLS(一种加密协议)。2019年7月,所有网站中大约 3% 在使用 QUIC,该协议的支持者(包括Cloudflare在内)希望采用率会随着时间流逝而继续上升。HTTP协议的最新版本 HTTP/3 在QUIC的基础上运行。
QUIC协议如何工作?
QUIC协议的目标是比传统的Internet连接更快,更安全。为了提高速度,它使用UDP传输协议,此协议速度比TCP快,但可靠性不如后者。它一次发送多个数据流,以弥补沿途丢失的任何数据,这种技术称为多路复用。
为了提高安全性,通过QUIC发送的所有内容都会自动加密。通常,数据必须通过HTTPS发送数据才会被加密。但是,QUIC将TLS加密构内建到普通的通信过程中。
这种内置加密进一步加快了协议的速度。在典型的HTTPS中,必须在传输层完成三向TCP握手,然后才能开始多步骤TLS握手。完成这一切后,才能在客户端和服务器之间发送任何实际的数据。QUIC组合了这两个握手,使它们一次性全部完成:客户端和服务器确认连接已打开,并同时生成TLS加密密钥。
什么是QUIC洪水?
QUIC洪水DDoS攻击是指攻击者试图通过使用QUIC发送的数据压垮目标服务器以拒绝服务。受害服务器被迫处理它收到的所有QUIC数据,从而减慢对合法用户的服务,并在某些情况下导致服务器完全崩溃。通过QUIC发动的DDoS攻击很难阻止,这是因为:
-
- QUIC使用UDP,为数据包接收方提供的信息非常少,不足以用来阻止数据包
- QUIC对数据包数据进行加密,数据的接收方无法轻易辨别它是否合法
QUIC洪水攻击可以使用多种方法来展开,但QUIC协议特别容易受到基于反射的DDoS 攻击的破坏。
什么是QUIC洪水反射攻击?
在反射式DDoS攻击中,攻击者假冒受害者的IP地址并向多台服务器请求信息。当服务器做出响应时,所有信息将传递给受害者而非攻击者。想象一下,有人恶意用他人的回信地址寄送信件,让后者不得不接收大量不必要的邮件。
使用QUIC协议时,可以通过启动QUIC连接的初始“hello”消息发动进行反射攻击。与TCP连接不同,QUIC 连接打开时服务器不会发送简单的ACK消息。由于 QUIC 将UDP传输协议与TLS加密相结合,因此服务器在对客户端的第一次答复中附带了其TLS证书。这意味着服务器的第一条消息要比客户端的第一条消息大得多。通过假冒受害者的IP地址并向服务器发送“hello”消息,攻击者诱使服务器向受害者发送大量不需要的数据。
为了部分缓解这种类型的攻击,QUIC协议的架构师为初始客户端问候消息设置了最小大小,以使攻击者需要大量带宽才能发送许多虚假客户端问候消息。但是,服务器问候消息仍然大于客户端问候消息,因此仍然有发生这种攻击的可能。
QUIC洪水与UDP洪水是否相似?
UDP洪水是一种DDoS攻击,使用不需要的UDP数据包压垮目标服务器。QUIC使用UDP,但QUIC洪水不一定等同于UDP洪水。
UDP洪水冲垮目标服务器的一种方法是,将伪造的UDP数据包发送到服务器上未实际使用的特定端口。服务器必须使用ICMP错误消息来答复所有数据包,这会占用处理能力并减慢服务器速度。可以使用 QUIC 来进行这种攻击,但对于攻击者来说,纯粹通过UDP进行攻击的成本通常较低,没有生成 QUIC 数据包的额外开销。