掌桥专利:专业的专利平台
掌桥专利
首页

一种网络异常行为检测方法、装置及电子设备

文献发布时间:2023-06-19 16:11:11



技术领域

本申请涉及数据通信技术领域,特别涉及一种网络异常行为检测方法、装置及电子设备。

背景技术

目前的网络流量分析与攻击发现技术主要针对传统的传输层和应用层协议进行识别与解析,例如传输控制协议(Transmission Control Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)和超文本传输协议(Hyper Text Transfer Protocol,HTTP)等,通过提取网络流量中的数据包的字符串特征以及流量统计特征进行网络异常行为检测。

多路传输控制协议(Multipath Transmission Control Protocol,MPTCP)是传统单路径TCP协议的一种扩展,提供具有多路径传输功能的TCP服务。MPTCP允许在一次TCP通信中建立多个子路径。当一条TCP路径按照三次握手的方式建立起来后,可以按照三次握手的方式建立其他的子路径。但由于MPTCP多路径传输的特性导致了基于传统TCP单路径传输的异常行为检测方法的失效,因此目前存在无法对MPTCP流量进行网络异常行为检测的技术问题。

发明内容

本申请实施例提供了一种网络异常行为检测方法、装置及电子设备,用以对MPTCP流量进行网络异常行为检测。

第一方面,本申请实施例提供了一种网络异常行为检测方法,包括:获取多路传输控制协议MPTCP数据包;获取所述MPTCP数据包的四元组信息和令牌信息;根据所述四元组信息确定属于同一子流的MPTCP数据包;根据所述令牌信息和所述四元组信息确定属于同一MPTCP流的子流;根据预设规则检测各个所述MPTCP流,确定所述MPTCP流包含的所述MPTCP数据包是否存在异常行为。

基于上述方案,通过首先对获取的MPTCP流量进行有效信息的提取,子流的匹配以及MPTCP流的重组可以实现在传输层重组多路径传输的MPTCP流量,提高异常行为分析的有效性及准确性。

一种可能的实现方式中,所述获取所述MPTCP数据包的四元组信息和令牌信息,具体包括:获取所述MPTCP数据包的镜像;获取所述镜像的所述四元组信息和所述令牌信息。

基于上述方案,服务器获取MPTCP数据包的镜像可以在不严重影响源端口正常吞吐流量的情况下,实现对网络流量的监控和分析。也就是说采用旁路监听的模式,高效且不会对正常业务产生影响。

一种可能的实现方式中,所述根据所述四元组信息确定属于同一子流的MPTCP数据包,具体包括:确定所述四元组信息相同的所述MPTCP数据包为所述属于同一子流的MPTCP数据包。

基于上述方案,根据四元组信息确定属于同一子流的MPTCP数据包有助于更准确地重组MPTCP流,从而有效地对MPTCP流进行异常行为检测。

一种可能的实现方式中,所述方法还包括:将属于所述同一子流的所述MPTCP数据包与所述MPTCP数据包的所述四元组信息的映射关系存储至链表;将所述链表与所述链表中存储的四元组信息的映射关系存储至哈希表。

基于上述方案,将每个子流的MPTCP数据包存储于链表中,可以便于在后续进行MPTCP流的匹配时只需对每个链表中的一个数据包的目的IP地址和令牌信息进行匹配,就可以判断属于同一MPTCP流的子流,可以提高MPTCP流的重组以及对MPTCP流进行异常行为检测的效率。

一种可能的实现方式中,还可以获取所述MPTCP数据包的子流序列号SSN;将属于所述同一子流的所述MPTCP数据包与所述MPTCP数据包的所述四元组信息的映射关系根据SSN存储至链表;再将所述链表与所述链表中存储的四元组信息的映射关系存储至哈希表。

基于上述方案,将每个子流的MPTCP数据包按照SSN存储于链表中,可以便于在后续重组MPTCP流是按照原子流中的MPTCP数据包的顺序进行排列,可以更加精确地重组MPTCP流,从而可以提高后续异常行为分析的准确性。

