相信所有人都会喜欢运行良好且顺利的事情。而分布式拒绝服务(DDoS)攻击使服务器和数据中心无法响应所有请求。这就是网络犯罪分子继续依赖这些攻击的原因,旨在损害受害者产品和服务的性能和可用性。在本文中,我们将讨论最常见的DDoS攻击类型以及有助于检测它们的技术,以帮助您的开发团队及时进行必要的调整并构建安全且有弹性的Web应用程序。
DDoS攻击的类型和方法
想象一下有人一遍又一遍地拨打您的电话,使用不同的电话号码,也就是说您无法将他们列入黑名单。您可能最终会选择关机。这就是通常DDoS攻击的样子。分布式拒绝服务(DDoS) 攻击是一种旨在使受害者的资源无法使用的协同攻击。DDoS攻击通常针对网站、Web应用程序或API,可以由黑客执行,也可以在连接到互联网的多个受感染设备(僵尸网络)的帮助下执行。一次DDoS攻击可能会持续几分钟、几小时甚至几天。但是,攻击的影响通常不是根据它持续的时间来计算的,而是根据攻击受害者的流量来计算的。迄今为止报告的最大事件之一是微软Microsoft在2022年初阻止的每秒3.47 TB的攻击。他们汇报说那次是针对Microsoft Azure服务的亚洲客户,据报道起源于全球约10000个工作站。
有时,网络犯罪分子发起DDoS攻击只是为了提高他们的黑客技能或因为他们感到无聊。但更多情况下,这些攻击是出于特定原因进行的,包括:
- 赎金——网络犯罪分子可能会发起攻击或威胁这样做,以向受害者勒索金钱或其他利益。此类攻击有时也称为赎金拒绝服务攻击。
- 商业竞争——一些组织可以使用DDoS攻击作为一种不公平竞争的方法,并试图通过损害竞争对手的业务流和声誉来获得优势。
- 黑客主义——精通技术的活动家可能会使用 DDoS 攻击来展示他们对某些企业、政治和社会倡议或公众人物的不满。
- 网络战——被授权的DDoS攻击来破坏敌国的核心在线基础设施或关闭反对派网站。
根据他们的目标和动机,网络犯罪分子使用各种工具进行各种类型的攻击。通常,DDoS攻击通过以下方式执行:
- 利用软件漏洞——黑客可以针对已知和未知的软件漏洞并发送格式错误的数据包以试图破坏受害者的系统。
- 消耗计算或通信资源——攻击者可以发送大量看起来合法的数据包。因此,它们会消耗受害者的网络带宽、CPU或内存,直到目标系统无法再处理来自合法用户的请求。
虽然DDoS攻击没有标准分类,但我们可以将它们简单分为四大类:
种类 | 容量攻击 | 协议攻击 | 应用层攻击 | 0-day攻击 |
测量 | bps每秒传送的比特(bit)数 | pps每秒传送的数据包 | rps每秒传送的请求 | 任意前面类型 |
一般案例 | UDP洪泛,DNS放大攻击,应用滥用 | SYN洪水,ICMP洪水,死亡Ping | HTTP洪水,Slowloris慢速攻击 | 新攻击向量,未发现漏洞 |
让我们仔细看看这些类型的攻击。
1.容量攻击
容量攻击旨在通过大量流量来阻止对受害者资源的访问,通常借助僵尸网络和放大技术。这些攻击的规模通常以每秒比特数 (bps) 来衡量。最常见的容量攻击类型是:
- UDP泛洪——攻击者将使用受害者的源地址伪造的用户数据报协议 (UDP) 数据包发送到随机端口。主机生成大量回复流量并将其发送回受害者。
- DNS放大- 网络犯罪分子破坏和操纵可公开访问的域名系统 (DNS),以用 DNS 响应流量淹没受害者的系统。
- 滥用应用程序攻击——黑客入侵客户端机器,这些机器可以发送大量看似合法的流量,并将该流量重定向到受害者的服务器,耗尽其资源并最终将其关闭。
2020年, 亚马逊AWS遭受了使用无连接轻量级目录访问协议(CLDAP)反射技术执行的2.3TBps的大规模攻击。
2.协议攻击
协议攻击针对不同互联网通信协议工作方式的弱点。通常,此类DDoS攻击的规模以每秒网络数据包数(pps)来衡量。最常见的协议攻击类型是:
- SYN洪水——黑客利用了 TCP 三次握手机制中的一个弱点。客户端向服务器发送一个 SYN 数据包,接收一个 SYN-ACK 数据包,并且永远不会向主机发送一个 ACK 数据包。因此,受害者的服务器会留下大量未完成的 SYN-ACK 请求,并最终崩溃。
- ICMP洪水— 恶意行为者使用大量 Internet 控制消息协议 (ICMP) 请求或 ping,试图耗尽受害者的服务器带宽。
- Ping of death(死亡Ping)——黑客使用简单的 ping 命令发送超大数据包,导致受害者的系统冻结或崩溃。
3.应用层攻击
应用程序攻击利用6级和7级协议栈中的弱点,针对特定应用程序而不是整个服务器。此类DDoS攻击的威力通常以每秒请求数来衡量。应用层攻击通常针对常见的端口和服务,例如DNS或HTTP。最常见的应用程序级攻击是:
- HTTP泛滥——攻击者使用僵尸网络向应用程序或Web服务器充斥大量标准GET和POST请求。由于这些请求通常表现为合法流量,因此检测HTTP泛洪攻击是一个相当大的挑战。
- Slowloris——顾名思义,Slowloris缓慢地使受害者的服务器崩溃。攻击者以定时间隔和小部分向受害者的服务器发送HTTP请求。服务器一直在等待这些请求完成,而这永远不会发生。最终,这些未完成的请求会耗尽受害者的带宽,使合法用户无法访问服务器。
根据Cloudflare最近的一份声明,在今年,一项未命名的加密货币服务遭到每秒1530万次请求的攻击。
4.0-day攻击
除了众所周知的攻击之外,还有所谓的零日DDoS 攻击。他们利用尚未修补的以前未知的软件漏洞或使用不常见的攻击媒介,因此更难以检测和保护。现在让我们谈谈检测 DDoS 攻击的方法。
检测DDoS攻击
虽然完全阻止DDoS攻击是不可能的,但有一些有效的做法和方法可以帮助您检测和阻止已经发生的DDoS攻击。下面,我们列出了几种最常见的 DDoS 保护方法,您可以依靠它来检测攻击并保护您的产品或服务。
异常检测
检测潜在DDoS攻击的一种方法是分析网络流量并将流量模式分类为正常或潜在威胁。您可以借助传统的静态分析或更复杂的技术(如机器学习和人工智能)来做到这一点。除了网络流量分析之外,您还可以搜索其他网络性能因素中的异常情况,例如设备CPU利用率或带宽使用情况。
基于经验的方法
您还可以通过将流量与已知攻击的特定模式进行比较来检测类似DDoS的活动。常见的DDoS防护技术包括签名分析、状态转换分析、专家系统、描述脚本和自组织图。
ACL和防火墙
除了入口/出口流量过滤之外,您还可以使用访问控制列表(ACL)和防火墙规则来增强流量可见性。特别是,您可以分析ACL日志以了解通过您的网络运行的流量类型。您还可以配置您的Web应用程序防火墙,以根据特定规则、签名和模式阻止可疑的进入流量。
入侵防御和检测
入侵防御系统(IPS)和入侵检测系统(IDS)也增强了流量可见性。IPS和IDS警报可作为异常和潜在恶意流量的早期指标。但请记住,这些系统往往会提供很多误报。至于处理可能涉及 DDoS 攻击的流量的方法,我们可以概述三种常见策略:
- 空路由
- 清洗中心
- 内链过滤DDoS缓解方法
具体又是怎样呢?
- 空路由或黑洞路由- 所有流量和会话都被重定向到没有最终目的地的 IP 地址。结果,服务器无法接收或发送数据。一旦 DDoS 攻击结束,就会恢复正常的流量处理。虽然这种方法很容易实施,但它会对所有合法流量产生负面影响,并
- 且基本上可以帮助攻击者实现他们的初始目标——使受害者的服务器不可用。
- 清理中心——这种方法基于将流量从受害服务器重定向到远程清理中心,在该中心对流量进行分析和过滤。任何具有潜在危险的流量(例如DDoS请求)都会被阻止,而合法请求则会照常处理。
- 内联过滤——在这种方法中,通过网络的所有流量都经过分析,并与不同的规则和攻击指标进行比较。与已识别的DDoS攻击相关的流量会立即被阻止,而合法请求会得到正常处理。
- 特定方法和技术的选择将取决于特定服务或解决方案的特性。但是,确保及早发现DDoS攻击对于任何项目都至关重要,因为它可以帮助您显着减轻攻击的后果并保持服务或解决方案的正常性能。
在接下来的部分中,我们将讨论您可以尝试防止DDoS攻击的几种方法,并概述针对您的Web应用程序或服务的某些类型的DDoS保护措施。
构建抗DDoS弹性应用程序的最佳实践
老生常谈,预防胜于治疗。因此,在开始构建之前,请考虑如何确保Web应用程序或服务的DDoS抗性。
1.应用DDoS防御机制
即使您无法阻止DDoS攻击的发生,您也有能力让攻击者更难关闭您的网站或应用程序。这就是DDoS攻击预防技术发挥作用的地方。您可以使用两组 DDoS 预防机制:
-
- 通用DDoS预防机制
- 过滤机制
- 通用DDoS预防机制是可以帮助您使您的Web应用程序或服务器对DDoS攻击更具弹性的常用措施。这些措施包括:
- 使用防火墙——虽然防火墙不能保护您的应用程序或服务器免受复杂的 DDoS 攻击,但它们仍然可以有效地处理简单的攻击。
- 安装最新的安全补丁——大多数攻击针对特定的软件或硬件漏洞,因此按时部署所有补丁可以帮助您降低攻击风险。
- 禁用未使用的服务——黑客可以攻击的应用程序和服务越少越好。确保禁用所有不需要和未使用的服务和应用程序,以提高网络的安全性。
- 过滤机制使用不同的方法来过滤流量并阻止潜在的危险请求。这些机制包括入口/出口过滤、基于历史的IP过滤和基于路由器的数据包过滤。
2.明智地选择您的服务器租用服务商
在选择提供商时,请尽量选择提供DDoS防御策略或高防服务器租用的提供商,确保您的 香港高防服务器可以抵御DDoS的攻击。
3.以可扩展性为目标
通过将足够的计划和资源投入到其可扩展性中,使您的Web应用程序能够有效地处理突然的负载变化。您可以部署应用程序和网络负载均衡器或内容分发网络(CDN),通过跨多个实例分发所有流量来保护您的解决方案免受流量过载的影响。通过这种方式,您将能够减轻基础设施和应用程序层的潜在攻击。
4.限制弱点的数量
除非确实有必要,否则不要公开您的应用程序和资源。通过这种方式,您可以限制基础设施中可能被攻击者攻击的薄弱环节的数量。您还可以禁止到数据库服务器和基础设施的其他关键部分的直接Internet流量。
5.保护您的API
DDoS攻击不仅可以针对您的网站和应用程序,还可以针对您的 API。有多种方法可以增强API的反DDoS保护:应用流量过滤工具和技术,限制API在给定时间段内可以处理的请求数量。
6.使用第三方DDoS缓解服务
考虑将Web应用程序的保护委托给第三方供应商。DDoS预防工具和缓解服务甚至可以在有问题的流量到达受害者的网络之前将其移除。您可以寻找基于DNS的服务来重定向来自您的网络的有问题的流量,或者寻找基于边界网关协议的解决方案来处理持续攻击。