首页 百科知识 拒绝服务攻击技术

拒绝服务攻击技术

时间:2022-10-04 百科知识 版权反馈
【摘要】:防御拒绝服务攻击,现在还没有较好的办法,但是可以采取加强网络和主机系统的安全管理,使用诸如防火墙、IDS等安全设备,及时安装系统、应用软件补丁等措施来抵御拒绝服务的攻击。但最基本的拒绝服务攻击就是利用合理的服务请求来占用过多的服务资源,致使服务超载,无法响应其他的请求。从安全的角度来看,本地的拒绝服务攻击可以比较容易地追踪并消除;基于网络环境下的拒绝服务攻击则比较复杂。

任务概述

拒绝服务攻击(Denial of Service,DoS)是一种最悠久也是最常见的攻击形式。严格来说,拒绝服务攻击并不是某一种具体的攻击方式,而是攻击所表现出来的结果——最终使得目标系统因遭受某种程度的破坏而不能继续提供正常的服务,甚至导致物理上的瘫痪或崩溃。通过本任务的学习可以了解并防范该技术。

任务目标

●能够了解典型的拒绝服务攻击方式及防御方法

●能够掌握分布式拒绝服务攻击的原理及防范

学习内容

一、拒绝服务概述

拒绝服务攻击想方设法让目标主机停止提供服务或资源访问,这些资源包括CPU时间、磁盘空间、内存、服务进程甚至网络带宽,从而阻止正常用户的访问。攻击者进行拒绝服务攻击,实际上就是让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。通常,拒绝服务攻击可分为下面两种类型。

1.拒绝服务攻击的类型

(1)使一个系统或网络瘫痪。如果攻击者发送一些非法的数据包,使得系统死机或重新启动,那么攻击者就进行了一次拒绝服务攻击,因为包括攻击者自己在内,所有人都不能够使用资源了。从攻击者的角度来看,这种攻击很刺激,因为只需发送少量的数据包就使得一个系统无法访问,而让系统重新恢复,往往需要管理员重新启动系统。

(2)向系统或网络发送大量信息,使系统或网络不能响应。例如,如果一个系统无法在一分钟之内处理100个数据包,攻击者却每分钟向它发送1000个数据包,这时,当合法用户要连接系统时,将得不到访问权,因为系统资源已经不足。进行这种攻击时,攻击者必须连续地向系统发送数据包。当攻击者不向系统发送数据包时,攻击停止,系统也就恢复正常了。这种攻击方式,攻击者要耗费很多精力,因为他必须不断地发送数据。虽然这种攻击也会使系统瘫痪,然而在大多数情况下,恢复系统只需要少量人为干预。

2.导致拒绝服务攻击的危险因素

拒绝服务攻击既可以在本地机上进行,也可以通过网络进行。下面的2种情况最容易导致拒绝服务攻击:

(1)程序员对程序的错误编制导致系统不停地建立进程,最终耗尽资源,只能重新启动计算机。不同的系统平台都会采取某些方法,以防止一些特殊的用户占用过多的系统资源。

(2)另外一种情况是由磁盘存储空间引起的。假如一个用户有权存储大量的文件的话,他就有可能只为系统留下很小的空间用来存储日志文件等系统信息。这是一种不良的操作习惯,会给系统带来隐患。

3.防御拒绝服务攻击的一般方法

防御拒绝服务攻击,现在还没有较好的办法,但是可以采取加强网络和主机系统的安全管理,使用诸如防火墙、IDS等安全设备,及时安装系统、应用软件补丁等措施来抵御拒绝服务的攻击。这里介绍一些简单的措施来防止拒绝服务式的攻击。

(1)最为常用的一种措施是时刻关注安全信息以期待最好的防御方法出现。管理员应当订阅安全信息报告,实时地关注安全技术的发展。

(2)应用包过滤的技术,主要是过滤对外开放的端口。这个手段主要是防止假冒地址的攻击,使得外部主机无法假冒内部主机的地址来对内部网络和主机发动攻击。

二、典型的拒绝服务攻击方式