一种可能的实现方式中,所述根据所述令牌信息和所述四元组信息确定属于同一MPTCP流的子流,具体包括:所述四元组信息包括所述MPTCP数据包的目的网际互连协议IP地址;确定所述令牌信息和所述目的IP地址相同的子流属于同一MPTCP流。

基于上述方案,根据不同子流的MPTCP数据包的目的IP地址和令牌信息可以高效地确定属于同一MPTCP流的子流,并且可以重组完整MPTCP流,从而有效地对MPTCP流进行异常行为检测。

一种可能的实现方式中,所述方法还包括:获取所述MPTCP数据包的数据序列号DSN;根据所述DSN确定属于同一所述MPTCP流的所述MPTCP数据包的接收时间的先后顺序。

基于上述方案,对MPTCP流中的MPTCP数据包根据DSN进行排序,可以获得与原MPTCP流完全相同的完整的MPTCP流,从而提高服务器判断MPTCP流是否存在异常行为的准确性。

第二方面,本申请实施例提供了一种网络异常行为检测装置,包括:获取单元,用于获取多路传输控制协议MPTCP数据包;获取所述MPTCP数据包的四元组信息和令牌信息;

处理单元,用于根据所述四元组信息确定属于同一子流的MPTCP数据包;根据所述令牌信息和所述四元组信息确定属于同一MPTCP流的子流;根据预设规则检测各个所述MPTCP流,确定所述MPTCP流包含的所述MPTCP数据包是否存在异常行为。

一种可能的实现方式中,所述获取单元获取所述MPTCP数据包的四元组信息和令牌信息时,具体用于:获取所述MPTCP数据包的镜像;获取所述镜像的所述四元组信息和所述令牌信息。

一种可能的实现方式中,所述处理单元根据所述四元组信息确定属于同一子流的MPTCP数据包时,具体用于:确定所述四元组信息相同的所述MPTCP数据包为所述属于同一子流的MPTCP数据包。

一种可能的实现方式中,所述处理单元还用于:将属于所述同一子流的所述MPTCP数据包与所述MPTCP数据包的所述四元组信息的映射关系存储至链表;将所述链表与所述链表中存储的四元组信息的映射关系存储至哈希表。

一种可能的实现方式中,所述获取单元还可以用于获取所述MPTCP数据包的子流序列号SSN;所述处理单元还可以用于:将属于所述同一子流的所述MPTCP数据包与所述MPTCP数据包的所述四元组信息的映射关系按照SSN存储至链表;将所述链表与所述链表中存储的四元组信息的映射关系存储至哈希表。

一种可能的实现方式中,所述处理单元根据所述令牌信息和所述四元组信息确定属于同一MPTCP流的子流时,具体用于:所述四元组信息包括所述MPTCP数据包的目的网际互连协议IP地址;确定所述令牌信息和所述目的IP地址相同的子流属于同一MPTCP流。

一种可能的实现方式中,所述获取单元还用于获取所述MPTCP数据包的数据序列号DSN;所述处理单元还用于根据所述DSN确定属于同一所述MPTCP流的所述MPTCP数据包的接收时间的先后顺序。

第三方面,本申请实施例提供了一种电子设备,包括:

存储器,用于存储计算机指令;

处理器,与所述存储器连接,用于执行所述存储器中的计算机指令,且在执行所述计算机指令时实现如第一方面或第二方面中所述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,包括:

所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面或第二方面中任一项所述的方法。

上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。

图1为本申请实施例提供的网络异常行为检测方法应用的系统结构示意图;

图2为本申请实施例提供的一种网络异常行为检测方法的示例性流程图之一;

图3为本申请实施例提供的一种网络异常行为检测系统结构示意图;

图4为本申请实施例提供的一种网络异常行为检测方法的示例性流程图之一;

图5为本申请实施例提供的一种装置示意图;

图6为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了便于理解本申请实施例提供的技术方案,下面介绍本申请实施例涉及的专业术语。

(1)哈希表,又叫散列表,是能够通过给定的关键字的值直接访问到具体对应的值的一个数据结构。也就是说,把关键字映射到一个表中的位置来直接访问记录,以加快访问速度。

