最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

如何应对 DDoS 攻击?DDoS 攻击看完秒懂?

XAMPP新闻 admin 471浏览 0评论

最近几次面试,喜欢问一个问题:知道DDoS攻击吗?讲讲它的原理。大概说的比较明白不到1/3。

什么是 DDOS
DDOS(Distributed Denial of Service),即分布式拒绝服务,是一种针对于网络服务的攻击行为。对于 DDOS 我们可以这样通俗地理解,假如有一家商店在售卖商品,突然涌过来一大帮人说要买东西,这里面有的人是真正的顾客,有的人只是过来捣乱的,但是售货员可能就会崩溃了(不知道该卖给谁),就会导致一种拒绝服务攻击了。而分布式拒绝服务攻击,则是因为黑客控制了很多台肉鸡来发动攻击。这种攻击近些年来越来越流行,对于攻击者来说,成本小,但是相对收益大,对于受害者来说,造成的伤害却是巨大的。因为对于服务提供者来说,一旦服务不可用,就会造成不可挽回的损失,可能会导致用户量的流失。根据腾讯云发布的《2018年泛互联网行业DDoS攻击态势报告》,2018年 DDOS 攻击已经进入 TB 时代,2018 年的攻击峰值为 1.23Tbps(同比增长121%),而业界的攻击峰值更是达到惊人的 1.94Tbps。

其实,像全球互联网各大公司,均遭受过大量的DDoS。

2018年,GitHub 在一瞬间遭到高达 1.35Tbps 的带宽攻击。这次 DDoS 攻击几乎可以堪称是互联网有史以来规模最大、威力最大的 DDoS 攻击了。在 GitHub 遭到攻击后,仅仅一周后,DDoS 攻击又开始对 Google、亚马逊甚至 Pornhub 等网站进行了 DDoS 攻击。后续的 DDoS 攻击带宽最高也达到了 1Tbps。

eY7

那 DDoS 攻击究竟是什么?
DDos全名Distributed Denial of Service,翻译成中文就是分布式拒绝服务。指的是处于不同位置的多个攻击者同时向一个或数个目标发动攻击,是一种分布的、协同的大规模攻击方式。单一的DoS攻击一般是采用一对一方式的,它利用网络协议和操作系统的一些缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。

下面给一个更加形象点的例子,解释下DDoS攻击。

我开了一家有五十个座位的重庆火锅店,由于用料上等,童叟无欺。平时门庭若市,生意特别红火,而对面二狗家的火锅店却无人问津。二狗为了对付我,想了一个办法,叫了五十个人来我的火锅店坐着却不点菜,让别的客人无法吃饭。

上面这个例子讲的就是典型的 DDoS 攻击,一般来说是指攻击者利用“肉鸡”对目标网站在较短的时间内发起大量请求,大规模消耗目标网站的主机资源,让它无法正常服务。在线游戏、互联网金融等领域是 DDoS 攻击的高发行业。

攻击方式很多,比如ICMP Flood、UDP Flood、NTP Flood、SYN Flood、CC 攻击、DNS Query Flood等等。

下面是SYN Flood进行DDoS攻击的实现原理

SYN Flood是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。

一次正常的建立TCP连接,需要三次握手:客户端发送SYN报文,服务端收到请求并返回报文表示接受,客户端也返回确认,完成连接。

SYN Flood 就是用户向服务器发送报文后突然死机或掉线,那么服务器在发出应答报文后就无法收到客户端的确认报文(第三次握手无法完成),这时服务器端一般会重试并等待一段时间后再丢弃这个未完成的连接。

一个用户出现异常导致服务器的一个线程等待一会儿并不是大问题,但恶意攻击者大量模拟这种情况,服务器端为了维护数以万计的半连接而消耗非常多的资源,结果往往是无暇理睬客户的正常请求,甚至崩溃。从正常客户的角度看来,网站失去了响应,无法访问。

如何应对 DDoS 攻击?
高防服务器

