欢迎来到 盛火数据
0411-62668989
公司新闻 行业动态

什么是DoS和DDoS攻击以及DoS DDoS预防方式

2018-11-05

  什么是DoS和DDoS攻击?DoS(DenialofService),即拒绝服务,造成远程服务器拒绝服务的行为被称为DoS攻击。其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。

  为了进一步认识DoS攻击,下面举个简单的栗子来进行说明:TCP三次握手:数据段互换Client发送连接请求报文,Server接受连接后回复ACK报文,并为这次连接分配资源。

  Client接收到ACK报文后也向Server发送ACK报文,并分配资源,这样TCP连接就建立了。前两次握手,是为了保证服务端能收接受到客户端的信息并能做出正确的应答;后两次握手,是为了保证客户端能够接收到服务端的信息并能做出正确的应答。建立完TCP三次握手后,Client就可以和Web服务器进行通信了。

  在DoS攻击中,攻击者通过伪造ACK数据包,希望Server重传某些数据包,Server根据TCP重转机制,进行数据重传。攻击者利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。

什么是DoS和DDoS攻击以及DoS DDoS预防方式

  攻击者伪造ACK数据包,发送大量的半连接请求Web服务器在未收到客户端的确认包时,会重发请求包一直到链接超时,才将此条目从未连接队列删除。

  攻击者再配合IP欺骗,SYN攻击会达到很好的效果。通常攻击者在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

什么是DoS和DDoS攻击以及DoS DDoS预防方式

  SYN攻击的问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的,从而导致第三次握手无法完成。

  在这种情况下服务器端一般会重试,即再次发送SYN+ACK给客户端,并等待一段时间后丢弃这个未完成的连接。这段时间的长度我们称为SYNTimeout,一般来说这个时间是分钟的数量级,大约为30秒到2分钟。

  一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源,即数以万计的半连接,将会对服务器的CPU和内存造成极大的消耗。若服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃。

  实际上,就算服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求,导致用户的正常请求失去响应。


  对于该类问题,我们可以做如下防范:

  第一种是缩短SYNTimeout时间,及时将超时请求丢弃,释放被占用CPU和内存资源。

  第二种是限制同时打开的SYN半连接数目,关闭不必要的服务。第三种方法是设置SYNCookie,给每一个请求连接的IP地址分配一个Cookie。如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被一概丢弃。

  第三种方法在防范该类问题上表现更佳。同时可以在Web服务器端采用分布式组网、负载均衡、提升系统容量等可靠性措施,增强总体服务能力。DDoS(DistributedDenialofService,分布式拒绝服务)是DoS攻击的一种方法。攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

  阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。DDoS的攻击策略侧重于通过很多“僵尸主机”,向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致拒绝服务。

  DDoS攻击创建“僵尸主机”的过程,DDOS是利用一批受控制的僵尸主机向一台服务器主机发起的攻击,其攻击的强度和造成的威胁要比DOS严重很多,更具破坏性。


什么是DoS和DDoS攻击以及DoS DDoS预防方式


  对于DDoS攻击,我们可以做如下防范:

  (1)反欺骗:对数据包的地址及端口的正确性进行验证,同时进行反向探测。

  (2)协议栈行为模式分析:每个数据包类型需要符合RFC规定,这就好像每个数据包都要有完整规范的着装,只要不符合规范,就自动识别并将其过滤掉。

  (3)特定应用防护:非法流量总是有一些特定特征的,这就好比即便你混进了顾客群中,但你的行为还是会暴露出你的动机,比如老重复问店员同一个问题,老做同样的动作,这样你仍然还是会被发现的。(4)带宽控制:真实的访问数据过大时,可以限制其最大输出的流量,以减少下游网络系统的压力。

  当然还可以直接租用高防服务器来防御DoS和DDoS及时被攻击也能抵抗住洪水攻击。