拒绝服务攻击的方式有很多,如:向域名服务器发送大量垃圾请求数据包,使其无法完成来自其他主机的解析请求;制造大量的垃圾包,占据网络的带宽,减慢网络的传输速率,从而造成不能正常服务等。但最基本的拒绝服务攻击就是利用合理的服务请求来占用过多的服务资源,致使服务超载,无法响应其他的请求。这些服务资源包括网络带宽、文件系统空间容量、开放的进程或者向内的连接。这种攻击会导致资源的匮乏,无论计算机的处理速度多么快,内存容量多么大,互联网的速度多么快,都无法避免这种攻击带来的后果,拒绝服务攻击会使所有的资源变得非常渺小。

从安全的角度来看,本地的拒绝服务攻击可以比较容易地追踪并消除;基于网络环境下的拒绝服务攻击则比较复杂。下面是几种较为常见的基于网络的拒绝服务攻击。

1.Ping of Death

这是一种古老但十分有效的攻击方式。Ping是一个测试网络主机是否存在的工具,它通过向目标主机发送ICMP echo报文来进行主机是否存在测试。在早期,路由器对包的大小有限制,如果路由器接收到长度超过限制的包,将导致路由器停止服务;同时,操作系统在实现TCP/IP协议栈时也规定了ICMP包的最大长度为64kB(65536字节),如果系统长时间地持续接收到长度超过64kB的数据包,就会出现错误而致使TCP/IP栈崩溃,从而导致主机停止服务,如Windows95操作系统。

2.Smurf

同样是使用ICMP echo的攻击,不过这种方式却利用了广播机制,让网络中形成大量的广播响应包来形成攻击。在以太网中,正常情况下所有的主机都应该会接收到广播信息并对这个信息做出响应。当一个ICMP echo请求包被攻击者以一个伪冒的IP源地址发向网络的广播地址时,广播地址将会把这个请求包广播出去,于是网络的主机就会接收到这个请求包并立刻做出响应,发送回应包。这样会产生大量信息流量,从而占用所有设备的资源及网络带宽,而回应的地址就是受攻击的目标——那个IP源地址所代表的主机。例如用500kb/s流量的ICMP echo(ping)包广播到100台设备,产生100个ping回应,便产生50Mb/s流量。这些流量流向被攻击的主机,便会使这台主机瘫痪。攻击过程如图6-6所示。

图6-6 Smurf ICMP攻击示意图

Smurf的攻击加深了ICMP的泛滥程度,导致由一个数据包产生成千的ICMP数据包并发送到一个根本不需要它们的主机中去,而传输多重数据包的服务器更是被用作了Smurf的放大器。

Smurf攻击一般都是在Unix系统上进行的,在Windows系统上Smurf攻击将不会有效果,因为微软的ping程序不对多个回应进行解包,Windows系统收到第一个包以后就会丢弃后面的,同样Windows系统默认也不回应广播地址的包。

3.SYN Flood

SYN Flood是当前最流行的拒绝服务攻击的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击主机资源耗尽(CPU满负荷或内存不足)的攻击方式,如图6-7所示。

图6-7 SYNFlood攻击示意图

使用TCP协议进行通信时,由于连接三次握手的需要,在每个TCP连接建立时,客户端需要向服务器端发送一个带SYN标记的数据包;如果在服务器端发送了应答包(SYN+ACK)后,客户端因为出现故障(如掉线、死机等)而致使ACK应答包无法发出,三次握手就无法完成,于是服务器端将会重新发送SYN+ACK包并等待一段时间,直到超时而丢弃这个连接。

但如果有一个恶意的攻击者模拟这种情况,发送大量的SYN包但不做回复,这时服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。数以万计的半连接需要耗费大量CPU时间和内存,而不断对这个列表中的IP进行SYN+ACK的重试所引起的遍历操作更是需要大量的CPU时间和内存。如果服务器端主机的TCP/IP栈不够强大,则堆栈溢出,系统崩溃;即使服务器端主机系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求,此时从正常客户的角度看来,服务器失去了响应,停止了服务。这就是TCP SYN Flood攻击的过程。

