收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
积木学院 > 安全防范 > 服务器安全 > 正文

拒绝服务攻击与防范

来源:互联摘选 日期:2005-08-04 07:43
内容提要:近年来,随着有关产业的发展,如电子商务、电子政务,把信息安全提到了一个相当高的要求上来了,如何保障它们的安全,这是个很重要的问题,特别是要使它们不能受到拒绝服务攻击,拒绝服务是攻击网络攻击中一种相当难于防范的攻击。所以说,对拒绝服务攻击的研究,对于我们来说是有相当的重要意义的。

关键词:  拒绝服务,攻击,DoS,DDoS,DRoS。

相关背景:2000年2月份,YaHoo、亚马逊,等受到DoS攻击而停止服务,近来国内安全站点黑客基地也受到攻击而经常不能提供WEB服务,近几天,QQ公司被低速洪水攻击而使得大多用户不能登录QQ。

我们每年都会常见到很多大网站受到拒绝服务攻击,拒绝服务攻击是一种技术含量低,但攻击效果明显的一种攻击方法,受到这样的攻击时,服务器在长时间内不能正常的提供服务,使得合法用户不能得到服务,特别是DDOS,它的效果更是明显,并且难于找到攻击源,很难提出一条行之有效的解决方法。虽然我们也就只能被动地采取一些办法,但是也要尽可能的做点努力,否则的话,那就会使结果更严重。我们先来看看什么是拒绝服务吧,我引用四川大学信息安全研究所所编著的一本书《信息系统安全导论》里的定义,拒绝服务攻击就是使信息或信息系统的被利用价值或服务能力下降或丧失的攻击。当然我们这里说的主要是通过网络攻击来实现的,其实要使目标拒绝服务的话,还有另外的办法,如断电,硬件破坏,通信线路的破坏,但这些是不大现实的,除非是发动战争,这是从根本上让对方拒绝服务。我们常见的还是通过网络来实现攻击的。

一、    一般的拒绝服务攻击与防范
我们先来看看DoS的英文是什么-----Denial  of  Service所以中文译过来就是拒绝服务了,因为Internet本身的弱点及Internet总体上的不安全性使入侵者利用了TCP/IP协议的一些不足来发动攻击,这样黑客们就容易攻击成功,因为拒绝服务攻击是一种技术含量低的攻击,所以大多人都可容易掌握,一般来说是攻击者在用其它办法不能攻击得呈时,他极有可能采用这种攻击方法,但是拒绝服务可以说是一种高消耗的方法,是一种损人不利已的行为,虽然攻击时使受攻击目标不能正常的提供服务的同时,也会浪费掉攻击者的大量代价。由于攻击就是主要使服务器的服务能力下降,所以当你发现你的CPU占用是100%时,一定要仔细看看日志,最常见的是查看防火墙的记录,如果常见的黑客攻击是征对WEB服务攻击。那么你还可从你的WEB日志中得到一些收获的,从中仔细地分析出是什么原因造成的。下面我来说说最常见的,也是最早的一些拒绝服务。

1、    报文洪水攻击(Flood DoS)
这个是根据TCP/IP协议的规定,要完成一个TCP连接时,需要三次握手。首先客户端发一个有SYN标志的包给服务器,请求服务,然后服务端返回一个SYN+1 的ACT响应包。客户端收到后再发一个确认包给服务端。这时,客户端与服务端建立连接成功,这样就为进行以后的通信作好了准备工作。进行攻击时,攻击者就会利用只发伪造的包而不接收响应(这里实质是收不到,因为IP是假的),从而让服务器产生大量的"半开连接",由于每个包服务器有一定的等待响应时间,而且当一定时间没有收到响应时,还会多次重发。因此服务器在重发与等待过程中形成大量的半开连接。从而攻击者可通过多台计算机。发送大量的虚假IP源地址的SYN数据包,造成服务器CPU的占用过渡,当达到一定量时,就形成了拒绝服务。同时由于合法用户的请求大多被攻击包淹没中,即使服务器此时没有死机,也无力再响应合法用户的请求了。
对于这种攻击,我们可以减少服务器重发包的次数和等待的时间,如WIN2K中可修改注册表的相应设置来防范这种洪水攻击(由于内容过多,请参考相关资料)。

