一种网络攻击识别方法及装置的制作方法

文档序号:7895041阅读:213来源:国知局
专利名称:一种网络攻击识别方法及装置的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种网络攻击识别方法及装置。
背景技术
对于一个必须是授权用户才可以访问的服务器而言,在客户端A和服务器B建立传输控制协议(TCP, Transmission Control Protocol)连接的过程中,客户端A和服务器B的TCP模块分别使用自己的初始序列号(ISN, initial sequence number)。客户端A和服务器B建立TCP连接的过程可以如图I所示首先,客户端A向服务器B发送携带握手信号(SYN)标志的数据包请求建立连接,该数据包中携带自身的初始序列号(ISNa);然后,服务器B在接收到客户端A发送的携带SYN标志的数据包后,向客户端A发送携带SYN标志的应答数据包,该数据包携带服务器B的初始序列号(ISNb),以及对客户端A初始序列号的确认(ACK=ISNa+l);最后,客户端A收到服务器B发送的应答数据包后,将对服务器B初始序列号的确认(ACK=ISNb+l)发向服务器B。从而客户端A和服务器B三次握手完成,客户端A和服务器B分别知道了对方的初始序列号,TCP连接建立。当TCP连接正在建立时,服务器用一个包含自身惟一的初始序列号(可以为32位)的应答报文来确认用户请求。TCP协议规范要求每秒更换序列号25万次,但大多数实际系统更换频率远小于此,而且下一次更换的序列号往往是可以预知的,正是这种可预知性使得序列号攻击,包括TCP重启(TCPReset)攻击才得以完成。在一次攻击的过程中,攻击者以真实的身份做尝试性的连接,这个过程被重复若干次,在每次连接的过程中把服务器的ISN记录下来。攻击者通过多次统计,对往返时间(RTT,round-trip time)进行平均求值,RTT被用来猜测下一次可能的ISN。如果ISN的实现是每秒增加128000,每次连接增加64000,那么紧接着下一次连接请求,服务器的ISN就应该采用的是128000* (RTT/2)+64000。只要攻击者能够猜测出要攻击的服务器用于下一次连接的ISN,就能够欺骗这台服务器,通过假冒对该服务器SYN/ACK数据段的应答来欺骗服务器连接已经建立。假设客户端C假冒服务器B信任的客户端A向服务器B发送连接请求,攻击示意图可以如图2所示。这样,攻击者就可以假冒服务器信任的客户端进入服务器,向服务器发送任意的数据,而服务器却认为这些数据是从它信任的客户端发送来的,实现对服务器的攻击。当然,对于TCP序列号的猜测不仅可能发生在“三次握手”的过程中,还可能发生在连接建立以后的数据传送过程中。攻击者可以通过猜测客户端(服务器)向服务器(客户端)发送数据包的序列号,来冒充客户端或服务器与对端设备进行数据包的传输,实现网络攻击。例如,如果主机A正确地接收到主机B发送过来的一个报文段,该报文段中序列号字段的值是501 (发送序列号,标识该报文段中第一个字节的序列号),携带的数据共有200个字节,则主机A已经正确的接收到了主机B发送的序列号在501至700之间的数据(该报文段中最后一个字节的序列号为结束序列号,值为700),主机A期望收到主机B的下一个报文段首部的序列号应该是701。于是A发给B的响应报文段中将首部中的确认号置为701(确认序列号),该确认号即为主机B下一次向主机A发送报文段的发送序列号。如果攻击者可以猜测出该发送序列号,即可以冒充主机B向主机A发送报文段。以攻击者冒充客户端向服务器发送数据包为例,其中可能出现以下4种情况的任意一种情况I、如果猜测正确,攻击者发送的数据就会放到服务器接收缓冲区中;情况2、如果发送序列号小于服务器所期望的发送序列号,数据包被丢弃;情况3、如果发送序列号大于服务器所期望的发送序列号,但小于TCP接收窗口的范围,将被放到一个悬挂队列中,将被认为是客户端后发送的数据先到达。即,不需要猜测出准确的发送序列号,只要使得伪造的发送序列号落在接收窗口范围内,就可以被正常处理,实现对服务器的攻击;情况4、如果不是目的服务器所期望的发送序列号,也不在TCP的接收窗口范围内,数据包被丢弃。为了能够达到通过对于TCP序列号的猜测实现网络攻击的目的,攻击者需要能够满足以下四个条件条件I、攻击者能够在短时间内向服务器的某个开放端口发送若干个TCP连接请求,用来分析服务器ISN的增长规律,从而推断下一次连接ISN的可能值。在这若干个连接请求后紧接着就是用于攻击的那个连接请求。如果服务器在攻击者发起攻击的这一段时间内没有建立其他连接,那么其下一次连接建立的ISN被攻击者猜测成功的可能性就很高。条件2、攻击者要防止在攻击的过程中,被授权的客户端机会因为收到从服务器发送来的SYN/ACK而对该数据包做出响应(发送终止消息(RST)终止本次连接)。攻击者可以使用一个已经离线的客户端机的互联网协议(IP,internet protocol)地址,或者向被假冒的客户端机发起拒绝服务(DoS,Denial of Service)攻击来阻止该客户端机向服务器发出任何响应数据包。条件3、攻击者利用的是服务器上的一个应用层的协议,该协议是简单地依赖于客户端机的IP地址来认证和授权的,而不是通过诸如高层的密码技术的身份认证机制。条件4、在“三次握手”的第二步,攻击者能够猜测、嗅探出从服务器发送给被攻击者假冒的客户端机的TCP的ISN,因为这些数据是攻击者看不到的。目前黑客利用TCP序列号的脆弱性可以实施多种不同类型的攻击,其中包括新型的DoS攻击即切断单个网络服务器的联络并使应用软件和网络看上去很不稳定。信息投毒型攻击即向数据流中插入伪造的信息,如虚假的新闻报道或者欺骗性的股价信息等。话路劫持即接管用户与计算机系统的连接,让劫持者以用户的身份进行应用软件的操作,如操纵本应该只允许用户本人使用的财务软件或互联网基础设施管理系统等。针对利用TCP序列号的脆弱性进行的网络攻击,目前,现有技术针对该类网络攻击的识别方案主要是基于状态检测功能的防火墙来实现。而当前基于状态检测功能的防火墙大多采取利用连接双方的IP地址和端口号来跟踪状态。这样当一个连接建立之后,当后续的数据包到达时,防火墙从数据包中提取源目的地址和端口号信息,并与状态表进行比较,一旦匹配就允许其通过。这种实现方法虽然简单,但也带来了相应的安全隐患,使得攻击者很容易伪造出具有合法IP和端口的网络数据包,使其通过状态检测进入内部网络,因而存在很大的网络安全隐患。而如果攻击者伪造了一个数据包,使连接转换到了异常状态,连接将被删除,从而使得合法的数据包也无法通过。