(2)建立联机(Synchronize,SYN)消息,是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN/ACK消息应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

(3)确认(Acknowledgement,ACK)消息,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。在TCP/IP协议中,如果接收方成功的接收到数据,那么会回复一个ACK数据。通常ACK信号有自己固定的格式,长度大小,由接收方回复给发送方。

(4)SYN/ACK消息,SYN/ACK消息中包括来自本地设备的SYN消息和先前数据包的ACK消息,表示对SYN消息的确认。

(5)Pcap文件,Pcap是常用的数据报存储格式,Pcap文件里面的数据是按照特定格式存储的。pcap文件的格式为:文件头(24字节),数据报头,数据报。其中数据包头为16字节,在数据报头后面紧跟数据报。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。

本申请实施例中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。

另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。

目前的网络流量分析与攻击发现技术通过提取网络流量中的数据包的字符串特征以及流量统计特征进行网络异常行为检测。但由于MPTCP协议的多路径传输的特性的影响,对于对MPTCP流量来说,基于传统TCP单路径传输的异常行为检测方法失效,因此目前存在无法对MPTCP流量进行网络异常行为检测的技术问题。

有鉴于此,本申请提供了一种网络异常行为检测方法、装置及电子设备。该方法包括:首先识别并获取网络流量中的MPTCP数据包,提取数据包中的有效信息后,匹配属于同一子流的MPTCP数据包,再确定属于同一MPTCP流的子流,从而重组完整的MPTCP流。最后对重组的MPTCP流进行网络异常行为检测。通过本申请实施例提供的方法可以对MPTCP流量进行网络异常行为检测。

参见图1为本申请实施例提供的网络异常行为检测方法应用的系统结构示意图。该系统架构可以为服务器100,包括存储器110、处理器120和通信接口130。其中,通信接口130可以用于获取网络流量,处理器120是服务器100的控制中心,利用各种接口和线路连接整个服务器100的各个部分,通过运行或执行存储在存储器110内的软件程序或模块,以及调用存储在存储器110内的数据,执行服务器100的各种功能和处理数据。可选的,处理器120可以包括一个或多个处理单元。存储器110可以为高速随机存取存储器,还可以为非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。需要说明的是,上述图1所示的结构仅是一种示例,本申请实施例对此不做限定。

基于上述描述,参阅图2为本申请实施例提供的一种网络异常行为检测方法的示例性流程图之一。该方法可以应用于检测网络异常行为的安全装置,例如服务器。下面以本申请提供的网络异常行为检测方法应用于服务器为例,该方法可包括以下流程:

S201,服务器获取MPTCP数据包。

服务器可以通过图1中的通信接口130获取流经服务器的流量中的MPTCP流量,从而获取MPTCP流量中的MPTCP数据包。其中,流经服务器的流量可以包括传统TCP流量和MPTCP流量等。

服务器首先对流经服务器的流量进行判断,确定该流量是否为MPTCP流量,然后服务器获取MPTCP流量的数据包。例如,服务器可以根据数据包的TCP头部信息确定该数据包是否为MPTCP流量的数据包。具体的,服务器根据该流量的数据包的TCP头部信息是否存在值为30的选项类型进行判断,若该流量的数据包的TCP头部信息中存在值为30的选项类型,则确定该流量为MPTCP流量,则获取该流量的数据包。若该流量的数据包的TCP头部信息中不存在值为30的选项类型,则确定该流量不是MPTCP流量,则不获取该流量的数据包。其中,TCP头部信息中的选项类型包括多种不同数值的选项类型,例如值为1的选项类型表示无操作,值为8的选项类型表示时间戳选项等等。

举例来说,A流量和B流量为流经服务器的某一流量,解析A流量和B流量的数据包的TCP头部信息,确定A流量的TCP头部信息中包含值为8的选项类型和值为30的选项类型,B流量的TCP头部信息中包含值为3的选项类型和值为8的选项类型。由于A流量包括值为30的选项类型,而B流量不包含值为30的选项类型,因此服务器判断A流量为MPTCP流量,B流量不是MPTCP流量。