2、    UDP flood拒绝服务攻击
由于UDP协议是一种无连接的服务,在UDP FLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,所以只要你开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击,如QQ就是基于UDP协议的,网上有种工具能进行发送大量的包 对目标进行攻击,从而让对方QQ被下线,如果是对其它的服务进行的话,严重点的话,可能会让服务器死机。
对这种攻击,建议安上防炎墙,但由于你是开了这UDP端口提供相关服务的,所以也很难于防范。
3、    Land攻击。
这是利用TCP/IP的漏洞,进行发送大量的源地址与目的地址相同的包,从而造成服务器解析Land包时占用大量的处理资源,当收到的包达到一定程度时,就会形成拒绝服务攻击。
对这类攻击的防范可由防火墙解决,当收到这类包时,主动把它丢掉,不作处理,这就是简单的FIREWALL的包过滤功能,另外要打上最新的补丁。

4、    Smurf攻击。
放大效果是黑客常利用的一种方法,这会使网络的效果以许多倍数递增,所以效果也相当的好,攻击者伪装成为受攻击者发包给该网络上的广播设备,然后广播设备再把请求发给网络上的多个设备,从而多个设备对这个被攻击者进行回复响应,如果该网络上的响应设备足够的多的话,就是让被攻击者收到大量的包,从而受到拒绝服务攻击。
对这种攻击,我认为可以采取一些隔离设备。使之不能进行广播。进行网络的多个划分,形成多个小"局域网"来解决这样的攻击。主要的思路就是防止计算机对IP广播请求做出响应。

5、   死 Ping。
Ping是通过发送ICMP报文来判断主机是否存活。我们利用这个命令就能发动一次攻击,当发送超大型这种包时,也就是发送的包超过65535字节会造成服务器重组包时发生缓冲区溢出,从而让服务器崩溃发生拒绝服务。
对这类攻击的防范现在比较容易,如一般安装了防火墙的都不会响应Ping命令的,都会把这样的包挡下,也可在系统里边设置,如WIN2K可在IP安全策略中设定把ICMP的包过滤掉,这样就解决了。另外就是要打上补丁。

二、    分布式拒绝服务攻击与防范
还是先来看看它的英语是什么吧,英文全称是Distributed  Denial  of  Service,在这种攻击
主要有四种角色,黑客,主控端,攻击端,被攻击目标。它们的数量大体有以下的情况:
黑客(一个以上)——>主控端(较多)——>攻击端(很多个)——>被攻击目标(一个)
在攻击的前期,黑客会花大量的时间来寻找大量的肉机来充当主控端与攻击端,并且为攻击作好准备工作,也就是安装各种拒绝服务后门程序,如我们国内比较有名的独裁者,它与木马相似,分为客户端与服务端。必须大量的植入服务端程序,以便以后发起攻击。(在这以前我也曾写过《拒绝服务独裁者后门的手工清除》的文章,可以参考一下,不要让自己的计算机充当了为攻击者服务的工具)在这种攻击中,黑客若对一个大型目标进行攻击时,可能采取多方联合,就是把一般的那些拒绝服务攻击方式都可能用上,这样才能达到攻击效果明显,尽早让被攻击目标陷入瘫痪状态中。这里为何多个主控端呢?主要是黑客在攻击时,被攻击目标可能会进行查找攻击源,这样的话就能够更好的隐藏,并且一般来说,黑客是用虚假的IP源地址来控制主控端的,黑客不会让主控端返回任响应。同样主控端与攻击者间的通信控制也是采取这样方式,这样就大大的减少了暴露出黑客自己的可能性。
    对这类攻击是很难防范的,这里不仅是被攻击者的,还有网络中的各计算机都要时刻注意的,有时也许你的计算机无意中就充当了一个攻击者的角色,所以,你要尽可能的打上最新补丁,检查自己计算机的漏洞,不要让黑客在你的计算机中植入了攻击程序。如独裁者的服务端会开一个8535的端口等待连接,随时在待命攻击中一样,并且当攻击行动发生时,你的计算机若是充当了攻击端的话,会明显感觉到你在处理另外的工作时速度突然变慢,在WINDOW操作系统下我看了一下, CPU利用率会达到100%,所以说,是相当严重的。但有些攻击程序也没有客户端,对这种情况,黑客一般是早已就计划好了对某个目标的攻击的,他们早就把攻击程序配制好了的,只对特定的目标进行攻击。对于被攻击者,当受到攻击时,要及时的调整防火墙的策略。要与骨干网络运营商做好沟通,就是每家运营商在自己的出口路由器上进行源IP地址的验证,如果在自己的路由表中没有这个数据包源IP的路由,就丢掉这个包。这种方法可以一定程度上阻止黑客利用伪造的源IP来进行DDoS攻击。不过同样,这样做会降低路由器的效率,这也是骨干运营商非常关注的问题,所以这种做法真正采用起来还很困难。另外就是要与ISP进行联系,请求提供帮助。