发明内容
本发明实施例提供一种网络攻击识别方法及装置,用于提高网络的安全性,并保证合法数据包的顺利通信。一种网络攻击识别方法,所述方法包括网络设备接收第一设备向第二设备发送的第N+1传输控制协议TCP数据包,其中,N为正整数;网络设备确定第二设备接收到第一设备发送的第N传输控制协议数据包返回的确认序列号,与第一设备发送第N传输控制协议数据包的发送序列号的差值;网络设备根据所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包;其中,所述设定窗口的长度值为第一设备发送窗口的长度值,或第二设备接收窗口的长度值,或第一设备发送窗口的长度值与第二设备接收窗口的长度值中的最小值。一种网络攻击识别装置,所述装置包括接收模块,用于接收第一设备向第二设备发送的第N+1传输控制协议TCP数据包,其中,N为正整数;确定模块,用于在接收模块接收到第N+1传输控制协议数据包时,确定第二设备接收到第一设备发送的第N传输控制协议数据包返回的确认序列号,与第一设备发送第N传输控制协议数据包的发送序列号的差值;合法性检测模块,用于根据确定模块确定出的所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包,其中,所述设定窗口的长度值为第一设备发送窗口的长度值,或第二设备接收窗口的长度值,或第一设备发送窗口的长度值与第二设备接收窗口的长度值中的最小值。根据本发明实施例提供的方案,网络设备在接收到第一设备向第二设备发送的第N+1传输控制协议数据包时,确定第一设备向第二设备发送第N传输控制协议数据包时的发送序列号和第二设备接收到该第N传输控制协议数据包返回的确认序列号,通过确认序列号与发送序列号的差值与设定窗口长度的关系,确定第N+1传输控制协议数据包为合法数据包还是非法数据包。从而相对于现有的针对利用TCP序列号的脆弱性进行的网络攻击识别方法,利用TCP序列号来检测数据包的合法性,可以避免基于状态检测功能的防火墙进行网络攻击识别时,攻击者很容易伪造出具有合法IP和端口的网络数据包,使其通过状 态检测进入内部网络,使得网络安全性较差的问题。同时,本发明方案不会删除TCP连接,避免了合法数据包无法顺利通信的问题。


