分布式拒绝服务(DDoS)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为。
DDoS 攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机器可以包括计算机,也可以包括其他联网资源。
通俗的来讲就是远程劫持多台计算机向目标计算机发起流量饱和攻击,导致目标计算机无法无法服务的目的。
DDoS攻击原理
这些网络由计算机和其他设备(例如 IoT 设备)组成,它们感染了恶意软件,从而被攻击者远程控制。这些个体设备称为机器人(或僵尸),一组机器人则称为僵尸网络。
一旦建立了僵尸网络,攻击者就可通过向每个机器人发送远程指令来发动攻击。
当僵尸网络将受害者的服务器或网络作为目标时,每个机器人会将请求发送到目标的 IP地址,这可能导致服务器或网络不堪重负,从而造成对正常流量的拒绝服务。
由于每个机器人都是合法的互联网设备,因而可能很难区分攻击流量与正常流量。
如何识别DDoS攻击
DDoS最明显的现象就是服务器变慢或者不可用,但是造成这样的现象有很多种可能,也有可能是正常的流量激增导致,因此要区分哪些是攻击流量和正常流量。
- 来自单个 IP 地址或 IP 范围的可疑流量
- 来自共享单个行为特征(例如设备类型、地理位置或 Web 浏览器版本)的用户的大量流量
- 奇怪的流量模式,例如一天中非常规时间段的激增或看似不自然的模式(例如,每 10 分钟出现一次激增)
常见的DDoS攻击分几类
开放系统互连(OSI)模型:
# | 层 | 应用 | 描述 | 向量示例 |
7 | 应用 | 数据 | 网络层发展至应用层 | HTTP 泛洪,DNS 查询洪泛 |
6 | 表示 | 数据 | 数据表示和加密 | SSL 滥用 |
5 | 会话 | 数据 | 主机间通信 | 不适用 |
4 | 运输 | 行业 | 端到端连接和可靠性 | SYN 泛洪 |
3 | 网络 | 数据包 | 路径确定和逻辑寻址 | UDP 反射攻击 |
2 | 数据链路 | 帧 | 物理寻址 | 不适用 |
1 | 物理 | 位 | 媒体、信号和二进制传输 | 不适用 |
应用层攻击
此类攻击有时称为第7层 DDoS 攻击(指 OSI 模型第 7 层),其目标是耗尽目标资源。
攻击目标是生成网页并传输网页响应 HTTP 请求的服务器层。在客户端执行一项 HTTP 请求的计算成本比较低,但目标服务器做出响应却可能非常昂贵,因为服务器通常必须加载多个文件并运行数据库查询才能创建网页。
第 7 层攻击很难防御,因为难以区分恶意流量和合法流量。
协议攻击
协议攻击也称为状态耗尽攻击,这类攻击会过度消耗服务器资源和防火墙负载平衡器之类的网络设备资源,从而导致服务中断。
协议攻击利用协议堆栈第 3 层和第 4 层的弱点致使目标无法访问。
容量耗尽攻击
此类攻击试图通过消耗目标与较大的互联网之间的所有可用带宽来造成拥塞。攻击运用某种放大攻击或其他生成大量流量的手段(如僵尸网络请求),向目标发送大量数据。
如何防护DDoS攻击
黑洞路由
创建黑洞路由将所有流量汇入改路由,合法网络流量和恶意网络流量都将路由到空路由或黑洞,并从网络中丢弃。
这不是最佳方案,因为这样做的话,其实间接让攻击者到达目的,使网络不可访问。
速率限制
限制服务器在某个时间段接收的请求数量。
Web 应用程序防火墙
Web 应用程序防火墙是一种有效工具,有助于缓解第 7 层 DDoS 攻击。
扩容
传输容量。提供充足的冗余 Internet 连接,能够处理大量流量。
服务器容量。 大多数 DDoS 攻击都是容量攻击,占用大量资源;因此,可以快速向上或向下扩展计算资源,这一点非常重要。使用负载均衡器持续监控和转移资源之间的负载也很常见,以防止任何一个资源过载。