拒绝服务攻击科普

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

漏洞产生的原因

(1)系统基础设计错误导致漏洞
        比如对于W州Z000NfT的认证协议,该认证协议本身存在漏洞,可以实施中间人劫持攻击,这类漏洞不是由于编程错误造成的,而是系统设计本身就存在问题,无论编程如何严格,都无法弥补系统设计漏洞。

(2)编码错误导致的漏洞
        很多的漏洞是由于编程错误导致的,比如缓冲区溢出、堆溢出、格式化串漏洞、脚本(ASP/PHP等)漏洞等,这些漏洞是由于编程人员没有严格实施编程时应注意的安全规则或系统的函数库存在漏洞导致的。
        这类问题往往可以通过提高编程质量和实施代码控制得以缓解,尽量减少这类漏洞的产生。

(3)安全策略实施错误
        比如访问控制实施的错误,如最早的WEB服务器很多可以通过“二”访问上一层的目录。这类漏洞是因为在设计系统的时候没有充分设计或实现应遵循的安全策略导致的。

(4)实施安全策略对象歧义导致的漏洞
        也就是说在实施安全策略的时候处理灼对象和最终操作处理的对象不一致。近几年出现了大量因为目标对象歧义导致的漏洞。以最早的115的漏洞为例,比如“a.asp.”、a.asp.+htr”、“a.asp::mode”等方式都可以得到asp脚本的原码,这是由于对于115在实施安全策略(判断安全性)的时候处理的对象是“a.asp.”、“a.asp.+ht:”、“a.asp::mode”,而在实施具体操作的时候处理的对象是“a.asp”。这类漏洞的根本原因在于安全策略要求实施的对象不是系统最终第l章问题的提出、问题的定义处理的对象,同一个对象有多个表述方式,近几年来出现的很多漏洞可以归结为这一原因。应该说一个严格的安全体系,必须明确一个安全策略实施的对象和最终处理的对象是不允许存在歧义的(正的MMIE解码漏洞也是这种类型)。

(5)系统设计/实施时相关人员刻意留下的后门
        在系统的设计或实施的过程中,为了调试的方便,给系统留下了后门,在系统完成直至交付使用后忘记取消后门。或者,某些系统的设计者为了这样或那样的目的,而故意为系统留下后门,为自己今后的非法进入创造条件。这些后门一旦被攻击者获悉,则后患无穷。

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

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

 

DDoS网络—指ODoS攻击中牵涉的各方,它由攻击者、控制台、攻击机(傀儡机)、受害者组成。一个攻击者可以控制多个控制台,一个控制台一般控制多个攻击机,为了攻击效果的缘故,受害者通常只有一个或有紧密联系的多个,比如,全球的根域名服务器(orotesvrer)共有13个,从美国东部时间2002年10月21日下午5点左右起,攻击者就同时对这13个域名服务器进行了持续1小时的DODS攻击,结果只有4到5个服务器经受住了攻击并能继续提供服务,其余的服务器都瘫痪了。在这次攻击中,普通的网络用户的服务却没有受到影响。

 

网络追踪—通过一定的机制、手段,确定攻击的真正来源以及攻击数据包经过的完整路径。这里的数据包的来源可能是实施了追踪的网络的某个入口点、发出数据包的实际的主机或者网络,甚至可能是实施了追踪的网络中的受攻击者控制的某个路由器。

 

DDoS攻击的典型过程

(1)准备阶段,收集目标信息
        通常,攻击者的攻击并非盲目地胡乱进行的,他不会用一台通过Modem连接的Pc机去轰炸(nooding)一个大型网站(当然,如果该网站有一些漏洞使得剧毒包型攻击也能奏效的话,用一台PC机通过剧毒包攻击大型网站奏效的情况也是存在的,然而,这里我们感兴趣的是风暴型攻击)!为了使得攻击奏效,攻击者需要了解受害者许多的信息如被攻击目标主机数目、配置、性能、操作系统、地址情况以及目标网络的带宽等。因此,在攻击发生前,攻击者需要先对目标进行侦察,如利用扫描工具对目标进行扫描。

(2)占领傀儡机和控制台
        在DDoS中,攻击者可以通过自己的机器直接对目标发起攻击,这样攻击者可能会冒着被发现的风险。通常,为了掩蔽自己不被发现,攻击者需要占领一些傀儡机,用来实施攻击。另外,为了达到需要的攻击力度,单靠一台或数台机器对一个大型系统的攻击是不够的,因此攻击者也需要大量的傀儡机器用于增强攻击的“火力”。这些傀儡机器最好具有良好的性能和充足的资源,如强的计算能力、大的带宽等等,这样攻击者会获得较大的攻击力。当然,如果这些机器的管理水平、安全程度低,则更是攻击者的最佳选择,因为这样的机器更容易被攻击者攻破。比如一些宽带家庭用户的系统就具有高带宽、低安全的特性,而且,由于这些用户一般都是按月或按年度固定地付费的,因此,他们的计算机一般会长时间连在网上,这些都是最受攻击者青睐的。并巨:,攻击者还需要向傀儡机发送命令的控制台,因此攻击者还需利用某些被其攻破的机器或者其拥有访问权限的机器作为控制台。
        攻击者占领这些傀儡机的一般方法是先通过扫描,得到一些容易攻破的机器,然后采用一些较为简单的方法予以攻破。此外,由于新的软件越来越多,必然的,整个系统的漏洞也越来越多;软件的漏洞使得恶意程序可以自动地攻破大量的主机,然后提供给攻击者作为傀儡机(攻击机)使用。
        攻击者占领傀儡机以后,需要在傀儡机上安装后门,以保持对傀儡机的“占有”。此外,对于那些攻击者选作攻击机的傀儡机,攻击者还需在上面安装攻击软件。

