DoS到底是什么?接触较早的同志会直接想到的DOS--DiskOperationSystem?不,此DoS非彼DOS也,DoS即DenialOfService,拒绝服务的缩写。
    DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。
一、概念理解:
    作个形象的比喻来理解DoS。街头的餐馆是为大众提供餐饮服务,如果一地痞流氓要DoS餐馆的话,手段会很多,比如霸占着餐桌不结账,堵住餐馆的大门不让路,骚扰餐馆的服务员或厨子不能干活,甚至更恶劣……相应的计算机和网络系统则是为用户提供互联网资源的,如果有要进行DoS攻击的话,可以想象同样有好多手段!今天最常见的DoS攻击有对计算机网络的带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用都被消耗殆尽,最后导致合法的用户请求无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
    传统上,攻击者所面临的主要问题是,由于较小的网络规模和较慢的的限制,攻击者无法发出过多的请求。虽然类似“thepingofdeath”的攻击类型只需要较少量的包就可以摧毁一个没有打过的UNIX系统,但大多数的DoS攻击还是需要相当大的带宽的,而以个人为单位的们很难使用高带宽的资源。为了克服这个缺点,DoS攻击者开发了分布式的攻击。攻击者简单利用工具集合许多的来同时对同一个目标发动大量的攻击请求,这就是DDoS攻击。
无论是DoS攻击还是DDoS攻击,简单的看,都只是一种破坏网络服务的方式,虽然具体的实现方式,但都有一个共同点,就是其根本目的是使受害或网络无法及时接收并处理外界请求,或无法及时回应外界请求。其具体表现方式有以下几种:
  1. 制造大流量无用数据,造成通往被攻击的,使被攻击主机无法正常和外界通信。
  2. 利用被攻击提供服务或上处理重复连接的,反复高频的发出攻击性的重复服务请求,使被攻击主机无法及时处理其它正常的请求。
  3. 利用被攻击所提供服务或的本身实现,反复发送畸形的攻击数据引发系统错误的分配大量,使主机处于甚至死机。
二、攻击流程:
    要理解dos攻击,首先要理解TCP连接的三次握手过程(Three-wayhandshake)。在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
    1.第一次握手:建立连接时,发送SYN包((SYN=i)到服务器,并进入SYN SEND状态,等待服务器确认;
    2.第二次握手:服务器收到SYN包,必须确认客户的SYN (ACK=i+1 ),同时自己也发送一个SYN包((SYN=j)}即SYN+ACK包,此时服务器进入SYN_RECV状态;
    3.第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=j+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据。
    在上述过程中,还有一些重要的概念:
  1. 半连接:收到SYN包而还未收到ACK包时的连接状态称为半连接,即尚未完全完成三次握手的TCP连接。
  2. 半连接队列:在三次握手协议中,服务器维护一个半连接队列,该队列为每个客户端的SYN包(SYN=i )开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于SYN_ RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。
  3. Backlog参数:表示半连接队列的最大容纳数目。
  4. SYN-ACK重传次数:服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间 仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息、从半连接队列中删除。注意,每次重传等待的时间不一定 相同。
tcp ip协议设置怎么填  5. 半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时也称半连接存活时间为Timeout时间、SYN_RECV存活时间。
上面三个参数对系统的TCP连接状况有很大影响。
    SYN洪水攻击属于DoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。 SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。从图 4-3可看到,服务器接收到连接请求(SYN=i )将此信息加入未连接队列,并发送请求包给客户端( SYN=jACK=i+1 ),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能 达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复确认包,并等待客户的确认,由于源地址是不存 在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN 请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。过程如下:
      攻击主机C(地址伪装后为C')-----大量SYN包---->被攻击主机
      C'<-------SYN/ACK包----被攻击主机
由于C’地址不可达,被攻击主机等待SYN包超时。攻击主机通过发大量SYN包填满未连接队列,导致正常SYN包被拒绝服务。另外,SYN洪水攻击还可以通过发大量ACK包进行DoS攻
击。
三、攻击手段:
    拒绝服务攻击是一种对网络危害巨大的恶意攻击。今天,DoS具有代表性的攻击手段包括PingofDeath、TearDrop、UDPflood、SYNflood、LandAttack、IPSpoofingDoS等。看看它们又是怎么实现的。
  1. 死亡之ping (pingofdeath)
    ICMP(InternetControlMessageProtocol,)在Internet上用于错误处理和传递控制信息。它的功能之一是与联系,通过发送一个“回音请求”(echorequest)信息包看看是否“活着”。最普通的ping就是这个功能。而在TCP/IP的RFC文档中对包的最大尺寸都有严格限制规定,许多的栈都规定ICMP包大小为64KB,且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成。"PingofDeath"就是故意产生畸形的测试Ping(PacketInternetGroper)包,声称自己的尺寸超过ICMP上限,也就是加载的尺寸超过64KB上限,使未采取保护措施的网络系统出现错误,导致TCP/IP协议栈崩溃,最终接收方。
  2. 泪滴 (teardrop)
  泪滴攻击利用在TCP/IP协议栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP协议栈(例如NT在servicepack4以前)在收到含有重叠偏移的伪造分段时将崩溃。
  3. UDP泛洪(UDPflood)
    UDPflood攻击:如今在Internet上UDP(用户协议)的应用比较广泛,很多提供WWW和Mail等服务通常是使用Unix的,它们默认打开一些被恶意利用的UDP服务。如echo服务会显示接收到的每一个,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符。UDPflood假冒攻击就是利用这两个简单的TCP/IP服务的进行恶意攻击,通过伪造与某一的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,通过将Chargen和Echo服务互指,来回传送毫无用处且占满带宽的垃圾数据,在两台主机之间生成足够多的无用数据流,这一飞快地导致网络可用带宽耗尽。
  4. SYN泛洪(SYNflood)
    SYNflood攻击:我们知道当用户进行一次标准的 TCP(TransmissionControlProtocol)连接时,会有一个3次握手过程。首先是请求服务方发送一个 SYN(SynchronizeSequenceNumber)消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到 SYN-ACK后,再次向服务方发送一个ACK消息,这样一次TCP连接建立成功。“SYNFlooding”则专门针对TCP协议栈在两台间初始化连接握手的过程进行DoS攻击,其在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是服务方会在一定时间处于等待接收请求方ACK消息的状态。而对于某台来说,可用的TCP连接是有限的,因为他们只有有限的内存用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直至缓冲区里的连接企图超时。如果恶意攻击方快速连续地发送此类连接请求,该可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,除了少数幸运用户的请求可以插在大量虚假请求间得到应答外,服务器将无法向用户提供正常的合法服务。
    5. Land(LandAttack)攻击
    在中,利用一个特别打造的SYN包--它的原地址和目标地址都被设置成某一个服务器地址进行攻击。此举将导致接受向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个,每一个这样的连接都将保留直到超时,在Land攻击下,许多UNIX将崩溃,NT变得极其缓慢(大约持续五分钟)。
    6. IP欺骗dos攻击
    这种攻击利用栈的RST位来实现,使用IP欺骗,迫使把合法用户的连接复位,影响合法用户的连接。假设现在有一个合法用户(100.100.100.100)已经同建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为100.100.100.100,并向服务器发送一个带有RST位的TCP。接收到这样的数据后,认为从100.100.100.100发送的连接有错误,就会清空中已建立好的连接。这时,合法用户100.100.100.100再发送合法数据,就已经没有这样的连接了,该用户就被拒绝服务而只能重新开始建立新的连接。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。