一种网络流量异常检测方法和系统的制作方法

文档序号:7647220阅读:116来源:国知局
专利名称:一种网络流量异常检测方法和系统的制作方法
技术领域
本发明涉及通信网络,特别涉及网络流量异常的检测,具体地讲涉及一种网络流量异常检测方法和系统。
背景技术
一般地可以把入侵检测技术划分为两类误用检测和异常检测。由于误用检测需要将接收到的数据包和已知攻击的特征进行比对,因此对未知的攻击行为无法做出判断。异常检测则通过对流量行为的观察,以网络中的正常行为为依据,凡是与预期的正常行为不一致的网络流量均被视为异常,其中可能包含新的未知攻击模式。所使用的入侵检测手段包括简单的模式匹配、带状态的模式匹配、基于协议解码的模式特征匹配、启发式特征匹配等。通常,基于特征匹配的入侵检测系统可以检查网络中的各个协议层的内容,而基于异常的检测可以只检查第三层即网络层的情况。异常检测的关键问题在于正常使用模式的建立以及如何利用该模式与当前的流量行为进行比较,从而判断出与正常模式的偏离程度。模式通常使用一组系统的度量来定义,这里度量指的是系统或用户行为在特定方面的衡量标准。
基于异常的入侵检测技术也可以分为下面两类固定的正常模式和基于学习的正常模式。在开放源代码项目SNORT中利用预处理器可以预设阈值,当所观测到的流的某项度量偏离固定规则超出这一阈值,便可以采取相应的行动。在这种方法中,必须对网络的正常行为度量做出假定,以阈值的方式固定下来。另一种方式则基于对网络测量的统计,利用人工智能、机器学习、数据挖掘或统计新好处理的方法来推知正常流量特征,并检测异常流量。
现有技术中,如开放源代码项目SNORT中的预处理器。SNORT的规则一般格式如表1所示,且该规则工作在网络层和传输层上。
表1

如表1所示,Action行动、Protocol协议、Address地址、Port端口、Direction方向、Address地址、Port端口。
其中,协议包括IP、互联网控制消息协议(ICMPInternet Control MessageProtocol)、传输控制协议(TCPTransmission Control Protocol)和用户数据报协议(UDPUser Datagram Protocol)。
规则可以伴随若干选项,选项由两部分构成关键字和参数。在选项中,关键字content和参数指明需要匹配的特征。对于一个接收到的数据包,SNORT对其进行规则匹配,如果数据包和规则及选项中的需匹配部分一致,SNORT按照“Action”所规定的动作行动。例如,alert tcp any any→10.1.1.0/24 80(content″/cgi-bin/phf″;msg″PHF probe!″;),表示对于从任意IP地址的任意端口到10.1.1.0/24网段地址中的80端口的TCP协议包中若包含字段“/cgi-bin/phf”,则发出警告消息“PHF probe!”在运用规则之前,SNORT可以利用预处理器对接收到的数据包进行操作。某些预处理器可以用于检测异常或数据包中的明显数据错误。预处理规则可以在配置文件中制订。以端口扫描检测的预处理为例,在配置文件snort.conf中加入的预处理器格式如下预处理器端口扫描(Preprocessor portscan)<address><port><timeperiod><file>,对于检测端口扫瞄攻击的预处理器portscan有四个可设置的参数,即所监测得IP地址范围、端口访问数量、时间间隔和日志文件名。其中“time period”指定了以秒为单位的时间间隔作为阈值,而“ports”给出了在“time period”内“address”代表的IP所能访问的端口数上限。
但是,SNORT中的基于预处理器的异常检测存在以下几个方面的问题
1)有效性不高。
以portscan为例,“ports”和“time period”中给出的数值需由安全领域的专家或SNORT管理人员通过对现有入侵行为进行分析后归纳得出,然而,面对日趋复杂的网络状况,单凭专家的经验通常并不具有足够的完备性和精确性;另外,由于系统所能处理的数据源有限,这也在一定程度上限制了其检测能力。
2)适应性不强。
固定的预处理配置往往难以适应目前层出不穷的新型攻击方式。
3)有限的可扩展性。
预处理器中的异常检测针对一定的环境和攻击,并不具有通用性,在新的网络环境中重用和定制已经建立起来的入侵检测系统难度很大。
另外,状态跟踪是防火墙中所使用到的一种访问控制技术。防火墙采用的技术包括主要工作在协议层第三层的包过滤,工作在协议层第四层的状态检查,工作在应用层的代理网关防火墙和专用代理服务器等。
在状态跟踪的防火墙中,连接的状态可以被用来帮助判断是否允许一个数据包通过防火墙,例如,可以设置只允许对已有请求的应答包才能通过防火墙进入安全区,而这种请求与应答的识别就是状态检测的结果。
在状态检查时,所有的TCP连接的状态都由连接状态跟踪表记录,这样防火墙可以控制单个客户端口,加上对TCP/IP第四层的管理,从而比简单的包过滤防火墙更加安全。
在进行状态检查的防火墙中,连接状态跟踪表被用来监控TCP连接的状态变化。这样一来,可以使对访问的控制粒度更细。比如,只允许对从内网到外网的请求的应答进入内网。本质上,状态检查是在标准的包过滤基础上增加了对TCP层的处理。对于非面向连接的协议如UDP,则可采用虚拟连接的方式进行跟踪。每一个包都要和所属连接状态表中的状态进行比较,只有符合状态的包才是合法的。构成状态的要素包括源/目标地址、源/目标端口、协议号、标志、序列号、应答号、ICMP代码和类型、应用层包头以及应用层命令等。以TCP为例,在RFC793中定义了连接的11种状态,即监听(LISTEN),同步发送(SYN_SENT),同步收到(SYN_RECEIVED),连接建立(ESTABLISHED),结束等待_1(FIN_WAIT_1),结束等待_2(FIN_WAIT_2),关闭等待(CLOSE_WAIT),同时关闭(CLOSING),最后应答(LAST_ACK),超时等待(TIME_WAIT),关闭(CLOSED)。
如图1所示,为TCP状态转移示意图。其中,→说明客户的正常状态变迁;------说明服务器的正常状态变迁;应用进程说明当应用执行某种操作时发生的状态变迁;收说明当收到TCP数据包段时状态的变迁;发说明为了进行某个状态变迁要发送的TCP数据包段。
下面参照图1举例说明状态转移图的使用。如一个主动连接者从初始的CLOSED开始,首先要发出带有SYN标志的包请求连接,进入SYN_SENT状态,在收到连接响应者的带有SYN和ACK标志的包后再发出ACK包,连接才被建立而进入ESTABLISHED状态,这样就完成了三次握手的工作。
总之,状态检查是防火墙中所使用的一种访问控制技术,没有被用于入侵检测。即使出现了非法包,也不能确定是否由攻击行为导致。
由上述可知,现有技术中没有将网络入侵检测系统中的异常检测技术和防火墙中的状态跟踪技术相结合;没有UDP和ICMP的状态转移图;并且现有技术中的TCP状态转移图也较复杂。

