基于DDoS攻击的研究

来源 :计算机时代 | 被引量 : 0次 | 上传用户:feijin4fhi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:分布式拒绝服务(DDoS)攻击是目前黑客经常采用而难以防范的攻击手段。文章从DDoS的概念、攻击原理、攻击过程、攻击方法四个方面对DDoS加以说明。最后,介绍了一个局域网内的攻击实例。
  关键词:DDoS;TCP/IP;TCP连接洪水;TCP SYN洪水;Smurf攻击
  
  0引言
  
  DDoS(分布式拒绝服务),其全称为Distributed Denial ofService,它是一种基于DoS(Denial 0f Service拒绝服务)的分布和协作的大规模攻击方式,即集中Internet网上众多“傀儡”机同时向一个目标发送数据包,以阻止人们正常访问受害点。这种攻击方式主要用来攻击域名服务器、路由器以及其他网络服务。以前,DoS是仅凭一个攻击者的力量,所以根本无法消耗尽一个大型主机的资源,而DDoS攻击因为集合了众多已经被攻陷的系统去攻击同一个目标,所以受害站点的资源就会很快被消耗殆尽。
  
  1 DDoS的攻击原理
  
  DDoS的攻击原理如图1所示:
  


  从图1中可以看出,DDoS攻击分为3层:攻击者、主控端、代理端,三者在攻击中扮演着不同的角色。
  攻击者 攻击者所用的攻击主控台可以是网络上的任何一台主机,也可以是一个活动的便携机。攻击者通过向主控端发送攻击命令,操纵整个攻击过程。有经验的攻击者会一边攻击,一边用各种手段来监视攻击的效果,以便在需要的时候进行一些调整。简单的监视方法就是不断地ping目标主机。
  主控端 主控端是攻击者非法侵入并控制的一些主机,这些主机还分别控制着大量的代理主机。主控机被安装了特定的程序,因此可以接受攻击者发来的特殊指令,并且可以把这些命令发送到代理机上。主控机只发布命令而不参与实际的攻击。
  代理端 代理端同样也是攻击者侵入并控制的一批主机,它们接受和运行主控机发来的命令,从而运行攻击者程序来发动攻击。代理机直接向受害者发送攻击命令。
  由于攻击者在幕后操纵,所以在攻击时不会受到监控系统的跟踪,身份不容易被发现。
  
  2 DDOS攻击过程
  
  DDoS攻击的实质是:入侵者利用了Intemet本身的弱点及Intemet总体上的不安全性,控制Intemet网上的主机作为主控端和代理端来发动攻击。具体过程如下:
  (1)入侵者先攻破一些安全性较差的机器作为控制点主机。安全性较差指:所用操作系统有Bug,但还未及时运行补丁程序或进行系统升级。根据攻击类型的不同,入侵者可能需要通过盗用超级用户口令,或使用raw socket等不同的途径。但大多数的攻击程序只需要有一般用户的权限就足够了。
  (2)在被入侵主机上完成下面三项任务:
  ①在入侵主机上安装后门程序,以便下次入侵;安装攻击程序,用于等待入侵者的命令。
  ②隐藏自己的身份和隐藏运行在这些机器中的程序,除去作案的痕迹。例如,替换进程查看工具(如ps),使自己的程序不显示出来;替换其他用户管理工具,使其他的超级用户不发现自己;删除自己在系统日志中的部分记录等等。
  ③记录下被攻破主机的地址。
  以上三步都是自动、高速完成的,被攻击的系统的用户是不会察觉的。
  重复执行以上步骤,入侵者便会控制越来越多的机器,并且使自己远离被攻击的主机,进而达到隐藏自己的目的。
  (3)发动攻击。入侵者运行—个简单命令,一层一层发送命令到所有主控机和代理机E,让这些机器一齐向目标机传送大量无用的数据包,就在这样的“炮火”下,攻击目标的网络带宽被占满,路由器的处理能力被耗尽,从而无法响应正常用户的访问请求。当入侵者想停止攻击时,只需发送另外一条简单的命令即可。
  
  3 DDOS攻击的方法
  
  通常,DDoS攻击的目标是网络的TCP/IP协议的内层结构,其攻击方式可分为以下三种:第一种是利用TCP/IP协议的漏洞的攻击;第二种是利用给定的TCP/IP协议栈软件的弱点的攻击;第三种是不断尝试的野蛮攻击。
  
  3.1破坏TCP/IP协议来进行攻击
  这种方式最典型的例子就是Ping of Death攻击,攻击者设计一个超过IP标准的最大长度-65535个字节的IP数据包发向被攻击主机,当这个“浮肿的”数据包到达时,被攻击主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。
  另外一个例子是Teardrop攻击。一个数据包从互联网的发送端到达目的端的过程中,也许会被拆分成更小的数据报。每一个数据报都拥有最初的IP数据报的报头,同时还用一个偏移字节来标示它拥有原始数据包中的哪些字节,通过这些信息,一个个被正常分割的数据包能够在目的地被重新组装起来,并且网络也能够正常运转而不被中断。当一次Teardrop攻击开始时,被攻击的主机将受到拥有重叠的偏移字段的IP数据报的“轰炸”。如果被攻击的主机或路由器不能丢弃这些数据报,并且企图重组它们,那么很快就会陷入瘫痪。
  
  3.2利用TCP/IP协议本身的漏洞闭来进行攻击
  最流行的是SYN攻击。SYN工作的原理就是利用TCP协议的“三次握手”过程进行攻击。如果主机A要和主机B建立TCPflP连接,正常的连接过程如图2所示:
  


  (1)主机A发送一个TCP—SYN同步数据包给主机B;
  (2)主机B发送一个TCP--ACK应答数据包给主机A;
  (3)主机A用一个ACK应答数据包确认收到应答,握手成功,开始同步运行。
  SYN攻击时,攻击者用许多TCP—SYN数据包发向被攻击主机,每个SYN数据包迫使目标主机产生一个SYN--ACK应答数据包,然后等待对应的ACK应答。这很快就会导致过量的SYN--ACK一个接一个地堆积在缓存队列里。一旦缓存队列没有空闲,系统就会停止应答其它的SYN请求。
  如果SYN攻击中包括了拥有错误IP源地址的SYN数据包,情况就会变得更糟。
  我们不妨假设主机A在向主机B发送了TCP—SYN报文后突然死机或掉线,那么B在发出SYN—ACK应答报文后就无法收到A的ACK报文,则第三次握手无法完成。在这种情况下,主机B一般会再次发送SYN—ACK给A,并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYNTimeout,一般来说这个时间大约为30秒~2分钟。如果有一个恶意的攻击者发送大量拥有错误IP源地址的TCP—SYN数据包,接收端将为了维护一个非常大的半连接列表将要消耗非常多的资源。这数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN—ACK的重试。实际上,如果接收端的TCP/IP栈不够强大,最后的结果往往是因为堆栈溢出而使系统崩溃;即使接收端的系统足够强大,也将因忙于处理攻击者伪 造的TCP连接请求而无暇处理客户的正常请求(毕竟客户端的正常请求比率非常小)。
  更具有攻击力的是与SYN攻击相似的Land攻击,其TCP—SYN数据包带有—个伪装的IP地址,使数据包被识别为来自被攻击主机自己所在的网络内部,这使得问题更加严重。
  
  3.3 Smurf攻击和用户数据报文协议攻击
  Smurf是一种简单有效的DDoS攻击技术,它利用了ICMP(Intemet Control Message Protocol Intemet控制信息协议)。ICMP在Intemet上用于错误处理和传递控制信息。它的功能之一是与主机联系,通过发送一个“回音请求”(echo request)信息包检测主机是否“活着”。最普通的ping程序就使用了这个功能。Smuff攻击的原理是,攻击者通过使用窃取来的被攻击者的一个账号,进而远程登录被攻击主机,然后连续ping一个或多个计算机网络,从而导致许多计算机响应被攻击者,这样,被攻击者将很快被极大数量的响应信息淹没。对这个伪造信息包做出响应的计算机网络就成为攻击者不知情的同谋。
  
  3.4采用UDP的攻击
  攻击者伪造出一个请求,将一个系统的UDP开启测试服务程序与另一个系统的UDP应答程序连在一起。结果是,由UDP开启测试服务程序伪随机产生的字符在两个系统间不停地被反射,使得合法应用程序的带宽要求得不到满足。
  
  3.5反弹型DDoS
  其原理是利用反弹(Reflector)服务器,例如:日常见到的www服务器、DNS服务器和路由服务器等都是反弹服务器。攻击者就是利用反弹服务器产生的数据报来攻击目标主机。
  
  3.6新型DDoS
  这种攻击是把带有指向攻击目标返回地址的请求发给DNS(域名服务器)。这样,DNS服务器就会成为傀儡机对目标机器进行直接攻击。其攻击比以前更加强大并且更难制止。据VeriSign公司透露,从2005年12月底开始的不到两个月的时间里,就有1500个独立的II'地址受到这种方法的攻击。
  
  4一次DDOS攻击的实际过程
  
  这是一个局域网环境,只有一台攻击机(AMDBarton2500+/512/English Windows xp Professional),被攻击的是一台(P41.6/256/Windows Server 2003,Enterprise)主机,两台机器用百兆网卡直接连接。所使用的攻击软件为:攻击方Portfuck 1.Ob2 Private Build、阿拉丁UDP攻击器2.1;被攻击方采用Sniffer Portable 4.70网络监听工具监听。
  


  Portfuck是“TCP连接洪水”工具。“TCP连接洪水”比我们上面介绍的“TCP SYN洪水”DDoS攻击高一个档次,而且它没有什么签名特征能让人们在网络边境上滤掉它们。
  当单独使用Portfuck进行攻击时,CPU占用率立即升至100%,但当在攻击方使用Ping命令时,并没有发现丢包现象。接着开启阿拉丁UDP攻击器,并在攻击方使用Ping命令持续观察。
  
  4.1攻击方使用Ping命令截获部分数据
  Pinging 1 92.1 68.0.2 with 32 bytes 0f data:
  Reply from 1 92.1 68.0.2:bytes=32 time  Reply from 1 92.1 68.0.2:bytes=32 time=5ms TTL=1 28
  Reply from 192.168.0.2:bytes=32 time=15ms TTL=128
  Request timed out.
  Request timed out.
  Reply from 192.168.0.2:bytes=32 time:=7ms TTL."=128
  Reply from 192.168.0.2:bytes=32 time:=8ms 1_rL=128
  ……
  Reply from 192.168.0.2:bytes=32 time=1ms TTL."=128
  Request timed out.
  Reply from 192.16&0.2:bytes=32 time=4ms TTL-"=128
  Reply from 192.168.0.2:bytes=32 time=4ms TTL,"=128
  Reply from 192.16&0.2:bytes=32 time:=1ms TTL-"=128
  ……
  Ping statistics for 1 92.1 6&0.2:
  Packets:Sent=1 20,Received=1 1 7,Lost=3(2%loss),
  Approximate round trip times in milti-seconds:
  Minimum=0ms,Maximum=1 5ms,Average=3ms
  ControI-C
  
  4.2被攻击方采用Sniffer Portable 4.70监听到的部分数据
  图3所示为被攻击方采用网络监听工具Sniffer portable
  4.7所得到的部分结果。
  此时被攻击方的工作已出现明显的延迟,作者试着打开一个Word文档,延时就有1分半钟。
  分析上述现象:
  首先,通过Ping命令,发现了较为严重(2%)的丢包现象。
  其次,Ping命令出现了较长时间的延迟(Maximum=15ms,Avcrage=3ms),而且目标主机的资源受到了很大的消耗。
  这次攻击仅仅是由一台主机发起的,从中可以看出DDoS攻击的威力之大。
  
  5结束语
  
  目前,对DDoS攻击,还没有非常有效的解决办法,最佳的手段就是防患于未然。
  第一,以预防为主,通过及时了解有关操作系统的安全漏洞以及相应的安全措施,及时安装补丁程序并注意定期升级系统软件,定期使用漏洞扫描软件检查内部网络,过滤不必要的服务和端口,过滤所有RFCl918 IP地址等方法保证一般的外围主机和服务器的安全。
  第二,提高硬件设备的性能,包括升级主机服务器、采用高性能网络设备和保证充足的网络带宽。
  第三,设置好内部的网络设备Ⅲ,主要是路由器和防火墙,要保证这些设备本身的安全,并对这些设备进行正确配置,使得进出防火墙的数据都经过严格过滤。
  即便如此,DDoS攻击也只能被减弱,无法被彻底消除。
  (注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。)