(3)攻击的实施
        在前面的准备工作完成之后,实际的攻击过程却相对比较简单,攻击者只需通过控制台向傀儡机发出指令,令其立即或在某个时间向指定的受害者大量发送特定的攻击数据包即可。或者,攻击者可以在傀儡机上作一定时设置,时间一到,这些傀儡机就自行对既定目标发起攻击。

       我们这里描述的是分布式拒绝服务攻击的一个典型过程。实际上,并非每一次攻击都要遵循这样一个过程的。例如攻击者在攻击了受害者甲以后的某天打算攻击受害者乙,这时,由于攻击者已经掌握了控制台机器和大量的攻击机,第二个过程就可以省略。或者,攻击者也许通过一些其他的渠道对某个受害者早已有了足够的了解,当他想要对其实施攻击时,第一个过程也就不再需要了。

 

几种典型的拒绝服务攻击

        我们把所有的拒绝服务攻击分成3类,第一类是杀手包或剧毒包k(illerpackeo型攻击,这类攻击也是逻辑攻击,它主要是利用协议本身或者其软件实现中的漏洞,通过一些非正常的(畸形的)数据包使得受害者系统在处理时出现异常,导致受害者系统崩溃。由于这类攻击对攻击者的运算能力或带宽没有要求,一个通过modem连接的低档的PC机就可以攻破一个具有高带宽的大型系统。因此,这类攻击有时也称作非对称「ols]DoS攻击。此类攻击一般可以通过打补丁①或者在防火墙处过滤特定的畸形数据包达到对受害者的保
护目的。第二类是风暴型(noodtPye)攻击,攻击者通过大量的无用数据包(无用是指它们不是正常用户的正常请求,因此是无用的;这些数据包从单个来看是无害的,但当汇集到一定数量以后却会损害受害者的服务,因此我们也称这些数据包为有害数据包;同时,由于这些数据包是旨在攻击受害者,由攻击者发出的或者攻击机响应攻击者的指令而发出的,因此我们有时也称之为攻击性数据包)。在这类攻击中,攻击数据包可以是各种类型的,数据包中的数据也可以是多种多样的,这些数据包与正常服务的数据包是难以区分的。前者,利
用协议实现的漏洞,攻击过程只需借助于一个或少量的异常数据包(称作杀手包或剧毒包)即可达到目的;后者,攻击效果完全依赖于数据包的数量,仅当大量的数据包传到目标系统(受害者)时,攻击方才有效。2000年2月发生的针对y触ho。,eBAY,Amason.。om等等的分布式拒绝服务攻击表明即使是拥有大量资源的网络在风暴型攻击下也难以幸免。第三类攻击我们称为重定向攻击,它既不是利用剧毒包,也不是利用风暴来攻击受害者。它是通过修改网络中的一些参数如ARP表、DNS缓存,使得从受害者发出的或者发向受害者的
数据包被重定向到了其他的地方。这种方法常常是用于窃听或者中间人攻击(将来自于受害者或者流向受害者的数据包重定向到攻击者),但是,如果数据包被重定向到不存在的主机或者存在但不将数据包转发到其真正目的地的主机,则构成实际的拒绝服务。

 

剧毒包型DOS攻击

1)碎片攻击(teardrop)

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

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

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

3)Ping of death攻击

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

4)循环攻击

        循环攻击,有的也称之为死锁或振荡攻击(oscinate attack)。这类攻击中最常见的是Eeho一chargen攻击,当运行着ehargen服务的UDP端口(通常为端口号19)收到一个数据包以后,其会产生一个字符串作为回应。当运行着echo服务的UDP端口(通常为端口号7)收到一个数据包以后,其会简单地返回该包的数据内容作为回应。这两种服务可被攻击者利用来进行循环攻击。比如,攻击者只需向甲系统的UDPecho端口发送一个好像来自于乙系统的UDPhcargen端口的UDP包(即冒充乙系统的IP地址和ehargen端口),则在甲系统的UDPehargen端口和乙系统的之间会产生大量的UDp包,从而当甲乙是不同的两个系统时使两系统因处理彼此收发的数据包而效率降低并阻塞甲乙两系统之间的带宽,当甲乙