发明内容
鉴于现有技术中存在的上述问题,本发明实施例提供一种网络流量异常检测方法和系统。本发明实施例针对TCP/IP网络中的攻击行为,建立了协议会话状态机作为正常会话所必须遵从的行为模式,并基于上述会话状态机来对流经网络的如TCP、UDP和ICMP数据包进行检测和错误计数,并结合数据挖掘技术进行异常判断,有效地发现网络异常行为。
本发明实施例提供一种网络流量异常检测方法,该方法包括步骤接收数据包,判断数据包类型并利用预先建立的协议会话状态机对该数据包所属的会话或伪会话行为的正常程度进行度量;根据度量的结果,并利用数据挖掘来判断该会话或伪会话是否为异常。
本发明实施例还提供一种网络流量异常检测系统,该检测系统至少包括存储器、数据包处理单元和数据挖掘单元;其中,存储器,用于储存协议会话状态机;数据包处理单元,与所述存储器连接,用于接收数据包,判断数据包类型并利用存储器中存储的协议会话状态机对所述数据包所属的会话或伪会话行为的正常程度进行度量;数据挖掘单元,与所述数据包处理单元连接,根据度量结果并利用数据挖掘来判断所述数据包所属的会话或伪会话是否为异常。
本发明实施例的有益效果在于,将网络入侵检测系统中的异常检测技术和防火墙中的状态跟踪技术相结合并加以改进;建立了协议会话状态机作为正常会话所必须遵从的行为模式,利用该状态机对流经检测系统的会话或伪会话中的数据包进行检测和错误计数;结合数据挖掘技术进行异常判断,有效地发现网络异常会话行为模式的未知攻击。


