什么是ddos攻击,如何低成本防御ddos攻击?

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

若干年前读大学时候我接触的第一门专业课是“网络基础课”,还记得第一节课时老师就以ping命令为切入点介绍DDoS攻击,当时还专门告诉我们要念成“D-D-O-S”,而非“D-DOS”。

时至今日,DDoS攻击依然是网络系统所面临的主要威胁之一,今天,我们就来详细聊聊。

目录

一、什么是DDOS攻击

二、DDOS攻击用途

三、DDOS攻击原理

四、DDOS攻击种类

五、常见ddos攻击

5.1、畸形报文

5.2、udp flood

5.3、icmp flood

5.4、syn flood

5.5、ack flood

5.6、udp reflect

5.7、ssl flood

5.8、http flood

六、如何防御DDOS攻击

6.1、减少暴露面

6.2、服务器安全加固

6.3、及时止损

6.4、识别异常流量

6.5、syn flood

6.6、ack/fin/rst flood

6.7、畸形报文

6.8、其他

七、低成本DDOS攻击防御手段

7.1、前端代理

7.2、离线访问

7.3、免费节点

7.4、演示

7.5、接口防御


一、什么是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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值