当前位置:首页 > 读后感 > TCP DDoS攻击与防范 xss攻击防范
 

TCP DDoS攻击与防范 xss攻击防范

发布时间:2019-01-10 04:15:48 影响了:

  摘要:随着互联网的迅速普及和应用的不断发展,各种黑客工具和网络攻击手段也随之倍出,网络攻击导致网络和用户受到侵害,其中分布式拒绝服务 DDoS 以其攻击范围广、隐蔽性强、简单有效等特点成为常见的网络攻击技术之一,极大地影响网络和业务主机系统的有效服务。其中的TCP DDoS它利用了传统协议中三次握手协议的不安全性,向互联网服务器发送大量的报文。由于服务器接收大量无效的报文,而使得正常的报文无法得到及时响应。如何检测这种攻击发生以及如何降低这种攻击所带来的后果已成为目前安全界研究的热点问题。
  关键词:TCP DDoS;SYN Flooding;SYN Timeout
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31520-01
  TCP DDoS Attack Prevention
  LI Ji-liang
  (Xuzhou Construction Vocational and Technical College Electronics and Information Engineering,Xuzhou 221008,China)
  Abstract:With Internet popularized quickly and its application developing, more and more all kinds of hacker"s tools and network attack measures are appearing.Network attacks damaged networks and users, among which DDoS(Distributed Denial
  of Service) attacks become one of the common network attack techniques by the characteristics, such as extensive area, strong concealment, simpleness and efficiency, etc. DDoS attacks greatly affected the effective service of network and host systems.The SYN Flood which makes use of the insecurity of three-way handshake of the tradition TCP/IP protocol sends large number of SYN packets to Internet server.Becuse the server receive much useless SYN packets,the normal SYN packets can not response in time.Thus how to detect the attack and reduce the damage of this attack has become the topic of network security research throughout the world at present.
  Key words:TCP DDoS;SYN Flooding;SYN Timeout
  
  1 引言
  
  在网络安全攻击的各种手段和方法中,DoS(denial of service)拒绝服务类型攻击危害最大。DoS 攻击的基本过程:首先攻击者向服务器发送众多的带有虚假地址的请求,服务器发送回复信息后等待回传信息,由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放。当服务器等待一定的时间后,连接会因超时而被切断,攻击者会再度传送新的一批请求,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽。而DDoS(distributed denial of service)分布式拒绝服务攻击的出现无疑是一场网络的灾难,它是DoS攻击的演变和升级,是黑客手中惯用的攻击方式之一,破坏力极强,往往会带给网络致命的打击。它是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,利用一批网络上受控制的机器,在某一个时间段内向一台或某几台机器发起攻击。如图1所示。这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。由于它难以被侦测和控制,因此也广泛受到网络安全业界的关注。而目前Internet上占主导地位的DDoS最主要的攻击方式来自于SYN Flood。
  图1 分布式拒绝服务攻击体系结构
  
  2 SYN Flood攻击原理
  
  SYN Flooding 利用了TCP/IP协议的固有漏洞。面向连接的TCP的三次握手是SYN Flooding 存在的基础。首先,客户端的TCP向服务器发出连接请求报文段,其首部中的同步比特 SYN 应置为1,并选择序号x,表明传送数据时的第一个数据字节的序号是x。服务器的TCP收到连接请求报文段后,如同意,则发回确认。服务器在确认报文段中应将SYN 置为1,其确认号应为x+1,同时也为自己选择序号y。客户端收到此报文段后,向服务器给出确认,其确认号应为y+1。客户端的TCP通知上层应用进程,连接已经建立。当运行服务器进程的主机的TCP收到客户端主机的确认后,也通知其上层应用进程,连接已经建立。以上的过程在TCP协议中被称为三次握手(three-way handshake)。如图2所示。
  图2 用三次握手建立TCP连接
  在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),此时服务器处于半链接状态,如图3所示。已分配了一些资源,并将该半链接放入端口的积压队列中。最后,如果服务器在规定的超时时间内收到来自客户机的ACK确认报文,则三次握手完成,服务器删除半链接,链接正式建立。否则在规定的超时时间内不能收到来自客户机的ACK确认报文,服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间,后丢弃这个未完成的连接,这段时间的长度称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30称~2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源――数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP地址进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够大,最后的结果往往是堆栈溢出崩溃(即使服务器端的系统足够大),服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况称作服务器端受到了SYN Flooding攻击(SYN 洪水攻击)。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文   图3 SYN Flooding攻击原理
  
  3 SYN Flooding攻击的防范
  
  关于攻击防范技术,归纳起来,主要有两大类,一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固协议栈防范。但必须清楚的是,攻击不能完全被阻止,我们所能做的是尽可能的减轻攻击的危害,除非将协议重新设计。
  3.1过滤网关防护
  过滤网关主要指防火墙,当然路由器也能成为过滤网关。防火墙部署在不同网络之间,防范外来非法攻击和防止保密信息外泄,它处于客户端和服务器之间,利用它来防护攻击能起到很好的效果。过滤网关防护主要包括超时设置、SYN网关和代理三种。
  (1)缩短SYN Timeout时间
  缩短SYN Timeout时间,由于SYN Flooding攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度×SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃该连接的时间,例如设置为20s以下(过低的SYN Timeout设置可能影响客户的正常访问),可以成倍地降低服务器的负荷。
  (2)SYN网关
  网关收到客户端的包时,直接转发给服务器网关收到服务器的包后,将该包转发给客户端,同时以客户端的名义给服务器发确认包。此时服务器由半连接状态进入连接状态。当客户端确认包到达时,如果有数据则转发,否则丢弃。事实上,服务器除了维持半连接队列外,还要有一个连接队列,如果发生攻击时,将使连接队列数目增加,但一般服务器所能承受的连接数量比半连接数量大得多,所以这种方法能有效地减轻对服务器的攻击。
  (3)SYN代理
  使用SYN代理也具有很强的防范SYN Flooding攻击的能力。
  3.2加固TCP/IP协议栈
  SYN防范攻击的另一项主要技术是调整协议栈,修改TCP协议实现。主要方法有SYN Cache技术、SYN Cookies技术等。
  SYN Cookies策略就是延迟分配资源,直到收到第三个分组,这时发送端的IP地址被验证了。收到的第一个分组中的信息必须存储下来,直到第三个分组到达。但是,如果服务器保存了这个信息,它就需要分配资源(存储器);这是两难的事。解决的方法是把这个信息压缩一下,再把它发回给客户。这就是产生一个Cookie。这个Cookie随第二个分组发送到第一个分组中的那个地址。这有两种情况:
  (1)如果第一个分组的发送者是个攻击者,那么服务器就永远不会收到第三个分组;Cookie就丢失了,而没有资源被分配。服务器的付出的仅仅是“烘烤一下”这个Cookie。
  (2)如果第一个分组的发送者是需要建立这个连接的诚实用户,它就会收到带有Cookie的第二个分组。客户就发送一个分组(这一串中的第三个),附上原封不动的Cookie。服务器收到第三个分组,知道这个分组来自一个诚实的客户,因为发送端发送出去的Cookie就在这个分组中。服务器现在就可以分配资源了。
  如果没有实体接收发送端“烘烤”的Cookie,上面的策略可以正常工作。要保证这点,服务器用它自己的秘密密钥从这个信息中创建一个摘要。这个信息和摘要以及Cookie一起在第二个分组中发送给客户。当Cookie在第三个分组中返回时,服务器从这个信息计算摘要。若这个摘要与发送的匹配,就表明Cookie没有被任何其它实体一更改过,这样达到防范SYN Flooding的目的。
  
  4 结束语
  
  本文介绍了SYNFlooding攻击的基本原理,分析了一些常用的防范策略。对于 SYN Flood攻击,到目前为止,还没有一种非常有效的防御方法。通过对攻击数据特征的深入研究,将其按一定规则进行有效分类,改进现有的算法,融合相关的安全技术,构造智能型的立体防护体系将是有效的解决之道。
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3