一种网络行为检测方法及装置与流程

文档序号:11842106阅读:324来源:国知局
一种网络行为检测方法及装置与流程

本发明涉及网络审计领域,具体而言,涉及一种网络行为检测方法及装置。



背景技术:

伴随着网络技术的发展,各类新型的网络应用层出不穷。同时,网络规模急剧膨胀,使网络带宽也越来越大,对高速网络中的网络应用和网络通信行为进行识别,成为了网络审计领域的一项新的需求。目前,业内通常采用的检测方法是通过专用硬件设备完成高速网络的数据捕获及网络通信行为分析,或者是使用传统的“报文特征”匹配方法对规则特征库中的特征进行依次匹配。前一种检测方式硬件成本高、开发周期长,不利于二次开发和扩展,后一种检测方式的算法效率低下,时间空间复杂度高,且特征库设计不合理,不利于升级和扩展。



技术实现要素:

有鉴于此,本发明提供一种网络行为检测方法及装置。

一方面,本发明较佳实施例提供一种网络行为检测方法,该方法包括:捕获网络数据包;分析网络通信行为特征,并采用树状逻辑模型构建网络通信行为特征知识库;解析所述网络通信行为特征知识库,以根据解析结果分别在数据链路层、网络层、传输层及应用层建立与该协议层相对应的通信行为特征字典树;对每一个所述通信行为特征字典树建立确定有限自动机;及对捕获到的网络数据包进行协议解析,采用多模式匹配算法将协议解析后得到的分别对应数据链路层、网络层、传输层及应用层的待匹配字节流与该协议层的所述通信行为特征字典树进行匹配,得到所述数据包的网络行为检测结果。

另一方面,本发明较佳实施例提供一种网络行为检测装置,该装置包括:数据获取模块,用于捕获网络数据包;知识库构建模块,用于分析网络通信行为特征,并采用树状逻辑模型构建网络通信行为特征知识库;字典树建立模块,用于解析所述网络通信行为特征知识库,以根据解析结果分别在数据链路层、网络层、传输层及应用层建立与该协议层相对应的通信行为特征字典树;自动机建立模块,用于对每一个所述通信行为特征字典树建立确定有限自动机;及匹配模块,用于对捕获到的网络数据包进行协议解析,以采用多模式匹配算法将协议解析后得到的分别对应数据链路层、网络层、传输层及应用层的待匹配字节流与该协议层的所述通信行为特征字典树进行匹配,得到所述数据包的网络行为检测结果。

本发明提供的网络行为检测方法及装置,通过横向扩张采集缓冲区技术开设多个缓冲区,实现万兆网络环境下的高速数据采集,并基于树状逻辑模型构建网络通信行为特征知识库,以及通过对通信行为特征知识库解析后得到的四个分别对应于数据链路层、网络层、传输层及应用层的字典树建立确定有限自动机改进多模式匹配算法AC-BM,实现网络通信行为特征的快速匹配。该种网络行为检测方法及装置,相对于传统的数据包检测及数据审计技术,具有更高的特征匹配效率及更低的算法复杂度,且知识库的设计更合理,利于升级和扩展。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的一种数据处理设备的示意性结构框图;

图2为本发明较佳实施例提供的一种网络行为检测方法的流程图;

图3为本发明较佳实施例提供的图2所示的网络行为检测方法中数据捕获过程的示意框图;

图4为本发明较佳实施例提供的图2所示的网络行为检测方法中树状逻辑知识库的示意图;

图5为本发明较佳实施例提供的图2所示的网络行为检测方法中对网络数据包进行特征匹配的示意图;

图6为本发明较佳实施例提供的网络行为检测装置的功能模块框图。

附图标记:

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,是本较佳实施例提供的一种数据处理设备100的示意性结构框图。该数据处理设备100包括存储器200、处理器300以及网络行为检测装置400。所述数据处理设备100可以是计算机或其他任意具有数据处理能力的计算设备。

所述存储器200与处理器300之间直接或间接地电性连接,以实现数据的传输或交互。例如,可通过一条或多条通讯总线或信号线实现电性连接。所述网络行为检测装置400包括至少一个可以软件或固件(firmware)的形式存储于所述存储器200中或固化在所述数据处理设备100的操作系统(operating system,OS)中的软件功能模块。所述处理器300用于执行存储器200中存储的可执行模块,例如所述网络行为检测装置400包括的软件功能模块或计算机程序。所述处理器300在接收到执行指令后,执行所述功能模块或程序,下述本发明任一实施例揭示的流过程定义的服务器所执行的方法可以应用于处理器300中,或者由处理器300实现。