还是拿开的重庆火锅店举例,高防服务器就是我给重庆火锅店增加了两名保安,这两名保安可以让保护店铺不受流氓骚扰,并且还会定期在店铺周围巡逻防止流氓骚扰。

高防服务器主要是指能独立硬防御 50Gbps 以上的服务器,能够帮助网站拒绝服务攻击,定期扫描网络主节点等,这东西是不错,就是贵~

黑名单

面对火锅店里面的流氓,我一怒之下将他们拍照入档,并禁止他们踏入店铺,但是有的时候遇到长得像的人也会禁止他进入店铺。这个就是设置黑名单,此方法秉承的就是“错杀一千,也不放一百”的原则,会封锁正常流量,影响到正常业务。

DDoS 清洗

DDos 清洗,就是我发现客人进店几分钟以后,但是一直不点餐,我就把他踢出店里。

DDoS 清洗会对用户请求数据进行实时监控,及时发现DOS攻击等异常流量,在不影响正常业务开展的情况下清洗掉这些异常流量。

CDN 加速

CDN 加速,我们可以这么理解:为了减少流氓骚扰,我干脆将火锅店开到了线上,承接外卖服务,这样流氓找不到店在哪里,也耍不来流氓了。

在现实中,CDN 服务将网站访问流量分配到了各个节点中,这样一方面隐藏网站的真实 IP,另一方面即使遭遇 DDoS 攻击,也可以将流量分散到各个节点中,防止源站崩溃。

 

有人说对于 DDOS 攻击,有钱的话,就死命扩容,没钱的话,就忍一忍。虽然是玩笑话,但是有一定的道理。最近也是自己了解 DDOS 攻击这一块知识,下面简单介绍一下自己看到的一些。

DDOS 攻击类型
常见的 DDOS 攻击主要包括以下几类:网络层攻击、传输层攻击、会话层攻击以及应用层攻击。

传输层 DDOS 攻击
传输层 DDoS 攻击一般是针对于 TCP 以及 UDP 协议地攻击,主要是指 Syn Flood,Ack Flood,UDP Flood,ICMP Flood、RstFlood 等攻击。

以最常见的 DDOS 攻击 Sync Flood 为例,它利用了 TCP 协议的三次握手机制,当服务端接收到一个 Syn 请求时,服务端必须使用一个监听队列将该连接保存一定时间。因此,通过向服务端不停发送 Syn 请求,但不响应 Syn+Ack 报文,从而消耗服务端的资源。当等待队列被占满时,服务端将无法响应正常用户的请求,达到拒绝服务攻击的目的。

DNS DDoS 攻击
DNS 服务对于企业来说是比较重要的,因此针对 DNS 服务的 DDOS 攻击也是比较常见的。DNS DDoS 攻击主要是指 DNS Request Flood、DNS Response Flood、虚假源+真实源 DNS Query Flood、权威服务器和 Local 服务器攻击。

以 DNS Query Flood 攻击为例,其本质上执行的是真实的 Query 请求,属于正常业务行为。但如果多台肉鸡同时发起海量的域名查询请求,对服务端来说则无法为正常的 Query 请求返回结果,从而导致拒绝服务。

连接型DDoS攻击
连接型 DDoS 攻击主要是指TCP慢速连接攻击,连接耗尽攻击,Loic,Hoic,Slowloris,Pyloris,Xoic等慢速攻击。

以 Slowloris 攻击为例,其攻击目标是 Web 服务容器的并发上限,当 Web 服务容器的连接并发数达到上限后,Web 服务即无法接受新的请求。具体来说,Web 服务接收到新的 HTTP 请求时,建立新的连接来处理请求,并在处理完成后关闭这个连接;如果该连接一直处于连接状态,收到新的 HTTP 请求时则需要建立新的连接进行处理;而当所有连接都处于连接状态时,Web 将无法处理任何新的请求。

Slowloris 攻击利用 HTT P协议的特性来达到攻击目的。HTTP 请求以 \r\n\r\n 标识 Headers 的结束,如果 Web 服务端只收到 \r\n,则认为 HTTP Headers 部分没有结束,将保留该连接并等待后续的请求内容。

