用于检测tcpsyn洪水式攻击的统计方法

文档序号:7601353阅读:302来源:国知局
专利名称:用于检测tcp syn洪水式攻击的统计方法
技术领域
本发明通常涉及基于计算机的系统,更特别是涉及在这种系统中检测与安全有关的攻击的方法。
背景技术
近年来对网址的攻击已经造成了网络业务的严重破坏。这些攻击可以采用多种形式的任何一种,包括,但不仅限于SYN洪水式(SYNflooding)攻击。
在SYN洪水式攻击中,攻击者使受攻击网址过载达到它无法应付到来的业务。这种攻击通常集中在基于TCP业务的固有特性。
实质上,TCP在建立连接时依靠三次握手协议。希望与主机建立连接的客户向主机发送同步信号(SYN),主机用SYN确认(ACK)应答来响应客户。然后客户返回确认,连接建立。握手协议在图1说明。
完成连接以后,客户向主机转发一结束(FIN)分组,表示不再有其它的数据或分组指向主机,此后连接结束。
在SYN洪水式攻击中,攻击者通常利用错误或无效的源地址,以使当主机返回SYN/ACK消息时它无法到达有效的客户。在TCP协议下,主机存储半开式连接,即三次协议的第三段(leg)在一时间段内或者直到系统超时出现还未完成的连接。如果在此时间间隔内在该主机网址建立了许多新的半开式连接,则分配用来保持这些连接的内存将被堵塞,并最终无法再接收SYN分组。在这个阶段,服务器或主机将崩溃或不再响应任何新的连接,该网址将停止使用。因为主机无法再接收数据,所以攻击者已经成功地产生了所谓的业务拒绝攻击。业务拒绝攻击正逐渐变成安全威胁的主要形式,迄今这个问题都非常难以解决。已经建议了多种对策,具体表现为防火墙和路由器过滤、操作系统改进、协议改进和侵入检测。
在安全攻击领域存在大量的现有技术,在1997年IEEE Symp.Security and Privacy会刊中C.Schuba,I.Krsul,M.Kuhn,E.Spafford,A.Sundaram和D.Zamboni发表的名称为“对TCP业务拒绝攻击的分析(Analysis of denial of service attack on TCP)”论文中详细描述了该问题。C.Schuba等人的论文描述了该问题和代理业务的经典解决方案TCP中继和半透明的TCP网关。在这两种解决方案中,防火墙截断TCP连接、保持TCP状态机的状态和引入新的分组来避免攻击。
根据该论文的代理解决方案必须为每次连接维护相应TCP状态机的状态。该机制需要大量的资源而且本身会成为新的业务拒绝攻击的目标。因此,计算开销的高成本使得该解决方案不适用于网络路由器或交换机。
更接近本发明的第二种现有技术由Proc.Infocom 2002中H.Wang,D.Zhang和K.G.Shin发表的“检测SYN洪水式攻击(Detecting SYN flooding attacks)”描述。根据Wang等人的方法依靠TCP连接中SYN和FIN分组的计数参数(argument)。这些分组应当成对进入任何运转正常的连接。因此,SYN分组的数目应当大致与FIN分组的数目匹配。这种方法的简易性在于无需状态和较低的计算开销,这使得检测机制本身免于洪水式攻击。这种简易性允许在连接终端主机与互联网的叶路由器中执行检测。
根据Wang等人的计数器机制具有一个主要的缺点。如果攻击者确切得知此方法所述的检测协议,他们可以简单地用同步SYN和无关的甚至无效的FIN分组完全淹没(overflooding)路由器来阻挠此方案。因此SYN计数器和FIN计数器应当大致相同。但是,受攻击的TCP/IP栈将会对无效FIN分组尚未结束的许多半开式连接开放。这相应于最初的业务拒绝攻击。
2001年12月20日授予Porras等人的美国专利6,321,338“网络监测(Network Surveillance)”也提供了一种现有技术。根据Porras等人的专利,提供了一种网络监测的方法,包括接收由网络实体处理的网络分组,和从监视数据传输、误差或网络连接的网络分组的测量值中建立至少一个长期和至少一个短期的统计档案(profile)。比较统计档案来确定统计档案的差别是否表示可疑的网络行为。
除了上述的细节以外,此专利还公开了事件数据流,例如ICMP分组的强度测量值,特别适合于检测洪水式攻击。此外,该专利还公开了使SYN与SYN ACK消息相关的强度测量值、SYN/RST消息或TCP/FIN消息的容量分析对于检测端口的可用性或扫描攻击有用。

