DDOS全称Distributed Denial of Service,翻译成中文是‘分布式拒绝服务’,DDOS攻击是安全领域最难解决的问题之一,由于其攻击方式的特殊性,始终没有一个完美的解决方案,随着万物互联时代的临近,网络设备的数量呈指数型增长,DDOS攻击将会成为一个巨大的威胁!!!
DDOS攻击详解
- DDOS概述
- DDOS攻击的优势
- DDOS攻击分类
- 资源消耗类攻击
- SYN Flood
- 服务消耗类攻击
- 应用层DDOS攻击
- 反射类攻击
- 资源对抗
DDOS概述
DDOS通过拒绝服务的方式来消耗服务器的资源,比如,一间自习室总共有500个座位,当座位全部坐满人以后,再有同学想进来学习,就必须等里面有人出去才行,但如果里面的人一直赖着不走,那外面的同学就不能进去学习了,这种情况就是‘拒绝服务’,我们的服务器就像是一间自习室,服务器可用的资源就是座位,如果所有资源(座位)都被占满了,那服务器将不能处理正常的用户业务
实际场景中,攻击者控制肉鸡群(服务器,个人PC,智能手机,IP摄像头)通过对目标发起大量的请求,从而导致目标服务器网络宽带拥塞,无法正常提供业务,甚至造成服务器宕机
DDOS攻击的优势
- DDoS使用分布式来替代传统的点对点的攻击模式,没有规律可言
- DDoS使用常见的协议和服务,并且会对数据包和源地址进行伪装,很难进行检测
- 相对于其他攻击手段,DDoS的技术要求和攻击成本很低,只需要购买部分服务器权限或控制一群肉鸡即可,而且攻击速度很快,效果明显
- DDoS防守难度较大,服务商只有消耗大量的资源来处理这些攻击请求才能保证客户的正常业务请求,也正是由于这一特点,DDoS攻击始终无法完全化解,在HW等攻防演练中是被明令禁止的
DDOS攻击分类
常见的DDOS攻击手段可分为三类:资源消耗类攻击,服务消耗类攻击,反射类攻击
资源消耗类攻击
典型的DDoS攻击,最具代表性的包括:Syn Flood,Ack Flood,UDP Flood
这种攻击的目标很简单,就是发送大量的请求,消耗服务器的带宽和协议栈处理资源的能力,使服务器无法处理客户的正常业务
SYN Flood
SYN Flood是最经典的一种DDOS攻击,属于资源消耗类攻击,发生在网络层,SYN Flood利用了TCP协议设计上的漏洞,而TCP/IP协议是整个互联网的基础,巨大的改动成本使得漏洞的修复几乎成为不可能的事情
首先我们需要知道TCP的三次握手过程
- 客户端向服务端发送一个请求的SYN数据包,告知服务端请求建立链接
- 服务端收到客户端发送的SYN包后,响应一个SYN和ACK数据包,表示可以建立链接
- 客户端收到服务端的响应的SYN和ACK数据包后,返回一个ACK,同时链接建立成功
SYN Flood攻击原理
使用SYN Flood攻击时,会伪造大量的客户端IP地址,同时向服务端发送大量的SYN包(也就是第一次握手),服务端收到请求后会返回一个SYN/ACK数据包给客户端,由于客户端的IP地址是伪造的,服务端收不到回应,就会重试3-5次并等待一个SYN Time(30秒到2分钟),直到超时才会丢弃这个连接。攻击者大量且不间断的发送这种伪造客户端地址的SYN请求,服务器必须消耗巨大的资源来处理这种半连接,没有多于的精力去处理正常的用户请求,导致拒绝服务
服务消耗类攻击
服务消耗类攻击针对服务的特定进行定点打击,比如web的CC,数据服务的检索,文件服务的下载等服务,使服务器始终处理高消耗性的业务,从而无法响应正常的业务
应用层DDOS攻击
服务消耗性攻击又称为应用层DDOS攻击,发生在连接建立以后,使用真实的客户端IP地址,使用正常的用户请求不断的访问资源消耗较大的业务(比如查询数据库,读写硬盘文件等操作),从而消耗服务器的资源
针对这种攻击可以针对客户端的IP规定一个请求频率的限制,比如一个客户端在一定时间内请求过于频繁,则拒绝请求
反射类攻击
反射类攻击以UDP协议为主,一般请求回应的流量要远远大于请求的流量,攻击者通过流量放大的特点以较小的流量带宽就可以制造出大规模的流量源
比如打电话给餐馆说:‘我想订一道菜,但我不知道我想吃啥,你把菜单里的每一道菜都给我介绍以下,我看看我喜欢吃哪个’,几乎不费吹灰之力,就能使服务器对客户端产生很长时间的响应,从而达到消耗资源的目的
资源对抗
真正的勇士从来都是正面硬刚,或者说‘死扛’,通过增加大量服务器和带宽资源,从容应对DDoS流量的效果
比如一间自习室有500个座位,来了一个恶霸带了500个人霸占了座位,导致学生无法进去学习,着急的都快哭了,这时候老师带来一群工人扩建自习室,由本来的500个座位增加到了5万个,即使恶霸再次带人来霸占座位,学生仍然有地方