上网的时候,我们总能或多或少地听到一些新闻,某某网站又遭遇DDoS攻击了,十几二十个小时,网站都没办法打开。似乎每一次DDoS的出现,都有大新闻。
2018年发生了有史以来最大的DDoS攻击事件,黑客此次攻击目标,是数百万程序员使用的在线代码管理服务平台——Github,峰值高达1.35TB/S。受到攻击后,服务器断断续续,无法访问,好在20分钟内防御措施才成功缓解。
两年后几乎同一时间,DDoS攻击规模再创新高,亚马逊在AWS Shield服务中,成功拦截了2.3Tbps的DDoS攻击!
亚马逊和Github算是比较幸运的,很多网站被DDoS攻击后,都免不了瘫痪的命运。
2002年,雅虎、CNN、亚马逊、eBay、ZDNet等网站,24小时内遭受到DDoS攻击,部分网站瘫痪,仅亚马逊和雅虎两家公司,损失就高达110万美元。
2007年,爱沙尼亚三周内遭遇三轮DDoS攻击,总统府、议会、政府部门、主要政党、主要媒体和大型银行,全部瘫痪,北约顶级反网络恐怖主义专家前往救援。
2016年,美国DNS服务商Dyn遭遇DDos攻击,导致美国东海岸大量网站宕机,Twitter、Tumblr、Netflix、亚马逊、Shopify、Reddit、Airbnb、PayPal和Yelp等网站无一幸免。
在国内,2020年年底,网易的战网平台,受到了一系列大型恶意DDoS攻击,导致平台频繁断线崩溃。
为什么防不住DDoS?
被DDoS攻击的对象中,既有互联网的大型企业,也有政府部门,按常理,他们在业界数一数二,为什么还会遭遇DDoS攻击呢?难不成是因为技术水平较差?
其实这是由于网络TCP/IP协议存在的天生缺陷导致的,可以说,只要互联网用的还是TCP协议,那么DDoS就不会消失,而且还会不断发展,越来越智能化,攻击成本越来越低,进而更加泛滥。
DDoS是目前最强大、最难防御的攻击方式之一,这是一个世界性的难题,只能防御,没有办法彻底解决。
什么是DDoS?
DDoS,全称分布式拒绝服务攻击(Distributed Denial of Service),它的攻击目的,是让指定目标,无法提供正常服务,甚至从互联网上直接消失。遭受DDoS攻击后,不仅正常用户无法访问网站,而且同时还会造成很大的经济损失。
由于DDoS进行攻击时,可以对源IP地址进行伪造,使得这种攻击发生的时候,隐蔽性非常强,难以被检测和防范。
DDoS攻击,可以简单地分成三种类型
一、攻击带宽
海量的数据包从互联网的每一个角落蜂拥而来,堵塞IDC入口,让各种强大的防御系统、应急流程毫无用武之地。就像城市堵车一样,四面八方涌来的汽车,堵住了城市的每一条街道,只是其他车辆无法正常行驶。这种类型的攻击,典型的代表是ICMP Flood和UDP Flood。
- ICMP Flood
ICMP是Internet控制报文协议,它是TCP/IP协议族的一个子协议,用于IP主机、路由器之间传递控制消息,因此为攻击者提供了极大的便利条件。
攻击者在短时间内,向目标主机发送大量的ping包,消耗主机资源,主机资源耗尽后,就会瘫痪,无法提供服务。
- UDP Flood
由于UDP协议是一种无连接的服务,所以只要开了一个UDP的端口,提供相关服务的话,攻击者可发送大量伪造源IP地址的小UDP包,利用大量的UDP小包,冲击DNS服务器或Radius认证服务器、流媒体视频服务器。100k bps的UDP Flood通常就能将线路上骨干设备打瘫,造成整个网段的瘫痪。
上面的两种DDoS攻击方式,技术含量比较低,攻击效果基本取决于主机本身的性能,而且很容易被查到攻击源头,单独使用已经不常见了。
二、攻击系统
这类攻击大多是利用协议缺陷,或者软件本身存在的漏洞发起的,例如Slowloris攻击、Hash冲突攻击。
- Slowloris攻击
由于网页服务器,对于并发的连接数都有一个上限。如果恶意占用这些连接不释放,服务器就无法接收新的请求,导致拒绝服务。
Slowloris攻击者以极低的速度,向服务器发送HTTP请求的方式,来达到这个目的。
三、混合型
既利用协议、软件的漏洞,又具备海量的流量,例如SYN Flood攻击、DNS Query Flood攻击,是当前的主流攻击方式。
- SYN Flood
攻击者会利用TCP协议的缺陷,发送大量伪造的TCP连接请求,进而使被攻击方CPU满负荷,或者内存不足。
SYN Flood攻击是通过三次握手实现的。三次握手:
- 1.攻击者向被攻击服务器,发送一个包含SYN标志的TCP报文,SYN即同步报文。同步报文会指明客户端使用的端口以及TCP连接的初始序号,第一次握手达成。
- 2.受害服务器在收到攻击者的SYN报文后,将返回一个SYN+ACK的报文,表示攻击者的请求被接受,同时,TCP序号被加一,ACK即确认。第二次握手达成。
- 3.攻击者也返回一个确认报文ACK给受害服务器,同样TCP序列号被加一,到此一个TCP连接完成,三次握手完成。
在这三次握手中,如果有一个用户,向服务器发送了SYN报文后,突然掉线或者死机,此时服务器将无法收到客户端的ACK报文,服务器端一般会尝试重试。
等待一段时间后,还无法建立链接,才会丢弃这个未完成的连接,这个时间一般在30秒-2分钟左右。
攻击者就是通过大量模拟这种情况,通过伪装大量的IP地址,给服务器发送SYN报文,由于伪装的IP地址不存在,也就没有设备会给服务器返回任何应答,致使服务器端出现非常多的半连接列表,从而消耗大量的资源,进而瘫痪,无法响应。
这是目前最主流的DDoS攻击方式之一。
- DNS Query Flood
DNS作为互联网的核心服务之一,自然成为了DDoS的一大攻击目标。
攻击者通过大量的傀儡机,对目标发起海量的域名查询请求,通常请求解析的域名,都是随机生成,或者根本不存在的域名。被攻击的DNS服务器收到解析请求后,会先查找是否有对应的缓存,如果找不到,并且服务器无法直接解析,DNS服务器就会向其上层DNS服务器,递归查询域名信息。
这一域名解析的过程,会给服务器带来很大的负载,当每秒解析域名的请求太多,超出了一定数量,就会导致DNS服务器解析域名超时,拒绝服务。
除了DDOS,让互联网企业另外头疼的,是CC攻击。
像SYN Flood和DNS Query Flood这类攻击,都需要用root权限,控制大量的傀儡机,很耗费时间和精力,而且期间容易被发现,导致攻击者资源损耗快,又无法得到快速补充,攻击预期往往比较低,而CC攻击则不同。
使用CC攻击,攻击者不需要控制大量的傀儡机,而是通过匿名代理,对攻击目标发起HTTP请求。
而且CC攻击,是在HTTP层发起的,极力模仿正常用户的网页请求行为,往往与网站的业务紧密相关,很多服务商,很难提供一套通用,而且不会影响用户体验的方案。方案一旦误杀正常用户,带来的伤害会远高于攻击本身带来的伤害。
CC攻击还会引起严重的连锁反应,导致前端响应缓慢,还会间接攻击到后端等业务逻辑,以及数据库服务,甚至对日志存储服务器带来影响。
DDoS攻击原理及防护研究
一个相对完整的DDos攻击系统分为四个部分,分别是攻击者(也称主人)、控制傀儡(处理者)、攻击傀儡(恶魔,也称代理)和受害者(受害者)。第二和第三部分分别用于控制和实际发动攻击。第二部分,控制机只发布命令,不参与实际攻击。第三部分,DDoS的实际攻击包是从攻击傀儡机发出的。攻击者对第二部分和第三部分中的计算机拥有控制权或部分控制权,并将相应的DDoS程序上传到这些平台。这些程序像正常程序一样运行,并等待攻击者的指令。通常,它会使用各种手段来隐藏自己。在平时,这些傀儡机并没有什么异常,但是一旦攻击者连接到它们进行控制并发出指令,攻击的傀儡机就变成了攻击者发动攻击。
采用这种结构的一个重要目的是隔离网络连接,保护攻击者在攻击过程中不被监控系统跟踪。同时可以更好的协调攻击,因为攻击执行者太多,同时一个系统发出命令会造成控制系统的网络拥塞,影响攻击的突然性和协调性。而且流量的突然增加很容易暴露攻击者的位置和意图。整个过程可以分为:
1)扫描大量主机,寻找可以入侵主机的目标;
2)具有安全漏洞和增益控制的主机;
3)在入侵主机中安装攻击程序;
4)用入侵的主机继续扫描入侵。
当受控攻击代理的数量达到攻击者满意时,攻击者可以通过攻击主控机器随时发出攻击指令。因为攻击主控制器的位置非常灵活,发出命令的时间很短,所以定位起来非常隐蔽。攻击命令一旦传到攻击控制机,主控机就可以关机或离开网络以避免跟踪,攻击控制机会将命令下发到各个攻击代理机。收到攻击命令后,攻击代理开始向目标主机发送大量服务请求包。这些数据包经过伪装,使得攻击者无法识别其来源,这些数据包请求的服务往往会消耗大量的系统资源,如CP或网络带宽。如果数百甚至数千个攻击代理同时攻击一个目标,目标主机的网络和系统资源就会被耗尽,服务也会停止。有时,它甚至会导致系统崩溃。
此外,这会阻塞目标网络的防火墙和路由器等网络设备,进一步加剧网络拥塞。因此,目标主机根本无法为用户提供任何服务。攻击者使用的协议是一些非常常见的协议和服务。这样,系统管理员很难区分恶意请求和主动连接请求,从而无法有效地分离攻击包。
因此,安全加速SCDN发挥了它独特的作用。安全加速(Secure Content Delivery Network,SCDN)是集分布式DDoS防护、CC防护、WAF防护、BOT行为分析为一体的安全加速解决方案。主要的功能在于:
1.Web攻击防护
有效防御 SQL注入、XSS攻击、命令/代码执行、文件包含、木马上传、路径穿越、恶意扫描等OWASP TOP 10攻击。并且实时跟进0day漏洞,分析漏洞原理,并制定安全防护策略,及时进行防护。
2.应用层DDoS防护
通过大数据分析平台,实时汇总分析攻击日志,提取攻击特征并进行威胁等级评估,形成威胁情报库。如请求没有命中威胁情报库中的高风险特征,则通过IP黑白名单、访问频率控制等防御攻击。并且当请求与网站正常访问基线不一致时,是启动人机校验(如JS验证、META验证等)方式进行验证,拦截攻击。
3.合规性保障
采用强制静态缓存锁定和更新机制,对网站特定页面进行保护,即使源站相关网页被篡改,依然能够返回给用户缓存页面。对response报文进行处理,对响应内容和响应进行识别和过滤,根据需要设置数据防泄漏规则,保护网站数据安全。
4.HTTP流量管理
可以设置源IP或者特点接口访问速率,对超过速率的访问进行排队处理,减缓服务器压力。也可以根据业务需要对请求头和响应头进行处理,可进行请求头替换或者敏感信息隐藏设置。
5.安全可视化
默认提供Web安全攻击报表、CC攻击防护报表、用户访问统计报表和自定义规则命中报表,满足业务汇报和趋势分析需求。除此之外提供基于均值和峰值带宽统计信息,提供攻击带宽和正常占比,随时关注业务状况。提供多种组件,了解业务监控和核心指标变化情况。
DDoS攻击在不断发展,变得越来越强大、越来越隐秘、越来越有针对性、越来越复杂,已经成为互联网安全的主要威胁。同时,随着系统的升级,新的系统漏洞不断出现,也加大了保护DDoS的难度。有效应对这种攻击是一个系统工程,不仅需要技术人员探索防护手段,还需要网络用户具备防范网络攻击的基本意识和手段。