要防御这种攻击,有两种简单的解决方法:

(1)缩短SYN Timeout时间。由于SYN Flood攻击的效果取决于服务器端上保持的SYN半连接数,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃该连接的时间,可以成倍地降低服务器端的负荷。当然,过低的SYN Timeout设置可能会影响客户的正常访问。

(2)设置SYN Cookie。就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续收到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个地址来的包会被丢弃。

这两种方法只能对付比较原始的SYN Flood攻击,缩短SYN Timeout时间仅在对方攻击频度不高的情况下有效,SYN Cookie更依赖于对方使用真实的IP地址。如果攻击者以数万b/s的速度发送SYN报文,同时利用SOCK_RAW随机改写IP报文中的源地址,以上的方法将毫无用武之地。

当主机系统莫名其妙变慢,怀疑受到SYN Flood攻击时,一个简单的判别方法就是使用Netstat命令来查看连接情况。如果Netstat-n-a tcp命令显示大量的连接处于SYN-RECEIVED状态,那么可以有理由相信正在遭受SYN Flood攻击。

三、分布式拒绝服务攻击的原理及防范

传统上,攻击者所面临的主要问题是网络带宽,较小的网络规模和较慢的网络速度使攻击者无法发出过多的请求。虽然类似Ping of Death这样的攻击类型只需要很少量的包就可以摧毁一个没有打过补丁的UNIX系统,但是多数的拒绝服务攻击还是需要相当大的带宽,而高带宽并不是随处都可以得到,特别是对于个人攻击者而言。为了克服这个缺点,攻击者开发了分布式攻击,于是攻击者就可以利用工具集合许多的网络带宽来对同一个目标发送大量的请求。

1.概述

1999年7月份,微软公司的Windows操作系统的一个bug被人发现和利用,并且进行了多次攻击,这种新的攻击方式被称为“分布式拒绝服务攻击”,即“DDoS攻击(Distribu-ted Denial of Service Attacks)”。这是一种特殊形式的拒绝服务攻击。它利用了多台已经被攻击者所控制的主机对某一台主机发起攻击,在这样的带宽对比之下,被攻击的主机很容易失去反应能力。现在这种方式被认为是最有效的攻击形式,并且很难于防备。

DDo S攻击是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等各项性能指标不高时它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了,因为目标对恶意攻击包的“消化能力”加强了。

这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,那么攻击者使用10台攻击机同时攻击呢? 用100台呢? DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。

高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以分布在更大的范围,选择起来更灵活了。

2.被DDoS攻击时的现象

(1)被攻击主机上有大量等待的TCP连接。

(2)网络中充斥着大量的无用的数据包,源地址全部为假冒的。

(3)网络中存在高流量的无用数据包而造成网络拥塞,无法正常和外界通信。

(4)受害主机持续收到高速的特定服务请求,主机速度缓慢甚至停止响应。

3.攻击原理

一个比较完善的DDoS攻击体系分成4大部分,如图6-8所示。

(1)攻击者:发起DDoS攻击。

(2)控制傀儡机:控制实际发起攻击的主机,只发布命令而不参与实际的攻击。

(3)攻击傀儡机:实际发起攻击的主机。

(4)被攻击目标(受害者):遭受攻击傀儡机的攻击。

在这种体系中,攻击者对控制傀儡机和攻击傀儡机拥有完全控制权或部分的控制权,至少攻击者能将相应的DDoS攻击工具上传到这些被控制的主机上,并利用各种手段隐藏自己不被主机的实际拥有者发现。在未进行攻击时,这些傀儡机并没有什么异常,其上的攻击工具也不会运行,但是当攻击者连接到傀儡机并控制它们时,攻击者就能够运行DDoS攻击工具,使攻击傀儡机向目标主机发起攻击。

图6-8 DDoS攻击体系

从图6-8中可以看出,在实施DDoS攻击时,攻击者往往是利用一台“跳板”主机——控制傀儡机来控制攻击傀儡机,他不会使用自己的主机来直接控制攻击傀儡机,这样做是为了更好地隐藏自己。

