一种基于应用层的数据分割方法及装置的制作方法

文档序号:7708516阅读:190来源:国知局
专利名称:一种基于应用层的数据分割方法及装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种基于应用层的数据分割方法及 装置。
背景技术
随着网络的发展,应用层(4层以上)业务越来越多,基于应用层的设备 如IPS (Intrusion Prevention System,入侵防御系统)、带宽管理设备等都需要 进行深度报文检测,深度报文检测除了分析IP数据包的4层以下的内容(包 括源地址、目的地址、源端口、目的端口以及协议类型)以外,还增加了应 用层分析,识别各种网络应用及其内容。
在对报文进行深度检测时,需要根据协议的不同进行报文的重组和拷贝, 即将多个数据包拷贝到存储器中进行重组,使得多个数据包关联到一个完整 的数据流当中,在寻找攻击异常行为的同时,保持整个数据流的状态。这种 重组和拷贝代价很大,需要占用大量存储空间及控制资源。为此很多厂家提 出了基于流的检测技术,基于流的检测可以在网络数据经过应用层设备时, 记录数据流的检测状态,将相邻数据包之间的上下文连接起来,形成一个完 整的数据流,从而减少检测引擎进行大量的重组拷贝,提高应用层设备的综 合性能。
不管是重组拷贝还是基于流的检测,都是通过TCP ( Transmission Control Protocol,传输控制协议)进行通信。当报文深度检测时,将TCP传输的数据 流划分成一个个满足应用层数据检测逻辑的深度4全测单元,发送给深度检测 引擎。对于重组拷贝方式,划分深度检测单元就是决定哪些数据包应该重组 拷贝,对于基于流的检测,就是要决定哪些网络数据要在一个检测流上检测, 什么时候创建和释放检测流,即在检测前,确定检测哪一段网络数据,在检 测后,释放该段网络数据所占资源。如何确定上述深度检测单元对于提高应用层设备的检测精度和检测性能 至关重要,因为应用层设备对数据包进行深度检测的方法是模式匹配,指在
给定长度为n的目标串T-T1 、 T2.....Tn中查找长度为m的模式串P^P1 、 P2.....
Pm的首次出现或多次出现的过程,若P在T中出现1次或多次,则匹配成功, 否则匹配失败。例如,可以采用基于正则表达式(Regular Expression)的模式 匹配,用来描述或匹配一系列符合某个句法规则的字符串。简单地说, 一个 正则表达式是普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的 文字模式,该模式描述在查找文字主体时待匹配的一个或多个字符串。比如 ".abc
S描述了这样一类字符串头部具有任意个任意字符,并以abc加一 个数字结尾。"
而较准确的正则表达式需要对字符串模式有较准确的位置定位,这种位 置定位的前提是交给深度检测引擎的深度检测单元本身满足应用协议数据逻 辑,比如需要将HTTP (HyperText Transfer Protocol,超文件传输协议)的某 个完整请求作为一个深度检测单元交给深度检测引擎进行检测,这样基于 HTTP请求的特征匹配才会符合用户本身语义要求,相反,如果这个请求单元 不完整或者含有其他请求单元的数据,那么可能导致深度检测引擎中的特征 无法命中造成的漏报或者误报。
然而,现有的技术方案中,在进入深度检测引擎之前, 一般按照一个系 统预定义的长度对TCP数据流进行切分,当TCP请求或者回应的负载数据积累 到一定长度(或超出一定时限),作为一个深度检测单元,发送给深度检测 引擎。
因此,如果按照系统预定义的切分长度对数据流进行切分,有可能出现 深度检测单元过大或者过小,导致该深度^^r测单元中的数据不完整或包含其 他数据,进而使得深度检测单元与应用层协议数据逻辑单元不一致,深度检 测引擎中的特征无法命中,从而降低深度检测的准确度和效率。
现有技术中还可以采用精确 一些的系统对少数几个协议进行应用分析, 根据应用协议本身的具体格式进行深度检测单元的切分,使得切分后的深度 检测单元满足该几个协议应用层对应的格式要求。但是应用协议分析代价很行具体分析,并且无法实现通用性和高效性。