S202,服务器获取MPTCP数据包的四元组信息和令牌信息。

服务器对S201获取的MPTCP数据包进行逐包解析,从而获取MPTCP数据包中的有效信息。其中,有效信息可以包括四元组信息、令牌(token)信息、数据包大小、时间戳信息以及TCP标识(Identity Document,ID)等。四元组信息包括源网际互连协议(InternetProtocol,IP)地址、目的IP地址、源端口信息以及目的端口信息。

具体的,MPTCP数据包中还包括SYN包和SYN/ACK包。服务器对SYN包和SYN/ACK包进行解析,确定SYN包和SYN/ACK包的有效信息。其中,SYN包和SYN/ACK包的有效信息可以包括用于标识子流所属MPTCP流的信息,例如令牌信息以及目的IP地址等。然后将获取到的SYN包和SYN/ACK包的有效信息传入信息提取函数。然后服务器利用信息提取函数按照预存的MPTCP有效信息结构体对S201获取到的MPTCP数据包进行解析,确定MPTCP数据包中的有效信息,例如MPTCP数据包的初始序列号、数据包的长度、数据序列结构体(Data SequenceStructure,DSS)和数据包大小等。

由于MPTCP数据包的初始序列号是根据前一MPTCP数据包的长度随机生成的,因此MPTCP流量中的第一个MPTCP数据包的初始序列号也是随机的,例如可能是003也可能是060。并不能根据MPTCP数据包的初始序列号确定MPTCP数据包在MPTCP流中的位置以及子流的先后顺序,因此为了准确重组原MPTCP流,根据上述有效信息中的MPTCP数据包的初始序列号、DSS和数据包的长度计算每个MPTCP数据包的子流序列号(Subflow SequenceNumber,SSN)以及数据序列号(Data Sequence Number,DSN)。可以理解的是,初始序列号的长度可以是预先设定的,如两位数或者三位数等,本申请不做具体限定。

S203,服务器根据四元组信息确定属于同一子流的MPTCP数据包。

由于四元组信息相同的MPTCP数据包属于同一子流,因此服务器根据S202获取的四元组信息,可以确定在S201获取的MPTCP数据包中属于同一子流的MPTCP数据包。举例来说,服务器获取的MPTCP数据包可以包括数据包1、数据包2和数据包3。其中,数据包1的源IP地址为192.158.50.169,目的IP地址为192.162.50.169,源端口信息为5973,目的端口信息为53。数据包2的源IP地址为192.158.50.169,目的IP地址为192.162.50.169,源端口信息为5973,目的端口信息为63。数据包3的源IP地址为192.158.50.169,目的IP地址为192.162.50.169,源端口信息为5973,目的端口信息为53。由于数据包1和数据包3的目的IP地址、源IP地址、源端口信息和目的端口信息均相同,也就是数据包1和数据包3的四元组信息相同,因此可以确定数据包1和数据包3属于同1子流。而数据包2与数据包1和数据包3的目的端口信息不同,因此可以确定数据包2与数据包1和数据包3不属于同一子流。

一种可能的实现方式中,服务器在确定属于同一子流的MPTCP数据包之后,可以将属于同一子流的MPTCP数据包根据SSN进行排序。然后按照排序结果将属于同一子流的MPTCP数据包与该MPTCP数据包的四元组信息的映射关系存储于链表中。例如,服务器可以将同一子流的MPTCP数据包按照SSN从小到大的顺序进行排序或者按照SSN从大到小的顺序进行排序,并按照排序后的顺序将MPTCP包与四元组信息的映射关系存储于链表中。可以理解的是,本申请实施例中对排序的方式不做具体限定。