为同一个系统时因其两个UDP端口间不停地发送数据包而降低系统性能。(循环攻击既可以看作是剧毒包型攻击,也可以看作是风暴型攻击,一方面,它只要求攻击者发送一个或数个数据包,另一方面,在受害者处却有大量的数据包出现。)这种攻击可以针对单个系统,也可以针对两个或多个系统。

 

风暴型Dos攻击

直接风暴型攻击

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

(2)SYN风暴攻击

        SYN风暴攻击是最常见的一种攻击。在TCP的连接建立过程中,需要连接双方完成3次握手,只有当3次握手都顺利完成,一个CTP连接才告建立。当一个系统(称为客户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风暴。

(5)对邮件系统的拒绝服务攻击

        这种攻击是通过往一个邮件地址或邮件服务器发送大量的相同或不同的邮件,使得该地址或服务器的存储空间塞满而不能提供正常的服务。

反射攻击

        虽然同为风暴型攻击,与直接风暴型攻击不同,反射攻击多了反射器的反射环节。在这种攻击中,攻击者或其控制下的傀儡机(攻击机)不是直接向受害者发送攻击数据包,而是向第三方的反射器发送特定的数据包,再经由反射器向受害者发送攻击者所希望的数据包。其利用了反射器根据一个消息生成另一个消息的能力。

 

DoS工具分析

(1)Trinoo

       是发现最早的DDos具之一,在1999年6、7月就出现了。Trinoo的攻击采用的是UDP风暴,其攻击者(attacker、cilent)到控制台(handler、master)的通信通过TeP端口27665,控制台到攻击主体(agents、demaon)的通信通过UDP端口27444进行通信,而攻击机到控制台的通信则通过UDP端口31335。

(2)TFN

        TFN是TheTribeFloodNetwo的缩写,它的出现是在trinoo之后,TFN的控制台和攻击主体构成的攻击网络能够实施多种攻击,如ICMP风暴、SYN风暴、UDP风暴和SMURF等。TFN与trinoo有较大的区别,其攻击者、控制台、攻击主体之间的通讯采用CIMPECHO和ECHOREPLY消息。在TFN中,攻击者到控制台的通讯采用的是明文方式,即没有加密处理,容易受到标准的TCP攻击如会话劫持(sessionhijaeking)、RsT截断(RsTsniping)等。TFN的控制台到攻击机的通讯通过IPHORPLY包。由于有些协议监视工具不截取IP包,
因此TNF不依赖于TCP和UDP进行通讯的特征使得在某些情况下其更不易被发现。

(3)Stacheldraht

        在德语中意指带刺的网线”barbed wire,’。出现于1999年夏天晚些时候,其集合了trinoo。和TFN的某些特征并有一些更高级的特征,如控制台对攻击者的认证需要攻击者提供口令,这个口令在向控制台发送的过程中是通过Blowfihs加密的,控制台和攻击机之间的所有通讯都采用Blowfihs加密。攻击机可以自动升级等。

        Stacheldrhat的攻击者向控制台的联系通过TCP端口16660,控制台到攻击机的联系通过TCP端口,反方向的联系则通过CIMPECHOREPLY

(4)Trinity

        其可实施多种风暴型攻击,包括UDP、sYN、RST、ACK等。从攻击者或控制台到攻击主体的通讯则是通过即时通讯(intemet Relay Chat,IRC)或美国在线(AOL)的ICQ,Trinity也是最早利用IRC进行控制的DDoS工具之一。Triniyt最早似乎用的是端口号6667,并且有一个后门程序监听TCP端口33270。

(5)Shaft

         一个Shaft网络看起来与trinoo的类似,在控制台和攻击机之间的通讯采用的是UDP协议(控制台到攻击机的通讯用端口18753,相反方向用端口20433)。攻击者可以控制攻击类型、攻击包的大小和攻击时间的长短。Shaft的一个典型的特征是其TCP包的序列号都是0x28374839。

(6)TFN2K

TFN2K是在TFN上发展起来的变种,有很多新的特征使得其通讯更难以识别和过滤、命令可以远程执行、通过地址伪造掩盖攻击源,并能通过多种协议如UDP、TCP和ICMP进行
通讯。TFN2K除了可以实施TFN己有的攻击外,还可以通过发送如Teardrop攻击和Land攻击那样的异常数据包使得受害者系统不稳定或崩溃。

(7)Stream/mstream

        比较初级,其程序中有不少的错误,其控制功能也相对单一。然而,其也象其他的工具一样,会给受害者带来很大的灾难。

(8)Jolt2

    jolt2.c是在一个死循环中不停的发送ICMp/UDP的伊碎片,可以使windows系统的机器死锁。经测试,没打补丁的Wnidows2000遭到其攻击时,CPU利用率会立即上升到100%,鼠标无法移动。jolt2的危害较大,其通过不停的发送IP碎片数据包,不仅死锁未打补丁的wnidows系统,同时也大大增加了网络流量。曾经有人利用jolt2模拟网络流量,测试DIS在高负载流量下的攻击检测效率,就是利用这个特性。

 

最后欢迎大家访问我的个人网站: 1024s

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值