图1为现有技术中为TCP状态转移示意图;图2为本发明实施例的TCP会话状态转移图;图3为本发明实施例的UDP会话状态转移图;图4为本发明实施例的ICMP会话状态转移图;图5为本发明实施例的流量异常检测流程图;图6为本发明实施例的流量异常检测系统结构示意图。
具体实施例方式
本发明实施例提供一种网络流量异常检测方法和系统。其中,该方法包括步骤接收数据包,判断数据包类型并利用预先建立的协议会话状态机对该数据包所属的会话或伪会话行为的正常程度进行度量;根据度量的结果,并利用数据挖掘来判断该会话或伪会话是否为异常。
本发明实施例综合并改进了网络入侵检测系统中的异常检测技术和防火墙中的状态跟踪技术,针对TCP/IP网络中的攻击行为,建立了协议会话状态机作为正常会话所必须遵从的行为模式,并基于上述会话状态机来对流经网络的如TCP、UDP和ICMP数据包进行检测和错误计数,并结合数据挖掘技术进行异常判断,有效地发现网络异常行为。
本实施例中,以接收传输控制协议TCP、用户数据报协议UDP或互联网控制消息协议ICMP数据包,对TCP、UDP和I CMP协议数据包建立正常行为的协议会话状态机为例来说明本发明实施例的检测方法。对于检测系统所接收的每一个数据包,如果是采用上述三种协议之一,则可利用相应的协议会话状态机进行异常检测。
当接收到的数据包为传输控制协议TCP数据包时,可利用现有的如图1所示的TCP会话状态机对该TCP数据包所属的会话的正常行为进行度量。
优选地,本发明实施例对现有的TCP会话状态机进行了改进,建立了一种TCP会话状态机,当接收到的数据包为传输控制协议TCP数据包时,还可利用如图2所示的TCP状态机进行度量。
此外,还建立了UDP会话状态机,如图3所示,当接收到的数据包为UDP数据包时,利用如图3所示的UDP会话状态机进行度量;当接收到的数据包为ICMP数据包时,根据所接收ICMP数据包的类型分别利用UDP会话状态机或者利用如图4所示的ICMP会话状态机进行度量。本实施例中,当接收的ICMP数据包的类型为端口不可达时,利用UDP会话状态机进行度量;当接收的ICMP数据包的类型为非端口不可达时,则利用ICMP会话状态机进行度量。
首先参照附图2~4对本发明实施例建立的会话状态机进行详细说明。
首先对协议会话状态机进行简要说明。协议会话状态机为有限状态机。有限状态机是一种描述离散事件系统行为的常见建模方法。一个有限状态机可以用五元组{S,E,s,δ,F}来表示,其中,S表示一个有限的状态集合;E表示一个有限的事件集合;s是S中的一个元素,表示系统的初始状态,;δ表示定义在S x E→S上的一个映射,称作状态转移函数;F是S的一个子集,表示最终状态的集合。其中,状态转移函数描述在事件的驱动下,有限状态机从当前事件转移到下一个事件的关系,是从状态和事件的有序对到状态的一个映射;状态转移是指,当处于所述初始状态并接收到数据包时,根据该数据包中包含的内容映射到对应的所述事件,然后根据当前状态和该事件将该数据包所属的会话转移到下一个状态,并以此状态作为当前状态,在新接收到的数据包中所蕴含的事件的驱动下,不断进行状态变化的过程。
初始状态为状态集合的一个元素,最终状态集合为状态集合的一个子集。
在本实施例中,分别建立了针对TCP、UDP和ICMP数据包的正常行为会话有限状态机,如图2至图4所示的状态转移图所示。并且给出了对ICMP数据包的处理方法。
如图2所示,为传输控制协议TCP会话状态转移图。其中,所述TCP会话状态机包括状态集合、事件集合、初始状态、状态转移函数、最终状态集合;其中,状态集合,包括初始状态、错误状态和结束状态;其中初始状态包括空闲(Idle)、同步(Syn)、应答(Ack)、连接建立(Establish)、数据接收(Data RCVD)、数据发送(Data SEND)、复位(RST)、结束等待(FinWAit)、结束等待I(FinWaitI)、结束等待A(FinWait_A)、结束等待B(FinWait_B)、结束等待C(FinWait_C)、结束等待D(FinWait_D)、结束等待I_A(FinWaitI_A)、结束等待I_B(FinWaitI_B)、结束等待I_C(FinWaitI_C)、结束等待I_D(FinWaitI_D);事件集合,包括同步(Syn)、应答(Ack)、复位(RST)、结束应答(FinAck)和数据(Data);状态转移函数如图2所示;其中,状态转移是指,当处于所述初始状态并接收到数据包时,根据该数据包中包含的内容映射到对应的所述事件,然后根据当前状态和该事件将该数据包所属的会话转移到下一个状态。
例如,如图2所示,当初始状态为空闲(Idle)状态时,所接收的数据包中包含正向同步事件(+Syn)时,将空闲(Idle)状态转移至同步(Syn)状态;当所接收的数据包中包含反向同步应答事件(-SynAck),将同步(Syn)状态转移至应答状态(Ack);当所接收的数据包中包含正向应答事件(+Ack),将应答(Ack)状态转移至连接建立(Establish)状态;当所接收的数据包中包含反向数据(-Data)或正向数据(+Data)事件,将连接建立(Establish)状态转移至数据接收(Data RCVD)状态或数据发送(Data SEND)状态;当所接收到的数据包中包含正向(+Data)或反向数据(-Data)事件时,将数据接收(Data RCVD)或数据发送(Data SEND)状态转移至数据发送(DataSEND)或数据接收(Data RCVD)状态;当所接收到的数据包中包含正向同步(+Syn)或正向复位(+RST)事件时,将当前的应答状态(Ack)、或者连接建立(Establish)状态、数据接收状态(Data RCVD)、数据发送(Data SEND)状态转移至错误状态(Error);当所接收到的数据包中包含正向或者反向结束应答(+/-FinAck)事件时,将连接建立(Establish)状态、数据接收(Data RCVD)状态、数据发送(DataSEND)状态转移至结束等待I(FinWaitI)或者结束等待状态(FinWait);其它情况依次类推,此处不再赘述。
在图2中
1.事件的“+”“-”号表示方向;例如如果从A向B发送数据是“+Data”,则从B向A发送数据就是“-Data”。
2.当发生状态转移时,会话计时器复位。如果在一个预设值“T”的时间内,没有任何状态变迁,则计时器触发并产生TIMEOUT事件,除初始状态、错误状态和最终状态之外,记一次ERROR。
3.Data的标志位为ACK或是PSHAck,便于将数据应答和数据统一处理。
如图3所示,为用户数据报协议UDP会话状态转移图。其中,所述UDP会话状态机包括状态集合、事件集合、状态转移函数;其中,状态集合,包括初始状态、中间状态、错误状态;其中初始状态包括Idle;中间状态包括RCVD、SEND;事件集合,包括Data和ICMP;状态转移函数如附图3所示,状态转移方式与图2类似,此处不再赘述。
如图3所示1.事件的“+”“-”号表示方向;例如如果从A向B发送数据是“+Data”,则从B向A发送数据就是“-Data”。
2.如果在一个预设值“T”的时间内,没有任何状态变迁,则系统通过周期检查,发现该会话,并报TIMEOUT,记一次ERROR。
3.Data为除了ICMP以外的其它数据。
此外,本实施例中还提供了对ICMP数据包的处理方法,并建立了相应的ICMP会话状态机。
ICMP是因特网控制数据包协议,用来向主机或者路由器报告差错情况,同时进行相应的控制操作。ICMP不是高层协议,属于网际层的协议。其功能主要有侦测远端主机是否存在;建立及维护路由资料;重定向资料传送路径。
在汇聚层中,能够引起明显流量的ICMP数据包主要有三种类型端口不可达终点不可达分为多种类型,但通常与攻击行为有关的数据包是用户数据报协议UDP数据包对应的端口不可达数据包。
回答请求这就是PING数据包,用来查询远端的主机是否存在。
回答PONG数据包,用来回应远端的查询请求。
本实施例中,分别针对上述三种数据包提出相应的解决方法。
1.UDP数据包对应的端口不可达,这种数据包的数据格式如表2所示表2

