一、介绍
1.什么是DDoS
全称 Distributed Denial of Service,中文意思为 “分布式拒绝服务”,就是利用大量合法的分布式服务器对目标发送请求,从而导致正常合法用户无法获得服务。通俗点讲就是利用网络节点资源如:IDC 服务器、个人 PC、手机、智能设备、打印机、摄像头等对目标发起大量攻击请求,从而导致服务器拥塞而无法对外提供正常服务,只能宣布 game over。
2.为什么DDoS备受青睐
不同于其他恶意篡改数据或劫持类攻击,DDoS 简单粗暴,可以达到直接摧毁目标的目的。另外,相对其他攻击手段 DDoS 的技术要求和发动攻击的成本很低,只需要购买部分服务器权限或控制一批肉鸡即可,而且攻击相应速度很快,攻击效果可视。另一方面,DDoS 具有攻击易防守难的特征,服务提供商为了保证正常客户的需求需要耗费大量的资源才能和攻击发起方进行对抗。这些特点使得 DDoS 成为黑客们手中的一把很好使的利剑,而且所向霹雳。
从另一个方面看,DDoS 虽然可以侵蚀带宽或资源,迫使服务中断,但这远远不是黑客的正真目的。所谓没有买卖就没有杀害,DDoS 只是黑客手中的一枚核武器,他们的目的要么是敲诈勒索、要么是商业竞争、要么是要表达政治立场。在这种黑色利益的驱使下,越来越多的人参与到这个行业并对攻击手段进行改进升级,致使 DDoS 在互联网行业愈演愈烈,并成为全球范围内无法攻克的一个顽疾。
二、DDoS 的攻击方式
一种服务需要面向大众就需要提供用户访问接口,这些接口恰恰就给了黑客有可乘之机,如:可以利用 TCP/IP 协议握手缺陷消耗服务端的链接资源,可以利用 UDP 协议无状态的机制伪造大量的 UDP 数据包阻塞通信信道…… 可以说,互联网的世界自诞生之日起就不缺乏被 DDoS 利用的攻击点,从 TCP/IP 协议机制到 CC、DNS、NTP 反射类攻击,更有甚者利用各种应用漏洞发起更高级更精确的攻击。
(一)资源消耗类攻击
资源消耗类是比较典型的 DDoS 攻击,最具代表性的包括:Syn Flood、Ack Flood、UDP
Flood。这类攻击的目标很简单,就是通过大量请求消耗正常的带宽和协议栈处理资源的能力,从而达到服务端无法正常工作的目的。
Syn Flood:SYN- Flood 攻击是当前网络上常见的 DDoS 攻击,它就是利用了 TCP 协议实现上的一个缺陷,通过向网络服务所在端口发送大量 的伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队列被占满,从而阻止其他合法用户进行访问。这种攻击早在 1996 年就被发现,但至今仍然显示 出强大的生命力。很多操作系统,甚至防火墙、路由器都无法有效地防御这种攻击,而且由于它可以方便地伪造源地址,追查起来非常困难。它的数据包特征通常 是,源发送了大量的 SYN 包,并且缺少三次握手的最后一步握手 ACK 回复。
Syn Flood原理:攻击者首先伪造地址对 服务器发起 SYN 请求,服务器回应 (SYN+ACK) 包,而真实的 IP 会认为,我没有发送请求,不作回应。服务 器没有收到回应,这样的话,服务器不知 道 (SYN+ACK) 是否发送成功,默认情况下会重试 5 次(tcp_syn_retries)。这样的话,对于服务器的内存,带宽都有很大的消耗。攻击者 如果处于公网,可以伪造 IP 的话,对于服务器就很难根据 IP 来判断攻击者,给防护带来很大的困难。
(二)服务消耗性攻击
相比资源消耗类攻击,服务消耗类攻击不需要太大的流量,它主要是针对服务的特点进行精确定点打击,如 web 的 CC,数据服务的检索,文件服务的下载等。这类攻击往往不是为了拥塞流量通道或协议处理通道,它们是让服务端始终处理高消耗型的业务的忙碌状态,进而无法对正常业务进行响应
web 的CC攻击:当一个网页访问的人数特别多的时候,打开网页就慢了,CC 就是模拟多个用户,多少线程就是多少用户,不停地进行访问那些需要大量数据操作,就是需要大量 CPU 时间的页面,造成服务器资源的浪费,CPU 长时间处于 100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
(三)反射类攻击
反射攻击也叫放大攻击,该类攻击以 UDP 协议为主,一般请求回应的流量远远大于请求本身流量的大小。攻击者通过流量被放大的特点以较小的流量带宽就可以制造出大规模的流量源,从而对目标发起攻击。反射类攻击严格意义上来说不算是攻击的一种,它只是利用某些服务的业务特征来实现用更小的代价发动 Flood 攻击
三、DDoS 防护
(一)DDoS防护困难
在过去十几年中,网络基础设施核心部件从未改变,这使得一些已经发现和被利用的漏洞以及一些成熟的攻击工具生命周期很长,即使放到今天也依然有效。另一方面,互联网七层模型应用的迅猛发展,使得 DDoS 的攻击目标多元化,从 web 到 DNS,从三层网络到七层应用,从协议栈到应用 App,层出不穷的新产品也给了黑客更多的机会和突破点。再者 DDoS 的防护是一个技术和成本不对等的工程,往往一个业务的 DDoS 防御系统建设成本要比业务本身的成本或收益更加庞大,这使得很多创业公司或小型互联网公司不愿意做更多的投入。
(二)DDoS 防护手段
DDoS 的防护系统本质上是一个基于资源较量和规则过滤的智能化系统,主要的防御手段和策略包括:
1.资源隔离
资源隔离可以看作是用户服务的一堵防护盾,这套防护系统拥有无比强大的数据和流量处理能力,为用户过滤异常的流量和请求。如:针对 Syn Flood,防护盾会响应 Syn Cookie 或 Syn Reset 认证,通过对数据源的认证,过滤伪造源数据包或发动攻击的攻击,保护服务端不受恶意连接的侵蚀。资源隔离系统主要针对 ISO 模型的第三层和第四层进行防护。
2.用户规则
从服务的角度来说 DDoS 防护本质上是一场以用户为主体依赖抗 D 防护系统与黑客进行较量的战争,在整个数据对抗的过程中服务提供者往往具有绝对的主动权,用户可以基于抗 D 系统特定的规则,如:流量类型、请求频率、数据包特征、正常业务之间的延时间隔等。基于这些规则用户可以在满足正常服务本身的前提下更好地对抗七层类的 DDoS,并减少服务端的资源开销。
3.大数据智能分析
黑客为了构造大量的数据流,往往需要通过特定的工具来构造请求数据,这些数据包不具有正常用户的一些行为和特征。为了对抗这种攻击,可以基于对海量数据进行分析,进而对合法用户进行模型化,并利用这些指纹特征,如:Http 模型特征、数据来源、请求源等,有效地对请求源进行白名单过滤,从而实现对 DDoS 流量的精确清洗。