举例来说,假设服务器在S201获取的MPTCP数据包分别为数据包A、数据包B、数据包C、数据包D和数据包E,且服务器将属于同一子流的MPTCP数据包根据SSN从小到大的顺序存储至链表。其中,数据包A、数据包B和数据包C属于子流1,数据包D和数据包E属于子流2。假设数据包A的SSN为001,数据包B的SSN为010,数据包C的SSN为005,数据包D的SSN为012,数据包E的SSN为009,并且服务器将同一子流的MPTCP数据包按照SSN从小到大的顺序进行存储。则服务器可以将属于子流1的数据包A、数据包B和数据包C按照数据包A、数据包C和数据包B的顺序存储于链表1中。将属于子流2的数据包D和数据包E按照数据包E和数据包D的顺序存储于链表2中。应了解,SSN的长度仅作为示例性描述,并不构成对SSN长度的具体限定,SSN也可以是四位数或者五位数等,本申请不做具体限定。

基于上述方案,将每个子流的MPTCP数据包与该数据包的四元组信息存储于链表中,可以便于在后续进行MPTCP流的匹配时只需对每个链表中的第一个数据包的目的IP地址和令牌信息进行匹配,就可以判断属于同一MPTCP流的子流,可以提高MPTCP流的重组以及对MPTCP流进行异常行为检测的效率。

S204,服务器根据令牌信息和四元组信息确定属于同一MPTCP流的子流。

由于令牌信息与目的IP地址相同的子流属于同一MPTCP流,因此服务器判断不同子流的MPTCP数据包的令牌信息与四元组信息中的目的IP地址是否相同,就可以确定属于同一MPTCP流的子流。举例来说,假设子流3中包括数据包4,子流4中包括数据包5,子流5中包括数据包6。其中数据包4的令牌信息为000,目的IP地址为192.162.50.169。数据包5的令牌信息为000,目的IP地址为192.162.50.169。数据包6的令牌信息为002,目的IP地址为192.162.50.169。由于数据包4和数据包5的令牌信息和目的IP地址均相同,而数据包6与数据包4和数据包5的目的IP地址相同但令牌信息不同,因此服务器可以确定数据包4和数据包5所属的子流属于同一MPTCP流,也就是子流3和子流4属于同一MPTCP流。

一种可能的实现方式中,在将属于同一子流的MPTCP数据包与该MPTCP数据包的四元组信息的映射关系存储至链表后,可以将链表与链表中存储的四元组信息的映射关系存储于以四元组信息为主键(key)的哈希表中。然后服务器可以通过在哈希表中找出目的IP地址和令牌信息相同的子流,确定属于同一MPTCP流的子流。举例来说,服务器可以先根据目的IP地址确定哈希表中目的IP地址相同的链表,然后确定链表中存储的MPTCP数据包的令牌信息是否相同。也即,令牌信息和目的IP地址均相同的链表中存储的子流为属于同一MPTCP流的子流,目的IP地址相同,但令牌信息不相同的链表中存储的子流不属于同一MPTCP流。

基于上述方案,将每个子流以链表的结构存储于哈希表中,并以四元组信息为主键可以方便快捷地通过首先确定目的IP地址,再从相同IP地址的子流中找到令牌信息相同的子流可以简化操作,高效地MPTCP流的重组。

另一种可能的实现方式中,当服务器根据令牌信息和四元组信息确定属于同一MPTCP流的子流后,可以根据每个MPTCP流中的MPTCP数据包的DSN对同一MPTCP流中的MPTCP数据包进行排序,确定同一MPTCP流的MPTCP数据包的接收时间的先后顺序,从而实现对MPTCP流的完整重组。例如,服务器在确定属于同一MPTCP流的子流后,确定某MPTCP流中包括2条子流,子流1和子流2。子流1中数据包A、数据包B和数据包C,子流2包括数据包D和数据包E。假设数据包A的DSN为001,数据包B的DSN为008,数据包C的DSN为005,数据包D的DSN为012,数据包E的DSN为009。由于子流1中的MPTCP数据包的DSN均小于子流2中的MPTCP数据包的DSN,则服务器可以按照子流1在子流2之前的顺序重组该MPTCP流。

基于上述方案,对MPTCP流中的MPTCP数据包根据DSN进行排序,可以获得与原MPTCP流完全相同的完整的MPTCP流,从而提高服务器判断MPTCP流是否存在异常行为的准确性。