请参阅图2,是本发明较佳实施例提供的网络行为检测方法的流程图。所应说明的是,本发明所述的方法不以图2及以下所示的具体顺序为限制。下面将对图2所示的具体流程及步骤进行详细阐述。

步骤S101,捕获网络数据包。

首先,采用横向扩张采集缓冲区技术在内存中开设多个缓冲区用于进行数据包存储,以避免因瞬时流量过大导致数据丢包。再由线程控制管理器利用线程同步技术控制数据捕获线程及数据分析线程实现高速网络下的数据采集。

具体地,如图3所示,“数据存放数组空间”表示应用程序在内存中开设的多个用于存储数据包的缓冲区,每一个所述缓冲区可以存储一个数据包,“数据捕获序号队列”用于存放当前可以写入数据的缓冲区的序号,“分析数据序号队列”用于存放当前可以写入磁盘的缓冲区的序号。数据捕获线程基于零拷贝技术从通信信道上采集万兆网络内容过滤卡过滤后的网络数据,并在读取所捕获的网络数据前,从所述“数据捕获序号队列”中获取可以进行数据存储的至少一个目标缓冲区(即空缓冲区或者数据已经写入磁盘的缓冲区),数据写入所述目标缓冲区后,将所述目标缓冲区对应的序号从“数据捕获序号队列”中删除,加入“分析数据序号队列”,这样分析线程就可以将该缓冲区的数据写入磁盘。数据分析线程循环地对“分析数据序号队列”进行遍历,若“分析数据序号队列”中存在待写入磁盘的缓冲区的序号,则将该缓冲区的数据写入磁盘,再将此缓冲区的序号从“分析数据序号队列”中删除,并加入“数据捕获序号队列”中。

该种网络数据包捕获方法的好处是:从网卡上采集到的数据包能够及时写入缓冲区中,而不会因为写缓存太慢使得新的数据包覆盖掉没有及时写入缓冲区的数据,导致丢失网络数据包的情况。传统Linux环境下常用的数据包捕获开发包Libcap采集方法中,由于只存在一个数据缓冲区,当网络数据流量较大时,若内核空间中的数据包没有及时写入缓冲区,会被新的数据包覆盖,导致严重的数据包丢失的情况发生。因此,横向扩张采集缓冲区的方法相对于传统的数据采集方法,能够有效提高数据采集效率,适用于高速网络(如万兆以太网)环境下的数据采集。

步骤S103,分析网络通信行为特征,并采用树状逻辑模型构建网络通信行为特征知识库。

运用逆向跟踪技术研究网络软件的运行机制,并采用网络数据流量统计分析技术对网络软件的通信行为特征进行分析,建立起网络通信行为特征知识库。

具体地,假设一个网络通信行为样本记为xi,可决定该行为的特征项包括网络数据五元组、网络协议、数据包数量、数据包大小、动态特征串、静态特征串等等,将其依次记为v1,v2,v3,...,vn,这些特征项以一定的逻辑关系组合后确定网络通信行为xi,表述为:

xi=fi(v1,v2,v3,...,vn)

其中,逻辑函数fi中包括“与”和“或”等逻辑关系及表达式。如此,网络通信行为特征知识库由若干不同的网络行为样本xi及逻辑函数fi组成,具体可参照图4所示的一种示意性树状复合逻辑知识库模型。

基于树状逻辑模型构建的网络通信行为特征知识库,实现了多层次、易于扩展的结构,支持对一个行为增加不同的行为特征组合,每一个行为特征组合中可包含MAC层、IP层、传输层和应用层的特征,支持固定长度的字符串和长度不固定的特征串,支持偏移量不固定及带通配符的特征串,以及支持在同一个软件下增加多个网络行为。

步骤S105,解析所述网络通信行为特征知识库,以根据解析结果分别在数据链路层、网络层、传输层及应用层建立与该协议层相对应的通信行为特征字典树。

解析网络通信行为特征知识库,得到多个分别与数据链路层、网络层、传输层及应用层对应的特征模式串。将对应于不同协议层的所述特征模式串各自存储于树状结构中,以得到与该协议层相对应的通信行为特征字典树。每一个字典树均具有如下特点:

1)根结点不包含字符,除根结点外所有结点都只包含一个字符;

2)每个结点均包含一个长度为256的指针数组ptr[256],其为指向子结点的指针,假设该结点对应的字符为P[i],则ptr[P[i+1]]中存放的是指向存储P[i+1]的结点的指针;

