`
zhangziyueup
  • 浏览: 1170057 次
文章分类
社区版块
存档分类
最新评论

SYN flood网络攻击的原理及其防御方法[转]

 
阅读更多

  1 SYN Flood攻击介绍:

  拒绝服务攻击(Denial of Service,DoS)是目前比较有效而又非常难于防御的一种网络攻击方式,它的目的就是使服务器不能够为正常访问的用户提供服务。所以,DoS对一些紧密依靠互联网开展业务的企业和组织带来了致命的威胁。

  SYN Flood是最为有效和流行的一种DoS攻击形式。它利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的资源,从而不能够为正常用户提供服务。

  1.1 TCP连接建立的过程

  要掌握SYN Flood攻击的基本原理,必须先介绍TCP的三次握手机制。
  TCP三次握手过程如下:
  1)客户端向服务器端发送一个SYN置位的TCP报文,包含客户端使用的端口号和初始序列号x;

  2)服务器端收到客户端发送来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,包含确认号为x+1和服务器的初始序列号y;  


TCP客户端
客户端端口
(1024-65535)

TCP服务器端

服务器端口
(1-1023)
SYN
SYN/ACK
ACK

  3)客户端收到服务器返回的SYN+ACK报文后,向服务器返回一个确认号为y+1序号为x+1的ACK报文,一个标准的TCP连接完成。如图1所示:

  1.2 攻击原理

  在SYN Flood攻击中,黑客机器向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包,并等待源端返回ACK包,如图2所示。由于源地址是伪造的,所以源端永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,并将半连接放入端口的积压队列中,虽然一般的主机都有超时机制和默认的重传次数,但是由于端口的半连接队列的长度是有限的,如果不断的向受害主机发送大量的TCP SYN报文,半连接队列就会很快填满,服务器拒绝新的连接,将导致该端口无法响应其他机器进行的连接请求,最终使受害主机的资源耗尽。



TCP客户端
客户端端口
(1024-65535)

TCP服务器端

服务器端口
(1-1023)
SYN
SYN/ACK

伪造源地址

  2 几种防御技术

  SYN Flood攻击给互联网造成重大影响后,针对如何防御SYN Flood攻击出现了几种比较有效的技术。

 2.1SYN-cookie技术

  一般情况下,当服务器收到一个TCP SYN报文后,马上为该连接请求分配缓冲区,然后返回一个SYN+ACK报文,这时形成一个半连接。SYN Flood正是利用了这一点,发送大量的伪造源地址的SYN连接请求,而不完成连接。这样就大量的消耗的服务器的资源。

  SYN-cookie技术针对标准TCP连接建立过程资源分配上的这一缺陷,改变了资源分配的策略。当服务器收到一个SYN报文后,不立即分配缓冲区,而是利用连接的信息生成一个cookie,并将这个cookie作为将要返回的SYN+ACK报文的初始序列号。当客户端返回一个ACK报文时,根据包头信息计算cookie,与返回的确认序列号(初始的序列号+1)的前24位进行对比,如果相同,则是一个正常连接,然后,分配资源,建立连接。

  该技术的巧妙之点在于避免了在连接信息未完全到达前进行资源分配,使SYN Flood攻击的资源消耗失效。实现的关键之处在于cookie的计算。cookie的计算应该做到包含本次连接的状态信息,使攻击者不能伪造cookie。cookie的计算过程如下:

  1)服务器收到一个SYN包后,计算一个消息摘要mac:
mac = MAC(A,k);
MAC是密码学中的一个消息认证码函数,也就是满足某种安全性质的带密钥的hash函数,它能够提供cookie计算中需要的安全性。
A为客户和服务器双方的IP地址和端口号以及参数t的串联组合:
A = SOURCE_IP || SOURCE_PORT || DST_IP || DST_PORT || t
K为服务器独有的密钥;
时间参数t为32比特长的时间计数器,每64秒加1;

  2)生成cookie:
cookie = mac(0:24):表示取mac值的第0到24比特位;

  3)设置将要返回的SYN+ACK报文的初始序列号,设置过程如下:
i. 高24位用cookie代替;
ii. 接下来的3比特位用客户要求的最大报文长度MMS代替;
iii. 最后5比特位为t mod 32。
  客户端收到来自服务器SYN+ACK报文后,返回一个ACK报文,这个ACK报文将带一个cookie(确认号为服务器发送过来的SYN ACK报文的初始序列号加1,所以不影响高24位),在服务器端重新计算cookie,与确认号的前24位比较,如果相同,则说明未被修改,连接合法,然后,服务器完成连接的建立过程。

  SYN-cookie技术由于在连接建立过程中不需要在服务器端保存任何信息,实现了无状态的三次握手,从而有效的防御了SYN Flood攻击。但是该方法也存在一些弱点。由于cookie的计算只涉及了包头的部分信心,在连接建立过程中不在服务器端保存任何信息,所以失去了协议的许多功能,比如,超时重传。此外,由于计算cookie有一定的运算量,增加了连接建立的延迟时间,因此,SYN-cookie技术不能作为高性能服务器的防御手段。通常采用动态资源分配机制,当分配了一定的资源后再采用cookie技术,Linux就是这样实现的。还有一个问题是,当我们避免了SYN Flood攻击的同时,同时也提供了另一种拒绝服务攻击方式,攻击者发送大量的ACK报文,使服务器忙于计算验证。尽管如此,在预防SYN Flood攻击方面,SYN-cookie技术仍然是一种有效的技术。

 2.2 地址状态监控的解决方法

  地址状态监控的解决方法是利用监控工具对网络中的有关TCP连接的数据包进行监控,并对监听到的数据包进行处理。处理的主要依据是连接请求的源地址。

每个源地址都有一个状态与之对应,总共有四种状态:
初态:任何源地址刚开始的状态;
NEW状态:第一次出现或出现多次也不能断定存在的源地址的状态;
GOOD状态:断定存在的源地址所处的状态;
BAD状态:源地址不存在或不可达时所处的状态。
具体的动作和状态转换根据TCP头中的位码值决定:

  1)监听到SYN包,如果源地址是第一次出现,则置该源地址的状态为NEW状态;如果是NEW状态或BAD状态;则将该包的RST位置1然后重新发出去,如果是GOOD状态不作任何处理。

  2)监听到ACK或RST包,如果源地址的状态为NEW状态,则转为GOOD状态;如果是GOOD状态则不变;如果是BAD状态则转为NEW状态;如果是BAD状态则转为NEW状态。

  3)监听到从服务器来的SYN ACK报文(目的地址为addr),表明服务器已经为从addr发来的连接请求建立了一个半连接,为防止建立的半连接过多,向服务器发送一个ACK包,建立连接,同时,开始计时,如果超时,还未收到ACK报文,证明addr不可达,如果此时addr的状态为GOOD则转为NEW状态;如果addr的状态为NEW状态则转为BAD状态;如果为addr的状态为BAD状态则不变。
状态的转换图如图3所示:



初态
GOOD
NEW
BAD
ACK/RST
SYN
ACK/RST

ACK包确认超时
ACK/RST

ACK包确认超时

  下面分析一下基于地址状态监控的方法如何能够防御SYN Flood攻击。

  1)对于一个伪造源地址的SYN报文,若源地址第一次出现,则源地址的状态为NEW状态,当监听到服务器的SYN+ACK报文,表明服务器已经为该源地址的连接请求建立了半连接。此时,监控程序代源地址发送一个ACK报文完成连接。这样,半连接队列中的半连接数不是很多。计时器开始计时,由于源地址是伪造的,所以不会收到ACK报文,超时后,监控程序发送RST数据包,服务器释放该连接,该源地址的状态转为BAD状态。之后,对于每一个来自该源地址的SYN报文,监控程序都会主动发送一个RST报文。

  2)对于一个合法的SYN报文,若源地址第一次出现,则源地址的状态为NEW状态,服务器响应请求,发送SYN+ACK报文,监控程序发送ACK报文,连接建立完毕。之后,来自客户端的ACK很快会到达,该源地址的状态转为GOOD状态。服务器可以很好的处理重复到达的ACK包。
从以上分析可以看出,基于监控的方法可以很好的防御SYN Flood攻击,而不影响正常用户的连接。

  3 小结

  本文介绍了SYN Flood攻击的基本原理,然后详细描述了两种比较有效和方便实施的防御方法:SYN-cookie技术和基于监控的源地址状态技术。SYN-cookie技术实现了无状态的握手,避免了SYN Flood的资源消耗。基于监控的源地址状态技术能够对每一个连接服务器的IP地址的状态进行监控,主动采取措施避免SYN Flood攻击的影响。这两种技术是目前所有的防御SYN Flood攻击的最为成熟和可行的技术。


参考文献
1. 颜学雄,王清贤,李梅林. SYN Flood攻击原理与预防方法. 计算机应用,2000
2. 孙 曦,朱晓妍,王育林. DDoS下的TCP洪流攻击及对策. 网络安全技术与应用,2004
3. 李 磊,赵永祥,陈常嘉. TCP SYN Flooding原理及其应对策略. 网络与应用,2003
4. 陈 波. SYN Flood攻击的原理、实现与防范. 计算机应用与研究,2003

原理,详细地描述了目前几种比较有效的两种防御措施:SYN-cookie技术和地址状态监控技术。
分享到:
评论

相关推荐

    SYN flood网络攻击的原理及其防御方法.docx

    SYN flood网络攻击的原理及其防御方法.docx

    TCP协议的SYN Flood攻击原理详细讲解

    SYN Flood攻击的影响也不容小觑,从攻击中可以看到,以SYN Flood为主的数十G流量,很容易就造成被攻击目标网络瘫痪。但TCP类的攻击远不止如此,本篇我们就来全面讲解基于TCP协议的各种DDoS攻击方式和防御原理。

    论文研究-一种全局的SYN Flood防御方法 .pdf

    一种全局的SYN Flood防御方法,韩超,李明楚,本文给出了一种全新的全局的,大范围的防御SYN Flood攻击的方法,可以同时在目标网络检测攻击并在攻击源网络进行过滤。采用异常检测

    非对称路由环境下SYN flood攻击防御方法

    针对现有网络安全设施无法有效防御非对称路由环境下流量规模较大的SYN flood攻击的问题,对SYN flood攻击检测技术和TCP连接管理策略进行研究,提出了一种轻量级攻击检测和混合连接管理策略相结合的防御方法,利用SYN...

    论文研究-基于SITL的网络攻防仿真平台的设计与实现.pdf

    针对网络仿真工具在网络安全仿真方面的不足,引入系统在环技术构建网络...通过不同防御策略下PIX501防火墙对SYN Flood攻击的防御行为仿真,验证了防火墙在网络攻击下的安全功能。仿真结果表明了平台的可行性和有效性。

    网络安全.doc

    网络安全基于协议的攻击及防御,TCP SYN洪水(TCP SYN Flood)攻击及防御,ICMP与UDP洪水攻击及防御.

    关于内部网络流监控的论文

    本课题设计并实现了一个对...在设计的基础上,基于Windows 2000平台,用Visual C++实现了IP冒用的检测和攻击、TCP SYN Flood攻击的检测和防御,网络带宽的测量和警报,从而初步形成了一个实时监控网络工具的原型。

    学习笔记:网络攻击

    本资源是网络攻击的学习笔记,列出了一些网络攻击的原理及响应的解决方案

    天鹰抗DDOS防火墙服务器版 v5.09

    国内最有效的软件抗DDO防火墙,有效防御DoS/DDoS、Super DDoS、DrDoS、代理CC、变种CC、僵尸集群CC、UDP、变异UDP、随机UDP、ICMP、IGMP、SYN、SYN FLOOD、ARP攻击,传奇假人攻击、论坛假人攻击、非TCP/IP协议层攻击...

    风盾DDOS防火墙 2012.01.06.rar

    其自主研发的独特抗攻击算法,高效的主动防御系统可有效防御DoS/DDoS、SuperDDoS、DrDoS、代理CC、变异CC、僵尸集群CC、UDPFlood、变异UDP、随机UDP、ICMP、IGMP、SYN、SYNFLOOD、ARP攻击,传奇假人攻击、论坛假人...

    金盾防火墙集群方案

    DDOS防护、DDOS防范、DDOS防火墙、DDOS原理、解决DDOS、如何解决DDOS攻击、解决DDOS攻击、SYN攻击、SYN防护、SYN防御、DDOS防护、DDOS防御、SYN攻击原理、如何解决DDOS攻击、SYN、ICMP、SYN_FLOOD、UDP_FLOOD、ICMP_...

    风盾防火墙 Build 20120703 sp1

    其自主研发的独特抗攻击算法,高效的主动防御系统可有效防御DoS/DDoS、SuperDDoS、DrDoS、代理CC、变异CC、僵尸集群CC、UDPFlood、变异UDP、随机UDP、ICMP、IGMP、SYN、SYNFLOOD、ARP攻击,传奇假人攻击、论坛假人...

    中国战斧抗DDoS防火墙 2011 Build 20110218

    其自主研发的独特抗攻击算法,高效的主动防御系统可有效防御DoS/DDoS、SuperDDoS、DrDoS、代理CC、变异CC、僵尸集群CC、UDPFlood、变异UDP、随机UDP、ICMP、IGMP、SYN、SYNFLOOD、ARP攻击,传奇假人攻击、论坛假人...

    云盾防火墙 Build2011.12.1.zip

    其自主研发的独特抗攻击算法,高效的主动防御系统可有效防御DoS/DDoS、SuperDDoS、DrDoS、代理CC、变异CC、僵尸集群CC、UDPFlood、变异UDP、随机UDP、ICMP、IGMP、SYN、SYNFLOOD、ARP攻击,传奇假人攻击、论坛假人...

    网络安全威胁与对策.docx

    该攻击素以危害异常巨大、复杂难以防御等特点成为最常见网络攻击手段之一。DDOS攻击包括SYN flood、UDP flood、ICMP flood等多种子类别。其中SYN flood类攻击利用了TCP/IP协议中"三次握手"机制的设计缺陷:首先伪造...

    冰盾DDOS防火墙 v9.7 Build 2010.10.10.zip

    冰盾防火墙来自IT技术世界一流的美国硅谷,由华人留学生Mr.Bingle Wang和Mr.Buick Zhang设计开发,采用国际领先的生物...1.增强了对防御synflood的处理能力。 2.改进了入侵防御模块的检测机制。 3.优化了cc防护功能。

    天鹰ddos防火墙 v4.87 旗舰版

    天鹰ddos防火墙是国内最全面最有效的ddos防御产品,全面防御基于网络协议的各种攻击,比如cc攻击,ping flood ,udpflood,synflood,icmpflood,tcpflood,等等涵盖面最广,效果最好,误封最低,这个版本是最近的...

    基于关联规则的网络异常检测系统设计与实现

    入侵检测技术是网络安全防御的核心技术之一。由于网络承载的带宽流量日益增多,入侵检测系统...最后,利用SYN Flood攻击测试规则增强的Snort系统的性能,结果表明,改进后的Snort能够提高对SYN Flood攻击的检测效率。

    天鹰抗DDoS防火墙

    国内最有效的软件抗DDO防火墙,有效防御DoS/DDoS、Super DDoS、DrDoS、代理CC、变种CC、僵尸集群CC、UDP、变异UDP、随机UDP、ICMP、IGMP、SYN、SYN FLOOD、ARP攻击,传奇假人攻击、论坛假人攻击、非TCP/IP协议层攻击...

    天鹰ddos防火墙4.87旗舰版【单机版】

    天鹰ddos防火墙是国内最全面最有效的ddos防御产品,全面防御基于网络协议的各种攻击,比如cc攻击,ping flood ,udpflood,synflood,icmpflood,tcpflood,等等涵盖面最广,效果最好,误封最低,这个版本是最近的...

Global site tag (gtag.js) - Google Analytics