S205,服务器根据预设规则检测各个MPTCP流,确定MPTCP流包含的MPTCP数据包是否存在异常行为。

服务器根据预先存储的预设规则检测各个MPTCP流,确定MPTCP流包含的MPTCP数据包是否存在异常行为。其中,预设规则可以包括异常行为特征库中的异常行为特征以及时序特征。服务器可以通过提取MPTCP流中的MPTCP数据包中的字符串特征,然后将该字符串特征与异常行为特征库中的异常行为特征进行匹配,若匹配则说明该MPTCP流中存在异常行为,若不匹配则说明该MPTCP流中不存在异常行为。异常行为特征可以是MPTCP数据包中携带了恶意文件以及MPTCP数据包中存在攻击行为等。根据时序特征判断可以是预先根据时序特征进行建模,然后根据建模后的时序特征判断MPTCP数据包是否存在异常行为。例如,可以根据MPTCP数据包的发包频率对MPTCP流是否存在异常行为进行判断。

基于上述方案,通过首先对获取的MPTCP流量进行有效信息的提取,子流的匹配以及MPTCP流的重组可以实现在传输层重组多路径传输的MPTCP流量,提高异常行为分析的有效性及准确性。

可选的,确定MPTCP流包含的MPTCP数据包存在异常行为时可以生成告警日志,保存在服务器中或者发送至相关工作人员,以便及时发现异常并处理。举例来说,当某MPTCP流中的MPTCP数据包存在攻击行为时,可以对该MPTCP流生成告警日志,告警日志中可以包括该MPTCP流中存在攻击行为的MPTCP数据包的相关信息,如SSN、DSN、时间戳信息以及数据包大小等。

一种可能的实现方式中,服务器在确定某一流经服务器的数据包为MPTCP数据包后,可以通过图1中的通信接口130获取MPTCP数据包的镜像,然后对MPTCP数据包的镜像进行解析处理,从而匹配属于同一子流的MPTCP数据包的镜像以及属于同一MPTCP流的子流,最后分析各个MPTCP流中是否存在异常行为。对MPTCP数据包的镜像中的有效信息进行解析处理并根据有效信息重组MPTCP流,然后对重组的MPTCP流进行异常行为分析的具体流程可以参见图2中S202~S205中的流程,在此不再赘述。其中,获取MPTCP数据包的镜像的方法可以是通过服务器的旁路监听模式实现。具体的,服务器可以通过端口镜像功能将连接的交换机或路由器上的一个或多个流量转发到某一指定端口来获取MPTCP数据包的镜像。

基于上述方案,服务器获取MPTCP数据包的镜像可以在不严重影响源端口正常吞吐流量的情况下,实现对网络流量的监控和分析。也就是说采用旁路监听的模式,高效且不会对正常业务产生影响。

基于上述方法的同一构思,参见图3为本申请实施例提供的一种网络异常行为检测系统结构示意图。该系统300包括:MPTCP流量监听模块301,MPTCP流量解析与信息提取模块302,MPTCP流重组模块303和异常行为分析模块304。

MPTCP流量监听模块301用于监听流经本系统的流量,并根据每个流量中数据包的TCP头部信息,确定该流量是否为MPTCP流量。然后在确定该流量为MPTCP流量后,将MPTCP流量的镜像,也就是MPTCP流量中的MPTCP数据包的镜像发送至MPTCP流量解析与信息提取模块302中。其中,MPTCP流量监听模块301确定流经该系统的流量是否为MPTCP流量的方法可以参见S201中的具体描述,在此不再赘述。

解析MPTCP流量是进行子流匹配与MPTCP流重组的前提,因此MPTCP流量解析与信息提取模块302用于对MPTCP流量监听模块301发送来的镜像进行解析并获取MPTCP流量中的每个MPTCP数据包中用于子流匹配以及MPTCP流重组的有效信息,并将获取到的有效信息通过回调函数回传到MPTCP流重组模块303。其中,有效信息的获取方法可以参见S202中的相关描述,在此不再赘述。