3)一个结点可以有0个、1个或者多个子结点,并含有一个标志位,以标识到达该结点时是否匹配到模式串。

直接采用该字典树进行特征匹配时,若在一个字节失配,需返回到匹配的首字节的下一字节进行匹配。假设最长特征模式串的长度为L,待匹配字节流的长度为N,则模式匹配的代价为N*L,匹配效率低。由此,考虑对字典树建立确定有限自动机(DFA),以提高匹配效率,具体参照下述步骤S107的详细描述。

步骤S107,对每一个所述通信行为特征字典树建立确定有限自动机。

记录所述通信行为特征字典树中每一个结点所对应的特征模式串的子串,该子串即为从根结点到该结点走过的路径,且所述子串的后缀子串指向与当前结点的父结点位于同一层的其他结点。当当前结点匹配失败时,根据输入的待匹配字节及该当前结点对应的所述子串的后缀子串查找跳转的目标结点。

具体地,DFA的构建过程采用自顶向下的方式,对字典树进行广度优先遍历,即先计算根结点的所有可能输入的下一个状态,再计算根结点的所有子结点的下一个状态,然后再计算第三层结点的下一个状态,并保证在进行当前结点的下一个状态计算时,其后缀子串对应的结点为与当前结点的父结点位于同一层次的结点。已经计算过下一个状态的结点,对所有可能的输入都可得到对应的下一个状态的结点的指针。

步骤S109,对捕获到的网络数据包进行协议解析,采用多模式匹配算法将协议解析后得到的分别对应数据链路层、网络层、传输层及应用层的待匹配字节流与该协议层的所述通信行为特征字典树进行匹配,得到所述数据包的网络行为检测结果。

参照图5所示的对网络数据包进行多模式匹配的示意图,从磁盘提取已写入的网络数据包,对该数据包进行协议解析,获取所述网络数据包中分别对应于数据链路层、网络层、传输层及应用层的待匹配字节流的协议层起始位置及长度,而后与对应的已建立确定有限自动机的字典树进行AC-BM多模式匹配,得到所述数据包的网络通信行为检测结果。

请参阅图6,是本发明较佳实施例提供的网络行为检测装置400的功能模块框图。该网络行为检测装置400包括数据获取模块410、知识库构建模块420、字典树建立模块430、自动机建立模块440以及匹配模块450。下面将对图6所示的各个功能模块进行详细阐述。

所述数据获取模块410,用于捕获网络数据包。具体地,该数据获取模块410可用于执行图2所示的步骤S101,具体的操作方法可参照上述对步骤S101的详细描述。

所述知识库构建模块420,用于分析网络通信行为特征,并采用树状逻辑模型构建网络通信行为特征知识库。具体地,该知识库构建模块420可用于执行图2所示的步骤S103,具体的操作方法可参照上述对步骤S103的详细描述。

所述字典树建立模块430,用于解析所述网络通信行为特征知识库,以根据解析结果分别在数据链路层、网络层、传输层及应用层建立与该协议层相对应的通信行为特征字典树。具体地,该知识库构建模块430可用于执行图2所示的步骤S105,具体的操作方法可参照上述对步骤S105的详细描述。

所述自动机建立模块440,用于对每一个所述通信行为特征字典树建立确定有限自动机。具体地,该自动机建立模块440可用于执行图2所示的步骤S107,具体的操作方法可参照上述对步骤S107的详细描述。

所述匹配模块450,用于对捕获到的网络数据包进行协议解析,以采用多模式匹配算法将协议解析后得到的分别对应数据链路层、网络层、传输层及应用层的待匹配字节流与该协议层的所述通信行为特征字典树进行匹配,得到所述网络数据包的网络行为检测结果。具体地,该匹配模块450可用于执行图2所示的步骤S109,具体的操作方法可参照上述对步骤S109的详细描述。

综上所述,本发明提供的网络行为检测方法及装置,通过横向扩张采集缓冲区技术开设多个缓冲区,实现万兆网络环境下的高速数据采集,并基于树状逻辑模型构建网络通信行为特征知识库,以及通过对通信行为特征知识库解析后得到的四个分别对应于数据链路层、网络层、传输层及应用层的字典树建立确定有限自动机改进多模式匹配算法AC-BM,实现网络通信行为特征的快速匹配。该种网络行为检测方法及装置,相对于传统的数据包检测及数据审计技术,具有更高的特征匹配效率及更低的算法复杂度,且知识库的设计更合理,利于升级和扩展。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1