三、    反射式分布拒绝服务攻击。
同样它的英语是Distributed  Reflection  Denial  of  Service这是DDoS攻击的变形,它与DDoS的不同之处就是DrDoS不需要在实际攻击之前占领大量的傀儡机。这种攻击也是在伪造数据包源地址的情况下进行的,从这一点上说与Smurf攻击一样,而DrDoS是可以在广域网上进行的。其名称中的"r"意为反射,就是这种攻击行为最大的特点。黑客同样利用特殊的发包工具,首先把伪造了源地址的SYN连接请求包发送到那些被欺骗的计算机上,根据TCP三次握手的规则,这些计算机会向源IP发出SYN+ACK或RST包来响应这个请求。同Smurf攻击一样,黑客所发送的请求包的源IP地址是被害者的地址,这样受欺骗的计算机就都会把回应发到受害者处,造成该主机忙于处理这些回应而被拒绝服务攻击。
对于这种攻击是很难进行防范的,因为这类包的IP虽然是不真实的,但却是合法的。

四、    新型DoS(伪造TCP连接进行数据传输的DoS)攻击。
   这里是从近几天重庆网络安全工程师俱乐部的LionD8写的一篇文章中谈的,这种拒绝服务攻击主要在它要先建立TCP连接,然后才发动攻击。先来看看过程:

          A为攻击者, C被攻击者:
             A Syn      ——> C
             A Syn,Ack   <——C
             A Ack      ——> C
             A 发送数据 ——> C
             A Ack      <—— C
             A 发送数据 ——> C
             A Ack    <——— C
                --------
引用原文中的结果说明:
      对于一般的临时端口比较有效对于1025端口来说,相当的有效。内存持续上升
后最后可以导致计算机由于资源不足无响应,死机。20分钟可以拖死一个网吧的服务器。对于80端口最大连接数100,效果不是十分的明显,消耗掉40M内存就开始反复了,留下大量的FIN_WAIT_1状态和ESTABLISHED状态。至于具体内容请参考原文《新型DoS(伪造TCP连接进行数据传输的DoS)》在网站<a href=\'http://www.xfocus.net\' target=\'_blank\'>www.xfocus.net</a>。这种攻击是在NAPTHA基础上的进一步的发展而得的一种攻击方法。
对这种攻击只要找到其IP加入过滤规则中过滤掉就行了,当然,要是在边界有IDS的话,当发现这类攻击时,可以同时报警,同时与防火墙进行联动,因为对这种攻击IP是固定的,所以也相对容易分析与防范。

五、    新型放大拒绝服务攻击。
这种攻击是主要利用网络上数据放大的原理进行攻击的。主要是对整个网络进行拒绝服务攻击,把某个网络破坏掉,这里引用举例说明:大家知道proxy分为socks和http这里是两种主要的协议,免费的网络上都是一大把。Socks代理可以直接连接成代理链,Http代理有一些可以通过他的Connect模式模拟成Socks代理(这个模式为了ssl登陆的,具体可以看rfc文档,有部分服务器允许connect到任何端口,有的有限制在443,我说的都是不限制的),这样的我们可以利用http代理的connect和socks代理做这么一个代理链J-A-J-A-J-A-J-A......(J表示日本代理,A表示美国代理)那么我们连接他上百次,然后最后的指令是去microsoft下载它的windows XP SP2,那么意味着什么?我来描述一下具体的情况,在连接过程中,我们发现响应速度越来越慢,这是因为我们人为的把网络节点一倍一倍的增加,数据通过的网络长度也在成倍增加,相应速度也慢了,但是开始下载的时候,你会惊讶的发现速度并没有慢哦,本来是多少还是多少,不会因为代理数目多了而放慢速度,就好像在高速,一个长长的车队,不会因为车多了慢下来(速度)只会因为路线长了,跑的时间多了(响应时间)哈哈,又是单线数据放大百倍,这时的G点就是J国到A国那根光缆了。如果我们下载的速度会达到了100KB/S那么放大100倍就是10000KB/S,就是10MB/S,那么就在J国到A国的国际线路上长时间占用了100Mbit的带宽哦。这只是我个人一个1Mbit带宽的ADSL的效果,如果我是宽带,如果我有多个朋友配合,如果我同时这样占用J国与其他国家的带宽,那么J国就成为一个网络岛国了(作者特别说明:这个例子是引用原文中的《从BBS到代理——拒绝服务攻击新定义》,原文中还有一个例子就是选择清华、北大等高校BBS的里面的穿梭银河,读者可参考一下原文中的详细情况)。这种攻击对于两个网络只过一个单独的节点时,这样会使数据在两地来回地通过节点,会造成大量的数据在节点处拥挤,从而造成了网络的工作繁忙而停止服务。这种攻击对星形拓扑结构的攻击是相当有效的。如果攻击都能构造出一个循环数据通信的话,并且多次通过节点,那攻击的后果更严重。
对这种攻击,我们应该尽量要减少在组建网络时出现单出口的情况,还有就是要防止有数据放大作用的一些情况,如对于星型的拓扑结构的网络,若攻击者发动一次这样的攻击的话,效果就会是相当明显的,所以在布置网络时要充分考虑到这些情况。