MPTCP流重组模块303用于根据MPTCP流量解析与信息提取模块302获取到的有效信息确定属于同一子流的MPTCP数据包,以及确定属于同一MPTCP流的子流,并对属于同一MPTCP流的MPTCP数据包进行排序,从而重组完整的MPTCP流,并将完整的MPTCP流发送至异常行为分析模块304。其中,确定属于同一子流的MPTCP数据包的方法可以参见S203中的相关描述,确定属于同一MPTCP流的子流的方法可以参见S204中的相关描述,在此不再赘述。

异常行为分析模块304用于对MPTCP流重组模块303发来的完整的MPTCP流根据预设规则判断MPTCP流中的MPTCP数据包是否存在异常行为。其中,判断MPTCP流中的MPTCP数据包是否存在异常行为的具体方法可以参见S205中的相关描述,在此不再赘述。

下面,为了能够更加清晰地理解本申请实施例提出的方案,将结合图3所示的一种网络异常行为检测系统,具体地对本申请提供的一种网络异常行为检测方法进行介绍。

参阅图4,为本申请实施例提供的一种网络异常行为检测方法的示例性流程图之一,具体包括:

S401,获取流量。

图3所示的MPTCP流量监听模块301获取输入系统的流量的镜像。其中,本申请实施例中以获取的流量仅为TCP流量为例进行说明,TCP流量包括单路径TCP流量和MPTCP流量。可选的,获取的TCP流量可以是存在Pcap文件中的TCP流量。若获取的是Pcap文件,则可以通过抓包软件获取Pcap文件中的数据包,例如MPTCP流量监听模块可以通过网络抓包工具(Wireshark)来抓取Pcap文件中存储的数据包。

S402,判断流量是否为MPTCP流量。

图3所示的MPTCP流量监听模块301根据TCP头部信息判断S401获取的流量是否为MPTCP流量。MPTCP流量监听模块若判断该流量为MPTCP流量,则将该MPTCP流量的镜像发送至MPTCP流量解析与信息提取模块并执行S403。MPTCP流量监听模块若判断该流量不为MPTCP流量,则执行S406。由于本申请实施例中以获取的流量仅为单路径TCP流量和MPTCP流量为例,因此在具体实现时,MPTCP流量监听模块可以通过执行mptcp_filter()指令来过滤TCP头部信息中不存在值为30的选项类型的流量,将MPTCP流量的镜像发送至MPTCP流量解析与信息提取模块,将单路径TCP流量的镜像直接输出至异常行为分析模块。

S403,提取有效信息。

图3中的MPTCP流量解析与信息提取模块302对MPTCP流量监听模块确定的MPTCP流量进行解析,确定MPTCP流量中的MPTCP数据包中的有效信息,并将有效信息存入有效信息结构体,再通过回调函数回传至MPTCP流重组模块。其中,对MPTCP流量解析的方法可以参见S202中的相关描述,在此不再赘述。具体实施时,MPTCP流量解析与信息提取模块可以通过信息get_info()指令提取MPTCP数据包中的有效信息,例如MPTCP数据包的初始序列号、数据包的长度、DSS、令牌信息、四元组信息和数据包大小等。

S404,根据SSN对子流中的MPTCP数据包进行排序。

图3中的MPTCP流重组模块303根据MPTCP流量解析与信息提取模块获取的四元组信息确定属于同一子流的MPTCP数据包,然后根据MPTCP流量解析与信息提取模块确定的SSN对属于同一子流是MPTCP数据包进行排序。其中,确定属于同一子流的MPTCP数据包以及对属于同一子流是MPTCP数据包进行排序的方法可以参见S203中的相关描述,在此不再赘述。具体实施时,MPTCP流重组模块可以通过执行subflow_sort()指令来实现对同一子流的MPTCP数据包进行排序。

S405,根据DSN对MPTCP流中的MPTCP数据包进行排序。

