ddos是什么怎么防ddos


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

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

传输层DDoS攻击一般是针对于TCP以及UDP协议地攻击,主要是指SynFlood,AckFlood,UDPFlood,ICMPFlood、RstFlood等攻击。

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

DNS服务对于企业来说是比较重要的,因此针对DNS服务的DDOS攻击也是比较常见的。DNSDDoS攻击主要是指DNSRequestFlood、DNSResponseFlood、虚假源 真实源DNSQueryFlood、权威服务器和Local服务器攻击。

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

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

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

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

Web应用层攻击主要是指HTTPGetFlood,HTTPPostFlood,CC等攻击。

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

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

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

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

扩容,这似乎是最简单,最粗暴,也是最有效的解决办法。因为只要你的应用地服务能力始终在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攻击类型是多种多样的,而往往黑客的攻击它地攻击方式是多种多样的,精细化的。如果只有一种攻击方式,那么就很好防护了,你只要使用一种防护策略就可以了。但是人家一旦使用组合拳,你就头大了,你就必须想出足够好、足够合理的防护策略。这种防护的过程将会是一个相互斗争的过程。