网络安全 频道

【安全大讲堂之UTM】防拒绝服务攻击技术(中)

    拒绝服务攻击是一种对网络危害巨大的恶意攻击。今天,DoS具有代表性的攻击手段包括Ping of Death、TearDrop、UDPflood、SYNflood、LandAttack、IP Spoofing DoS等。下面看看它们又是怎么实现的。

    (1)PING死亡攻击:ICMP(Internet Control Message Protocol,互联网控制信息协议)在互联网上用于错误处理和传递控制信息。它的功能之一是与主机联系,通过发送一个“回音请求”(echo request)信息包看看主机是否“活着”。最普通的ping程序就是这个功能。而在TCP/IP的RFC文档中对包的最大尺寸都有严格限制规定,许多操作系统的TCP/IP协议栈都规定ICMP包大小为64KB,且在对包的标题头进行读取之后,要根据该标题头所包含的信息来为有效载荷生成缓冲区。

    而在TCP/IP的RFC文档中对包的最大尺寸都有严格限制规定,许多操作系统的TCP/IP协议栈都规定ICMP包大小为64KB,且在对包的标题头进行读取之后,要根据该标题头所包含的信息来为有效载荷生成缓冲区。

     “Ping of Death”就是故意产生畸形的测试Ping(Packet Internet Groper)包,声称自己的尺寸超过ICMP上限,也就是加载的尺寸超过64KB上限,使未采取保护措施的网络系统出现内存分配错误,导致TCP/IP协议栈崩溃,最终使接收方宕机。

    (2)泪滴(Teardrop)攻击:泪滴攻击利用那些在TCP/IP协议栈实现时信任IP碎片中包的标题所包含的信息来实现攻击。IP分段含有指示该分段所包含的原信息,某些TCP /IP协议栈在收到含有重叠偏移的伪造分段时将崩溃。

    (3)UDP洪水(UDPflood):如今在Internet上UDP(用户数据包协议)的应用比较广泛,很多提供WWW和Mail等服务的设备通常使用UNIX服务器,它们默认打开一些被黑客恶意利用的UDP服务。如echo服务会显示接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符。UDPflood假冒攻击就利用这两个简单的TCP/IP服务的漏洞进行恶意攻击,通过伪造与某一主机的Chargen服务之间的一次UDP连接,回复地指向开着Echo服务的一台主机,通过将Chargen和Echo服务互连,来回传送毫无用处和占满带宽的垃圾数据,在两台主机之间生成足够多的无用数据流,这一拒绝服务攻击飞快地导致网络可用带宽耗尽。

    (4)SYN洪水(SYNflood):当用户进行一次标准的TCP(Transmission Control Protocol)连接时,会有一个3次握手过程。首先是请求服务方发送一个SYN(Synchronize Sequence Number)消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样便建成了一次TCP连接。

     “SYNFlood”则专门针对TCP协议栈在两台主机间初始化连接握手的过程进行DoS攻击,其在实现过程中只进行前两个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是服务方会在一定时间处于等待接收请求方ACK消息的状态。而对于某台服务器来说,可用的TCP连接是有限的,因为只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直至缓冲区里的连接企图超时。

    如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,除了少数幸运用户的请求可以插在大量虚假请求中间得到应答外,服务器将无法向用户提供正常的合法服务。


    (5)Land(LandAttack)攻击:在Land攻击中,黑客利用一个特别打造的SYN包      ——它的源地址和目标地址都被设置成某一个服务器地址进行攻击。此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时,在Land攻击下,许多UNIX将崩溃,NT变得极其缓慢。

    (6)IP欺骗DoS攻击:这种攻击利用TCP协议栈的RST位来实现,使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。假设现在有一个合法用户(100.100.100.100)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为100.100.100.100,并向服务器发送一个带有RST位的TCP数据段;而服务器接收到这样的数据后,认为从100.100.100.100发送的连接有错误,就会清空缓冲区中已建立好的连接。这时,合法用户100.100.100.100再发送合法数据,服务器就已经没有这样的连接,该用户就被拒绝服务而只能重新开始建立新的连接了。

0
相关文章