首页 百科知识 拒绝服务攻击的原理

拒绝服务攻击的原理

时间:2022-10-13 百科知识 版权反馈
【摘要】:不同系统对Land攻击的反应不同,许多UNIX系统将崩溃,Windows NT变得极其缓慢。在TCP成功连接后没有任何的认证机制。对于客户和服务器来说,它们都认为是在直接进行通信。由于DDoS攻击工具的泛滥,及所针对的协议层的缺陷短时无法改变的事实,DDoS就成为了目前流传最广、最难防范的攻击方式之一。代理端主机是攻击的执行者,真正向被攻击者主机发送攻击。

3.3.2 传输层问题

1.Land拒绝服务攻击

在Land攻击中,向目标主机发送一个特意伪造的SYN包,它的IP源地址和目标地址都被设置为目标主机,此举将导致目标主机向自身发送SYN-ACK消息,而其自身又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时,这样的空连接多了,由于TCP/IP协议栈对连接有数量的限制,就会造成拒绝服务攻击。不同系统对Land攻击的反应不同,许多UNIX系统将崩溃,Windows NT变得极其缓慢。

2.TCP会话劫持

在TCP成功连接后没有任何的认证机制。TCP假定只要接收到的数据包包含正确的序列号就认为数据是可以接受的。一旦连接建立,服务器无法确定进入的数据包确实是来自真正的客户计算机而不是来自某一台假冒的计算机。

一个客户程序通过TCP正在与一台服务器进行通信,攻击者使用ARP欺骗技术来截获和重定向客户与服务器之间的数据流,使之经过攻击者的计算机。攻击者可以采取被动攻击以免引起注意,即客户的所有命令保持原样被发送到服务器,服务器的响应也不加修改地发送给客户。对于客户和服务器来说,它们都认为是在直接进行通信。由于攻击者可以看到序列号,有必要的话,它可以把伪造的数据包放到TCP流中。

3.SYN Flood攻击

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。

实施这种攻击有两种方法:第一种,向目标主机发送SYN分组并确保发送分组的地址不会应答SYN/ACK分组,这需要监听数据包并在主机或路由器上阻断;第二种,伪装成当时不在线的IP地址向目标主机发动攻击,这样也不会有应答(RST分组)回应给目标主机。

从防御角度来说,有几种简单的解决方法。

第一种是缩短SYN Timeout时间,由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度×SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃该连接的时间,例如设置为20秒以下(过低的SYN Timeout设置可能会影响客户的正常访问),可以成倍地降低服务器的负荷。

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

可是上述的两种方法只能对付比较原始的SYN Flood攻击,缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效,SYN Cookie更依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用SOCK_RAW随机改写IP报文中的源地址,以上的方法同样没有用处。

防范SYN Flood攻击的另一个方法是:设置路由器和防火墙在给定的时间内只允许数量有限的半开TCP连接发往主机,这样半开TCP连接就无法填满目标机的缓冲区,攻击无法成功。如图3-13所示。

img68

图3-13 SYN Flood攻击示意

4.分布式拒绝服务攻击

分布式拒绝服务攻击(Distributed Denial of Service,DDoS)是在传统的DoS攻击基础之上产生的一类攻击方式。分布式拒绝服务攻击指借助于客户机/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。由于DDoS攻击工具的泛滥,及所针对的协议层的缺陷短时无法改变的事实,DDoS就成为了目前流传最广、最难防范的攻击方式之一。DDoS的攻击原理如图3-14所示。

img69

图3-14 分布式拒绝服务攻击的原理图

DDos攻击分为三层:攻击者、主控端、代理端。三者在攻击中扮演着不同的角色。

·攻击者:攻击者所用的计算机是攻击主控台,可以是网络上的任何一台主机,甚至可以是一个活动的便携机。攻击者操纵整个攻击过程,它向主控端发送攻击命令。

·主控端:主控端是攻击者非法侵入并控制的一些主机,这些主机还分别控制大量的代理主机。主控端主机的上面安装了特定的程序,因此它们可以接收攻击者发来的特殊指令,并且可以把这些命令发送到代理主机上。

·代理端:代理端同样也是攻击者侵入并控制的一批主机,它们上面运行攻击器程序,接收和运行主控端发来的命令。代理端主机是攻击的执行者,真正向被攻击者主机发送攻击。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