发明内容
本发明属于路由器检测的范畴,但也可以在防火墙和操作系统中实现。
本发明依赖上述的计数参数,但在此情况下,计数参数是基于下面的三个属性1.来自攻击方的进入分组对检测参数具有正面影响。来自相反方向的进入分组对检测参数具有正或负面影响。
2.计数器参数以这种方式加权,即任何部分攻击都对检测参数具有正面影响。只有完全完成和有效的连接对检测参数没有影响。
3.与一个方向的SYN和FIN有关的加权因数总和加上与另一个方向的SYN/ACK和FIN有关的加权因数总和为零。
因此,根据本发明的第一个方面,提供了一种在通信系统中位于LAN和一网络之间的路由器检测异常不成功的连接尝试次数的方法,该方法包括步骤a)计数在预定时间间隔期间到达路由器LAN端的SYN、SYN/ACK和FIN分组;b)计数在预定时间间隔期间到达路由器网络端的SYN、SYN/ACK和FIN分组;c)使每个计数值乘以各自的加权因数,其中i)步骤a)中计数值的加权因数为正;和ii)与一个方向的SYN和FIN有关的加权因数总和加上与另一个方向的SYN/ACK和FIN有关的加权因数总和为零;d)计算一参数,该参数等于步骤c)乘积的总和;和e)响应在连续时间间隔内步骤d)定义的行为确定出现异常不成功的连接尝试次数。
根据本发明的第二个方面,提供了一种在通信系统中位于LAN和一网络之间的路由器检测异常不成功的连接尝试次数的方法,该方法包括步骤a)计数在预定时间间隔期间到达路由器网络端的SYN、SYN/ACK和FIN分组;b)计数在预定时间间隔期间到达路由器LAN端的SYN、SYN/ACK和FIN分组;c)使每个计数值乘以各自的加权因数,其中i)步骤a)中计数值的加权因数为正;和ii)与一个方向的SYN和FIN有关的加权因数总和加上与另一个方向的SYN/ACK和FIN有关的加权因数总和为零;d)计算一参数,该参数等于步骤c)乘积的总和;和e)响应在连续时间间隔内步骤d)定义的行为确定出现异常不成功的连接尝试次数。
还提供一种在通信系统中位于LAN和一网络之间的路由器检测异常不成功的连接尝试次数的方法,其中该方法包括步骤a)计数在预定时间间隔期间到达路由器LAN端的SYN、SYN/ACK和FIN分组;b)计数在预定时间间隔期间到达路由器网络端的SYN、SYN/ACK和RST分组;c)使每个计数值乘以各自的加权因数,其中i)步骤a)中计数值的加权因数为正;ii)与一个方向的SYN和FIN有关的加权因数总和加上与另一个方向的SYN/ACK和FIN有关的加权因数总和为零;和iii)与RST分组有关的加权因数与同一方向FIN分组有关的加权因数相等;d)计算一参数,该参数等于步骤c)乘积的总和;和e)响应在连续时间间隔内步骤d)定义的行为确定出现异常不成功的连接尝试次数。