其他文献
摘 要:探讨了XML文件采用XPath(XML Path Language)解析的两种技术。  关键词:XML;XPath;解析;Java;JDOM  0 引言  XML的实质是一种表示数据的方式,用XML描述数据的优势显而易见,它具有结构简单、便于人和机器阅读的优点,并弥补了关系型数据对客观世界中真实数据描述能力的不足。现今,XML除了运用在Web方面,另外最常见的运用就是作为应用程序的配置信
期刊
摘 要:介绍一种基于串口通信的焦化三车连锁控制系统。该方案采用VC++6.0编程实现串口通信,用于远程控制焦化三车:推焦车、拦焦车、熄焦车的相互通信、炉号对位和推焦动作联锁,实验证明,方案实际可行。  关键词: 串口通信;同步;异步;API函数
期刊
摘 要:LIDS是一种基于Linux内核的入侵检测系统。文章简单介绍了入侵检测系统,详细介绍了LIDS的概念、主要功能及其原理。  关键词:入侵;入侵检测系统;安全;LIDS
期刊
摘要:利用GPRS网络作为无线智能监控的信息传输平台是一种非常有效的方法,其原理简单,安全保密性高,不需要组建专用网络。GPRS网络覆盖面广,可实现全球无缝覆盖,与传统的监控系统相比有着独特的优势。文章给出了基于GPRS网络的机房智能监控系统的硬件结构组成和软件工作流程。整个系统主要由终端采集系统和GPRS模块构成。用于无人监守的通信机房远程监控。  关键词:通信机房智能监控;MC35;GPRS;
期刊
摘要:提升处理器时钟频率和二级缓存的大小是提升CPU效率的方法。文章在对AMD Athlon 64实际测试的基础上,概要地从理论上分别阐述了时钟频率和二级缓存对CPU效率影响的原理,侧重分析了在不同应用环境中二级缓存和时钟频率的大小对CPU效率产生不同影响的原因,并提出了二级缓存对CPU效率影响的最佳容量的概念,可使大家对CPU的效率有一个更清楚的认识。  关键词:时钟频率;二级缓存;CPU效能;
期刊
摘要:在编写Java程序时,数组是常用的一种数据类型,然而在实际使用时有许多不便之处。为此,文章讨论了代替Java传统数组的动态数组的设计及实现过程,并举例说明了动态数组类的使用方法。  关键词:Java;动态数组;类;方法    O引言    熟悉Java编程的人员都知道,在创建Java数组时,必须用表达式指定其大小(如:int a[]=new int[3])或通过初始化(如:int a[]={
期刊
摘要:在ERP采购管理系统中采用DM与DB/DW紧耦合方式设计了一个开放集成的数据挖掘系统DMSPM。使用基于约束的交互式数据挖掘技术,以提高挖掘效率和灵活性;将计算模型和工具分离,形成一个模型求解的工具箱,便于使用和维护;通过人机界面和知识推理接受用户决策需求并输出决策结果,提供良好的交互性,从而形成一个拥有强大决策功能的ERP采购系统。  关键词:数据挖掘;ERP;决策支持;采购管理    O
期刊
摘要:介绍了Java ME的Web服务规范,比较了该规范定义的可选包与kXML和kSOAP之间的不同,指出了JavaME的JAX-RPC与Java SE/EE平台上的JAX-RPC 1.1之间的差异,并给出了这些差异给Java ME程序设计者带来的影响,为开发者提供了一些有价值的参考。  关键词:Java ME;Web服务;JSR 172;JAX-RPC    O引言    在有线网络环境中,We
期刊
摘要:根据Web日志中的浏览时间、服务器发送字节数信息和统计所得的页面浏览频度计算页面兴趣度,并结合模糊理论,生成模糊关联规则,提出了一个预测用户浏览兴趣的方法。实验表明,该方法是可行的并且具有较好的效果。  关键词:Web日志挖掘;模糊集;关联规则;页面兴趣度    0引言    自20世纪90年代互联网开始迅速发展以来,Web已成为人们获取信息的一个重要途径,搜索引擎在人们的日常生活和学习中发
期刊
摘要:利用Authorware外部扩展函数,对Authorware中的菜单进行改进,在Authorware中实现了多级菜单和右键弹出菜单。  关键词:Authorware;外部扩展函数;多级菜单;弹出菜单    0引言    Authorware提供了"Pull-Down Menu”这种交互方式,利用它可以制作出菜单。不过,与常见的多级Windows标准菜单相比,它的菜单大为逊色,而右键弹出菜单就
期刊