2000年2月7日开始,美国Yahoo、eBay等几个著名的大型商业网站连续遭到黑客的袭击,造成网络 长 达数小时的瘫痪。据统计,袭击所造成的经济损失可能在12亿美元以上。这次袭击引起了各国政府以及全球信息产业界的广泛关注。根据有关报道,这次攻击手法 是以大量垃圾包淹没目标网站,使得真正的用户无法使用目标网站系统,至少有数百台电脑同时发起了攻击行动。这是一种“拒绝服务攻击”(Denial of Service,DoS)的典型攻击方式。本文将简要介绍这种攻击方式的原理、工具和解决方法。
拒绝服务攻击和其他大部分攻击不同的是因为他们不是以获得网络或网络上信息的访问权为目的。攻击主要是使服务不能为正常的使用提供服务。通常可以用耗尽网络、操作系统 或应用程序有限的资源来实现。
当涉及到特殊的网络服务应用,象HTTP或FTP服务,攻击者能够获得并保持所有服务器 支持的有用连接,有效的把服务器 或服务的真正使用者关在外面。拒绝访问攻击也能用普通的Internet协议实现,象TCP和ICMP。大部分拒绝服务攻击是使用被攻击系统整体结构上的弱点而不是使用软件 的小缺陷或安全 漏洞。然而,有些攻击通过采用不希望的、无用的网络报文掀起网络风暴和提供错误的网络资源状态信息危及网络的性能。在我们正式步入对这些问题的技术性讨论之前,让我们先从现实的生活中的实际角度来看一下这些困绕我们的问题。
一.当前的技术概况
在我们进入更为详细的解决方案之前,让我们首先对问题做一下更深入的了解。与安全相关的这些小问题如果详细来讲的话都能成为一个大的章节,但限于篇幅的原因,我们只能先作一下大体的了解。
· 软件弱点是包含在操作系统或应用程序中与安全相关的系统缺陷,这些缺陷大多是由于错误的程序编制,粗心的源代码审核,无心的副效应或一些不适当的绑定所造成的。根据错误信息所带来的对系统无限制或者未经许可的访问程度,这些漏洞可以被分为不同的等级。
· 典型的拒绝服务攻击有如下两种形式:资源耗尽和资源过载。当一个对资源的合理请求大大超过资源的支付能力时就会造成拒绝服务攻击(例如,对已经满载的 Web服务器进行过多的请求。)拒绝服务攻击还有可能是由于软件的弱点或者对程序的错误配置造成的。区分恶意的拒绝服务攻击和非恶意的服务超载依赖于请求 发起者对资源的请求是否过份,从而使得其他的用户无法享用该服务资源。
· 错误配置也会成为系统的安全隐患。这些错误配置通常发生在硬件装置,系统或者应用程序中。如果对网络中的路由器 ,防火墙 ,交换机以及其他网络连接设备都进行正确的配置会减小这些错误发生的可能性。如果发现了这种漏洞应当请教专业的技术人员来修理这些问题。
二.深入D.O.S
DoS的攻击方式有很多种。最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,致使服务超载,无法响应其他的请求。这些服务资源包括网络带宽,文件系统空间容量,开放的进程或者向内的连接。这种攻击会导致资源的匮乏,无论计算机的处理速度多么快,内存 容 量多么大,互连网的速度多么快都无法避免这种攻击带来的后果。因为任何事都有一个极限,所以,总能找到一个方法使请求的值大于该极限值,因此就会使所提供 的服务资源匮乏,象是无法满足需求。千万不要自认为自己拥有了足够宽的带宽就会有一个高效率的网站,拒绝服务攻击会使所有的资源变得非常渺小。
传统上,攻击者所面临的主要问题是网络带宽,由较小的网络规模和较慢的网络速度,无法使攻击者发出过多的请求,然而,类似"the ping of death"的攻击类型紧需要很少量的包就可以摧毁一个没有打过补丁的UNIX系统。当然,多数的DoS攻击还是需要相当大的带宽的,但是高带宽是大公司 所拥有的,而以个人为主的黑客很难享用。为了克服这个缺点,恶意的攻击者开发了分布式的攻击。这样,攻击者就可以利用工具集合许多的网络带宽来对同一个目 标发送大量的请求。以下的两种情况最容易导致拒绝服务攻击:
· 由于程序员对程序错误的编制,导致系统不停的建立进程,最终耗尽资源,只能重新启动机器。不同的系统平台都会采取某些方法可以防止一些特殊的用户来占用过多的系统资源,我们也建议尽量采用资源管理的方式来减轻这种安全威胁。
· 还有一种情况是由磁盘存储 空间引起的。假如一个用户有权利存储大量的文件的话,他就有可能只为系统留下很小的空间用来存储日志文件等系统信息。这是一种不良的操作习惯,会给系统带来隐患。这种情况下应该对系统配额作出考虑。
从安全的角度来看,本地的拒绝服务攻击可以比较容易的追踪并消除。而我们这篇文章主要是针对于网络环境下的DoS攻击。下面我们大体讨论一下较为常见的基于网络的拒绝服务攻击:
三.D.O.S三种基本攻击形式
(1)服务过载
当大量的服务请求发向一台计算机中的服务守护进程时,就会发生服务过载。这些请求可以通过许多方式发出,许多是故意的。在分时机制中,这些潮水般的请 求,使得计算机十分忙碌地处理这些不断到来的请求,以至于无法处理常规的任务。同时,许多新到来的请求被丢弃,因为没有空间来存放这些请求。如果攻击的是 一个基于TCP协议的服务,那么这些请求的包还会被重发,结果更加重了网络的负担。这种攻击可能是一个攻击者为了掩盖自己的痕迹,阻止对攻击者的记录和登 陆请求的系统计帐审计。这种攻击会阻止系统提供的一种特定服务。(2)消息流
消息流发生于用户向一台网络上的目标主机发送大量的数据包,来延 缓目标主机的处理速度,阻止它处理正常的任务这种情况。这些请求可能是请求文件服务,要求登陆或者仅仅是简单的要求响应包(例如ping)。无论是什么形 式,这些潮水般的服务请求,加重了目标主机的处理器负载,使目标主机消耗了大量的资源来响应这些请求。极端的情况,这种攻击可以引起目标主机因为没有内存 来做缓冲,以存放到来的请求,或者因为其他错误而死机。这种拒绝服务的攻击主要针对网络服务器。一个简单的攻击类型是“广播风暴”。攻击者可以生成这样一 个消息,它将指示每一个收到包的主机回答或者重发这个消息。结果网络饱和,并且不能使用。广播风暴很少是由故意的攻击所致,它通常是由于硬件或者软件的缘 故,例如,正在开发之中,存在错误或者没有正确地安装。
(三).信号接地
物理方法也可以关闭一个网络。将网络的电缆接地,引入一 些其他信号或者将以太网上的端接器拿走,都可以有效地阻止客户发送或者接收消息。这种攻击方式不仅可以阻止那些依赖服务器提供程序和资源的各种机器,也可 以阻止向主服务器汇报戳物的登录请求或者危险的行动,来掩盖一次非法访问的企图。在这种情况下,被攻击的主机要向主服务器报告发现的错误信息。保护网络的 电缆不被物理地接入其他设备。这也可以减少被监听的威胁。这种保护措施减少了对电缆上的各个节点的监听和欺骗,也可以有效地防备信号接地这类拒绝服务的攻 击。
四.拒绝服务具体攻击方法
(一).PING O’DEATH
ping o'' death是利用ICMP协议的一种碎片攻击。攻击者发送一个长度超过65535的Echo Request数据包,目标主机在重组分片的时候会造成事先分配的65535字节缓冲区溢出,系统通常会崩溃或挂起。ping不就是发送ICMP Echo Request数据包的吗?让我们尝试攻击一下吧!不管IP和ICMP首部长度了,数据长度反正是多多益善,就65535吧,发送一个包:
# ping -c 1 -s 65535 192.168.0.1
Error: packet size 65535 is too large. Maximum is 65507
不走运,看来Linux自带的ping不允许我们做坏事。65507是它计算好的:65535-20-8=65507。Win2K下的ping更抠门, 数据只允许65500大小。所以你必须找另外的程序来发包,但是目前新版本的操作系统已经搞定这个缺陷了,所以你还是继续往下阅读本文吧。
顺 便提一下,记得99年有“爱国主义黑客”(“红客”的前辈)发动全国网民在某一时刻开始ping某美国站点,试图ping死远程服务器。这其实是一种 ping flood攻击,用大量的EchoRequest包减慢主机的响应速度和阻塞目标网络,原理和ping o'' death是不一样的,这点要分清楚。
(二).分布式拒绝服务攻击实例
(1)分布式拒绝服务攻击概述
分布式拒绝服务攻击的理论和技术可能性很早就为网络界所认识,而最近分布式拒绝服务开始被攻击者采用并有泛滥趋势。在分布式拒绝服务攻击中,攻击者利用 成百上千个被“控制”节点向受害节点发动大规模的协同攻击,如同时泛洪(flood)受害节点。由于攻击来自很多节点,使得受害程度更加严重,涉及范围更 广,也更难发现攻击者。
(2).分布式拒绝服务攻击原理
在这类攻击工具中比较有名的有Trin00、 TFN(Tribe Flood Network)、TFN2k以及stacheldraht(德文铁丝网的意思)等。1999年6月,Trin00最先被发现用来进行网络攻击。1999 年8月,焦点转向TFN。TFN据称是Mixter在分析Trin00时编写的,TFN后来升级到TFN2k。1999年9月底,类似TFN的称为 stacheldraht的攻击出现在欧洲和美国网络上。
分布攻击系统基于Server/Client模型体系。典型的分布攻击系统中,一般由一个攻击者控制一个或几个Master , 再由其控制大量分布的Daemon,Daemon 直接向受害节点泛洪包或实施其他攻击,如附图所示。
下面以Trin00为例说明分布式攻击的原理。Trin00可以在很多节点对受害节点发动协同的UDP洪流攻击。在Daemon编译时,Master的 IP地址编入程序,Daemon一旦安装运行时,将向Master的31335端口发送包含数据*HELLO*的UDP包注册自己。攻击者通过 telnet或netcat等程序连接Master的27665端口,指令Master向某一个或多个IP地址节点发动攻击;Master将以UDP包的 形式向Daemon的27444端口发送命令,由Daemon实施直接的攻击,步骤如下。
1.攻击者→Master,27665/TCP;
2. Master→Daemon,27444/UDP;
3. Daemon→受害节点,随机目的端口/UDP洪流.
攻击者发送的命令主要有6种,见附表。
附表 主要攻击命令
命令 作用
Mtimer 设置攻击的时间
Dos 向某节点发动攻击
Mdie 杀死Daemon
Mping ping所有的Daemon
Mdos 向多个节点发动攻击
Msize 设置攻击的UDP包大小
攻击者连接Master时有口令要求,Master以加密形式存储Daemon 的IP地址,Master和Daemon之间的通信 也有口令。
应该注意的是事实上DDoS由两个攻击阶段组成。在实施DDoS攻击阶段前,有一个大规模的入侵阶段,入侵大量节点(成百上千)来安装DDoS的 Daemon,这些节点是首批的受害者。这一阶段入侵可以利用已知的各种漏洞,例如目前已发现的、常被利用的是RPC服务,如rpc.statd、 rpc.cmsd、rpc.ttdbserver等中的漏洞。
TFN,特别是TFN2k以及stacheldraht 在功能和自身保密性方面有了进一步的提高。除了UDP洪流攻击外,它们还可以产生TCP SYN洪流攻击、ICMP echo 请求洪流和ICM直接广播形式的DoS等。攻击中的包可以假冒源IP地址,指令消息的通信采用先进的加密方法,还可以发送欺骗包。此外,可以自动升级新的 Daemon。这些提高使得这些攻击的破坏能力更大,同时更难以被检测。
总之,分布攻击技术并不是全新的,但正在走向成熟,即使是不高明的攻击者也可以利用方便的工具造成重大破坏。
(3)、DDos解决途径参考
任何网络用户都应该有安全意识,都要有在任何时候可能被攻击的准备。对计算机和网络的攻击技术是复杂多变的,没有一劳永逸的解决办法。对于DDoS攻 击,虽然可以尽量加固系统来尽可能地不被安装Daemon,但基本上目前没有有效的技术来防止节点不成为协同的分布泛洪攻击的受害者。提高计算机和网络系 统的安全性以及恢复能力将是一个持久的过程。从技术角度来说,人们应该在防御、检测和响应三方面采取措施,尽量避免受到攻击以及减少受攻击造成的损失。
(4) 在防御方面,建议应该立即采取的措施有以下几点。
1. 被攻击者利用的节点通常是因为有已知的漏洞,因而要及时地打补丁升级系统。
2. 在进行攻击时,攻击者通常假冒源地址,建议所有的节点实现入口过滤。
3. 检查边界安全规则,确保输出的包受到正确限制。
4. 遵从有关安全权威站点(如CERT等)的安全措施。
此外,还应经常扫描检查系统,解决系统的漏洞。
在检测方面,建议安装入侵检测工具。目前有一些用于检测和分析DDoS的工具。如NIPC(国家基础实施保护中心)用于检测Trin00和TFN的工具 以及ISS公司新发布的检测DDoS的工具的升级版本等等。要对日志中的有关迹象、DDoS工具的印迹以及主动的ICMP echo 和不正常的高流量给予检测。
在响应方面,由于在受到DDoS攻击的过程中,几乎没有可用带宽,因而很难做直接实时的响应反击。关键是及时联 系ISP和有关应急组织,分析受影响的系统,确定涉及的其他节点,从而阻挡从已知攻击节点的流量,并追踪攻击者。有关处理大数据流量的算法,有效地跟踪、 分析攻击者的技术和工具等都还有待进一步研究。
最后应该指出的是,安全是整个Internet集体努力的结果。分布攻击更让人意识到每个站点的安全需要所有站点共同努力。网络用户、管理者以及ISP之间都应经常交流,共同制定计划,提高网络的安全性,从而尽最大可能地防止对网络的恶意破坏。
(三). 剖析SYN Flood攻击
(1)SYN Flood概述
SYN Flood是一种常见,而且有效的远程拒绝服务(Denial of Service)攻击方式,它通过一定的操作破坏TCP三次握手建立正常连接,占用并耗费系统资源,使得提供TCP服务的主机系统无法正常工作。
由于TCP SYN Flood是通过网络底层对服务器进行攻击的,它可以在任意改变自己的网络地址的同时,不被网络上的其他设备所识别,这样就给公安部门追查犯罪来源造成很大的困难。
在国内与国际的网站中,这种攻击屡见不鲜。在今年年中的一个拍卖网站上,曾经有犯罪分子利用这种手段,在低价位时阻止其他用户继续对商品拍卖,干扰拍卖过程的正常运作。
(2)TCP SYN Flood攻击的机制 ,这里需要使用经过伪装且无法通过路由达到的来源IP地址,因为攻击者不希望有任何第三方主机可以收到来自目的系统返回的SYN/ACK,第三方主机会返 回一个RST(主机无法判断该如何处理连接情况时,会通过RST重置连接),从而妨碍攻击进行。客户端通过发送在TCP报头中SYN标志置位的数据分段到 服务端来请求建立连接。通常情况下,服务端会按照IP报头中的来源地址来返回SYN/ACK置位的数据包给客户端,客户端再返回ACK到服务端来完成一个 完整的连接(Figure-1)。 在攻击发生时,客户端的来源IP地址是经过伪造的(spoofed),现行的IP路由机制仅检查目的IP地址并进行转发,该IP包到达目的主机后返回路径 无法通过路由达到的,于是目的主机无法通过TCP三次握手建立连接。在此期间因为TCP缓存队列已经填满,而拒绝新的连接请求。目的主机一直尝试直至超时 (大约75秒)。这就是该攻击类型的基本机制。
发动攻击的主机只要发送较少的,来源地址经过伪装而且无法通过路由达到的SYN连接请求 至目标主机提供TCP服务的端口,将目的主机的TCP缓存队列填满,就可以实施一次成功的攻击。实际情况下,发动攻击时往往是持续且高速的。这里需要使用 经过伪装且无法通过路由达到的来源IP地址,因为攻击者不希望有任何第三方主机可以收到来自目的系统返回的SYN/ACK,第三方主机会返回一个 RST(主机无法判断该如何处理连接情况时,会通过RST重置连接),从而妨碍攻击进行。由此可以看到,这种攻击方式利用了现有TCP/IP协议本身的薄 弱环节,而且攻击者可以通过IP伪装有效的隐蔽自己。但对于目的主机来说,由于无法判断攻击的真正来源。而不能采取有效的防御措施。
(3).SYN Flood远程拒绝服务攻击具有以下特点:
针对TCP/IP协议的薄弱环节进行攻击;
发动攻击时,只要很少的数据流量就可以产生显著的效果;
攻击来源无法定位;
在服务端无法区分TCP连接请求是否合法。
如何判断受到SYN Flood远程拒绝服务攻击:
一般情况下,可以一些简单步骤进行检查,来判断系统是否正在遭受TCP SYN Flood攻击。
1 服务端无法提供正常的TCP服务。连接请求被拒绝或超时;
2 通过 netstat ?an 命令检查系统,发现有大量的SYN_RECV连接状态。
(4).如何做到有效的防范:
一般情况下,可以一些简单步骤进行检查,来判断系统是否正在遭受TCP SYN Flood攻击。
1、服务端无法提供正常的TCP服务。连接请求被拒绝或超时;
2、通过 netstat -an 命令检查系统,发现有大量的SYN_RECV连接状态。
如何才能做到有效的防范呢?
1.TCP Wrapper
使用TCP Wrapper(只有unix-like系统支持该功能,NT?可怜)可能在某些有限的场合下有用,比如服务端只处理有限来源IP的TCP连接请求,其它 未指定来源的连接请求一概拒绝。这在一个需要面向公众提供服务的场合下是不适合的。而且攻击者可以通过IP伪装(IP Spoof)来直接攻击受TCP Wrapper保护的TCP服务,更甚者可以攻击者可以伪装成服务器本身的地址进行攻击。
2.增加TCP Backlog容量
增加TCP Backlog容量是一种治标不治本的做法。它一方面要占用更多的系统内存,另一方面延长了TCP处理缓存队列的时间。攻击者只要不停地的进行SYN Flood一样可以达到拒绝服务的目的。
3.ISP接入
所有的ISP在边界处理进入的主干网络的IP数据包时检测其来源地址是否合法,如果非指定来源IP地址范围,可以认为是IP Spoofing行为并将之丢弃。
(5).其他TCP SYN Flood防御方法
1.TCP连接监控(TCP Interception)
为了有效的防范TCP SYN Flood攻击,在保证通过慢速网络的用户可以正常建立到服务端的合法连接的同时,需要尽可能的减少服务端TCP Backlog的清空时间,大多数防火墙采用了TCP连接监控的工作模式。 1. 防火墙接到来自用户端Z的SYN连接请求,在本地建立面向该连接的监控表项;
2. 防火墙将该连接请求之转发至服务端A;
3. 服务端A相应该连接请求返回SYN/ACK,同时更新与该连接相关联的监控表项;
4. 防火墙将该SYN/ACK转发至用户端Z;
5. 防火墙发送ACK至服务端A,同时服务端A中TCP Backlog该连接的表项被移出;
a. 如果来自用户端Z的连接请求合法,防火墙将该ACK转发至服务端A,服务端A会忽略该ACK,因为一个完整的TCP连接已经建立;
b. 如果来自用户端Z的连接请求非法(来源IP地址非法),没有在规定的时间内收到返回的ACK,防火墙会发送RST至服务端A以拆除该连接。
6. 开始TCP传输过程。
由此可以看出,该方法具有两个局限:
1 不论是否合法的连接请求都直接转发至服务端A,待判断为非法连接(无返回ACK)时才采取措施拆除连接,浪费服务端系统资源;
2 防火墙在本地建立表项以监控连接(一个类似TCP Backlog的表),有可能被攻击者利用。
2.天网DoS防御网关
天网防火墙采用经过优化的TCP连接监控工作方式。该方式在处理TCP连接请求的时候,在确定连接请求是否合法以前,用户端Z与服务端A是隔断的。1. 防火墙接到来自用户端Z的SYN连接请求;
2. 防火墙返回一个经过特殊处理的SYN/ACK至客户端Z以验证连接的合法性;
3. 这时,根据连接请求是否合法,可能有以下两种情况发生:
a. 防火墙接收到来自客户端Z的ACK回应,该连接请求合法。转至第4步继续;
b. 防火墙没有接收到来自客户端Z的ACK回应,该连接请求非法,不进行处理;
4. 防火墙在本地建立面向该连接的监控表项,并发送与该连接请求相关联的SYN至服务端A;
5. 防火墙接到来自服务端A的SYN/ACK回应;
6. 防火墙返回ACK以建立一个完整的TCP连接;
7. 防火墙发送ACK至客户端Z,提示可以开始TCP传输过程。
其中,在第2/3/4/7步过程中,防火墙内部进行了如下操作:
1. 在第2步中,为了验证连接的合法性,防火墙返回的SYN/ACK是经过特殊处理的,并提示客户端Z暂时不要传送有效数据;
2.在第3步中,防火墙接收到来自客户端Z的ACK,检验其合法性。
3. 在第4步中,防火墙在本地建立面向该连接的监控表项,同时发送与该连接相关的SYN至服务端A;
4. 在第7步中,防火墙通过将TCP数据传输与监控表项进行比对,并调整序列号和窗口以使之匹配。开始TCP数据传输。
在这里,天网防火墙通过高效的算法(64K位的Hash)提供了超过30万以上的同时连接数的容量,为数据传输的高效和可靠提供了强有力地保障.
在实际环境中,应为涉及的范围太过广泛,该方案无法实施。这是一个社会问题而非技术问题。
(四) .Smurf攻击及其对策
(1).Smurf 攻击概述
Smurf攻击是以最初发动这种攻击的程序名Smurf来命名。这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。
(2).Smurf 攻击原理
攻击的过程是这样的:Woodlly Attacker向一个具有大量主机和因特网连接的网络的广播地址发送一个欺骗性Ping分组(echo 请求),这个目标网络被称为反弹站点,而欺骗性Ping分组的源地址就是Woolly希望攻击的系统。
这种攻击的前提是,路由器接收到这个发送给IP广播地址(如206.121.73.255)的分组后,会认为这就是广播分组,并且把以太网广播地址FF:FF:FF:FF:FF:FF:映射过来。这样路由器人因特网上接收到该分组,会对本地网段中的所有主机进行广播。
读者肯定能够想到下面会发生什么情况。网段中的所有主机都会向欺骗性分组的IP地址发送echo响应信息。如果这是一个很大的以太网段,可以会有500个以上的主机对收到的echo请求进行回复。
由于多数系统都会尽快地处理ICMP传输信息,Woodlly Attacker把分组的源地址设置为目标系统,因些目标系统都很快就会被大量的echo信息吞没,这样轻而易举地就能够阻止该系统处理其它任何网络传输,从而引起拒绝为正常系统服务。
这种攻击不仅影响目标系统,还影响目标公司的因特网连接。如果反弹站点具有T3连接(45Mbps),而目标系统所在的公司使用的是租用线路(56Kbps),则所有进出该公司的通讯都会停止下来。
那么如何防止这种类型的攻击?用户可以分别在源站点、反弹站点和目标站点三个方面采取步骤,以限制Smurf攻击的影响。
(3).解决办法:
1.阻塞Smurf攻击的源头
Smurf攻击依靠攻击者的力量使用欺骗性源地址发送echo请求。用户可以使用路由路的访问保证内部网络中发出的所有传输信息都具有合法的源地址,以防止这种攻击。这样可以使欺骗性分组无法找到反弹站点。
2.阻塞Smurf的反弹站点
用户可以有两种选择以阻塞Smurf攻击的反弹站点。第一种方法可以简单地阻塞所有入站echo请求,这们可以防止这些分组到达自己的网络。
如果不能阻塞所有入站echo请求,用户就需要罅自己的路由器把网络广播地址映射成为LAN广播地址。制止了这个映射过程,自己的系统就不会再收到这些echo请求。
如果使用Cisco路由路,制止网络广播映射成为LAN广播的方法是在LAN接口的配置模式中输入命令:no ip directed-broadcast
注意:必须在所有路由器的所有LAN接口都使用该命令。只在某些外围路由器上使用上述命令不会起作用。
(4).防止Smurf攻击目标站点
除非用户的ISP愿意提供帮助,否则用户自己很难防止Smurf对自己的WAN接连线路造成的影响。虽然用户可以在自己的网络设备中阻塞这种传输,但对 于防止Smurf吞噬所有的WAN带宽已经太晚了。但至少用户可以把Smurf的影响限制在外围设备上。通过使用动态分组过滤技术,或者使用防火墙,用户 可以阻止这些分组进入自己的网络。防火墙的状态表很清楚这些攻击会话不是本地网络中发出的(状态表记录中没有最初的echo请求记录),因些它会象对待其 它欺骗性攻击行为那样把这样信息丢弃。
(五) .其它一些常见DOS攻击
其他常见攻击还有:
(1).Teardrop攻击
Teardrop攻击是利用IP报文分片中可能存在的问题,攻击服务器,进而引起服务器死锁。 因此,在防火墙上,通过关闭其他计算机的主动攻击报文,来避免引起该问题。同时,随着操作系统的发展,该问题在越来越多的操作系统中已经逐步避免了。
(2)Land攻击
Land攻击是一种比较旧的攻击方法,目前大部分操作系统已经能够避免了。而且通过关闭对任何主动请求的回应,也可以直接避免这种攻击的发生。
(3)UDP洪水攻击
UDP洪水攻击是指多个攻击计算机向服务器发送大量的UDP报文,使服务器忙于数据报文的回应。同时,该攻击将会占用大量的网络带宽,使网络繁忙,以至于无法正常工作。
五. 10个针对分布式拒绝服务攻击有关的快速补救措施
-----------------------------------------------
和其他安全漏洞相比,控制主机群并从其发动拒绝服务是很复杂的。换句话来说,没有什么简单的单一的措施可以防止类似的攻击。而必须采用多种安全和保护手 段来防止这样的攻击。对于那些系统目前正受到威胁的网管们,以下我提供的快速简单的方法可能会对你们有所帮助。- Mixter
目前或是潜在的包淹没拒绝服务的受害者所应当做的事情:
1)避免FUD
FUD代表恐惧(fear)不确定(uncertainty)和否定(doubt)。最近的攻击造成了成为目标的受害的的愤怒与不冷静。但是应当意识到 的是,只有少部分的公司和主机有可能成为拒绝服务攻击的受害者。这些包括最受欢迎的站点例如搜索引擎,最流行的电子商务和证券公司,IRC聊天服务器,以 及电子杂志(为了明显的目的)。如果你不是包含在这些里面的,你就不用担心成为DoS攻击的直接目标。
2)与你的互连网上行链路供应者(们)合作
协助你的直接主要和上行链路供应者并与之合作是很重要的。在DdoS攻击者使用的带宽是很大的你自己的网络一般来讲不论你如何尝试都是不能处理的。所以 与你的上行链路取得联系确保他们会帮助你实现访问控制来限制在同一时间允许通过的带宽量和不同的源地址数量。在理想的情况下,你的上行链接会在确实存在攻 击的情况下监控或是允许你访问他们的路由。
3)优化你的路由和网络结构
如果你所拥有的不止是一个主机,而是一个大的网络的话,你 该调整你的路由来减小DoS攻击的威胁。要防止SYN淹没攻击,设置TCP检查功能。关于这个的技术细节可以从http://www.cisco.com 或是你的路由供应商的热线获得。阻塞那些你的网络不需要的UDP和ICMP消息。特别是那些向外发送的ICMP不可到达消息会加重包淹没攻击的危害。
4)优化你最重要的公共访问的主机
在可能成为潜在目标的主机上做同样的事情。拒绝所有的你的服务器不许要运行的服务所需要的流通。进一步来讲多穴(向一个主机分配多个IP),会给攻击者 造成很大的障碍。我建议你将自己的网站分配到多个物理上独立的主机上,那些主机上的HTML索引站点只含有你真正的网络服务器的转发入口。
5)在攻击正在进行时,立即采取措施
尽快的追踪包并与追踪显示包风暴是来源于他们的网络的上行链接联系是很重要的。不要认定那些源地址,一般在DoS攻击中他们是任意选择的。能否确定伪装了的DoS攻击的来源取决于你的快速反应因为允许流量追踪的路由入口会在大量数据包过后过期。
目前已经或是潜在的被控制,闯入或是安装了协助了数据淹没的程序的用户所应当作的重要的事。
6)避免FUD
作为潜在的被侵害者,你应当合理有效的采取措施而不是惊慌。注意目前的拒绝服务攻击的服务器软件基本上都是为Linux和Solaris书写并在上面安装的。它们有可能会移植给*BSD*系统,但是由于它们更为安全,所以不用担心会出现什么大问题。
7)确定你的主机没有被控制
目前有很多可以利用的漏洞,并且许多老的漏洞也再次出现了。检查利用信息的数据库,比如securityfocus.com或是 packetstorm.securify.com来确定你的服务器软件的版本是否存在漏洞。记住,入侵者必须使用现有的漏洞来进入你的系统并安装他们的 程序。你应当检查你的服务器配置来查找安全方面的误操作,运行最新升级的软件版本,并且,也是最重要的,运行你所需要的也是最少的服务。在某种程度上来说 你可以认为自己是安全的了。
8)经常性的检查你的系统
你应当意识到你应该对自己的系统和发生在系统中的事情负责。你得学习足够的知识来了解你的系统的服务器软件如何运行的,并经常性的检查你所采用的安全策略。查看完全开放的安全站点来查找新的在你将要采用的操作系统和服务器软件中漏洞和缺陷。
9)使用加密检查
在一个你确定没有被闯入或是控制的系统中,你应当建立对你所有的二进制和其他可信系统文件产生数字签名的的系统,并周期性的检查那些文件的变化。进一步 来讲,建议在不会被远程攻击者访问到的其他机器或是可移动媒体上存储系统的真正的校验和。可以用于这项操作的软件,比如tripwire可以在类似 packetstorm.securify.com和公共开放的源ftp中找到。如果你喜欢,你可以采用商业用途的软件。
10)在正在被攻击的时候:立即关闭你的系统并做检查
如果你在你的主机或是系统中检测到了攻击。你必须立即关闭你的系统,至少也得将系统从网络上断开。如果类似的攻击在你的机器上出现的话,这就意味着攻击 者几乎获得了主机的全部的控制权。它们应当被检查出来并且卸载掉。你同样可以与安全机构或是CERT (www.cert.org)或SANS (www.sans.org)取得联系并求助。向这些机构提供黑客在你被控制的主机上留下的信息同样很重要,因为它们会帮助记录下攻击的来源。
六.结束语
要彻底杜绝拒绝服务攻击,只有追根溯源去找到正在进行攻击的机器和攻击者。 要追踪攻击者不是一件很容易的事情,一旦其停止了攻击行为,很难将其发现。唯一可行的方法就是在其进行攻击的时候,根据路由器的信息和攻击数据包的特征, 采用一级一级回溯的方法来查找其攻击源头。这时需要各级部门的协同配合才能很好的完成。
转载地址:http://www.netsp.com.cn/Article/netsafe/attack/200506/20050602134901.html