现在将参照附图更详细地描述本发明,其中图1说明TCP握手协议;图2是根据本发明的基于计算机系统的高层图;图3A表示本发明概念的一个实施方式;和图3B表示根据本发明的第二个例子。
具体实施例方式
如图1所示,TCP连接协议涉及三次通信。
在连接请求结束时,客户向主机发送FIN分组,主机确认收到FIN分组,然后客户响应主机来关闭连接。如前所述,无法完成启动握手使主机也在这里知道受攻击方处于易受SYN洪水式攻击的境地。
如前所述,本发明涉及路由器检测技术,其中检测方法在路由器实现。如图2所示,路由器通常位于局域网(LAN)和网络或互联网之间。LAN和路由器之间的连接被认为是开始一英里路由器,与网络连接的是最后一英里路由器。作为开始一英里路由器,路由器检测早期来自LAN内的攻击。作为最后一英里路由器,路由器检测来自网络对LAN内受攻击方的攻击。
在本发明的实施方式中,如前所述,来自LAN的进入分组和来自互联网的进入分组分别对待。根据下文的讨论,#SYNLAN、#SYN/ACKLAN和#FINLAN分别定义为从LAN收到的SYN分组数、SYN/ACK分组数和FIN分组数。同样,#SYNNET、#SYN/ACKNET和#FINNET相应于从网络收到的分组数。为了计算在开始一英里路由器是否收到异常不成功连接尝试次数考虑下面的等式F=a#SYNLAN+b#SYN/ACKLAN+c#FINLAN-d#SYNNET-e#SYN/ACKNET-f#FINNET;其中F=计算的参数;a、b、c、d、e和f是加权因数。
关于上面讨论的三个属性的因数例子是i)a=b=f=2和c=d=e=1;ii)a=4、b=3、c=1、d=1、e=2和f=3;iii)a=f=1、d=-1和b=c=e=0。
显然从上面的等式可以看出来自LAN的任何攻击都会增加F值。即使LAN内攻击者的内部和任何合作者知道该协议,他们也无法对参数F产生负面影响。
同样,如果参数是用于最后一英里路由器,则用于检测来自网络攻击的公式采用下面的等式L=a#SYNNET+b#SYN/ACKNET+c#FINNET-d#SYNLAN-e#SYN/ACKLAN-f#FINLAN
其中L=用于最后一英里路由器的计算参数;a、b、c、d、e和f是加权因数。
上面给出的加权因数例子同样适用。
来自网络的任何攻击都会显著增加参数L。即使外部和合作的攻击者知道该协议,他们也无法对参数L值产生负面影响。
还注意上述的等式不是唯一的。它们是上述属性1、2和3的简单例子。
图3A和3B提供加权因数的例子。
注意在本发明的第一个方面中,计数在预定时间间隔期间到达路由器LAN端的SYN、SYN/ACK和FIN分组,同时计数在同一间隔期间到达路由器网络端的SYN、SYN/ACK和FIN分组。每个计数值乘以各自的加权因数,来自攻击方的分组的加权因数为正。与一个方向的SYN和FIN分组有关的加权因数总和加上与另一个方向的SYN/ACK和FIN分组有关的加权因数总和为零。计算一参数(F/L),该参数等于乘法步骤乘积的总和。最后响应在连续时间间隔内计算步骤定义参数的行为确定出现异常不成功的连接尝试次数。
根据TCP协议,复位(RST)分组应当用于响应异常情形,例如分组到达关闭的端口。但是,一些应用响应具有RST分组的工作(active)结束FIN分组而不是不工作(passive)的结束分组-由于性能的原因。因此,为了解决此问题,在某些情况下,RST分组必须与FIN分组等同考虑。
预定时间间隔通常是连续的或不重叠形式的滑动窗口。
确定步骤还可以包括使用任何一个累计总和、移动平均数、或滤波器导数来检测参数(F/L)的变化。
本发明提供了一种比已知方法更有效和强壮地检测业务拒绝攻击的方式。将本发明例如放入路由和交换产品种将固有地增强它们提供给网络的安全程度。本发明还可以应用于边缘IP设备、防火墙、主机等。
尽管已经描述和说明了具体的实施例,但是显然对于本领域技术人员来说,可以引入各种改变而没有偏离基本的概念。但是,应当理解在可能程度内的这些改变都落入所附权利要求书所限定的本发明的全部范围内。
权利要求
1.一种在通信系统中位于LAN和一网络之间的路由器检测异常不成功的连接尝试次数的方法,该方法包括步骤a)计数在预定时间间隔期间到达路由器LAN端的SYN、SYN/ACK和FIN分组;b)计数在预定时间间隔期间到达路由器网络端的SYN、SYN/ACK和FIN分组;c)使每个计数值乘以各自的加权因数,其中i)步骤a)中计数值的加权因数为正;ii)来自攻击方的任何部分连接的加权因数的总和为正;和iii)与一个方向的SYN和FIN有关的加权因数总和加上与另一个方向的SYN/ACK和FIN有关的加权因数总和为零;d)计算一参数,该参数等于步骤c)乘积的总和;和e)响应在连续时间间隔内步骤d)定义的行为确定出现异常不成功的连接尝试次数。
2.如权利要求1所限定的方法,其特征在于,每个加权因数采用唯一值,保持步骤c)的条件。
3.如权利要求2所限定的方法,其特征在于,预定的时间间隔是其中一个连续的或不重叠的滑动窗口。
4.如权利要求1所限定的方法,其特征在于,步骤e)还包括利用任何一个累加和、移动平均数、或滤波器导数来检测参数的变化。
5.如权利要求1所限定的方法,其特征在于,用于检测LAN端所发起攻击的等式采用以下形式F=x#SYNLAN+x#SYN/ACKLAN+#FINLAN-#SYNNET-#SYN/ACKNET-x#FINNET;其中F是检测来自LAN攻击的参数;x是加权因数;#SYNLAN是到达LAN端的SYN分组数;#SYN/ACKLAN是到达LAN端的SYN/ACK分组数;#FINLAN是到达LAN端的FIN分组数;#SYNNET是到达网络端的SYN分组数;#SYN/ACKNET是到达网络端的SYN/ACK分组数;#FINNET是到达网络端的FIN分组数。
6.如权利要求1所限定的方法,其特征在于,用于检测网络端所发起攻击的等式采用以下形式L=x#SYNNET+x#SYN/ACKNET+#FINNET-#SYNLAN-#SYN/ACKLAN-x#FINLAN;其中L是检测来自网络端攻击的参数;x是加权因数。
7.如权利要求1所限定的方法,其特征在于,用于检测LAN端所发起攻击的等式采用以下形式F=#SYNLAN+#SYNNET-#FINNET。
8.如权利要求1所限定的方法,其特征在于,用于检测网络端所发起攻击的等式采用以下形式L=#SYNNET+#SYNLAN-#FINLAN。
9.一种在通信系统中位于LAN和一网络之间的路由器检测异常不成功的连接尝试次数的方法,该方法包括步骤a)计数在预定时间间隔期间到达路由器LAN端的SYN、SYN/ACK、FIN和RST分组;b)计数在预定时间间隔期间到达路由器网络端的SYN、SYN/ACK、FIN和RST分组;c)使每个计数值乘以各自的加权因数,其中i)步骤a)中计数值的加权因数为正;ii)来自攻击方的任何部分连接的加权因数的总和为正;和iii)与一个方向的SYN和FIN或RST有关的加权因数总和加上与另一个方向的SYN/ACK和FIN或RST有关的加权因数总和为零;d)计算一参数,该参数等于步骤c)乘积的总和;和e)响应在连续时间间隔内步骤d)定义的行为确定出现异常不成功的连接尝试次数。
10.如权利要求9所限定的方法,其特征在于,每个加权因数采用唯一值,保持步骤c)的条件。
11.如权利要求10所限定的方法,其特征在于,预定的时间间隔是其中一个连续的或不重叠的滑动窗口。
12.如权利要求9所限定的方法,其特征在于,步骤e)还包括利用任何一个累加和、移动平均数、或滤波器导数来检测参数的变化。
13.如权利要求9所限定的方法,其特征在于,用于检测LAN端所发起攻击的等式采用以下形式F=x#SYNLAN+x#SYN/ACKLAN+#RSTLAN+#FINLAN-#SYNNET-#SYN/ACKNET-x#RSTNET-x#FINNET;其中F是检测来自LAN攻击的参数;x是加权因数;#SYNLAN是到达LAN端的SYN分组数;#SYN/ACKLAN是到达LAN端的SYN/ACK分组数;#RSTLAN是到达LAN端的复位分组数;#FINLAN是到达LAN端的FIN分组数;#SYNNET是到达网络端的SYN分组数;#SYN/ACKNET是到达网络端的SYN/ACK分组数;#RSTNET是到达网络端的复位分组数;#FINNET是到达网络端的FIN分组数。
14.如权利要求9所限定的方法,其特征在于,用于检测网络端所发起攻击的等式采用以下形式L=x#SYNNET+x#SYN/ACKNET+#RSTNET+#FINNET-#SYNLAN-#SYN/ACKLAN-x#RSTLAN-x#FINLAN;其中L是检测来自网络端攻击的参数;x是加权因数。
15.如权利要求9所限定的方法,其特征在于,用于检测LAN端所发起攻击的等式采用以下形式F=#SYNLAN+#SYNNET-#RSTNET-#FINNET。
16.如权利要求9所限定的方法,其特征在于,用于检测网络端所发起攻击的等式采用以下形式L=#SYNNET+#SYNLAN-#RSTLAN-#FINLAN。
全文摘要
本发明涉及在位于LAN和一网络,例如互联网之间的路由器检测TCP SYN洪水式攻击的方法。这些方法依赖这样一种计数安排,即在一时间间隔内对路由器的LAN端和网络或互联网端计数SYN和FIN分组。加权因数用于每个计数值,LAN端计数值因数的极性与网络端计数值因数的极性相反。相同极性的加权因数总和的绝对值相等。根据利用加权因数结合各自计数值计算的参数确定异常不成功的连接尝试次数。
文档编号H04L29/06GK1492328SQ0313817
公开日2004年4月28日 申请日期2003年5月30日 优先权日2002年5月31日
发明者布莱特·霍华德, 吉恩-马克·罗伯特, 保罗·克里斯塔德, 斯科特·D·德苏扎, D 德苏扎, 克里斯塔德, 布莱特 霍华德, 砜恕ぢ薏 申请人:阿尔卡塔尔加拿大公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1