Web应用层DDoS攻击
Web应用层攻击主要是指 HTTP Get Flood,HTTP Post Flood,CC 等攻击。

通常应用层攻击完全模拟用户请求,类似于各种搜索引擎和爬虫一样,这些攻击行为和正常的业务并没有严格的边界,难以辨别。

Web 服务中一些资源消耗较大的事务和页面(例如,Web 应用中的分页和分表,如果控制页面的参数过大,频繁的翻页将会占用较多的 Web 服务资源)。尤其在高并发频繁调用的情况下,类似这样的事务就成了早期 CC 攻击的目标。

由于现在的攻击大都是混合型的,掺杂在正常的业务中,因此一般存在模拟用户行为的频繁操作都可以被认为是 CC 攻击。但总体来说,CC 攻击这类应用层的攻击特点,是和业务应用边界模糊。例如,各种刷票软件对网站的访问,从某种程度上来说就是CC攻击。

CC 攻击瞄准的是 Web 应用的后端业务,除了导致拒绝服务外,还会直接影响 Web 应用的功能和性能,包括 Web 响应时间、数据库服务、磁盘读写等,都会导致功能和性能的异常。

面对 DDOS,我们能做些什么
扩容,这似乎是最简单,最粗暴,也是最有效的解决办法。因为只要你的应用地服务能力始终在 DDOS 攻击之上,那么你的服务就可以从容应对 DDOS 攻击。但,扩容是要钱的,所以无限扩容理论上也不是现实的,而且如果你的服务还没有上云,还不能够做到快速扩容,还是有很大问题的。面对与不同的 DDOS攻击类型,需要不同的应对方法。

以国内抗 DDOS 设备为例,作为国内的主流网络设备供应商,其抗 DDOS 主要针对网络包的分析。主要防护策略主要是针对于不同协议的防护策略:包括 TCP 防护策略, UDP 防护策略, HTTP(HTTPS) 防护策略以及 DNS 防护策略。针对不同的网络协议,也有不同的攻击类型,主要防护策略都是结合对源 IP 包的分析,发现异常包,以及访问频率超过异常的包,从而来进行防护。但是这种防护策略针对于应用层的攻击显得就不是那么有效了,而且有可能会造成对正常用户的误伤。

WAF(网络应用防火墙),作为这几年越来越流行的网络安全设备,似乎成为了企业安全的镇妖法宝。要是哪个企业出门说自己还没有上 WAF,出门肯定会被别人嘲笑。但是 WAF 真的不是灵丹妙药,如果说是把 WAF 拿做来抵抗 DDOS,是有一定的效果,但是 WAF 并不是用于解决 DDOS,它还是主要用于防范主流的安全攻击,比如 SQL 注入, XSS, 文件包含等等。当然,目前不少 WAF 厂商可能宣扬可以防护 DDOS,某个国外 WAF 厂商的确很厉害,上了的确有立竿见影的效果,但是指望它能解决一切问题,可能就不太现实了。

说一千到一万,防护 DDOS 还是需要应用本身来做出优化。如果你的应用做的足够好,架构足够合理,那么你系统能够承载的访问量也会大大提升。针对于应用的提升也是多方面的:包括系统服务的瘦身,减少每次请求资源的消耗;包括前端方面的优化,包括资源体积的压缩;静态资源 CDN 化,将静态资源部署到 CDN 上,从而避免对自身服务器资源的消耗。

DDOS 攻击类型是多种多样的,而往往黑客的攻击它地攻击方式是多种多样的,精细化的。如果只有一种攻击方式,那么就很好防护了,你只要使用一种防护策略就可以了。但是人家一旦使用组合拳,你就头大了,你就必须想出足够好、足够合理的防护策略。这种防护的过程将会是一个相互斗争的过程。

转载请注明:XAMPP中文组官网 » 如何应对 DDoS 攻击?DDoS 攻击看完秒懂?

您必须 登录 才能发表评论!