本实施例中,当捕获到这种类型的数据包时,将出错的IP数据包首部和出错的UDP数据包首部中所包含的内容置为反向的会话标识五元组,即将出错的IP数据包首部中的源IP设置成新五元组的目的IP,目的IP置成新五元组的源IP,出错的UDP数据报首部的目的端口置为新五元组的源端口,将其中的源端口置为新五元组的目的端口,新五元组的协议类型设置成UDP。将这一端口不可达数据包映射为新五元组对应UDP状态机中的一个ICMP事件。通过这种方式,就将UDP端口不可达数据包映射到了UDP的状态机中。因此,当接收到的数据包为端口不可达数据包时,可利用UDP状态机进行检测和错误计数。
2.PING和PONG数据包(1)PING数据包。由于这种数据包是用来询问主机是否可达的,不存在服务端口,所以进行如下处理将五元组中的源IP设置成数据包的源IP,将五元组中的目的IP设置成数据包的目的IP,源端口设置成0,目的端口设置成65535,协议类型设置成ICMP。
(2)PONG数据包。由于这种数据包是用来询问主机是否可达的,不存在服务端口,所以进行如下处理将五元组中的源IP设置成数据包的源IP,将五元组中的目的IP设置成数据包的目的IP,源端口设置成65535,目的端口设置成0,协议类型设置成ICMP。如图4所示,为互联网控制消息协议ICMP状态转移图。
当接收到的数据包为PING和PONG数据包时,采用图4所示的状态机对该数据包所属的伪会话的正常行为进行度量。
所述ICMP会话状态机包括状态集合、事件集合、状态转移函数;其中,状态集合,包括初始状态、中间状态、错误状态;其中初始状态包括Idle(空闲);中间状态包括Ping、Pong;事件集合,包括Ping和Pong;状态转移函数如附图4所示;状态转移方式与图2类似,此处不再赘述。
如图2~4所示的协议会话状态机仅仅为本发明的优选实施例而已,不限于上述方式。
以下结合附图5~6对本发明实施例的检测系统和方法进行详细说明。
实施例一本发明实施例提供一种网络异常流量检测系统。如图6所示,该检测系统600包括存储器604、数据包处理单元602和数据挖掘单元603;其中,存储器604,用于储存协议会话状态机,其中,本实施例中,若接收TCP、UDP、ICMP数据包,存储器604中存储的协议会话状态机为TCP会话状态机、UDP会话状态机和ICMP会话状态机,但不限于此种情况;数据包处理单元602,与存储器604连接,用于接收数据包,判断数据包类型并利用存储器604中存储的协议会话状态机对所述数据包所属的会话或伪会话行为的正常程度进行度量;数据挖掘单元603,与所述数据包处理单元602连接,根据度量结果并利用数据挖掘来判断所述数据包所属的会话或伪会话是否为异常。
本实施例中,所述存储器604还储存会话状态跟踪表。
如图6所示,检测系统600还包括初始化单元601,与所述存储器604连接,在该检测系统600接收数据包之前,对存储器604中存储的会话状态跟踪表进行初始化,将该会话状态跟踪表的内容置为空。
所述数据包处理单元602还可包括接收单元602a、处理单元602b和度量单元602c;其中,
接收单元602a,用于接收数据包,并将该数据包传送至处理单元602b;处理单元602b,判断数据包类型,并根据数据包的类型利用协议会话状态机对接收到的数据包进行处理;度量单元602c,利用存储器中存储的协议会话状态机对所述数据包所属的会话或伪会话行为的正常程度进行度量,并将度量结果传送至数据挖掘单元603。
其中,所述对数据包所属的会话或伪会话行为的正常程度进行度量是指对所述会话状态跟踪表中的错误计数值进行统计,将统计后的错误计数值作为会话或者伪会话行为的正常程度的度量。
这样,在本实施例中,处理单元602b,判断数据包类型,并根据数据包的类型对该数据包进行相应的处理;当处理结果为发生错误状态或者是否存在于所述会话状态跟踪表中时,增加所述会话状态跟踪表中的错误计数值。度量单元602c可用于对所述会话状态跟踪表中的错误计数值进行统计,将统计后的错误计数值作为该会话或者伪会话行为的正常程度的度量,并将统计结果发送至数据挖掘单元603。其中,可定期对会话状态跟踪表中的错误计数值进行统计。
本实施例中,所述标识是指源地址、源端口、目的地址、目的端口和协议。如表3所示,为一个会话状态跟踪表跟踪项。
表3