发明内容
本发明提供了 一种基于应用层的数据分割方法及装置,以实现应用层设 备切分数据流,保持切分效果与应用层协议数据逻辑单元一致,从而提高深 度检测的准确度和效率。
本发明提供了 一种基于应用层的数据分割方法,应用于深度检测设备中,
所述方法包括以下步骤
所述深度检测设备才企测来自用户的数据流是否为具有会话的数据流,当 为具有会话的数据流时,获取所述数据流对应的切分特征;
所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获 得深度检测单元;
所述深度检测设备对所述深度检测单元进行深度检测。
分,之前还包括
判断所述数据流是否为TCP数据流,如果是,根据数据流中TCP数据包 的TCP序列号,对所述TCP数据包进行保序。
其中,所述获取数据流对应的切分特征,具体包括
在所述会话数据流中进行切分特征查找,当所述会话命中切分对象且有 激活切分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;
如果所述会话命中切分对象但没有命中激活切分特征,提取其中优先级 最高切分特征;
如果未命中切分特征、或所述会话上无切分对象且无激活切分特征命中、 或切分特征不属于会话切分对象,将所述数据包作为对应方向上当前检测单 元的后续数据。
其中,所述深度4企测设备根据所述获得的切分特征对所述数据流进行切 分,获得深度检测单元,具体包括
如果所述会话中某个数据包命中开始切分特征,结束当前请求检测单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数 据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包作为当 前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命 中结束切分特征且与当前请求检测单元反向,结束当前请求检测单元,将所 述数据包作为当前回应检测单元的第 一个数据包进行检测。 其中,所述切分特征包括协议类型、方向和正则表达式。 其中,所述切分特征包括协议类型、方向和"fe文的长度特征,所述报文 的长度特征是回应方向的负载不为0,或者是具体的报文负载长度范围。 其中,所述切分特征还包括优先级。 本发明还提供了一种基于应用层的数据分割装置,包括 会话管理模块,用于检测来自用户的数据流,将具有会话的数据流发送 到切分匹配模块;
切分匹配模块,与所述会话管理模块连接,用于接收来自所述会话管理 模块的数据流,获取所述数据流对应的切分特征;
检测单元控制模块,分别与所述会话管理模块和所述切分匹配模块连接, 用于根据所述切分匹配模块获得的切分特征对来自所述会话管理模块的数据 流进行切分,获得深度检测单元;
深度检测模块,与所述检测单元控制模块连接,用于对所述深度检测单 元进行深度纟企测。
其中,
所述会话管理模块,还用于判断所述数据流是否为TCP数据流; 所述装置还包括TCP保序模块,分别与所述会话管理模块和切分匹配模 块连接,用于接收来自所述会话管理模块的TCP数据流,根据数据流中TCP 数据包的TCP序列号,对TCP数据包进行保序,将TCP数据包有序地发送 给所述切分匹配模块。
其中,所述切分匹配模块,具体用于在所述会话数据流中进行切分特征 查找,当该会话命中切分对象且有激活切分特征,将最高优先级切分特征所 属切分对象作为当前会话切分对象;如果该会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特征;如果未命中切分特征、或该会 话上无切分对象且无激活切分特征命中、或切分特征不属于会话切分对象, 将该数据包作为对应方向上当前检测单元的后续数据。
其中,所述检测单元控制模块,具体用于如果所述会话中某个数据包命 中开始切分特征,结束当前请求检测单元,所述凄t据包作为一个新请求;险测 单元开始进行检测;如果所述会话中某个数据包命中结束切分特征且与当前 请求检测单元同方向,将所述数据包作为当前请求检测单元的最后一个数据 包进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检 测单元反向,结束当前请求检测单元,将所述数据包作为当前回应检测单元 的第 一个数据包进行;险测。
与现有技术相比,本发明具有以下优点
本发明中,能够十分高效的解决应用层设备深度检测数据切分问题,可 以使深度检测单元和大部分协议的解析过程吻合,避免对这些协议的数据包 进行解析,可以用于指导基于深度检测引擎的重组和基于流检测引擎检测流 的创建和销毁,从而大大提高检测的精度和效率。