六、    其它的拒绝服务攻击。
其它的像DNS分布拒绝服务攻击,它也有点反射的情况,黑客通过向多个DNS服务器发送大量的伪造的查询请求,查询请求数据包中的源IP地址为被攻击主机的IP地址,DNS服务器将大量的查询结果发送给被攻击主机,使被攻击主机所在的网络拥塞或不再对外提供服务。
还有电子邮件拒绝服务攻击呀,一是对发送大量的垃圾邮件,从而占满用户的邮件空间,让用户收不到邮件,二是可能有黑客进行暴力破解用户的邮箱密码。如果根据邮件服务器的规则,可能让用户不能登录邮箱。
其它的还有QQ的拒绝服务,攻击者用软件自动发送大量的信息给被攻击者,从而让用户收到大量的垃圾信息。
另外就是,要拒绝服务的话,你可以采用多种攻击方式,当然最极端的就是进行物理上的破坏,只是这样的可能性不大,但也不是没有可能,如电磁辐射。如战争爆发时,敌我双方用核电磁脉冲对通信线路的破坏。
所以说防范时,我们要尽可能的考滤多种情况,尽量多地关心黑客所采用的攻击技术,这样才能根据攻击采取相应的措施防范。

七、    对拒绝服务攻击的工具一些思考。
如果黑客对已确定的目标进行攻击的话,可以只有拒绝服务工具的服务端,不要控制端,对这种一般是对WEB服务器进行攻击,因为配置攻击目标时是采用域名,而不用具体的IP(如DDos1.3与1.4版)。同时黑客可能通过自己编程,利用各种漏洞来植入攻击程序,只要计算机一开机时就进行攻击,这种情况可能常出现在一个新的漏洞发现后的一阵时间内。所以对这种攻击,要多方努力,把自己的系统打上最新的补丁。
还有是有对有主控端的攻击程序,这种要求当与攻击端通信时,也就是发出攻击信号指令时,最好要有口令控制,另外还不能让攻击端有返回响应。如果同时你想要查看攻击效果的话,如对WEB服务器,黑客可能通过打开IE查看,若速度变慢,或打不开,那么可能就攻击成功了。
另外我个人认为可能黑客的攻击程序的植入完全可以采用病毒,蠕虫的传播技术,还可以用最新发现的漏洞,也可以用计算机管理员的配制失误来进行植入,如用SQL的空密码,共享入侵,IPC连接等,这完全是可能的,因为现在网上好多黑客程序,如用IPC进行自动扫描,扫描到能入侵的计算机时,自动的植入木马或其它后门程序,同样,当黑客把这些技术用在拒绝服务攻击上来时,也是很可能的。

最后说说,拒绝服务攻击是一种相当难于防范的攻击 ,一般是的加强对数据包的特征识别,也就是通常的加强对包的分析,找到不合理的包的特征,从而丢掉该数据包,并与多种设备进行联动防范,但我认为这些防范措施现在来说,大都是被动型的,也没有从根本上完全解决,只是积极的防范总比没有采取任何措施好。另外就是对于这种攻击的防范,我们要多方合作,时常关心一下常见的漏洞,利用网络安全设备,如防火墙,IDS产品等,当检测到有过多的连接时,要及时的查明是什么原因造成的,若是因为拒绝服务的攻击而引起的,那么要及调理安全策略,联合多方进行合作来解决。

推荐阅读

 

热点信息

 
强悍的草根IT技术社区,这里应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号