龙空技术网

什么是高防?流量清洗原理是什么?如何科学的防御DDOS攻击?

从程序员到架构师 752

前言:

目前姐妹们对“如何防御流量攻击”都比较珍视,你们都需要学习一些“如何防御流量攻击”的相关知识。那么小编在网摘上网罗了一些关于“如何防御流量攻击””的相关内容,希望姐妹们能喜欢,咱们快快来了解一下吧!

为什么对于一些大流量的访问服务要添加验证码功能?为什么抖音网页版在不登录的情况下,会时不时弹出一个让你点选图片验证码的功能?为什么对于微信公众平台要对第三方开发的服务进行白名单验证呢?

带着这些问题我们就开始介绍今天所要分享的内容吧?

简单的TCP攻击手段介绍

在介绍本次分享之前我们先来看看TCP的三次握手是如何实现的。其实在网上很多资料中都有关于TCP三次握手的原理介绍。

第一步、需要PC1发送一个请求报文,告诉PC2,自己将要开始传输数据了。第二步、PC2接收到PC1发送报文之后,然后向PC1响应一个报文,告诉PC1自己准备好了。可以发送数据了。第三步、PC1收到了PC2发送的响应报文之后,就开始给PC2发送消息了。

上面这过程就是一个简单的TCP三次握手的过程。

那么在这个过程中,就存在两种网络攻击手段。

SYN ACK攻击

例如在PC1发出请求的时候,会发送很多的SYN请求,并且这些请求的Seq是递增的,这有点像是一个复读机一样,一直在询问PC2有没有准备好。然后PC2在接收到这么多的请求之后,就一直会去响应这样的请求。无法去处理其他的正常请求。

UDP反射攻击

这种攻击方式就有点意思了,假设有一个骗子冒充PC1给PC2发送请求,并且携带的需要响应的IP地址是192.168.1.23,但是实际上这个时候PC1的IP地址是192.168.1.15,那么这个时候PC2在收到了请求之后,就会往192.168.1.23上去响应数据,这个时候真正的192.168.1.23的机器由于并没有发送过相关的请求,在收到了这个请求之后,就很蒙圈,这是谁发的呀?

然后如果将上面两种攻击方式结合到一起,这个时候就会给192.168.1.23的机器造成很大的伤害呀?

当然这只是众多的攻击手段中很容易理解的一种攻击手段。

什么是DDoS攻击呢?

简单来讲DDoS攻击就是分布式拒绝服务攻击,简单的来说,就是使用大量的僵尸用户,在同一时间内发送很多的请求,这样经过一段时间的攻击,服务器的网络和IO等资源就会被耗尽,也就会进入瘫痪状态,这是一种非常粗暴的攻击方式。而且DDoS攻击一直存在并且一直也没有很好的解决方案。虽然没有根治的办法但是DDoS攻击还是可以有效的进行防御的。

预防DDoS攻击

目前防御DDoS攻击主要有两种方案。

CDN技术

一种是采用CDN技术,用分布式的方式去对抗分布式攻击,攻击者组织了千军万马的僵尸用户进行攻击,那么防御者也采用分身技术来制造出更多的响应来对付,可能这些僵尸用户的攻击全部都在分身上攻击呢?真真的服务器并不会受到伤害。

不过采用CDN技术的方案,有几个比较明显的缺陷。

第一就是真实的服务器IP不能泄露,真实的服务器IP必须要被隐藏在分布式网络环境中,如果真实的IP被找到之后,相当于分身的真身被找到了,那这样的攻击立马就打到了真身上。也就是说如果某个CDN被攻破了,真实的IP被泄露了,那么服务器就惨了。

第二这也是CND的特性,所有的数据都需要通过公网来进行传输,而这对一些交互性比较强的系统性能上也是有所损耗的。所以并不是所有的系统都适合采用CDN技术。

高防服务器