图3中的MPTCP流重组模块303根据MPTCP流量解析与信息提取模块中获取的令牌信息和目的IP地址首先确定属于同一MPTCP流的子流,然后根据DSN从小到大的顺序对MPTCP流中的MPTCP数据包进行排序,确定MPTCP数据包的接收时间的先后顺序。其中,确定属于同一MPTCP流的子流的方法和对MPTCP流中的MPTCP数据包进行排序的方法可以参见S205中的相关描述,在此不再赘述。

具体实施时,MPTCP流重组模块可以通过执行mptcp_sort()指令来实现对MPTCP流中的MPTCP数据包进行全局排序,从而对属于同一MPTCP流的不同子流进行排序重组完整的MPTCP流。

S406,输出完整的TCP流。

其中,完整的TCP流包括单路径TCP流和MPTCP流。若S401中MPTCP流量监听模块获取的流量为单路径TCP流量,则将完整的单路径TCP流输出至图3中的异常行为分析模块304;若S401中MPTCP流量监听模块获取的流量为MPTCP流量则通过S402~S405的流程对MPTCP流进行重组,然后将重组后的完整MPTCP流输出至异常行为分析模块。

S407,对完整的TCP流进行异常行为分析。

对S406输出的完整的TCP流根据预设的异常行为特征的匹配和时序特征的建模来进行异常行为分析。异常行为分析的方法可以参见S205中的相关描述,在此不再赘述。

基于上述方法的同一构思,参见图5,为本申请实施例提供的一种网络异常行为检测装置500,装置500能够执行上述方法中的各个步骤,为了避免重复,此处不再详述。该装置500包括获取单元501和处理单元502。在一种场景下:

获取单元501,用于获取多路传输控制协议MPTCP数据包;获取所述MPTCP数据包的四元组信息和令牌信息。

处理单元502,用于执行下述处理:根据所述四元组信息确定属于同一子流的MPTCP数据包;根据所述令牌信息和所述四元组信息确定属于同一MPTCP流的子流;根据预设规则检测各个所述MPTCP流,确定所述MPTCP流包含的所述MPTCP数据包是否存在异常行为。

一种可能的实现方式中,所述获取单元501获取所述MPTCP数据包的四元组信息和令牌信息时,具体用于:获取所述MPTCP数据包的镜像;获取所述镜像的所述四元组信息和所述令牌信息。

一种可能的实现方式中,所述处理单元502根据所述四元组信息确定属于同一子流的MPTCP数据包时,具体用于:确定所述四元组信息相同的所述MPTCP数据包为所述属于同一子流的MPTCP数据包。

一种可能的实现方式中,所述处理单元502还用于:将属于所述同一子流的所述MPTCP数据包与所述MPTCP数据包的所述四元组信息的映射关系存储至链表;将所述链表与所述链表中存储的四元组信息的映射关系存储至哈希表。

一种可能的实现方式中,所述获取单元501还可以用于获取所述MPTCP数据包的子流序列号SSN;所述处理单元502还可以用于:将属于所述同一子流的所述MPTCP数据包与所述MPTCP数据包的所述四元组信息的映射关系按照SSN存储至链表;将所述链表与所述链表中存储的四元组信息的映射关系存储至哈希表。

一种可能的实现方式中,所述处理单元502根据所述令牌信息和所述四元组信息确定属于同一MPTCP流的子流时,具体用于:所述四元组信息包括所述MPTCP数据包的目的网际互连协议IP地址;确定所述令牌信息和所述目的IP地址相同的子流属于同一MPTCP流。

一种可能的实现方式中,所述获取单元501还用于获取所述MPTCP数据包的数据序列号DSN;所述处理单元502还用于根据所述DSN确定属于同一所述MPTCP流的所述MPTCP数据包的接收时间的先后顺序。

基于上述方法的同一构思,参见图6,为本申请实施例提供电子设备,该电子设备包括处理器601和存储器602。存储器602,用于存储计算机指令,处理器601,与所述存储器连接,用于执行所述存储器中的计算机指令,且在执行所述计算机指令时实现上述任一方法的步骤。

本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述任一方法的步骤。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

虽然以上描述了本申请的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本申请的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本申请的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本申请的保护范围。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

技术分类

06120114738315