图I为现有技术提供的客户端A和服务器B建立TCP连接的过程示意图;图2为现有技术提供的攻击示意图;图3为本发明实施例一提供的网络攻击识别方法的步骤流程图;图4为本发明实施例一提供的IP数据包格式示意图;图5为本发明实施例一提供的TCP首部格式示意图;图6为本发明实施例一提供的保留位分配示意图;图7为本发明实施例二提供的网络攻击识别装置的结构示意图。
具体实施方式
利用TCP序列号进行攻击是TCP协议中存在的一个安全上的隐患,这类攻击能够给网络造成重大损害,攻击者可以利用TCP协议中的安全弱点伪造序列号,只要使得伪造的序列号落在滑动窗口内,就可以使伪造的序列号被作为合法序列号正常处理,攻击者就可以实施多种不同类型的攻击。由于基于连接状态的传统检测技术很难抵御利用TCP序列号的脆弱性进行的网络攻击,因此本发明实施例利用数据包的TCP序列号对数据包的合法性(TCP序列号的合法性)进行检测,以尽可能地保证收到的数据包不是利用伪造的序列号发送的数据包,并可以对非法数据包进行实时的预警,方便定制相应的安全策略,提高系统的稳定性和安全性。本发明实施例通过记录并跟踪TCP连接双方的发送序列号、确认序列号以及双方的接收窗口长度,以判断数据包是否合法。进一步的,可以引入对TCP序列号边界值的检测,进一步提高确定出的数据包是否合法的结果的准确性。下面结合说明书附图和各实施例对本发明方案进行说明。实施例一、本发明实施例一提供一种网络攻击识别方法,具体的,以进行网络攻击识别的网络设备为路由器为例进行说明。该方法的步骤流程可以如图3所示,包括步骤101、路由器接收数据包。在本步骤中,路由器可以接收第一设备向第二设备发送的第N+1传输控制协议数据包,其中,N为正整数。其中,第一设备可以为客户端,第二设备可以为服务器。当然,也可以是第一设备为服务器,第二设备为客户端。步骤102、路由器确定序列号。在路由器接收到第N+1传输控制协议数据包之后,向第二设备转发该数据包之前,可以对该数据包的合法性进行检测。在利用TCP序列号进行攻击的过程中,攻击者可以不需要猜测出准确的发送序列号,只需要猜测出的发送序列号落在第二设备接收窗口的范围内,即可以利用该猜测出的发送序列号发送数据包。由此非常可能导致发送的数据包的数据长度不符合第二设备接收窗口长度或第一设备发送窗口长度的要求。针对这种情况,本实施例提出可以通过利用TCP序列号检测数据包的实际数据长度的方法来确定用于发送数据包的序列号是否是伪造的,从而可以确定是否受到了网络攻击。并可以在确定用于发送数据包的序列号是伪造的时,将利用伪造的序列号发送该数据包的第一设备发送的下一个数据包确定为非法数据包,阻止第一设备实施的网络攻击。
在本步骤中,路由器可以确定第一设备向第二设备发送的第N传输控制协议数据包的发送序列号和第二设备接收到第N传输控制协议数据包返回的确认序列号。具体的,路由器可以从状态表记录的TCP连接双方(第一设备和第二设备)的序列号中查找确定所述发送序列号和所述确认序列号。步骤103、路由器确定数据包的合法性。在本步骤中,路由器在确定所述确认序列号与所述发送序列号的差值不大于设定窗口长度值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包。所述设定窗口的长度值为第一设备发送窗口的长度值,或第二设备接收窗口的长度值,或第一设备发送窗口的长度值与第二设备接收窗口的长度值中的最小值。可以理解为,路由器可以在所述确认序列号与所述发送序列号的差值不大于第一设备发送窗口的长度值,和/或所述确认序列号与所述发送序列号的差值不大于第二设备 接收窗口的长度值时,即在利用TCP序列号确定第一设备向第二设备发送的第N传输控制协议数据包的实际数据长度不大于第一设备发送窗口的长度值,和/或第二设备接收窗口的长度值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包。进一步的,在确定数据包为非法的数据包时,可以丢弃该数据包,在确定数据包为合法的数据包时,可以保留该数据包,用于后续向第二设备转发。具体的,所述第一设备发送窗口的长度值即为第一设备向第二设备发送第N传输控制协议数据包的窗口长度值。且路由器可以将距离自身接收到第N+1传输控制协议数据包时刻最近一次第二设备向第一设备发送数据包的窗口长度值确定为所述第二设备接收窗口的长度值。第一设备向第二设备发送第N传输控制协议数据包的窗口长度值,和距离路由器接收到第N+1传输控制协议数据包时刻最近一次第二设备向第一设备发送数据包的窗口长度值可以是路由器在第一设备和第二设备进行通信的过程中记录的,并可以将记录的窗口长度值保存在指定位置。步骤104、路由器进行数据包合法性标识。 本步骤是一个优选步骤。在确定出数据包的合法性之后,路由器可以进行数据包的合法性标识操作。如图4所示,一个TCP数据包包括TCP首部(20字节)和TCP数据两个部分,且一个TCP数据包一般被增加一个IP首部(20字节)封装在一个IP数据包中传输,因此,路由器可以利用TCP数据包的TCP首部来标识该TCP数据包的合法性。具体的,路由器可以利用TCP数据包的TCP首部中的保留位标识该数据包是否合法,从而进行网络攻击预警。当然,如果该数据包为非法数据包,则可以清空该数据包的TCP数据部分,从而在利用TCP数据包进行网络攻击预警的情况下,减少数据传输量,减少对网络资源的占用。为了进一步提高对数据包合法性检测的准确性,在步骤101之后,对数据包的合法性检测过程中,可以进一步结合TCP序列号的边界值进行数据包的合法性检测,包括但不限于包括以下三种方式中的至少一种方式一、路由器确定所述第N+1传输控制协议数据包的发送序列号不小于第二设备已发送的确认序列号的最大值。假设第一设备向第二设备发送的第N+1传输控制协议数据包的序列号范围为S,S+N,则此时需要确认S>=MAX (ACK),其中,ACK表示第二设备已发送的确认序列号。通过本方式的检测可以防止已经确认接收到的数据的重传。由于这种重传是不必要的,因此,可以在即将发生此类重传时,认为发生了网络攻击,将第N+1传输控制协议数据包确认为非法数据包,从而可以及时发现网络攻击。方式二、路由器确定所述第N+1传输控制协议数据包的结束序列号不大于第二设备已发送的确认序列号与第二设备接收窗口的长度之和的最大值,所述结束序列号为第N+1传输控制协议数据包中最后一个字节的序列号。以第一设备向第二设备发送的第N+1传输控制协议数据包的序列号范围为S,S+N为例,则此时需要确认S+N〈=MAX(ACK+WIN),其中,ACK表示第二设备已发送的确认序列号,WIN表示第二设备发送的自身接收窗口的长度。通过本方式的检测可以防止超出第二设备接收能力的数据发送至第二设备。在即将发送的数据包的结束序列号大于第二设备 已发送的确认序列号与第二设备接收窗口的长度之和的最大值时,可以认为发生了网络攻击,将第N+1传输控制协议数据包确认为非法数据包,确保网络攻击的实时发现。方式三、路由器确定距离自身接收到第N+1传输控制协议数据包时刻最近一次第二设备返回的确认序列号不大于结束序列号,所述结束序列号为第N+1传输控制协议数据包中最后一个字节的序列号。仍以第一设备向第二设备发送的第N+1传输控制协议数据包的序列号范围为S,S+N为例,则此时需要确认A〈=S+N,其中,A表示距离路由器接收到第N+1传输控制协议数据包时刻最近一次第二设备返回的确认序列号。通过本方式的检测可以保证没有发送的数据不被确认。如果没有发送的数据被确认,即可以认为发生了网络攻击,将第N+1传输控制协议数据包确认为非法数据包。根据以上三种方式中的至少一种进行数据包的合法性检测可以在确定确认序列号与发送序列号的差值是否不大于第一设备发送窗口的长度值,和/或是否不大于第二设备接收窗口的长度值之前执行,当然,也可以在确定确认序列号与发送序列号的差值是否不大于第一设备发送窗口的长度值,和/或是否不大于第二设备接收窗口的长度值之后执行。如果利用多种方式进行了数据包合法性的检测,则步骤104中,在利用TCP首部的保留位进行网络攻击预警时,可以产生针对利用不同的方式检测出数据包非法的预警类型TCP首部格式如图5所示,其中在进行数据包合法性标识时,保留位分配可以如图6所示。可以将保留位中的第一个字节用做预警标识位,可以在该字节为O时,标识该数据包为合法数据包;可以在该字节为I时,标识该数据包为非法数据包。并可以将保留位中的后五个字节作为预警类型位,用于标识不同的预警类型(即确定该数据包为非法数据包的依据)。例如,可以利用00001表示发生了 S〈MAX(ACK)类型的预警,利用00010表示发生了S+N>MAX (ACK+WIN)类型的预警,利用00011表示发生了 A>S+N类型的预警,利用00100表不发生了确认序列号与发送序列号的差值大于第一设备发送窗口的长度值,和确认序列号与发送序列号的差值大于第二设备接收窗口的长度值类型的预警。接收到TCP数据包的设备可以通过解析TCP首部了解数据包是否合法,以及预警类型,从而可以做出相应处理,进行网络攻击的预防,减少网络攻击的发生。
与本发明实施例一基于同一发明构思,提供以下的装置。 实施例二、本发明实施例二提供一种网络攻击识别装置,所述装置可以集成在路由器的防火墙中,该装置的结构可以如图7所示,包括接收模块11用于接收第一设备向第二设备发送的第N+1传输控制协议TCP数据包,其中,N为正整数;确定模块12用于在接收模块接收到第N+1传输控制协议数据包时,确定第二设备接收到第一设备发送的第N传输控制协议数据包返回的确认序列号,与第一设备发送第N传输控制协议数据包的发送序列号的差值;合法性检测模块13用于根据确定模块确定出的所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包,其中,所述设定窗口的长度值为第一设备发送窗口的长度值,或第二设备接收窗口的长度值,或第一设备发送窗口的长度值与第二设备接收窗口的长度值中的最小值。所述合法性检测模块13具体用于在确定所述差值不大于设定窗口长度值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包。所述合法性检测模块13具体用于将第一设备向第二设备发送第N传输控制协议数据包的窗口长度值确定为所述第一设备发送窗口的长度值,将距离接收模块接收到第N+1传输控制协议数据包时刻最近一次第二设备向第一设备发送数据包的窗口长度值确定为所述第二设备接收窗口的长度值。所述合法性检测模块13具体用于在确定所述差值不大于设定窗口长度值,且确定所述第N+1传输控制协议数据包的发送序列号不小于第二设备已发送的确认序列号的最大值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包。所述合法性检测模块13具体用于在确定所述差值不大于设定窗口长度值,且确定所述第N+1传输控制协议数据包的结束序列号不大于第二设备已发送的确认序列号与第二设备接收窗口的长度之和的最大值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包,其中,所述结束序列号为第N+1传输控制协议数据包中最后一个字节的序列号。所述合法性检测模块13具体用于在确定所述差值不大于设定窗口长度值,且确定距离接收模块接收到第N+1传输控制协议数据包时刻最近一次第二设备返回的确认序列号不大于结束序列号时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包,其中,所述结束序列号为第N+1传输控制协议数据包中最后一个字节的序列号。所述装置还包括标识模块14 标识模块14用于在合法性检测模块确定第N+1传输控制协议数据包为合法数据包或非法数据包之后,利用TCP数据包的TCP首部中的保留位标识该数据包是否合法。根据本发明实施例一 实施例二提供的方案,可以通过对数据包进行序列号的边界值检测、利用序列号进行数据包的数据长度的检测等来检测数据包的合法性,从而进行实时、动态的跟踪和分析,实时地丢弃利用不合法序列号发送的数据包,并发出相应的异常预警通告,提供实时的序列号的健康状态,减少TCP序列号攻击的发生,为提高系统的安全性,提供一种合理的、有效的实时诊断方法和机制,提高网络的稳定性和可靠性。突破传统的网络攻击识别方案无法及时发现网络攻击的瓶颈,提供实时、动态的TCP序列号合法性检测方案。同时,利用TCP数据包的TCP首部中的保留位进行网络攻击预警具有很好扩展性,可以根据需要丰富预警内容,使用户实时、动态的掌握序列号的健康状态,定制相应的安全策略。本发明实施例提供的网络攻击识别方法,适用于目前的IPv4网络和IPv6网络。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
权利要求
1.一种网络攻击识别方法,其特征在于,所述方法包括 网络设备接收第一设备向第二设备发送的第N+1传输控制协议TCP数据包,其中,N为正整数; 网络设备确定第二设备接收到第一设备发送的第N传输控制协议数据包返回的确认序列号,与第一设备发送第N传输控制协议数据包的发送序列号的差值; 网络设备根据所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包 ; 其中,所述设定窗口的长度值为第一设备发送窗口的长度值,或第二设备接收窗口的长度值,或第一设备发送窗口的长度值与第二设备接收窗口的长度值中的最小值。
2.如权利要求I所述的方法,其特征在于,网络设备根据所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包,具体包括 网络设备在确定所述差值不大于设定窗口长度值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包。
3.如权利要求I所述的方法,其特征在于,网络设备将第一设备向第二设备发送第N传输控制协议数据包的窗口长度值确定为所述第一设备发送窗口的长度值,将距离自身接收到第N+1传输控制协议数据包时刻最近一次第二设备向第一设备发送数据包的窗口长度值确定为所述第二设备接收窗口的长度值。
4.如权利要求I所述的方法,其特征在于,网络设备根据所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包,具体包括 网络设备在确定所述差值不大于设定窗口长度值,且确定所述第N+1传输控制协议数据包的发送序列号不小于第二设备已发送的确认序列号的最大值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包。
5.如权利要求I所述的方法,其特征在于,网络设备根据所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包,具体包括 网络设备在确定所述差值不大于设定窗口长度值,且确定所述第N+1传输控制协议数据包的结束序列号不大于第二设备已发送的确认序列号与第二设备接收窗口的长度之和的最大值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包,其中,所述结束序列号为第N+1传输控制协议数据包中最后一个字节的序列号。
6.如权利要求I所述的方法,其特征在于,网络设备根据所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包,具体包括 网络设备在确定所述差值不大于设定窗口长度值,且确定距离自身接收到第N+1传输控制协议数据包时刻最近一次第二设备返回的确认序列号不大于结束序列号时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包,其中,所述结束序列号为第N+1传输控制协议数据包中最后一个字节的序列号。
7.如权利要求1飞任一所述的方法,其特征在于,网络设备根据所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包之后,所述方法还包括网络设备利用TCP数据包的TCP首部中的保留位标识该数据包是否合法。
8.—种网络攻击识别装置,其特征在于,所述装置包括接收模块,用于接收第一设备向第二设备发送的第N+1传输控制协议TCP数据包,其中,N为正整数; 确定模块,用于在接收模块接收到第N+1传输控制协议数据包时,确定第二设备接收到第一设备发送的第N传输控制协议数据包返回的确认序列号,与第一设备发送第N传输控制协议数据包的发送序列号的差值; 合法性检测模块,用于根据确定模块确定出的所述差值与设定窗口长度值的关系,确定第N+1传输控制协议数据包为合法数据包或非法数据包,其中,所述设定窗口的长度值为第一设备发送窗口的长度值,或第二设备接收窗口的长度值,或第一设备发送窗口的长度值与第二设备接收窗口的长度值中的最小值。
9.如权利要求8所述的装置,其特征在于,所述合法性检测模块,具体用于在确定所述差值不大于设定窗口长度值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包。
10.如权利要求8所述的装置,其特征在于,所述合法性检测模块,具体用于将第一设备向第二设备发送第N传输控制协议数据包的窗口长度值确定为所述第一设备发送窗口的长度值,将距离接收模块接收到第N+1传输控制协议数据包时刻最近一次第二设备向第一设备发送数据包的窗口长度值确定为所述第二设备接收窗口的长度值。
11.如权利要求8所述的装置,其特征在于,所述合法性检测模块,具体用于在确定所述差值不大于设定窗口长度值,且确定所述第N+1传输控制协议数据包的发送序列号不小于第二设备已发送的确认序列号的最大值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包。
12.如权利要求8所述的装置,其特征在于,所述合法性检测模块,具体用于在确定所述差值不大于设定窗口长度值,且确定所述第N+1传输控制协议数据包的结束序列号不大于第二设备已发送的确认序列号与第二设备接收窗口的长度之和的最大值时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包,其中,所述结束序列号为第N+1传输控制协议数据包中最后一个字节的序列号。
13.如权利要求8所述的装置,其特征在于,所述合法性检测模块,具体用于在确定所述差值不大于设定窗口长度值,且确定距离接收模块接收到第N+1传输控制协议数据包时刻最近一次第二设备返回的确认序列号不大于结束序列号时,确定第N+1传输控制协议数据包为合法数据包,否则,确定第N+1传输控制协议数据包为非法数据包,其中,所述结束序列号为第N+1传输控制协议数据包中最后一个字节的序列号。
14.如权利要求8 13任一所述的装置,其特征在于,所述装置还包括标识模块,用于在合法性检测模块确定第N+1传输控制协议数据包为合法数据包或非法数据包之后,利用TCP数据包的TCP首部中的保留位标识该数据包是否合法。
全文摘要
本发明实施例提供一种网络攻击识别方法及装置,包括网络设备在接收到第一设备向第二设备发送的第N+1传输控制协议数据包时,确定第一设备向第二设备发送第N传输控制协议数据包时的发送序列号和第二设备接收到该第N传输控制协议数据包返回的确认序列号,通过确认序列号与发送序列号的差值与设定窗口长度的关系,确定第N+1传输控制协议数据包为合法数据包还是非法数据包。
文档编号H04L29/06GK102655509SQ20121013874
公开日2012年9月5日 申请日期2012年5月7日 优先权日2012年5月7日
发明者钟岳林, 黄志忠 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1