为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一 些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以才艮据这些附图获得其他的附图。
图l是本发明中一种基于应用层的数据分割装置结构图2是本发明中另一种基于应用层的数据分割装置结构图3是本发明中一种基于应用层的数据分割方法流程图4是本发明中基于图3原理的一种基于应用层的数据分割方法流程图。
具体实施例方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的 实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的核心思想是通过分析应用协议传输数据的共同特点,根据协 议类型、传输方向、和协议内容特征定义来定义切分数据单元,把协议数据 切分成一个个符合协议数据逻辑单元,从而能够满足绝大多数应用层协议的 数据逻辑。现有技术中,深度检测设备对接收的数据流采用固定长度的切分
方式,例如,按照协议数据逻辑5个数据包是一个组成单元,但如果设备按 照4个数据包进行;险测时,则会导致漏报,如果按照6个或者更多的数据包 进行检测,则会导致误报。本发明中,深度检测设备接收数据包,如果在请 求方向,获得多个数据包后,在响应方向获得一个负载不为0的数据包,则 可以认为该请求结束,将这几个数据包组成请求深度检测数据包,发给深度 检测引擎。对于采用正则表达式,将某些需要查找的关键词组成正则表达式, 利用该正则表达式在接收数据包中进行匹配查找,将查找到的若干数据包组 成一个深度^r测单元,发给深度^f企测引擎。
本发明通过分析应用协议发现 一个应用层协议的会话,分为请求数据 流和回应数据流,这两个数据流是交叉确认的,如果接收端设备回应的数据 流满足一定特征(例如,回应数据流的应用层负载长度不为0),则说明发送 端设备完成了请求数据流的传输;当发送端设备开始发送一个新请求数据流 时,则说明接收端设备的回应数据流已经完成,因此可以通过一个方向的报 文特征来对另一个方向的数据流进行深度检测单元切分,使深度检测单元和 应用协议的逻辑数据单元一致。例如,HTTP POST或GET页面可能分片传输, 即分成多个数据包传输,在对TCP数据流进行保序处理的前提下,往往可以 通过服务器回应的TCP长度负载不为零来确定本次页面请求传输完成。
本发明基于上述规律,提出了一种基于应用层的数据分割装置,通过通 用的切分特征定义和检测方法,实现对应用协议数据流的深度检测单元自动 切分,使深度检测单元和应用协议的解析过程吻合,该装置如图1所示,包括
会话管理模块10,用于检测来自用户的数据流,对该数据流进行会话管 理和状态跟踪,其中状态跟踪是把单个用户的会话关联起来,将该用户的会 话数据流发送到切分匹配模块20,会话管理和状态跟踪的实现类似与开源的 Netfilter机制,在此不赘述;
切分匹配模块20,与会话管理模块10连接,用于根据预先设置的切分特 征,对来自会话管理模块IO的数据流进行切分特征匹配,识别出数据流的切 分特征,作为检测单元控制模块30的切分依据;切分匹配模块20具体用于 在所述会话数据流中进行切分特征查找,当该会话命中切分对象且有激活切 分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;如果 该会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特 征;如果未命中切分特征、或该会话上无切分对象且无激活切分特征命中、 或切分特征不属于会话切分对象,将该数据包作为对应方向上当前检测单元 的后续数据。
其中,预先设置的切分特征的逻辑关系为
切分对象=多个切分对;
切分对=[开始切分特征组]+ [结束切分特征组]; 切分特征组=多个切分特征;
切分特征={TCP|UDP1ICMP} +方向+ [切分正则表达式]+ [报文长度属性] +优先级;
才艮文长度属性={TCP-HAVE-DATAI payload low limit十payload high limit}。
本发明通过一个切分对象对一个会话两个方向的数据流进行相互切分, 一个切分对象可能包含一个或者多个切分对,每个切分对包含两个切分特征 组
开始切分特征组当前数据包中的特征命中开始切分特征组后,当前数 据包为该会话上一个请求检测单元的开始,该会话上一个回应检测单元结束; 结束切分特征组当前数据包中的特征命中结束切分特征组后,该会话上一个当前请求斥企测单元结束,此时,如果一个当前数据包方向和现有请求 冲企测单元方向一致,则该凄t据包为当前请求;险测单元的最后一个数据包,否 则当前请求4全测单元结束,该数据包为当前请求4全测单元对应的回应4企测单 元的开始;
一个切分对象的切分特征组中必须有一个切分特征标志为激活切分特 征, 一个会话命中了这些特征,相应的切分对象才会在该会话上生效。
切分特征有协议类型、方向、正则表达式、报文的长度特征、优先级五
部分组成,其中
协议类型可以是UDP ( User Datagram Protocol,用户数据报协议)、TCP 、 ICMP (Internet Control Message Protocol,互联网控制消息协议)中的 一种, 会话管理模块IO会对这三个协议建立会话;当然,协议类型不限于上述三种, 当采用其他协议时,原理相同,只是需要将该协议类型添加到切分特征的协 议类型中。
方向,可以选client to server,表示在按照客户端到服务端的数据流上进 行匹配;server to client,表示要在服务端到客户端的数据流上进行匹闺己;both, 表示要命中客户端到服务端或服务端到客户端。
正则表达式和报文的长度特征选项至少选一个,其中,报文的长度特征 可以是TCP-HAVE-DATA (即TCP的负载不为0 ),或者是具体的报文负载长 度范围(payload low limit, payload high limit);
在命中多个冲突的切分特征时,优先级高的将被选用。
本发明中,以HTTP为例进行说明,针对HTTP的协议可以定义如下切 分特征组
Marcher rule 1: +刀分*见则1
PROTO: TCP 〃协议类型为TCP
DIR: request 〃方向是请求报文 REX: ,,A ( i) ge%ost|head|trace[x20\t],, 正则表达式含义为 匹配HTTP请求方向中包含get或post或head或trace,后跟空格或者tab的 字符串,且不区分大小写PRIOR: 10 〃优先级为10
Marcher rule 2:切分规则2
PROTO: TCP 〃f办i义类型为TCP
DIR: response 〃方向是回应才艮文
PACK—LEN: TCP-HAVE-DATA 〃数据包长度为有数据
PRIOR: 10 〃优先级为10
Matcher Object HTTP:切分对象为HTTP Matcher Couple 1:切分对1 START:
1 key以命中切分规则1的数据包开始
END:
2 以命中切分规则2的数据包结束
上述HTTP切分对象的含义是当会话的请求方向命中HTTP的几个典 型请求方法头(get或post)时,切分对象激活,请求方向开始一个新的深度 检测单元,回应方向深度冲企测单元结束,当回应方向4全测到TCP负载长度不 为0的报文时,当前的请求检测单元结束, 一个新的回应检测单元开始,这 样切分的结果,对于绝大多数HTTP应用,都可以把HTTP流切分成一个个 请求和回应深度检测单元。
检测单元控制模块30,分别与会话管理模块10和切分匹配模块20连接, 用于利用切分匹配模块20的识别结果,对数据流进行切分,获得深度检测单 元,交给深度检测模块40;检测单元控制模块30具体用于如果所述会话中某 个数据包命中开始切分特征,结束当前请求检测单元,所述数据包作为一个 新请求检测单元开始进行检测;如果所述会话中某个数据包命中结束切分特 征且与当前请求检测单元同方向,将所述数据包作为当前请求检测单元的最 后一个数据包进行;险测;如果所述会话中某个数据包命中结束切分特征且与 当前请求检测单元反向,结束当前请求检测单元,将所述数据包作为当前回 应检测单元的第 一个数据包进行检测。
深度检测模块40,与检测单元控制模块30连接,用于对深度检测单元进行特征查找,例如可以采用通用内容搜索算法AC或者PCRE算法。本发明中,当协议类型为TCP时,会话管理模块IO,还用于判断所述数 据流是否为TCP数据流;还需要增加TCP保序模块50,如图2所示。其中, TCP保序模块50用于接收来自会话管理模块10的IP数据包,根据数据包的 TCP序列号,对进入系统的数据包进行保序处理,按尽力原则对乱序报文进 行緩存,尽可能将TCP字节流有序的交给切分匹配模块20进行处理;例如, 接收了某个请求的数据流应该包括10个数据包,TCP序列号分别标为l到10, 但是由于网络传输等原因,这些数据包到达TCP保序模块50时,可能不是按 照顺序到达的,如果将乱序的数据包发送给切分匹配模块20,则无法正确识 别出切分特征,因此,TCP保序模块50将接收到的这些数据包都先进行緩存, 在根据TCP序列号顺序读取数据包并输出,以使输出的数据包按照正常的顺 序传输。本发明提供了 一种基于应用层的数据分割方法,应用于深度检测设备中, 所述方法如图3所示,包括以下步骤步骤301,所述深度检测设备检测来自用户的数据流是否为具有会话的数 据流,当为具有会话的数据流时,获取所述数据流对应的切分特征。其中, 获取数据流对应的切分特征,具体包括在所述会话数据流中进行切分特征 查找,当所述会话命中切分对象且有激活切分特征,将最高优先级的切分特 征所属切分对象为当前会话切分对象;如果所述会话命中切分对象但没有命 中激活切分特征,提取其中优先级最高切分特征;如果未命中切分特征、或 所述会话上无切分对象且无激活切分特征命中、或切分特征不属于会话切分 对象,将所述数据包作为对应方向上当前检测单元的后续数据。另外,对于 TCP协议,还需要判断所述数据流是否为TCP数据流,如果是,根据数据流 中TCP数据包的TCP序列号,对所述TCP数据包进行保序。步骤302,所述深度检测设备根据所述获得的切分特征对所述数据流进行 切分,获得深度检测单元;具体包括如果所述会话中某个数据包命中开始 切分特征,结束当前请求检测单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检 测单元同方向,将所述数据包作为当前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元 反向,结束当前请求4企测单元,将所述数据包作为当前回应4企测单元的第一 个数据包进行检测。其中,切分特征包括协议类型、方向和正则表达式;或 协议类型、方向和报文的长度特征,所述报文的长度特征是回应方向的负载 不为0,或者是具体的报文负载长度范围;切分特征还包括优先级。 步骤303,所述深度检测设备对所述深度检测单元进行深度检测。如图4所示,为图3技术方案的一种具体应用场景,包括以下步骤步骤401,深度检测设备接收数据流,对该数据流进行会话跟踪,根据发 送设备和接收设备的地址将同 一用户的同 一会话关联起来;步骤402,深度检测设备根据数据流中携带的报文类型标识判断该数据流 是否为TCP数据流,如果是TCP数据流,可能出现乱序现象,则转步骤403, 如果不是,例如是UDP或ICMP报文,则直接转步骤404;步骤403 、深度检测设备对TCP数据流进行TCP保序,根据数据包的TCP 序列号,对进入深度检测设备的TCP数据流进行保序处理,按尽力原则对乱 序数据包进行緩存,将TCP数据流有序发出;步骤404,深度检测设备判断该数据流是否有会话,如根据报文的五元组 信息(源IP地址、目的IP地址、协议号、源端口号、目的端口号)进行判断, 如果有会话,则转步骤405,如果没有会话,则转步骤413;由于会话通常包 括多个请求及回应报文,如果请求与回应报文之间有联系,可以确定有上层 应用会话;步骤405,深度检测设备在该会话中进行切分特征查找,查找结果包括在 该会话中未命中切分对象和未命中切分特征两种情况。当该会话命中切分对 象且有激活切分特征,则转步骤406,如果该会话命中切分对象但没有命中激 活切分特征,则转步骤407,如果未命中切分特征、或该会话上无切分对象且 无激活切分特征命中、或切分特征不属于会话切分对象,则转步骤414;步骤406,当命中切分对象且有激活切分特征,将最高优先级的切分特征 所属切分对象作为当前会话切分对象;
步骤407,提取其中优先级最高切分特征; 步骤408,结束当前回应检测单元;
上述步骤405至步骤408执行的具体作用是判断该会话中是否存在切分 特征,及相应的处理策略。
步骤409,深度检测设备对该会话进行切分特征判断,如果该会话中某个 数据包命中开始切分特征,则转步骤410,如果该会话中某个数据包命中结束 切分特征且与当前请求检测单元同方向,则转步骤411,如果该会话中某个数 据包命中结束切分特征且与当前请求检测单元反向,则转步骤412;
步骤410,深度4全测设备结束当前请求4企测单元,该数据包作为一个新请 求检测单元开始进行检测;
步骤411,深度检测设备将该数据包作为当前请求检测单元的最后一个数 据包进行检测;
步骤412,深度检测设备结束当前请求检测单元,将该数据包作为当前回 应检测单元的第 一个数据包进行检测;
步骤413,深度检测设备对数据包进行单包检测;对于不是会话的数据包, 由于前后数据包没有联系,且对于这些数据包没有相应的记录,因此只能在 某一范围内逐个包进行检查;
步骤414,深度检测设备将该数据包作为对应方向上当前检测单元的后续 数据;
步骤415,深度检测引擎对数据包进行深度检测,输出深度检测的匹配结果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。 基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软 件产品可以存储在一个非易失性存储介质(可以是CD-ROM, U盘,移动硬 盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的
模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述
进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一
个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆
分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此, 任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种基于应用层的数据分割方法,应用于深度检测设备中,其特征在于,所述方法包括以下步骤所述深度检测设备检测来自用户的数据流是否为具有会话的数据流,当为具有会话的数据流时,获取所述数据流对应的切分特征;所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获得深度检测单元;所述深度检测设备对所述深度检测单元进行深度检测。
2、 如权利要求1所述的方法,其特征在于,所述深度检测设备根据所述 获得的切分特征对所述数据流进行切分,之前还包括判断所述数据流是否为TCP数据流,如果是,根据数据流中TCP数据包 的TCP序列号,对所述TCP数据包进行保序。
3、 如权利要求2所述的方法,其特征在于,所述获取数据流对应的切分 特征,具体包括在所述会话数据流中进行切分特征查找,当所述会话命中切分对象且有 激活切分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;如果所述会话命中切分对象但没有命中激活切分特征,提取其中优先级 最高切分特征;如果未命中切分特征、或所述会话上无切分对象且无激活切分特征命中、 或切分特征不属于会话切分对象,将所述数据包作为对应方向上当前检测单 元的后续数据。
4、 如权利要求l所述的方法,其特征在于,所述深度检测设备根据所述 获得的切分特征对所述数据流进行切分,获得深度检测单元,具体包括如果所述会话中某个数据包命中开始切分特征,结束当前请求检测单元, 所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数 据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包作为当 前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命 中结束切分特征且与当前请求^r测单元反向,结束当前请求检测单元,将所述数据包作为当前回应检测单元的第 一个数据包进行检测。
5、 如权利要求1所述的方法,其特征在于,所述切分特征包括协议类型、 方向和正则表达式。
6、 如权利要求1所述的方法,其特征在于,所述切分特征包括协议类型、 方向和报文的长度特征,所述报文的长度特征是回应方向的负载不为0,或者 是具体的报文负载长度范围。
7、 如权利要求1至6中任一项所述的方法,其特征在于,所述切分特征 还包括优先级。
8、 一种基于应用层的数据分割装置,其特征在于,包括 会话管理模块,用于检测来自用户的数据流,将具有会话的数据流发送到切分匹配模块;切分匹配模块,与所述会话管理模块连接,用于接收来自所述会话管理 模块的数据流,获取所述数据流对应的切分特征;检测单元控制模块,分别与所述会话管理模块和所述切分匹配模块连接, 用于根据所述切分匹配模块获得的切分特征对来自所述会话管理模块的数据 流进行切分,获得深度4企测单元;深度检测模块,与所述检测单元控制模块连接,用于对所述深度检测单 元进行深度检测。
9、 如权利要求8所述的装置,其特征在于, 所述会话管理模块,还用于判断所述数据流是否为TCP数据流; 所述装置还包括TCP保序模块,分别与所述会话管理模块和切分匹配模块连接,用于接收来自所述会话管理模块的TCP数据流,根据数据流中TCP 数据包的TCP序列号,对TCP数据包进行保序,将TCP数据包有序地发送 给所述切分匹配模块。
10、 如权利要求8所述的装置,其特征在于,所述切分匹配模块,具体 用于在所述会话数据流中进行切分特征查找,当该会话命中切分对象且有激 活切分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;如果该会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特征;如果未命中切分特征、或该会话上无切分对象且无激活切分特征命 中、或切分特征不属于会话切分对象,将该数据包作为对应方向上当前^r测 单元的后续数据。
11、如权利要求8所述的装置,其特征在于,所述检测单元控制模块, 具体用于如果所述会话中某个数据包命中开始切分特征,结束当前请求检测 单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中 某个数据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包 作为当前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数 据包命中结束切分特征且与当前请求检测单元反向,结束当前请求检测单元, 将所述数据包作为当前回应检测单元的第一个数据包进行4全测。
全文摘要
本发明公开了一种基于应用层的数据分割方法,应用于深度检测设备中,所述方法包括以下步骤所述深度检测设备检测来自用户的数据流是否为具有会话的数据流,当为具有会话的数据流时,获取所述数据流对应的切分特征;所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获得深度检测单元;所述深度检测设备对所述深度检测单元进行深度检测。本发明中,能够十分高效的解决应用层设备深度检测数据切分问题,可以使深度检测单元和大部分协议的解析过程吻合,避免对这些协议的数据包进行解析,可以用于指导基于深度检测引擎的重组和基于流检测引擎检测流的创建和销毁,从而大大提高检测的精度和效率。
文档编号H04L29/08GK101557329SQ20091014361
公开日2009年10月14日 申请日期2009年5月27日 优先权日2009年5月27日
发明者捷 闵 申请人:杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1