一种数据报文深度检测方法和装置与流程

文档序号:28925312发布日期:2022-02-16 14:09阅读:96来源:国知局
一种数据报文深度检测方法和装置与流程

1.本发明涉及数据报文深度检测技术领域,尤其涉及一种数据报文深度检测方法和装置。


背景技术:

2.数据报文的精细化匹配与过滤是进行网络安全监管的前提和基础,近年来,随着网络技术的高速发展,网络流量爆发式增长,网络应用种类层出不穷,日趋复杂多变的互联网流量给报文的精细化过滤带来了新的挑战。
3.传统的报文过滤方法通常是基于五元组、关键词检测等方式进行过滤,但仅仅依赖于单个过滤方法,难以快速识别多种不同类别的流式数据包,导致无法灵活实现对数据报文的高效过滤。


技术实现要素:

4.本发明提供了一种数据报文深度检测方法和装置,解决了现有的报文过滤方法仅依赖于单个过滤方法,难以快速识别多种不同类别的流式数据包,导致无法灵活实现对数据报文的高效过滤的技术问题。
5.本发明提供的一种数据报文深度检测方法,包括:
6.获取原始报文数据包;
7.对所述原始报文数据包进行解码,确定对应的数据协议并构建中间报文数据包;
8.根据所述数据协议对所述中间报文数据包执行数据预处理,得到预处理数据报文;
9.基于预设匹配规则对所述预处理数据报文进行匹配,生成规则匹配结果;
10.根据所述规则匹配结果对预处理数据报文进行深度检测,得到目标深度数据报文。
11.可选地,所述对所述原始报文数据包进行解码,确定对应的数据协议并构建中间报文数据包的步骤,包括:
12.获取所述原始报文数据包携带的至少一个报文头特征;
13.基于所述报文头特征从预存的多个调用函数中选取目标调用函数;
14.采用所述目标调用函数对所述原始报文数据包进行解码,确定所述原始报文数据包所对应的至少一个数据协议;
15.建立所述数据协议与所述原始报文数据包之间的关联关系,得到中间报文数据包。
16.可选地,所述根据所述数据协议对所述中间报文数据包执行数据预处理,得到预处理数据报文的步骤,包括:
17.根据所述数据协议的类型,从预设的多个预处理器内选取至少一个目标预处理器;所述预处理器包括ip分片重组预处理器、tcp状态维护与会话重组预处理器和协议解析
预处理器;
18.若所述目标预处理器为所述ip分片重组预处理器,则通过所述ip分片重组预处理器根据所述中间报文数据包对应的ip报文头部的顺序,对所述中间报文数据包进行排序并建立关联,构建ip中间报文链;
19.若所述目标预处理器为所述tcp状态维护与会话重组预处理器,则通过所述tcp状态维护与会话重组预处理器对所述中间报文数据包所处的会话建立会话状态表,并基于所述中间报文数据包对应的tcp报文头部的顺序,对所述中间报文数据包进行排序并建立关联,得到tcp中间报文链;
20.若所述目标预处理器为所述协议解析预处理器,则通过所述协议解析预处理器按照所述数据协议对应的交互行为特征,确定所述中间报文数据包对应的交互行为特征,并基于所述交互行为特征将所述中间报文数据包抽象为检测流;
21.将所述ip中间报文链、所述tcp中间报文链和/或所述检测流确定为预处理数据报文。
22.可选地,所述基于预设匹配规则对所述预处理数据报文进行匹配,生成规则匹配结果的步骤,包括:
23.对所述预处理数据报文进行字符串规则匹配;
24.若匹配成功,则在所述预处理数据报文上添加深度内容标识,生成规则匹配结果;
25.若匹配失败,则维持当前的所述预处理数据报文,生成规则匹配结果。
26.可选地,所述根据所述规则匹配结果对预处理数据报文进行深度检测,得到目标深度数据报文的步骤,包括:
27.判断所述规则匹配结果是否存在所述深度内容标识;
28.若是存在,则对所述预处理数据报文进行深度检测,确定所述预处理数据报文的输入端口和应用层协议;
29.若所述应用层协议所对应的载荷长度不为零且未包含预设快传标记,则逐字节读取所述预处理数据报文并进行字符序列匹配,生成目标深度数据报文。
30.本发明还提供了一种数据报文深度检测装置,包括:
31.报文数据包获取模块,用于获取原始报文数据包;
32.数据包解码模块,用于对所述原始报文数据包进行解码,确定对应的数据协议并构建中间报文数据包;
33.数据预处理模块,用于根据所述数据协议对所述中间报文数据包执行数据预处理,得到预处理数据报文;
34.初始匹配模块,用于基于预设匹配规则对所述预处理数据报文进行匹配,生成规则匹配结果;
35.深度检测模块,用于根据所述规则匹配结果对预处理数据报文进行深度检测,得到目标深度数据报文。
36.可选地,所述数据包解码模块具体用于:
37.获取所述原始报文数据包携带的至少一个报文头特征;
38.基于所述报文头特征从预存的多个调用函数中选取目标调用函数;
39.采用所述目标调用函数对所述原始报文数据包进行解码,确定所述原始报文数据
包所对应的至少一个数据协议;
40.建立所述数据协议与所述原始报文数据包之间的关联关系,得到中间报文数据包。
41.可选地,所述数据预处理模块具体用于:
42.根据所述数据协议的类型,从预设的多个预处理器内选取至少一个目标预处理器;所述预处理器包括ip分片重组预处理器、tcp状态维护与会话重组预处理器和协议解析预处理器;
43.若所述目标预处理器为所述ip分片重组预处理器,则通过所述ip分片重组预处理器根据所述中间报文数据包对应的ip报文头部的顺序,对所述中间报文数据包进行排序并建立关联,构建ip中间报文链;
44.若所述目标预处理器为所述tcp状态维护与会话重组预处理器,则通过所述tcp状态维护与会话重组预处理器对所述中间报文数据包所处的会话建立会话状态表,并基于所述中间报文数据包对应的tcp报文头部的顺序,对所述中间报文数据包进行排序并建立关联,得到tcp中间报文链;
45.若所述目标预处理器为所述协议解析预处理器,则通过所述协议解析预处理器按照所述数据协议对应的交互行为特征,确定所述中间报文数据包对应的交互行为特征,并基于所述交互行为特征将所述中间报文数据包抽象为检测流;
46.将所述ip中间报文链、所述tcp中间报文链和/或所述检测流确定为预处理数据报文。
47.可选地,所述初始匹配模块具体用于:
48.对所述预处理数据报文进行字符串规则匹配;
49.若匹配成功,则在所述预处理数据报文上添加深度内容标识,生成规则匹配结果;
50.若匹配失败,则维持当前的所述预处理数据报文,生成规则匹配结果。
51.可选地,所述深度检测模块具体用于:
52.判断所述规则匹配结果是否存在所述深度内容标识;
53.若是存在,则对所述预处理数据报文进行深度检测,确定所述预处理数据报文的输入端口和应用层协议;
54.若所述应用层协议所对应的载荷长度不为零且未包含预设快传标记,则逐字节读取所述预处理数据报文并进行字符序列匹配,生成目标深度数据报文。
55.从以上技术方案可以看出,本发明具有以下优点:
56.本发明通过获取原始报文数据包;对原始报文数据包进行解码,确定对应的数据协议并构建中间报文数据包;根据数据协议对中间报文数据包执行数据预处理,得到预处理数据报文;基于预设匹配规则对预处理数据报文进行匹配,生成规则匹配结果;根据规则匹配结果对预处理数据报文进行深度检测,得到目标深度数据报文,从而实现快速识别多种不同类别的流式数据包,灵活对数据报文进行高效过滤。
附图说明
57.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
58.图1为本发明实施例提供的一种数据报文深度检测方法的步骤流程图;
59.图2为本发明实施例提供的一种tcp中间报文链的示意图;
60.图3为本发明实施例提供的一种数据报文深度检测装置的实现框架图;
61.图4为本发明实施例提供的一种数据报文深度检测装置的结构框图。
具体实施方式
62.本发明实施例提供了一种数据报文深度检测方法和装置,用于解决现有的报文过滤方法仅依赖于单个过滤方法,难以快速识别多种不同类别的流式数据包,导致无法灵活实现对数据报文的高效过滤的技术问题。
63.dpi(deep packet inspection)全称深度数据包检测,是一种计算机网络数据包过滤技术,用来检查通过检测点之数据包的数据部分或头文件,以搜索不匹配规范之协议、病毒、垃圾邮件、入侵,或以预定之准则来决定数据包是否可通过或需被路由至其他不同目的地,是为了收集统计数据之目的。在传统数据包检测技术之上增加了对应用层数据的应用协议识别,数据包内容检测与深度解码。
64.dpi的识别技术可以分为三大类:基于“特征字”的识别技术,应用层网关识别技术和行为模式识别技术。
65.(1)基于“特征字”的识别技术。不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的bit序列。基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。根据具体检测方式的不同,基于“特征字”的识别技术又可以被分为固定位置特征字匹配、变动位置的特征匹配以及状态特征匹配三种技术。通过对“指纹”信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测。
66.(2)应用层网关识别技术。某些业务的控制流和业务流是分离的,业务流没有任何特征。这种情况下,采用应用层网关识别技术。应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。对于每一个协议,需要有不同的应用层网关对其进行分析。
67.(3)行为模式识别技术。行为模式识别技术基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即将实施的动作。行为模式识别技术通常用于无法根据协议判断的业务的识别。
68.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
69.请参阅图1,图1为本发明实施例提供的一种数据报文深度检测方法的步骤流程图。
70.本发明提供的一种数据报文深度检测方法,包括:
71.步骤101,获取原始报文数据包;
72.在本技术实施例中,通过将网卡设置为混乱模式和利用libpcap/winpcap从网卡捕获网络数据包以获取原始报文数据包。
73.具体可以通过将网络设置成混乱模式,并通过将多个端口的流量拷贝至特定端口进行监听,以实现监听连接在集线器上的所有流量。在网卡获取到原始报文数据包转发至数据链路层后,通过libpcap/winpcap库将数据链路层的原始报文数据包传输,等待后续解码操作。
74.需要说明的是,libpcap是一个运行在类unix系统下的网络数据包捕获函数库,可以捕获网卡上的数据,也可以发送数据包,相应的windows版本为winpcap。
75.步骤102,对原始报文数据包进行解码,确定对应的数据协议并构建中间报文数据包;
76.在本技术实施例中,在获取到原始报文数据包后,可以通过调用特定函数对原始报文数据包的各个部分进行解码,以确定对应的数据协议并构建得到中间报文数据包。
77.可选地,步骤102可以包括以下子步骤:
78.获取原始报文数据包携带的至少一个报文头特征;
79.基于报文头特征从预存的多个调用函数中选取目标调用函数;
80.采用目标调用函数对原始报文数据包进行解码,确定原始报文数据包所对应的至少一个数据协议;
81.建立数据协议与原始报文数据包之间的关联关系,得到中间报文数据包。
82.在本技术的一个示例中,通过获取原始报文数据包所携带的至少一个报文头特征,按照该报文头特征从预存的多个调用函数中进行至少一个目标调用函数的选取,再采用目标调用函数对原始报文数据包进行解码,以确定原始报文数据包所对应的至少一个数据协议,再按照数据协议和原始报文数据包的数据之间的关联关系存储到数据包结构体内,从而得到中间报文数据包。
83.在具体实现中,当接收到原始报文数据包后,可以通过运行processpacket()函数。processpacket()函数调用decodeethpkt()函数,decodeethpkt()函数对以太帧进行解码。在decodeethpkt()函数中,decodeip()对ip协议进行解码。最后,调用decodetcppkt()对tcp协议进行解码,根据报文头特征将数据解码成不同的协议,再按照对应的协议建立数据的关联,得到中间报文数据包。
84.步骤103,根据数据协议对中间报文数据包执行数据预处理,得到预处理数据报文;
85.可选地,步骤103可以包括以下子步骤:
86.根据数据协议的类型,从预设的多个预处理器内选取至少一个目标预处理器;预处理器包括ip分片重组预处理器、tcp状态维护与会话重组预处理器和协议解析预处理器;
87.若目标预处理器为ip分片重组预处理器,则通过ip分片重组预处理器根据中间报文数据包对应的ip报文头部的顺序,对中间报文数据包进行排序并建立关联,构建ip中间报文链;
88.若目标预处理器为tcp状态维护与会话重组预处理器,则通过tcp状态维护与会话重组预处理器对中间报文数据包所处的会话建立会话状态表,并基于中间报文数据包对应
的tcp报文头部的顺序,对中间报文数据包进行排序并建立关联,得到tcp中间报文链;
89.若目标预处理器为协议解析预处理器,则通过协议解析预处理器按照数据协议对应的交互行为特征,确定中间报文数据包对应的交互行为特征,并基于交互行为特征将中间报文数据包抽象为检测流;
90.将ip中间报文链、tcp中间报文链和/或检测流确定为预处理数据报文。
91.在本技术实施例中,在确定数据协议后,可以基于数据协议的类型,从多个预处理器中选取至少一个与数据协议的类型对应的目标预处理器进行对中间报文数据包的预处理,其中各个预处理器的功能可以通过插件形式实现。插件程序按照dpi提供的插件函数接口完成,使用时动态加载,在不用修改核心代码的前提下让dpi的功能和复杂性扩展更容易。既保障了插件程序和系统的核心代码的紧密相关性,又保障了核心代码的良好扩展性。
92.在本技术的一个示例中,若目标预处理器为ip分片重组预处理器,则通过ip分片重组预处理器根据中间报文数据包对应的ip报文头部的顺序,对中间报文数据包进行排序并建立关联,构建ip中间报文链。具体的ip分片重组主要处理分片乱序与丢包的情况,在处理过程中会缓存报文。为了减少内存拷贝,分片重组不会将分片报文组成一个完整的大ip报文,而以报文链方式交由后续模块。分片缓存链表头挂在会话结构上。ip分片重组报文处理分为以下几个状态:(1)分片重组超时,直接设置动作为接受;(2)分片重叠直接丢弃所有分片,直接设置动作为丢弃;(3)组装ip包的完整排序分片报文链;(4)会话结构删除时,缓存清理。
93.在本技术的一个示例中,若目标预处理器为tcp状态维护与会话重组预处理器,则通过tcp状态维护与会话重组预处理器对中间报文数据包所处的会话建立会话状态表,并基于中间报文数据包对应的tcp报文头部的顺序,对中间报文数据包进行排序并建立关联,得到tcp中间报文链。
94.请参阅图2,图2为本发明实施例的一种tcp中间报文链的示意图。
95.在本实施例中,以报文头为ip报头为例,图2中包括多个会话标头,也就是ip1-7,通过查看各个ip报文数据包是否存在于frag1这个会话中,若是存在,则将其提取出来进行进一步排序,如图所示可以提取ip1、ip2、ip4和ip6出来进行进一步的排序,生成tcp中间报文链。
96.在实际操作中,通过在会话当中建立状态表来表示这些会话,同样在会话终止之后,删除相应的表来表示会话结束。通过维护状态表,整个会话过程将很清楚,对于特定的服务器来说不再是单个的syn、ack、fin标志,当检测引擎匹配一个包的时候,查看它是否在已经建立的会话中,而不是简单地匹配特征。类似ip分片,预处理器将tcp流进行重组,这样dpi就可以对整个数据流进行规则匹配。tcp流重组为后续解码与检测提供连续正确的报文负载内容,以保证解码与检测的正确。tcp流重组只保证报文按序进入后续模块处理,不进行tcp负载的内存拷贝重组。
97.在本技术的一个示例中,若目标预处理器为协议解析预处理器,则通过协议解析预处理器按照数据协议对应的交互行为特征,确定中间报文数据包对应的交互行为特征,并基于交互行为特征将中间报文数据包抽象为检测流。
98.在具体实现中,针对基于规则的模式匹配难以处理具有多种数据表达形式的协议问题,如web服务器能够处理多种形式的url,比如iis允许用反斜杠“\”代替正斜杠“/”,
telnet协议的在线协议协商过程可能打断原本应该被匹配的数据,协议解析预处理器将所有url改为统一格式,将所有协商代码从telnet数据中去除,采用规范的匹配模式处理不同的表达形式的数据。协议解析预处理器可将二进制协议转换为文本或者其他形式,在引擎处理中起到流程分离作用。协议解析器的功能范畴如下:
99.(1)协议确认
100.l4流量经过知名端口协议识别分流后表现为l5协议,进入相应的协议解析器,协议解析器按照协议的交互行为特征进行确认。
101.(2)协议切分
102.协议切分是在会话的基础上进一步细分出“检测流”和“子流”的概念。例如:http的一次transaction、ftp的一次用户登录行为、smtp/pop3的一次邮件发送/接受等,都抽象成一条“检测流”。检测流的基础上可以进一步细分“子流”,例如:ftp可以在一次登录的过程中用port方式和passive方式传输文件,每一个传输又是一条子流。每条会话可以传输多次检测流,甚至同时有并发的检测流出现。每个“检测流”允许多个“子流”。解析器需要按照不同的协议识别这种行为,并将业务模块基于“检测流”或者“子流”的规则固化在“检测流”的每个报文的结果集中或者“子流”的每个报文的结果集中。直到“检测流”或者“子流”发生了变迁。
103.步骤104,基于预设匹配规则对预处理数据报文进行匹配,生成规则匹配结果;
104.在本技术的一个示例中,步骤104可以包括以下子步骤:
105.对预处理数据报文进行字符串规则匹配;
106.若匹配成功,则在预处理数据报文上添加深度内容标识,生成规则匹配结果;
107.若匹配失败,则维持当前的预处理数据报文,生成规则匹配结果。
108.字符串规则匹配指的是通过把所有l4-7层业务的需求归一化成字符串的搜索,每个需求条目抽象成一条dpi rule(规则),从rule中提取不少于3个字节的“固定字符串特征”,规则的其余要求定义成“选项”,将各个固定字符串特征与预处理数据报文进行匹配的过程。
109.在本技术实施例中,通过对预处理数据报文进行字符串规则匹配,以确定是否需要为当前预处理数据报文进行会话创建和标识,若是匹配成功,表明预处理数据报文需要进行后续的深度检测,可以在预处理数据报文上添加深度内容标识以便于后续dpi进行检测,生成规则匹配结果。
110.在本发明的一个示例中,若是匹配失败,则表明当前的预处理数据报文无法匹配当前的策略配置,此时维持当前的预处理数据报文,升规则匹配结果为匹配失败,在匹配失败的情况下,后续不进行对预处理数据报文的深度检测。
111.步骤105,根据规则匹配结果对预处理数据报文进行深度检测,得到目标深度数据报文。
112.可选地,步骤105可以包括以下子步骤:
113.判断规则匹配结果是否存在深度内容标识;
114.若是存在,则对预处理数据报文进行深度检测,确定预处理数据报文的输入端口和应用层协议;
115.若应用层协议所对应的载荷长度不为零且未包含预设快传标记,则逐字节读取预
处理数据报文并进行字符序列匹配,生成目标深度数据报文。
116.在本技术实施例中,若是规则匹配结果中存在深度内容标识,表明此时需要对预处理数据报文进行深度检测,此时可以进一步检测是否满足应用层协议所对应的载荷长度不为零且未包含预设快传标记的条件,若是满足,则进一步采用ac算法(aho-corasick)自动机算法,以查表的方法对报文快速匹配一次,得到多个匹配的结果。ac算法匹配报文的过程就是逐字节读取当前报文,并根据ascii码获取下一个状态的过程。若下一个状态存在终结点,则记录匹配成功的字符序列,并继续往后匹配,直到报文读取完毕,从而完成深度检测,确定预处理数据报文的输入端口和应用层协议。
117.可选地,若是不存在深度内容标识,或是若会话中的检测标记没有任何bit置位的报文,不检测;当前处于流量屏蔽的,不检测,尝试清除流信息;当前流穿越了一次流量屏蔽,不检测,尝试清除流信息;若会话中的检测标记没有任何bit置位的报文,不检测;当前处于流量屏蔽的,不检测,尝试清除流信息;当前流穿越了一次流量屏蔽,不检测,尝试清除流信息。
118.在本发明的另一个实施例中,本发明的装置包含用户态和内核态两部分,内核态用于实现上述步骤101-105的具体实施过程,从而对原始报文数据包进行解析、模式匹配并基于匹配结果对报文进行相应出,而用户态用于响应用户配置的规则,对上述步骤105内的深度检测所使用的算法或规则进行编译和下发,例如ac(aho-corasick)自动机算法等。用户态处理规则的添加和删除、引擎的编译和下发(同步)。用户可以对特征进行添加、删除、修改等操作。当用户配置完规则并下发了引擎的编译激活指令之后,用户态将对所有的规则进行初始化,生成编译引擎,并下发到内核态。
119.在本技术实施例中,通过获取原始报文数据包;对原始报文数据包进行解码,确定对应的数据协议并构建中间报文数据包;根据数据协议对中间报文数据包执行数据预处理,得到预处理数据报文;基于预设匹配规则对预处理数据报文进行匹配,生成规则匹配结果;根据规则匹配结果对预处理数据报文进行深度检测,得到目标深度数据报文,从而实现快速识别多种不同类别的流式数据包,灵活对数据报文进行高效过滤。
120.请参阅图3,图3为本发明的一种数据报文深度检测装置的实现框架图。
121.在本发明实施例中,用户态处理规则的添加和删除、引擎的编译和下发(同步)。用户可以对特征进行添加、删除、修改等操作。当用户配置完规则并下发了引擎的编译激活指令之后,用户态将对所有的规则进行初始化,生成编译引擎,并下发到内核态。
122.在内核态,首先系统从网络中抓取数据包并进行包解码,然后交给预处理器,预处理器数据进行协议规范化和重组,之后交给检测引擎对报文进行模式匹配。检测引擎的建立是基于特征库的,用户也可自己定义属于自己的规则,规则库经编译之后生成算法引擎,并由用户态下发。由算法引擎对报文完成匹配,并根据规则中配置的处理动作对报文进行处理,保存于结果集中。
123.dpi系统的预处理器、检测引擎等模块都是插件结构,插件程序按照dpi提供的插件函数接口完成,使用时动态加载,在不用修改核心代码的前提下让dpi的功能和复杂性扩展更容易。既保障了插件程序和系统的核心代码的紧密相关性,又保障了核心代码的良好扩展性。
124.dpi使能在域间,匹配域间策略规则后,将报文下送到内核态做内容过滤,根据过
滤结果处理该报文。当报文内容匹配上用户配置的特征后,或放行报文,或重置回话,或修改报文内容继续转发,或者应答错误信息,控制实现用户网络访问的目的。
125.请参阅图4,图4为本发明实施例提供的一种数据报文深度检测装置的结构框图。
126.本发明实施例提供了一种数据报文深度检测装置,包括:
127.报文数据包获取模块401,用于获取原始报文数据包;
128.数据包解码模块402,用于对原始报文数据包进行解码,确定对应的数据协议并构建中间报文数据包;
129.数据预处理模块403,用于根据数据协议对中间报文数据包执行数据预处理,得到预处理数据报文;
130.初始匹配模块404,用于基于预设匹配规则对预处理数据报文进行匹配,生成规则匹配结果;
131.深度检测模块405,用于根据规则匹配结果对预处理数据报文进行深度检测,得到目标深度数据报文。
132.可选地,数据包解码模块402具体用于:
133.获取原始报文数据包携带的至少一个报文头特征;
134.基于报文头特征从预存的多个调用函数中选取目标调用函数;
135.采用目标调用函数对原始报文数据包进行解码,确定原始报文数据包所对应的至少一个数据协议;
136.建立数据协议与原始报文数据包之间的关联关系,得到中间报文数据包。
137.可选地,数据预处理模块403具体用于:
138.根据数据协议的类型,从预设的多个预处理器内选取至少一个目标预处理器;预处理器包括ip分片重组预处理器、tcp状态维护与会话重组预处理器和协议解析预处理器;
139.若目标预处理器为ip分片重组预处理器,则通过ip分片重组预处理器根据中间报文数据包对应的ip报文头部的顺序,对中间报文数据包进行排序并建立关联,构建ip中间报文链;
140.若目标预处理器为tcp状态维护与会话重组预处理器,则通过tcp状态维护与会话重组预处理器对中间报文数据包所处的会话建立会话状态表,并基于中间报文数据包对应的tcp报文头部的顺序,对中间报文数据包进行排序并建立关联,得到tcp中间报文链;
141.若目标预处理器为协议解析预处理器,则通过协议解析预处理器按照数据协议对应的交互行为特征,确定中间报文数据包对应的交互行为特征,并基于交互行为特征将中间报文数据包抽象为检测流;
142.将ip中间报文链、tcp中间报文链和/或检测流确定为预处理数据报文。
143.可选地,初始匹配模块404具体用于:
144.对预处理数据报文进行字符串规则匹配;
145.若匹配成功,则在预处理数据报文上添加深度内容标识,生成规则匹配结果;
146.若匹配失败,则维持当前的预处理数据报文,生成规则匹配结果。
147.可选地,深度检测模块405具体用于:
148.判断规则匹配结果是否存在深度内容标识;
149.若是存在,则对预处理数据报文进行深度检测,确定预处理数据报文的输入端口
和应用层协议;
150.若应用层协议所对应的载荷长度不为零且未包含预设快传标记,则逐字节读取预处理数据报文并进行字符序列匹配,生成目标深度数据报文。
151.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
152.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
153.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
154.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
155.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
156.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1