第二种就是防御方式就是高防服务器,高防服务器就完全可以克服CDN所带来的缺点,它可以让服务器暴露真实的IP地址,当然所暴露的也是高防服务器的IP地址,而真实的业务服务是与高防的服务以内网通信的方式进行连接的。真实的业务服务器IP并不会直接暴露在互联网中。

从这一点上来看,高防服务器就完全可以支持高并发实时系统。当然高防服务器并不是没有缺点的,它有一个比较明显的缺点就是贵,真的是贵。防御能力越强的服务器,费用就越贵。当然,采用了高防服务器,服务所能承受的攻击也会更大,如果想要攻击这样的服务器的话,攻击方的成本也是非常巨大的。

为什么高防服务器那么贵呢?首先根据之前提到,要想承受住DDoS攻击那么首先它自身得具备足够大的上游流量的带宽,如果一个高防服务器能够抵抗150G的攻击,那么它的上游的带宽也必须大于150G,这个概念与我们一般能够接触到的带宽大小完全不是一个量级的,如果它没有这样的带宽,那么DDoS攻击会很快的吃满带宽,还没有来得及清洗异常连接,就已经起不到高防的作用了。

其次,一个高防服务器必须要有强大的硬件支持,想要知道,一般的网卡所能承受的流量也就是1G左右,而服务器上所用的网卡一般也只有10G到40G左右,所以150G的带宽所需要的硬件也是非常重要的,所以一般采用多态机器来构成一个负载均衡的架构。

第三,针对一些超高流量的访问,CPU的处理能力也是非常重要的。毕竟流量清洗工作就是需要去识别在网络数据包中存在的异常数据包,而这个过程需要的就是CPU处理能力。提到流量清洗,那么下面我们就来介绍什么是流量清洗?

什么是流量清洗?

一个比较经典的高防体系流量流向是这样的。进入流量,进入到流量清洗设备中,然后进入到抗CC防火墙,最后经过内网到被保护的服务器中,如下图所示。

也就是说需要经过两道流量清洗过程才会进入到最终的服务器中。为什么要分两道流量清洗呢?通过TCP/IP 的五层网络模型,我们知道,被利用用来进行DDoS攻击的主要是网络层、传输层和应用层。

这里提到的第一道流量清洗是针对网络层和传输层的流量清洗。这两层有什么地方可以被攻击呢?在网络通信中,所有的通信规则都是由人提前制定好的,一个简单的例子,上面提到的SYN ACK攻击。

而高防的第二道防线就是CC防火墙,在TCP或者是UDP协议中,通过洪水手段或者是反射手段都是可以追踪到攻击者的IP的。也是由于这个原因,现在很少有人通过这种方式来进行攻击了。通常我们知道了攻击者的IP地址或者是IP段之后,通过一些规则就可以完全进行清洗了。

CC防火墙则是用来对抗应用层的攻击,如果将传输层和网络层封装的数据类比与快递包裹,那么最终使用快递包裹中的数据的就是应用层用户了,也就是说当你的运输手段都合法的情况下是可以将一个定时炸弹运输到你的手中的,这个时候定时炸弹爆炸,也是会对你造成伤害的。

而CC防火墙就是防止了这种情况的出现,通过对于HTTP中的请求头的合法性校验来判断所传输的数据包中是否包含异常信息。而这种包含的信息中很大程度上的目的就是通过某些手段来拖垮服务器带宽,或者是让CPU使用率增加,使得应用服务器受到伤害。

到这里,我们也就明白为什么会有那么多的验证码,为什么要添加服务器白名单了吧!其实都是为了给高防服务器提供科学有效的防御规则。通过验证码的方式来验证流量是否是从正常IP发出,通过白名单的方式来验证是否存在不是从白名单中的流量进入到服务器中。

总结

上面我们介绍了关于DDOS攻击相关的内容,并且介绍了如何科学有效的防护DDoS攻击攻击的手段。希望能对大家理解DDoS攻击有所帮助。

标签: #如何防御流量攻击