如表4所示,例举具体的会话状态跟踪表。
表4


本实施例中,当数据包的类型为互联网控制消息协议ICMP数据包时,判断互联网控制消息协议ICMP数据包类型为用户数据报协议UDP数据包对应的端口不可达数据包时,利用UDP会话状态机进行度量;若判断结果为非端口不可达数据包时,则利用ICMP会话状态机进行度量。
当数据包的类型为传输控制协议TCP或者用户数据报协议UDP数据包时,利用TCP或者UDP会话状态机进行度量。
以利用上述检测系统进行检测为例,对本发明实施例的网络流量异常检测方法进行详细说明。
实施例二本发明实施例提供一种网络流量异常检测方法。该方法包括步骤接收数据包,判断数据包类型并利用预先建立的协议会话状态机对该数据包所属的会话或伪会话行为的正常程度进行度量;根据度量的结果,并利用数据挖掘来判断该会话或伪会话是否为异常。
在该检测系统中,建立的协议会话状态机如图2~4所示,储存于存储器604中;此外,建立一个会话状态跟踪表,该会话状态跟踪表储存于存储器604中,表中的会话(或伪会话)跟踪项至少包含一个会话或伪会话的标识、会话所处的当前状态和错误计数值;本实施例中,所述标识是指源地址、源端口、目的地址、目的端口和协议。该会话状态跟踪表如表3、4所示,此处不再赘述,但并不限于此种形式。
以下结合附图6所示的检测系统对本发明实施例的检测方法进行详细说明。
首先进行初始化,由初始化单元601初始化存储器604中会话状态跟踪表,使其内容为空(见步骤500)。
检测系统的数据包处理单元602,接收数据包;判断数据包类型,根据数据包类型并利用ICMP、UDP、或者TCP会话状态机对该数据包所属会话或者伪会话的正常程度进行度量;其中,接收单元602a接收数据包(见步骤501),然后送至处理单元602b和度量单元602c,分别对数据包进行处理和对错误计数值进行统计,将统计后的错误计数值做为该数据包所属会话或者伪会话的正常程度的度量;具体步骤如下本实施例中,接收单元602a接收到数据包后(见步骤501),将该数据包送至处理单元602b和度量单元602c,对数据包进行处理并对错误计数值进行统计;其中,首先检查数据包IP部分的是否完整(见步骤502),如果检查的结果为数据包IP部分不完整,则丢弃(见步骤502’);若检查的结果为数据包IP部分完整,则对数据包类型进行判断;判断该数据包是否为ICMP数据包(见步骤503),若判断的结果为ICMP数据包时,则判断ICMP数据包类型,判断其是否为UDP数据包对应的端口不可达数据包(见步骤504);若判断的结果为端口不可达数据包时,则将端口不可达数据包映射到对应的UDP会话状态机,从而利用UDP会话状态机对该伪会话的正常程度进行度量(见步骤505),其中,将端口不可达数据包映射到对应的UDP会话状态机的步骤如上所述的内容,此处不再赘述;在步骤505中,可采用下述步骤利用UDP会话状态机对该伪会话的正常程度进行度量根据端口不可达数据包中包含的用户数据报协议UDP及会话标识五元组,映射到相应的会话状态跟踪表中;判断对该数据包所在伪会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中;若判断的结果为存在,则增加该跟踪项的所述错误计数值;若判断结果为不存在,则根据会话标识五元组在该会话状态跟踪表中创建一新的会话跟踪项,并将修改该跟踪项的错误计数值,即将错误计数值加1。
然后,所述度量单元602c定期对错误计数值进行统计,将统计后的错误计数值作为该伪会话行为的正常程度的度量。
若在步骤504中,判断ICMP数据包类型为非端口不可达数据包,如为PING或PONG数据包时,则利用ICMP会话状态机对该伪会话行为的正常程度的度量(见步骤506)。在步骤506中,可采用下述步骤对该伪会话的正常程度进行度量判断对该数据包所在伪会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中;若判断的结果为存在,则按照该ICMP会话状态机对接收到的数据包进行检测,检测的步骤包括根据所接收数据包中头部的内容,判断数据包传输的方向,并映射到所对应的事件;根据数据包协议类型所属的协议会话状态机、会话当前状态和所述事件将会话转移到下一个状态,并更新会话状态跟踪表中相应的内容;然后,检测当前状态是否为错误状态;当检测结果为发生错误状态时,增加所述会话状态跟踪表中该跟踪项的错误计数值。
然后所述度量单元602c定期对错误计数值进行统计,并将统计后的错误计数值作为该会话或伪会话行为的正常程度的度量。
此外,当判断数据包所在伪会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中时,若判断结果为不存在,则在该会话状态跟踪表中创建一新的会话跟踪项;将当前状态置为ICMP会话状态机的初始状态;按照当前数据包代表的事件转移状态更新当前状态。
在上述步骤503中,若判断的结果为非ICMP数据包时,接着判断是否为UDP数据包(见步骤507);若判断的结果为UDP数据包时,则利用UDP会话状态机对该数据包所属伪会话的正常程度进行度量(见步骤508),其中可采用下述步骤进行度量
判断对数据包所在伪会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中;若判断的结果为存在,则按照UDP会话状态机对接收到的数据包进行检测,其中包括根据所接收数据包中头部的内容,判断数据包传输的方向,并映射到所对应的事件;根据UDP会话状态机、会话当前状态和所述事件将会话转移到下一个状态,并更新会话状态跟踪表中相应的内容;然后,检测当前状态是否为错误状态;当检测结果为发生错误状态时,增加所述会话状态跟踪表中该跟踪项的错误计数值;然后所述度量单元602c定期对该错误计数值进行统计,将统计后的错误计数值作为该会话或伪会话行为的正常程度的度量。
此外,当判断数据包所在伪会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中时,若判断结果为不存在,则在该会话状态跟踪表中创建一新的会话跟踪项;将当前状态置为UDP会话状态机的初始状态;按照当前数据包代表的事件转移状态更新当前状态。
在步骤507中,若判断结果为非UDP数据包时,进一步判断是否为TCP数据包(见步骤509);若判断的结果为TCP数据包时,则利用TCP会话状态机对该数据包所属会话的正常程度进行度量(见步骤510),其中可采用下述步骤进行度量判断对数据包所在会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中;若判断的结果为存在,则按照TCP会话状态机对接收到的数据包进行检测,其中包括根据所接收数据包中头部的内容,判断数据包传输的方向,并映射到所对应的事件;根据TCP会话状态机、会话当前状态和所述事件将会话转移到下一个状态,并更新会话状态跟踪表中相应的内容;然后,检测当前状态是否为错误状态;
当检测结果为发生错误状态时,增加所述会话状态跟踪表中该跟踪项的错误计数值;然后所述度量单元602c定期对该错误计数值进行统计,将统计后的错误计数值作为该会话或伪会话行为的正常程度的度量。
此外,当判断数据包所在会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中时,若判断结果为不存在,则在该会话状态跟踪表中创建一新的会话跟踪项;将当前状态置为TCP会话状态机的初始状态;按照当前数据包代表的事件转移状态更新当前状态。
若在步骤509中判断该数据包非TCP数据包,则返回步骤501。
最后,检测系统600的数据挖掘单元603根据在步骤505、508、510中的度量结果,即统计的错误计数值,利用数据挖掘手段对该错误计数值进行分析,根据分析的结果判断是否异常。本实施例可利用基于人工神经网络的分类器对错误计数值进行分析,此分析方式为现有技术,因此对分析过程不再赘述。
若分析的结果为意味着攻击,则指示攻击出现;然后判断当前状态;若当前状态是Done,则清除会话表中该会话对应项,然后返回步骤501。
如图5所示的检测方法仅仅为本发明的实施例,其中判断接收到的数据包的类型的顺序可以采用其它顺序。
通过上述实施例可知,本发明实施例将网络入侵检测系统中的异常检测技术和防火墙中的状态跟踪技术相结合并加以改进;建立了TCP、UDP、ICMP协议会话状态机作为正常会话所必须遵从的行为模式,利用该状态机对流经检测系统的会话或伪会话中的数据包进行检测和错误计数;结合数据挖掘技术进行异常判断,可以有效地发现网络异常会话行为模式的未知攻击。
上述实施例仅用于说明本发明,而非用于限定本发明。
权利要求
1.一种网络流量异常检测方法,其特征在于,包括接收数据包,判断数据包类型并利用预先建立的协议会话状态机对该数据包所属的会话或伪会话行为的正常程度进行度量;根据度量的结果,利用数据挖掘判断该会话或伪会话是否为异常。
2.根据权利要求1所述的网络流量异常检测方法,其特征在于,所述协议会话状态机为传输控制协议TCP会话状态机、用户数据报协议UDP会话状态机或者互联网控制消息协议ICMP会话状态机。
3.根据权利要求2所述的网络流量异常检测方法,其特征在于,当所述数据包类型为TCP数据包或UDP数据包时,利用预先建立的协议会话状态机对数据包所属的会话或伪会话的正常程度进行度量,包括步骤判断对该数据包所在会话或伪会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中;其中,该会话状态跟踪表中至少包括会话的标识、会话所处当前状态和错误计数值;若判断的结果为存在,则按照该数据包协议类型所属的TCP会话状态机、或者UDP会话状态机对接收到的数据包进行检测;当检测结果为发生错误状态时,增加所述会话状态跟踪表中该跟踪项的错误计数值;对该错误计数值进行统计,将统计后的错误计数值作为该会话或伪会话行为的正常程度的度量。
4.根据权利要求3所述的网络流量异常检测方法,其特征在于,所述按照数据包协议类型所属的TCP会话状态机或者UDP会话状态机对接收到的数据包进行检测,包括步骤根据所接收数据包中头部的内容,判断数据包传输的方向,并映射到所对应的事件;根据数据包协议类型所属的协议会话状态机、会话当前状态和所述事件将会话转移到下一个状态,并更新会话状态跟踪表中相应的内容;然后,检测当前状态是否为错误状态。
5.根据权利要求2所述的网络流量异常检测方法,其特征在于,当所述数据包类型为ICMP数据包时,利用ICMP会话状态机对伪会话的正常程度进行度量,包括步骤判断ICMP数据包类型;若判断的结果为UDP数据包对应的端口不可达数据包时,则将该端口不可达数据包映射到对应的UDP会话状态机,从而利用UDP会话状态机对该伪会话的正常程度进行度量。
6.根据权利要求5所述的网络流量异常检测方法,其特征在于,所述端口不可达数据包的数据格式为ICMP首部、出错的IP数据包首部和出错的UDP数据包首部。
7.根据权利要求6所述的网络流量异常检测方法,其特征在于,将所述端口不可达数据包映射到UDP会话状态机是指将所述出错的IP数据包首部和出错的UDP数据包首部中所包含的内容置为反向的会话标识五元组,包括步骤将出错的IP数据包首部中的源IP地址设置成该反向的会话标识五元组的目的IP地址、目的IP地址置成所述反向的会话标识五元组的源IP地址;出错的UDP数据报首部的目的端口置为所述反向的会话标识五元组的源端口,将该出错的UDP数据报首部的源端口置为所述反向的会话标识五元组的目的端口;将所述反向的会话标识五元组的协议类型设置成UDP协议。
8.根据权利要求5至7中任意一项权利要求所述的网络流量异常检测方法,其特征在于,所述利用UDP会话状态机对该会话的正常程度进行度量,包括步骤根据所述端口不可达数据包中包含的用户数据报协议UDP及会话标识五元组,映射到相应的会话状态跟踪表中;判断对该数据包所在伪会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中;其中,该会话状态跟踪表中至少包括会话的标识、会话所处当前状态和错误计数值;若判断的结果为存在,则增加该跟踪项的错误计数值;对错误计数值进行统计,将统计后的错误计数值作为该伪会话行为的正常程度的度量。
9.根据权利要求8所述的网络流量异常检测方法,其特征在于,还包括步骤若判断的结果为不存在,则根据会话标识五元组在所述会话状态跟踪表中创建一新的会话跟踪项,并对该跟踪项的错误计数值进行修改。
10.根据权利要求5所述的网络流量异常检测方法,其特征在于,若判断的结果为非端口不可达数据包时,则利用ICMP会话状态机对数据包所属的伪会话的正常程度进行度量,包括步骤判断对该数据包所在伪会话的跟踪项是否已经存在于预先建立的会话状态跟踪表中;其中,该会话状态跟踪表中至少包括会话的标识、会话所处当前状态和错误计数值;若判断的结果为存在,则按照该ICMP会话状态机对接收到的数据包进行检测;当检测结果为发生错误状态时,增加所述会话状态跟踪表中该跟踪项的错误计数值;对该错误计数值进行统计,将统计后的错误计数值作为该会话或伪会话行为的正常程度的度量。
11.根据权利要求10所述的网络流量异常检测方法,其特征在于,所述按照ICMP会话状态机对接收到的数据包进行检测,包括步骤根据所接收数据包中头部的内容,判断数据包传输的方向,并映射到所对应的事件;根据数据包协议类型所属的协议会话状态机、会话当前状态和所述事件将会话转移到下一个状态,并更新会话状态跟踪表中相应的内容;然后,检测当前状态是否为错误状态。
12.根据权利要求3或10所述的网络流量异常检测方法,其特征在于,若判断结果为所述数据包所在会话或伪会话的跟踪项不存在于预先建立的会话状态跟踪表中,则在该会话状态跟踪表中创建一新的会话跟踪项;将当前状态置为该数据包协议类型所属的协议会话状态机的初始状态;按照当前数据包代表的事件转移状态更新当前状态。
13.一种网络流量异常检测系统,其特征在于,该检测系统至少包括存储器、数据包处理单元和数据挖掘单元;其中,存储器,用于储存协议会话状态机;数据包处理单元,与所述存储器连接,用于接收数据包,判断数据包类型并利用存储器中存储的协议会话状态机对所述数据包所属的会话或伪会话行为的正常程度进行度量;数据挖掘单元,与所述数据包处理单元连接,根据度量结果并利用数据挖掘来判断所述数据包所属的会话或伪会话是否为异常。
14.根据权利要求13所述的网络流量异常检测系统,其特征在于,所述协议会话状态机为传输控制协议TCP会话状态机、用户数据报协议UDP会话状态机或者互联网控制消息协议ICMP会话状态机。
15.根据权利要求13所述的网络流量异常检测系统,其特征在于,所述数据包处理单元至少包括接收单元、处理单元和度量单元;其中,接收单元,用于接收数据包,并将该数据包传送至处理单元;处理单元,判断数据包类型,并根据数据包的类型利用所述协议会话状态机对接收到的数据包进行处理;度量单元,利用存储器中存储的协议会话状态机对所述数据包所属的会话或伪会话行为的正常程度进行度量,并将度量结果传送至数据挖掘单元。
16.根据权利要求15所述的网络流量异常检测系统,其特征在于,所述存储器储存会话状态跟踪表,所述对数据包所属的会话或伪会话行为的正常程度进行度量是指对所述会话状态跟踪表中的错误计数值进行统计,将统计后的错误计数值作为会话或者伪会话行为的正常程度的度量。
17.根据权利要求14所述的网络流量异常检测系统,其特征在于,当数据包的类型为互联网控制消息协议ICMP数据包时,判断互联网控制消息协议ICMP数据包类型为用户数据报协议UDP数据包对应的端口不可达数据包时,利用UDP会话状态机进行度量;若判断结果为非端口不可达数据包时,则利用ICMP会话状态机进行度量。
18.根据权利要求14所述的网络流量异常检测系统,其特征在于,当数据包的类型为传输控制协议TCP或者用户数据报协议UDP数据包时,利用TCP或者UDP会话状态机进行度量。
全文摘要
本发明提供一种网络流量异常检测方法和系统。该检测方法包括步骤接收数据包,判断数据包类型并利用预先建立的协议会话状态机对该数据包所属的会话或伪会话行为的正常程度进行度量;根据度量的结果,利用数据挖掘来判断该会话或伪会话是否为异常。通过本发明,将网络入侵检测系统中的异常检测技术和防火墙中的状态跟踪技术相结合并加以改进;建立了协议会话状态机作为正常会话所必须遵从的行为模式,利用该状态机对流经检测系统的会话或伪会话中的数据包进行检测和错误计数;结合数据挖掘技术进行异常判断,可以有效地发现网络异常会话行为模式的未知攻击。
文档编号H04L12/24GK101026510SQ20071006319
公开日2007年8月29日 申请日期2007年1月31日 优先权日2007年1月31日
发明者沈刚, 丁思捷 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1