Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

关于IDS的学习(3)拒绝服务攻击

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

1.前言

从1999年8月起,一种新的网络攻击方式引起了人们的注意,它就是分布式D.O.S攻击(Distributed Denial Of Service)。这种攻击的简单原理是:攻击者首先通过一些常用的黑客手段侵入并控制一些网站,在这些网站的服务器上安装并启动一个进程,这个进程将听命于攻击者的特殊指令。当攻击者把攻击目标的IP地址作为指令下达给这些进程的时候,这些进程就开始向目标主机发送攻击。这种方式集中了几百台甚至上千台服务器的带宽能力,对单一目标实施攻击,其威力极其巨大,在这种悬殊的带宽对比下,被攻击目标的剩余带宽会迅速消失殆尽。这种攻击的一个典型工具是trin00,这个工具1999年8月被用于攻击了美国明尼苏达大学,那时候这个工具集中了至少227个主机的控制权,其中有114个是Internet2的主机。攻击包从这些主机源源不断地送到明尼苏达大学的服务器,造成其网络严重瘫痪。

2000年1月下旬,来自全美的安全专家们在加利福尼亚举行的第6次RSA安全会议上讨论了这种攻击并试图制定对付措施。但没有讨论出有效的解决方案专家们对此深感忧虑。不到1个月,安全专家的忧虑被证实了。

2000年2月9日,美国著名的搜索引擎Yahoo、新闻网站CNN、Amazon、eBay等大网站都受到大规模的分布式拒绝服务攻击,服务器连续十几个小时无法工作,造成高达12亿美元的经济损失。

这次用来攻击美国几家大型网站的被称为“拒绝服务”的攻击程序(Denial Of Service),这类工具可以轻易地在网上下载。FBI 表示他们已经在网上发现了许多这类攻击程序的踪影。网络系统管理员表示目前尚无保证可靠的软件可抵挡这类攻势。

2.什么是拒绝服务攻击

拒绝服务攻击是由人或非人为发起的行动,使你的主机硬件、软件或者两者同时失去工作能力,使你的系统不可访问并因此拒绝合法的用户服务要求。这种攻击往往是针对TCP/IP协议中的某个弱点,或者系统存在的某些漏洞,对目标系统发起的大规模进攻致使攻击目标无法向合法的用户提供正常的服务。拒绝服务攻击简单有效,能够产生迅速的效果。

攻击者并不单纯为了进行拒绝服务攻击而攻击,往往是为了完成其他的攻击面必须做的。例如:在目标主机上放了木马,需要让目标主机重启;为了完成IP欺骗,而使被冒充的主机瘫痪;在正式攻击之前,使目标主机的日志系统不能正常工作。

3.常用的拒绝服务攻击

3.1:ping拒绝服务攻击(pingofdeath)

“ping”攻击是向目标端口发送大量的超大尺寸的ICMP包来实现的。由于在早期的阶段,路由器对所传输的文件包最大尺寸都有限制,许多操作系统对TCP/IP的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,一旦产生畸形即声称自己的尺寸超过ICMP上限的包,也就是加载的尺寸超过64KB上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,从而导致系统崩溃。这类攻击只要简单地使用命令:ping –l 65510 目标主机IP。但是这种攻击方式主要是针对Windows 9X操作系统的,而Unix、Linux、Solaris、Mac OS都具有抵抗一般ping of death攻击的能力。

范例:ICMP攻击程序

3.2:Land攻击

Land攻击由著名黑客组织RootShell发现,原理比较简单:就是向目标机发送源地址与目的地址一样的数据包,造成目标机解析Land包占用太多资源,从而使网络功能完全瘫痪。具体的讲,在Land攻击中,一个特别打造的SYN包中的原地址和目标地址都被设置成某一个服务器地址,这时将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉。对Land攻击反应不同,许多UNIX实现将崩溃,而WindowsNT会变的极其缓慢(大约持续五分钟)。

范例:Land攻击程序

3.3:SYN flood攻击

SYN flood攻击也是一种常用的拒绝服务攻击。它的工作原理是,正常的一个TCP连接需要连接双方进行三个动作,即“三次握手”,其过程如下:请求连接的客户机首先将一个带SYN标志位的包发给服务器;服务器收到这个包后产生一个自己的SYN标志,并把收到到包的SYN+1作为ACK标志返回给客户机;客户机收到该包后,再发一个ACK=SYN+1的包给服务器。经过这三次握手,连接才正式建立。在服务器向客户机发返回包时,它会等待客户机的ACK确认包,这时这个连接被加到未完成连接队列中,直到收到ACK应答后或超时才从队列中删除。这个队列是有限的,一些TCP/IP堆栈的实现只能等待从有限数量的计算机发来的ACK消息,因为他们只有限度数量的内存缓冲区用于创建连接,如果这些缓冲区内充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直到缓冲区里的连接企图超时。如果客户机伪装大量SYN包进行连接请求并且不进行第三次握手,则服务器的未完成连接队列就会被塞满,正常的连接请求就会被拒绝,这样就造成了拒绝服务。

在一些创建连接不受限制的实现里,SYN flood具有类似的影响。不过未来的SYN flood令人担忧,这是由于发出SYN flood的攻击者并不寻求响应,所以无法从一个简单高容量的传输中鉴别出来。

3.4:UDP flood攻击

类似SYN flood攻击,这种方式的假冒攻击利用简单的TCP/IP服务。如Chargen和EchQ来传送毫无用处的数据来占用所有的带宽。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间的足够多的无用数据流,如果足够多的数据流就会导致带宽的服务攻击。

典型的UDP flood有 Trin00, 其实它有点像木马程序,由三部分构成,分别是客户端、主控端(master)、Broadcast(即分布端攻击守护进程)。Broadcast(即分布端攻击守护进程),安装在一台已经被你所控制的机器上的,编译分布端之前首先得先植入主控端(master)的真实有效的IP地址,它跟主控端(master)是利用UDP报文通信的,发送至主控端(master)的31355端口,其中包含“*HELLO*”的字节数据,主控端把目标机器的信息通过UDP 27444 端口发送给Broadcast(即分布端攻击守护进程),这个时候Broadcast(即分布端攻击守护进程)便回开始发起攻击了。这次攻击的流向显而易见为:

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:常见的PAM认证模块简介   下一篇:Snort: 为你的企业规划入侵检测系统

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号