DDOS

阅读数:272 评论数:0

跳转到新版页面

分类

hacker

正文

在物理世界,对付犯罪行为的解决办法主要有两类,一类是防范,即增加犯罪行为的实施难度、减轻受害者的受损程度;一类是责任追究,这一方面可以在事发后追回损失,另一方面由于对犯罪行为的惩罚而对潜在的可能发生的犯罪行为构成威慑,从而减少犯罪的发生。

拒绝服务(Dos)—任何对服务的干涉如果使得其可用性降低或者失去可用性均称为拒绝服务。如果一个计算机系统崩溃、或其带宽耗尽、或其硬盘填满,导致其不能提供正常的服务,就构成拒绝服务。

分布式拒绝服务(DDos)攻击—如果处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击,由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击。一般而言,除了规模以外,0005攻击与005攻击没有本质上的区别,严格而言,0005攻击也是005攻击,只是我们把多个攻击机器(一个或者数个攻击者控制下的分处于不同网络位置的多个攻击机)发起的协同攻击特称为DDoS攻击。

1、剧毒包型DOS攻击

(1)碎片攻击(teardrop)

当数据在不同的网络介质之间传输时,由于不同的网络介质和协议允许传输的数据包的最大长度—即最大传输单元(maximumtarnsmissionunit或MTU)可能是不同的,在这种情况下,为了确保数据包顺利到达目的地,分.片(framgent,也称为分段,本文中我们会交替使用这两个词)功能是必须的。当一个数据包传输到了一个网络环境中,如果该网络环境的MTU小于数据包的长度,则该数据包需要分片才能通过该网络。

Teardrop本是一段程序,它利用Windows5、iWndowsNT和iWndows3.1中处理IP分片(Ifr脚nt的漏洞,向受害者发送偏移地址重叠的分片的UDP数据包,使得目标机器在将分片重组时出现异常错误,导致目标系统崩溃或重启。

(2)Land攻击

Land是一段c程序,其向受害者发送TCPSYN包,而这些包的源地址和目的IP地址被伪造成相同的,即受害者的地址,源端口和目的端口也是相同的,目标系统在收到这样的包以后可能会挂起、崩溃或者重启。

(3)Ping of death攻击

Ping of death攻击利用协议实现时的漏洞,向受害者发送超长的ping数据包,导致受害者系统异常。根据TCP/IP规范要求,数据包的长度不得超过65535个字节,其中包括至少20字节的包头和0字节或更多字节的选项信息,其余的则为数据。而控制消息协议ICMP是基于IP的,ICMP包要封装到护包中。ICMp的头有8字节,因此,一个ICMP包的数据不能超过65535一20一8=65507字节。如果攻击者发送数据超过65507的pnig包到一个有此漏洞的受害者,则受 害者系统可能会因此而崩溃、死机、重启等等。事实上,对于有的系统,攻击者只需向其发送载荷数据超过4字节的ing包就可以达到目的,而不用使数据超过65507。

(4)循环攻击

循环攻击,有的也称之为死锁或振荡攻击,循环攻击既可以看作是剧毒包型攻击,也可以看作是风暴型攻击,一方面,它只要求攻击者发送一个或数个数据包,另一方面,在受害者处却有大量的数据包出现。

2、风暴型DOS攻击

1)PING风暴攻击
这种攻击是单纯地向受害者发送大量的ICMP回应请求(即ping)消息,使受害者系统忙于处理这些消息而降低性能,严重者可能导致系统无法对其他的消息作出响应。

2)SYN风暴攻击

SYN风暴攻击是最常见的一种攻击。在TCP的连接建立过程中,需要连接双方完成3次握手,只有当3次握手都顺利完成,一个TCP连接才告建立。当一个系统(称为客户clien)t希望与另一个提供服务的系统(称为服务器)建立一个TCP连接时,其首先向服务器发送一个SYN消息,如果服务器同意建立连接,则响应一个对SYN消息的回应(SYN一ACK),而客户端收到服务器的SYN一AcK以后,再向服务器发送一个ACK消息,当服务器收到此消息以后,一个TCP的连接就告完成。

在3次握手进行的过程中,服务器需要保持所有未完成的的握手信息(称为半开连接,即收到Tcp一SYN并发送了SYN一ACK,但第三次握手信息(ACK)未收到的状态)直到握手完成或超时(不同的系统超时长度的设置不同,一般情况下在75秒左右,如BSD类的系统的超时设置就是75秒[025〕,有的系统的超时设置甚至达到10余分钟。)以后丢弃该信息。由于半开连接的数量是有限的,如果攻击者不停地向受害者发送连接请求,而又不按协议规定完成握手过程,则服务器的半开连接栈可能会用完,从而不再接受其他的连接请求。

在实际中,攻击者常采用地址伪造的手段,一方面可以掩盖发出攻击的真实地点,从而逃避追踪;另一方面,如果攻击者不伪造地址,在未修改攻击机TCP协议栈的情况下,其系统会自动对SYN一ACK作出响应,无论是其以ACK回应建立连接还是以RST(eres)t回应取消连接都会在服务器上释放对应的半开连接(一般情况下户于设有应用程序要求建立连接,所以攻击者机器可能会返回一个RST信息),从而既影响攻击机的性能又由于攻击机发出的响应使得受害者较早地释放对应的半开连接进而减少占用半开连接的时间,降低攻击效果:如果攻击者将攻击数据包的源PI地址伪造成那些主机不存在或主机没有运行的P1地址,则受害者必须等待超时才能释放相应的半开连接,从而对攻击者而言达到最佳效果。

3)TCP连接耗尽攻击
在TCP连接中,操作系统的内核会维持每一个TCP连接的信息。但如有太多的连接,则需要占用很多的内存和CPU时间。因此,只要拥有足够的RAM、高速的处理器和适当的比较容易操作的05,只需简单地使用TELNET之类的程序就可耗尽一个安全性不太强的系统的TCP连接。不过,采用这种笨拙的方法也会耗费攻击者很多的资源,因此,如此简单的方法不会对受害者构成太大的威胁。

与SYN风暴攻击不同,连接耗尽攻击不需要不停地向受害者发起连接,只要连接数达到一定水平以后,攻击者就可以停止而受害者系统仍不能使用,但在SYN风暴攻击中,一般情况下只要攻击一旦停止,受害者系统就可提供服务。

(4)UDP风暴
UDP是一无连接的协议,在传输数据之前不需要如TCP那样建立连接。当一个系统收到一个UDP包时,它会检查何种应用程序在监听该端口,如果有应用程序监听,则把数据交该应用程序处理,如果没有应用程序监听该端口,则回应一个ICMP包说明目标不可达。UDP风暴通常的主要目的是占用网络带宽,达到阻塞网络的目的,因此通常UDP风暴攻击的数据包会比较长。当然,UDP风暴也可以用来攻击终端节点,如果处于网络终端节点的受害者收到的UDP包足够多,则受害者系统可能崩溃。由于很多的终端节点是不需要定期收到
UDP数据包的,因此可以在高带宽的节点如上游路由器处设置过滤某些UDP数据包以对付UDP风暴。

 




相关推荐