在被控制的主机上隐藏自己的行踪,最简单的办法就是在系统的日志中清除自己曾经登录过的信息,但是在攻击傀儡机上清理日志实在是一项庞大的工程,即使在很好的日志清理工具的帮助下,仍然是一件令人头痛的事情,因为发起攻击的傀儡机太多了,一不小心就可能留下痕迹。但控制傀儡机的数目相对很少,一般一台就可以控制几十台攻击机,清理一台计算机的系统日志对攻击者而言就很轻松了。这样,通过控制傀儡机找到攻击者的可能性就大大降低。

4.DDoS的防范

到目前为止,针对DDoS攻击的防御还是比较困难的。DDoS攻击与DoS攻击一样,主要利用了TCP/IP协议的漏洞,除非不用TCP/IP,才有可能完全抵御住DDoS攻击,但似乎这不可能,因为Internet的基础是TCP/IP。

为了更好地做好DDoS攻击的防御,应该从以下几个方面着手。

(1)主机上的设置:

●关闭不必要的服务。

●限制同时打开的SYN半连接数目。

●缩短SYN半连接的Timeout时间。

●及时更新系统补丁。

(2)网络设备的设置:

①对于防火墙,应该:

●禁止对主机的非开放服务的访问。

●限制同时打开的SYN最大连接数。

●限制特定IP地址的访问。

●启用防火墙的防DDoS的属性,但某些防火墙会因此降低性能。

●严格限制对外开放的服务器的向外访问。

②对于路由器,应该:

●设置访问控制列表(ACL)过滤。

●设置SYN数据包流量速率。

●升级版本过低的路由器操作系统。

●为路由器建立日志服务器。

思考练习

一、选择题

1.网络监听(嗅探)这种攻击形式破坏了下列哪一项内容? ( )

A.网络信息的抗抵赖性 B.网络信息的保密性

C.网络服务的可用性 D.网络信息的完整性

2.在缓冲区溢出攻击技术中,以下哪一种方法不能用来使程序跳转到攻击者所安排的地址空间上执行攻击代码? ( )

A.激活记录 B. 函数指针

C.长跳转缓冲区 D.短跳转缓冲区

3.现今,网络攻击与病毒、蠕虫程序越来越有结合的趋势,病毒、蠕虫的复制传播特点使得攻击程序如虎添翼,这体现了网络攻击的下列哪种发展趋势? ( )

A.网络攻击人群的大众化 B.网络攻击的野蛮化

C.网络攻击的智能化 D.网络攻击的协同化

4.下列哪种攻击方法不属于攻击痕迹清除? ( )

A.篡改日志文件中的审计信息 B.修改完整性检测标签

C. 替换系统的共享库文件 D.改变系统时间造成日志文件数据紊乱

5.常见的网络通信协议后门不包括下列哪一种? ( )

A.IGMP B.ICMP C.IP D.TCP

二、填空题

1.在交换网络中,主要有__________和__________两种嗅探。

2.__________是一种通过扫描主机端口,进而检测远程或本地主机安全性弱点的程序。

3.__________扫描主要使用三次握手机制来与目标主机的指定端口建立正规的连接。

4.__________是当前最流行的拒绝服务攻击的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击主机资源耗尽(CPU满负荷或内存不足)的攻击方式。

5.所谓强密码,指的是采用大小写字母、数字和特殊字符,长度在__________位以上的密码。

三、简答题

1.一般来说,被DDo S攻击时主要表现为哪些现象?

2.嗅探造成的危害有哪些?

3.目前有哪4种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响?

单元要点归纳

本单元主要介绍了常见的网络攻击手段,如密码破解、端口扫描、DoS攻击等相关内容。

对于这些内容,要着重掌握它们的防范方法。对于密码破解,可以设置强密码来防范;对于端口扫描,则关闭不使用的系统默认开放端口;而对于DoS攻击,则需要管理员对所使用的各种系统及网络具有职业敏感性,采取各种攻击防范手段。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