什么是DoS攻击?如何防范发布时间:2020/8/19 17:24:21 阅读次数:

  

DoS攻击

DoS(Denial of Service),拒绝服务,顾名思义这种攻击是为了让服务器无法提供正常服务,最常见的DoS攻击是网络带宽攻击和连通性攻击。

带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。

连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。

可以看出来,DoS攻击本身也受网络规模和网络速度的限制,单个计算机没办法做到攻破一台服务器,所以DoS攻击者开发了分布式攻击DDoS(Distributed Denial of Service),集合许多计算机的带宽来同时对一台服务器发动攻击。

黑客.jpg

下面我们来看三种典型的DoS攻击:SYN洪水攻击、IP欺骗和Land攻击。

1.SYN洪水攻击

SYN洪水攻击是利用TCP协议的缺陷,通过发送大量的半连接请求消耗资源,造成网络拥塞甚至宕机以达到攻击者不可告人的秘密。

  • 我们都知道标准的TCP连接需要经过三次握手,首先是客户端发送SYN,服务端收到后发送ACK-SYN,客户端收到后再回复ACK连接建立成功。

  • 黑客针对TCP协议栈在两台主机间初始化连接握手的过程进行攻击,黑客通过包装第三次握手的ACK包使得服务端不能收到客正确的户端ACK包。

  • 而由于TCP协议具有超时重传机制,服务端会一直重传直到超时。这些虚假连接会一直占用缓冲区,正常的请求被丢弃,引起严重的网络阻塞甚至系统瘫痪。

2.IP欺骗

这种攻击同样是利用TCP协议栈的漏洞,我们知道TCP协议有一个RST位用于连接出错时的复位。

这种攻击利用IP欺骗,使得服务器将合法的用户连接复位,影响正常用户的使用。

比如说现在有一个合法连接(172.111.222.123),攻击者构造一个TCP数据报,伪装自己的IP是172.111.222.123,并向服务器发送一个带RST位的数据报。

服务器接收到后会认为该连接发生错误,将该连接从缓冲区中移除

所以正常用户只能重新发起连接。

3.Land攻击

进行Land攻击时,黑客特别打造一个源地址和目标地址都被设置成某一个服务器的SYN包,此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时。大量的连接将严重影响服务器性能。

那么我们面对DoS攻击是否是束手无策呢?当然不是,我们可以做以下防范:

  •  缩短SYN超时时间,以减少缓冲区中保留的半连接个数。

  •  限制同时打开的半连接个数,当半连接个数已经达到上限时,后面未成功的TCP连接将被丢弃而不会保存在缓冲区中。

设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被一概丢弃。

一般来说,第三种方法在防范该类问题上表现更佳。

同时可以在Web服务器端采用分布式组网、负载均衡、提升系统容量等可靠性措施,增强总体服务能力