
若干年前读大学时候我接触的第一门专业课是“网络基础课”,还记得第一节课时老师就以ping命令为切入点介绍DDoS攻击,当时还专门告诉我们要念成“D-D-O-S”,而非“D-DOS”。
时至今日,DDoS攻击依然是网络系统所面临的主要威胁之一,今天,我们就来详细聊聊。
目录

一、什么是DDOS攻击
DDoS是Distributed Denial of Service的缩写,即分布式拒绝服务。
- 拒绝服务:就是用某种技术手段让被攻击的服务器资源耗尽,拒绝正常请求;
- 分布式:可以理解成多台计算机联合起来作为一个攻击平台;
简单来说是向服务器同时发布大量请求,让被攻击的服务器资源耗尽,服务器资源当然包括计算、网络、存储等,也就是通过一些手段使得服务器的计算性能达到上限、网络带宽被占满或者存储空间被用完,这样服务器就无法响应正常的请求了。
二、DDOS攻击用途
DDoS的用途非常广泛,是敲诈勒索、破坏竞争对手经营的一把利刃,甚至可以被用于提高网络游戏的胜率。
2020年1月,育碧游戏纽约地区法院起诉就DDoS攻击服务商,DDoS攻击服务商为玩家提供“炸房”服务,即玩家可以在一局游戏快失利之时对游戏服务器发动DDoS攻击,造成服务器卡顿,导致本局服务无效。
“炸房”在国内也不是新鲜的话题。2019年,暴雪旗下的游戏《守望先锋》中国运营团队配合上海公安等执法机关,对《守望先锋》游戏中性质恶劣的“炸房外挂”进行重点打击。
在2017年,腾讯旗下《英雄联盟》运营团队对2189名玩家因为使用“炸房”程序被全服封号。
三、DDOS攻击原理
如上所述,ddos攻击的目的是为了让被攻击的服务器资源耗尽,服务器资源当然包括计算、网络、存储等,也就是通过一些手段使得服务器的计算性能达到上限、网络带宽被占满或者存储空间被用完,这样服务器就无法响应正常的请求了。

四、DDOS攻击种类
大家肯定都熟悉OSI七层模型,ddos攻击最常出现在第三层(网络层)、第四层(传输层)、第六层(表示层)和第七层(应用层)。
第三层和第四层的ddos攻击一般被统称为基础设施层攻击,一般通过模拟大量三四层的报文如icmp、udp、tcp来让服务器进行响应,从而达到消耗服务器资源的目的。
这种攻击是最常见的,也是最简单的,甚至开源了很多工具如hping3来模拟这种ddos攻击。
正因为这类攻击有一些独有的特性,也使得开发者可以比较容易的识别出这类攻击从而进行防范。
第六层和第七层的ddos攻击一般可以归为应用层攻击,这类攻击通过模拟应用层的请求如http来让服务器进行响应。
这类攻击没有第一类常见,因为攻击者必须了解服务端应用程序工作方式,需要构造更加复杂的请求,比如某登陆页的http请求、某dns服务器的dns请求。
这一类攻击都是正常的请求,所以也更难防范。
五、常见ddos攻击
5.1、畸形报文
这种攻击有一点以巧取胜的意思,它并不需要很大的数量,也许只需要一个特殊的报文就可以导致服务器的崩溃。所谓畸形报文,就是指那些不符合协议规定的报文,比如tcp头的SYN、RST标志位都置1的报文;比如ip头例源地址和目的地址都是同一个的报文等等。
5.2、udp flood
攻击者利用udp无状态的特点,向服务器的不同端口发送udp报文,服务器收到之后会寻找对应端口的应用程序,如果没有找到,会返回“目标不可达”的消息。攻击者往往会通过伪造源ip来达到隐藏自己身份的目的。这种攻击方法以量取胜,一旦服务器被攻击流量淹没,那就无法响应正常用户的请求。
5.3、icmp flood
攻击者想服务器发送大量icmp报文,服务器收到之后会回复一个icmp echo给源地址。这种攻击和上面的udp flood攻击类似,可以看到攻击请求和服务器响应流量是1:1的关系,“性价比”并不高,现在已经很少看到了。
5.4、syn flood
最常见最知名的一种攻击,它的防御方法甚至被写进了linux内核。攻击者利用了三次握手的机制,发送大量第一次握手的syn包给服务器,并且无视服务器返回第二次握手的synack包,故意不发送第三次握手,导致服务器大量端口处于SYN_RECV状态。由于服务器收不到第二次握手的报文,超时重传,重传一定次数之后,才会释放连接。服务器的这个状态我们一般称为半连接,要知道服务器能每收到一个syn包时,都会将连接信息储存到一个队列中,这个队列肯定也是有长度的,当超过队列长度时,新来的syn包就无法被响应,服务器也就无法响应正常的tcp请求了。
5.5、ack flood
攻击者向服务器发送大量ack标志位置1的报文,服务器收到后,会在协议栈判断报文是否合法(是否有该四元组的连接,序列号是否正常等等),如果不合法,服务器会返回一个rst报文。跟这种攻击比较类似的还有rst flood和fi
DDoS攻击详解与防御策略

DDoS攻击是一种分布式拒绝服务攻击,通过大量请求耗尽服务器资源。常见类型包括畸形报文、UDPFlood、SYNFlood等。防御方法涉及减少暴露面、服务器加固、流量识别及使用CDN和抗DDoS服务。此外,利用前端代理如ServiceWorker也可实现低成本防御。
最低0.47元/天 解锁文章
768

被折叠的 条评论
为什么被折叠?



