常见的DoS攻击
拒绝服务攻击是一种对网络危害巨大的恶意攻击。今天,DoS具有代表性的攻击手段包括Ping of Death、TearDrop、UDP flood 、SYN flood、Land Attack、IP Spoofing DoS等。我们看看它们又是怎么实现的。
死亡之 ping ( ping of death ) :ICMP (Internet Control Message Protocol,Internet控制信息协议)在Internet上用于错误处理和传递控制信息。它的功能之一是与主机联系,通过发送一个”回音请求”(echo request)信息包看看主机是否”活着”。最普通的ping程序就是这个功能。而在TCP/IP的RFC文档中对包的最大尺寸都有严格限制规定,许多操作系统的TCP/IP协议栈都规定ICMP 包大小为64KB,且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。”Ping of Death” 就是故意产生畸形的测试Ping(Packet Internet Groper)包,声称自己的尺寸超过 ICMP 上限,也就是加载的尺寸超过 64KB上限,使未采取保护措施的网络系统出现内存分配错误,导致 TCP/IP 协议栈崩溃,最终接收方荡机。
泪滴( teardrop ) :泪滴攻击利用在 TCP/IP 协议栈实现中信任IP 碎片中的包的标题头所包含的信息来实现自己的攻击。IP 分段含有指示该分段所包含的是原包的哪一段的信息,某些 TCP/IP协议栈(例如NT 在service pack 4 以前)在收到含有重叠偏移的伪造分段时将崩溃。 UDP 洪水 (UDP flood) :如今在Internet上UDP(用户数据包协议)的应用比较广泛,很多提供WWW和Mail等服务设备通常是使用Unix的服务器,它们默认打开一些被黑客恶意利用的UDP服务。如echo服务会显示接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符。UDP flood假冒攻击就是利用这两个简单的 TCP/IP 服务的漏洞进行恶意攻击,通过伪造与某一主机的 Chargen 服务之间的一次的 UDP 连接,回复地址指向开着Echo 服务的一台主机,通过将Chargen 和 Echo服务互指,来回传送毫无用处且占满带宽的垃圾数据,在两台主机之间生成足够多的无用数据流,这一拒绝服务攻击飞快地导致网络可用带宽耗尽。 SYN 洪水 ( SYN flood ) :我们知道当用户进行一次标准的TCP(Transmission Control Protocol)连接时,会有一个3次握手过程。首先是请求服务方发送一个SYN(Synchronize Sequence Number)消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样一次TCP连接建立成功。”SYN Flooding”则专门针对TCP协议栈在两台主机间初始化连接握手的过程进行DoS攻击,其在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是服务方会在一定时间处于等待接收请求方ACK消息的状态。而对于某台服务器来说,可用的TCP连接是有限的,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直至缓冲区里的连接企图超时。如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,除了少数幸运用户的请求可以插在大量虚假请求间得到应答外,服务器将无法向用户提供正常的合法服务。
Land (Land Attack)攻击:在 Land 攻击中,黑客利用一个特别打造的SYN 包–它的原地址和目标地址都被设置成某一个服务器地址进行攻击。此举将导致接受服务器向它自己的地址发送 SYN-ACK 消息,结果这个地址又发回 ACK 消息并创建一个空连接,每一个这样的连接都将保留直到超时,在 Land 攻击下,许多 UNIX将崩溃,NT 变得极其缓慢(大约持续五分钟)。
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再发送合法数据,服务器就已经没有这样的连接了,该用户就被拒绝服务而只能重新开始建立新的连接。
拒绝服务攻击是一种对网络危害巨大的恶意攻击。今天,DoS具有代表性的攻击手段包括Ping of Death、TearDrop、UDP flood 、SYN flood、Land Attack、IP Spoofing DoS等。我们看看它们又是怎么实现的。
死亡之 ping ( ping of death ) :ICMP (Internet Control Message Protocol,Internet控制信息协议)在Internet上用于错误处理和传递控制信息。它的功能之一是与主机联系,通过发送一个”回音请求”(echo request)信息包看看主机是否”活着”。最普通的ping程序就是这个功能。而在TCP/IP的RFC文档中对包的最大尺寸都有严格限制规定,许多操作系统的TCP/IP协议栈都规定ICMP 包大小为64KB,且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。”Ping of Death” 就是故意产生畸形的测试Ping(Packet Internet Groper)包,声称自己的尺寸超过 ICMP 上限,也就是加载的尺寸超过 64KB上限,使未采取保护措施的网络系统出现内存分配错误,导致 TCP/IP 协议栈崩溃,最终接收方荡机。
泪滴( teardrop ) :泪滴攻击利用在 TCP/IP 协议栈实现中信任IP 碎片中的包的标题头所包含的信息来实现自己的攻击。IP 分段含有指示该分段所包含的是原包的哪一段的信息,某些 TCP/IP协议栈(例如NT 在service pack 4 以前)在收到含有重叠偏移的伪造分段时将崩溃。 UDP 洪水 (UDP flood) :如今在Internet上UDP(用户数据包协议)的应用比较广泛,很多提供WWW和Mail等服务设备通常是使用Unix的服务器,它们默认打开一些被黑客恶意利用的UDP服务。如echo服务会显示接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符。UDP flood假冒攻击就是利用这两个简单的 TCP/IP 服务的漏洞进行恶意攻击,通过伪造与某一主机的 Chargen 服务之间的一次的 UDP 连接,回复地址指向开着Echo 服务的一台主机,通过将Chargen 和 Echo服务互指,来回传送毫无用处且占满带宽的垃圾数据,在两台主机之间生成足够多的无用数据流,这一拒绝服务攻击飞快地导致网络可用带宽耗尽。 SYN 洪水 ( SYN flood ) :我们知道当用户进行一次标准的TCP(Transmission Control Protocol)连接时,会有一个3次握手过程。首先是请求服务方发送一个SYN(Synchronize Sequence Number)消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样一次TCP连接建立成功。”SYN Flooding”则专门针对TCP协议栈在两台主机间初始化连接握手的过程进行DoS攻击,其在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是服务方会在一定时间处于等待接收请求方ACK消息的状态。而对于某台服务器来说,可用的TCP连接是有限的,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直至缓冲区里的连接企图超时。如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,除了少数幸运用户的请求可以插在大量虚假请求间得到应答外,服务器将无法向用户提供正常的合法服务。
Land (Land Attack)攻击:在 Land 攻击中,黑客利用一个特别打造的SYN 包–它的原地址和目标地址都被设置成某一个服务器地址进行攻击。此举将导致接受服务器向它自己的地址发送 SYN-ACK 消息,结果这个地址又发回 ACK 消息并创建一个空连接,每一个这样的连接都将保留直到超时,在 Land 攻击下,许多 UNIX将崩溃,NT 变得极其缓慢(大约持续五分钟)。
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再发送合法数据,服务器就已经没有这样的连接了,该用户就被拒绝服务而只能重新开始建立新的连接。










