CN101557329B - 一种基于应用层的数据分割方法及装置 - Google Patents

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

Info

Publication number
CN101557329B
CN101557329B CN200910143613XA CN200910143613A CN101557329B CN 101557329 B CN101557329 B CN 101557329B CN 200910143613X A CN200910143613X A CN 200910143613XA CN 200910143613 A CN200910143613 A CN 200910143613A CN 101557329 B CN101557329 B CN 101557329B
Authority
CN
China
Prior art keywords
segmentation
session
detection unit
feature
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910143613XA
Other languages
English (en)
Other versions
CN101557329A (zh
Inventor
闵捷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN200910143613XA priority Critical patent/CN101557329B/zh
Publication of CN101557329A publication Critical patent/CN101557329A/zh
Application granted granted Critical
Publication of CN101557329B publication Critical patent/CN101557329B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于应用层的数据分割方法,应用于深度检测设备中,所述方法包括以下步骤:所述深度检测设备检测来自用户的数据流是否为具有会话的数据流,当为具有会话的数据流时,获取所述数据流对应的切分特征;所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获得深度检测单元;所述深度检测设备对所述深度检测单元进行深度检测。本发明中,能够十分高效的解决应用层设备深度检测数据切分问题,可以使深度检测单元和大部分协议的解析过程吻合,避免对这些协议的数据包进行解析,可以用于指导基于深度检测引擎的重组和基于流检测引擎检测流的创建和销毁,从而大大提高检测的精度和效率。

Description

一种基于应用层的数据分割方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种基于应用层的数据分割方法及装置。
背景技术
随着网络的发展,应用层(4层以上)业务越来越多,基于应用层的设备如IPS(Intrusion Prevention System,入侵防御系统)、带宽管理设备等都需要进行深度报文检测,深度报文检测除了分析IP数据包的4层以下的内容(包括源地址、目的地址、源端口、目的端口以及协议类型)以外,还增加了应用层分析,识别各种网络应用及其内容。
在对报文进行深度检测时,需要根据协议的不同进行报文的重组和拷贝,即将多个数据包拷贝到存储器中进行重组,使得多个数据包关联到一个完整的数据流当中,在寻找攻击异常行为的同时,保持整个数据流的状态。这种重组和拷贝代价很大,需要占用大量存储空间及控制资源。为此很多厂家提出了基于流的检测技术,基于流的检测可以在网络数据经过应用层设备时,记录数据流的检测状态,将相邻数据包之间的上下文连接起来,形成一个完整的数据流,从而减少检测引擎进行大量的重组拷贝,提高应用层设备的综合性能。
不管是重组拷贝还是基于流的检测,都是通过TCP(Transmission Control Protocol,传输控制协议)进行通信。当报文深度检测时,将TCP传输的数据流划分成一个个满足应用层数据检测逻辑的深度检测单元,发送给深度检测引擎。对于重组拷贝方式,划分深度检测单元就是决定哪些数据包应该重组拷贝,对于基于流的检测,就是要决定哪些网络数据要在一个检测流上检测,什么时候创建和释放检测流,即在检测前,确定检测哪一段网络数据,在检测后,释放该段网络数据所占资源。
如何确定上述深度检测单元对于提高应用层设备的检测精度和检测性能至关重要,因为应用层设备对数据包进行深度检测的方法是模式匹配,指在给定长度为n的目标串T=T1、T2、...、Tn中查找长度为m的模式串P=P1、P2、...、Pm的首次出现或多次出现的过程,若P在T中出现1次或多次,则匹配成功,否则匹配失败。例如,可以采用基于正则表达式(Regular Expression)的模式匹配,用来描述或匹配一系列符合某个句法规则的字符串。简单地说,一个正则表达式是普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式,该模式描述在查找文字主体时待匹配的一个或多个字符串。比如“.abc[0-9]$描述了这样一类字符串:头部具有任意个任意字符,并以abc加一个数字结尾。”
而较准确的正则表达式需要对字符串模式有较准确的位置定位,这种位置定位的前提是交给深度检测引擎的深度检测单元本身满足应用协议数据逻辑,比如需要将HTTP(HyperText Transfer Protocol,超文件传输协议)的某个完整请求作为一个深度检测单元交给深度检测引擎进行检测,这样基于HTTP请求的特征匹配才会符合用户本身语义要求,相反,如果这个请求单元不完整或者含有其他请求单元的数据,那么可能导致深度检测引擎中的特征无法命中造成的漏报或者误报。
然而,现有的技术方案中,在进入深度检测引擎之前,一般按照一个系统预定义的长度对TCP数据流进行切分,当TCP请求或者回应的负载数据积累到一定长度(或超出一定时限),作为一个深度检测单元,发送给深度检测引擎。
因此,如果按照系统预定义的切分长度对数据流进行切分,有可能出现深度检测单元过大或者过小,导致该深度检测单元中的数据不完整或包含其他数据,进而使得深度检测单元与应用层协议数据逻辑单元不一致,深度检测引擎中的特征无法命中,从而降低深度检测的准确度和效率。
现有技术中还可以采用精确一些的系统对少数几个协议进行应用分析,根据应用协议本身的具体格式进行深度检测单元的切分,使得切分后的深度检测单元满足该几个协议应用层对应的格式要求。但是应用协议分析代价很大,需要对这些已知协议进行具体分析,并且无法实现通用性和高效性。
发明内容
本发明提供了一种基于应用层的数据分割方法及装置,以实现应用层设备切分数据流,保持切分效果与应用层协议数据逻辑单元一致,从而提高深度检测的准确度和效率。
本发明提供了一种基于应用层的数据分割方法,应用于深度检测设备中,所述方法包括以下步骤:
所述深度检测设备检测来自用户的数据流是否为具有会话的数据流,当为具有会话的数据流时,获取所述数据流对应的切分特征;其中,所述切分特征包括协议类型、方向和正则表达式;
所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获得深度检测单元;
所述深度检测设备对所述深度检测单元进行深度检测。
其中,所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,之前还包括:
判断所述数据流是否为TCP数据流,如果是,根据数据流中TCP数据包的TCP序列号,对所述TCP数据包进行保序。
其中,所述获取数据流对应的切分特征,具体包括:
在所述会话数据流中进行切分特征查找,当所述会话命中切分对象且有激活切分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;
如果所述会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特征;
如果未命中切分特征、或所述会话上无切分对象且无激活切分特征命中、或切分特征不属于会话切分对象,将所述数据包作为对应方向上当前检测单元的后续数据。
其中,所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获得深度检测单元,具体包括:
如果所述会话中某个数据包命中开始切分特征,结束当前请求检测单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包作为当前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元反向,结束当前请求检测单元,将所述数据包作为当前回应检测单元的第一个数据包进行检测。
其中,所述切分特征还可以是协议类型、方向和报文的长度特征,所述报文的长度特征是回应方向的负载不为0,或者是具体的报文负载长度范围。
其中,所述切分特征还包括优先级。
本发明还提供了一种基于应用层的数据分割装置,包括:
会话管理模块,用于检测来自用户的数据流,将具有会话的数据流发送到切分匹配模块;
切分匹配模块,与所述会话管理模块连接,用于接收来自所述会话管理模块的数据流,获取所述数据流对应的切分特征;其中,所述切分特征包括协议类型、方向和正则表达式;
检测单元控制模块,分别与所述会话管理模块和所述切分匹配模块连接,用于根据所述切分匹配模块获得的切分特征对来自所述会话管理模块的数据流进行切分,获得深度检测单元;
深度检测模块,与所述检测单元控制模块连接,用于对所述深度检测单元进行深度检测。
其中,
所述会话管理模块,还用于判断所述数据流是否为TCP数据流;
所述装置还包括TCP保序模块,分别与所述会话管理模块和切分匹配模块连接,用于接收来自所述会话管理模块的TCP数据流,根据数据流中TCP数据包的TCP序列号,对TCP数据包进行保序,将TCP数据包有序地发送给所述切分匹配模块。
其中,所述切分匹配模块,具体用于在所述会话数据流中进行切分特征查找,当该会话命中切分对象且有激活切分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;如果该会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特征;如果未命中切分特征、或该会话上无切分对象且无激活切分特征命中、或切分特征不属于会话切分对象,将该数据包作为对应方向上当前检测单元的后续数据。
其中,所述检测单元控制模块,具体用于如果所述会话中某个数据包命中开始切分特征,结束当前请求检测单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包作为当前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元反向,结束当前请求检测单元,将所述数据包作为当前回应检测单元的第一个数据包进行检测。
与现有技术相比,本发明具有以下优点:
本发明中,能够十分高效的解决应用层设备深度检测数据切分问题,可以使深度检测单元和大部分协议的解析过程吻合,避免对这些协议的数据包进行解析,可以用于指导基于深度检测引擎的重组和基于流检测引擎检测流的创建和销毁,从而大大提高检测的精度和效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明中一种基于应用层的数据分割装置结构图;
图2是本发明中另一种基于应用层的数据分割装置结构图;
图3是本发明中一种基于应用层的数据分割方法流程图;
图4是本发明中基于图3原理的一种基于应用层的数据分割方法流程图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的核心思想是:通过分析应用协议传输数据的共同特点,根据协议类型、传输方向、和协议内容特征定义来定义切分数据单元,把协议数据切分成一个个符合协议数据逻辑单元,从而能够满足绝大多数应用层协议的数据逻辑。现有技术中,深度检测设备对接收的数据流采用固定长度的切分方式,例如,按照协议数据逻辑5个数据包是一个组成单元,但如果设备按照4个数据包进行检测时,则会导致漏报,如果按照6个或者更多的数据包进行检测,则会导致误报。本发明中,深度检测设备接收数据包,如果在请求方向,获得多个数据包后,在响应方向获得一个负载不为0的数据包,则可以认为该请求结束,将这几个数据包组成请求深度检测数据包,发给深度检测引擎。对于采用正则表达式,将某些需要查找的关键词组成正则表达式,利用该正则表达式在接收数据包中进行匹配查找,将查找到的若干数据包组成一个深度检测单元,发给深度检测引擎。
本发明通过分析应用协议发现:一个应用层协议的会话,分为请求数据流和回应数据流,这两个数据流是交叉确认的,如果接收端设备回应的数据流满足一定特征(例如,回应数据流的应用层负载长度不为0),则说明发送端设备完成了请求数据流的传输;当发送端设备开始发送一个新请求数据流时,则说明接收端设备的回应数据流已经完成,因此可以通过一个方向的报文特征来对另一个方向的数据流进行深度检测单元切分,使深度检测单元和应用协议的逻辑数据单元一致。例如,HTTP POST或GET页面可能分片传输,即分成多个数据包传输,在对TCP数据流进行保序处理的前提下,往往可以通过服务器回应的TCP长度负载不为零来确定本次页面请求传输完成。
本发明基于上述规律,提出了一种基于应用层的数据分割装置,通过通用的切分特征定义和检测方法,实现对应用协议数据流的深度检测单元自动切分,使深度检测单元和应用协议的解析过程吻合,该装置如图1所示,包括:
会话管理模块10,用于检测来自用户的数据流,对该数据流进行会话管理和状态跟踪,其中状态跟踪是把单个用户的会话关联起来,将该用户的会话数据流发送到切分匹配模块20,会话管理和状态跟踪的实现类似与开源的Netfilter机制,在此不赘述;
切分匹配模块20,与会话管理模块10连接,用于根据预先设置的切分特征,对来自会话管理模块10的数据流进行切分特征匹配,识别出数据流的切分特征,作为检测单元控制模块30的切分依据;切分匹配模块20具体用于在所述会话数据流中进行切分特征查找,当该会话命中切分对象且有激活切分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;如果该会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特征;如果未命中切分特征、或该会话上无切分对象且无激活切分特征命中、或切分特征不属于会话切分对象,将该数据包作为对应方向上当前检测单元的后续数据。
其中,预先设置的切分特征的逻辑关系为:
切分对象=多个切分对;
切分对=[开始切分特征组]+[结束切分特征组];
切分特征组=多个切分特征;
切分特征={TCP|UDP|ICMP}+方向+[切分正则表达式]+[报文长度属性]+优先级;
报文长度属性={TCP-HAVE-DATA|payload low limit+payload highlimit}。
本发明通过一个切分对象对一个会话两个方向的数据流进行相互切分,一个切分对象可能包含一个或者多个切分对,每个切分对包含两个切分特征组:
开始切分特征组:当前数据包中的特征命中开始切分特征组后,当前数据包为该会话上一个请求检测单元的开始,该会话上一个回应检测单元结束;
结束切分特征组:当前数据包中的特征命中结束切分特征组后,该会话上一个当前请求检测单元结束,此时,如果一个当前数据包方向和现有请求检测单元方向一致,则该数据包为当前请求检测单元的最后一个数据包,否则当前请求检测单元结束,该数据包为当前请求检测单元对应的回应检测单元的开始;
一个切分对象的切分特征组中必须有一个切分特征标志为激活切分特征,一个会话命中了这些特征,相应的切分对象才会在该会话上生效。
切分特征有协议类型、方向、正则表达式、报文的长度特征、优先级五部分组成,其中:
协议类型可以是UDP(User Datagram Protocol,用户数据报协议)、TCP、ICMP(Internet Control Message Protocol,互联网控制消息协议)中的一种,会话管理模块10会对这三个协议建立会话;当然,协议类型不限于上述三种,当采用其他协议时,原理相同,只是需要将该协议类型添加到切分特征的协议类型中。
方向,可以选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:”^(?i)get|post|head|trace[x20\t]”正则表达式含义为:匹配HTTP请求方向中包含get或post或head或trace,后跟空格或者tab的字符串,且不区分大小写
        PRIOR:10          //优先级为10
Marcher rule 2:切分规则2
        PROTO:TCP           //协议类型为TCP
        DIR:response        //方向是回应报文
        PACK_LEN:TCP-HAVE-DATA   //数据包长度为有数据
        PRIOR:10        //优先级为10
Matcher Object HTTP:切分对象为HTTP
         Matcher Couple 1:切分对1
                 START:
                      1key  以命中切分规则1的数据包开始
                 END:
                      2以命中切分规则2的数据包结束
上述HTTP切分对象的含义是:当会话的请求方向命中HTTP的几个典型请求方法头(get或post)时,切分对象激活,请求方向开始一个新的深度检测单元,回应方向深度检测单元结束,当回应方向检测到TCP负载长度不为0的报文时,当前的请求检测单元结束,一个新的回应检测单元开始,这样切分的结果,对于绝大多数HTTP应用,都可以把HTTP流切分成一个个请求和回应深度检测单元。
检测单元控制模块30,分别与会话管理模块10和切分匹配模块20连接,用于利用切分匹配模块20的识别结果,对数据流进行切分,获得深度检测单元,交给深度检测模块40;检测单元控制模块30具体用于如果所述会话中某个数据包命中开始切分特征,结束当前请求检测单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包作为当前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元反向,结束当前请求检测单元,将所述数据包作为当前回应检测单元的第一个数据包进行检测。
深度检测模块40,与检测单元控制模块30连接,用于对深度检测单元进行特征查找,例如可以采用通用内容搜索算法AC或者PCRE算法。
本发明中,当协议类型为TCP时,会话管理模块10,还用于判断所述数据流是否为TCP数据流;还需要增加TCP保序模块50,如图2所示。其中,TCP保序模块50用于接收来自会话管理模块10的IP数据包,根据数据包的TCP序列号,对进入系统的数据包进行保序处理,按尽力原则对乱序报文进行缓存,尽可能将TCP字节流有序的交给切分匹配模块20进行处理;例如,接收了某个请求的数据流应该包括10个数据包,TCP序列号分别标为1到10,但是由于网络传输等原因,这些数据包到达TCP保序模块50时,可能不是按照顺序到达的,如果将乱序的数据包发送给切分匹配模块20,则无法正确识别出切分特征,因此,TCP保序模块50将接收到的这些数据包都先进行缓存,在根据TCP序列号顺序读取数据包并输出,以使输出的数据包按照正常的顺序传输。
本发明提供了一种基于应用层的数据分割方法,应用于深度检测设备中,所述方法如图3所示,包括以下步骤:
步骤301,所述深度检测设备检测来自用户的数据流是否为具有会话的数据流,当为具有会话的数据流时,获取所述数据流对应的切分特征。其中,获取数据流对应的切分特征,具体包括:在所述会话数据流中进行切分特征查找,当所述会话命中切分对象且有激活切分特征,将最高优先级的切分特征所属切分对象为当前会话切分对象;如果所述会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特征;如果未命中切分特征、或所述会话上无切分对象且无激活切分特征命中、或切分特征不属于会话切分对象,将所述数据包作为对应方向上当前检测单元的后续数据。另外,对于TCP协议,还需要判断所述数据流是否为TCP数据流,如果是,根据数据流中TCP数据包的TCP序列号,对所述TCP数据包进行保序。
步骤302,所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获得深度检测单元;具体包括:如果所述会话中某个数据包命中开始切分特征,结束当前请求检测单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包作为当前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元反向,结束当前请求检测单元,将所述数据包作为当前回应检测单元的第一个数据包进行检测。其中,切分特征包括协议类型、方向和正则表达式;或协议类型、方向和报文的长度特征,所述报文的长度特征是回应方向的负载不为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,深度检测设备结束当前请求检测单元,该数据包作为一个新请求检测单元开始进行检测;
步骤411,深度检测设备将该数据包作为当前请求检测单元的最后一个数据包进行检测;
步骤412,深度检测设备结束当前请求检测单元,将该数据包作为当前回应检测单元的第一个数据包进行检测;
步骤413,深度检测设备对数据包进行单包检测;对于不是会话的数据包,由于前后数据包没有联系,且对于这些数据包没有相应的记录,因此只能在某一范围内逐个包进行检查;
步骤414,深度检测设备将该数据包作为对应方向上当前检测单元的后续数据;
步骤415,深度检测引擎对数据包进行深度检测,输出深度检测的匹配结果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (10)

1.一种基于应用层的数据分割方法,应用于深度检测设备中,其特征在于,所述方法包括以下步骤:
所述深度检测设备检测来自用户的数据流是否为具有会话的数据流,当为具有会话的数据流时,获取所述数据流对应的切分特征;其中,所述切分特征包括协议类型、方向和正则表达式;
所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获得深度检测单元;
所述深度检测设备对所述深度检测单元进行深度检测。
2.如权利要求1所述的方法,其特征在于,所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,之前还包括:
判断所述数据流是否为TCP数据流,如果是,根据数据流中TCP数据包的TCP序列号,对所述TCP数据包进行保序。
3.如权利要求2所述的方法,其特征在于,所述获取数据流对应的切分特征,具体包括:
在所述会话数据流中进行切分特征查找,当所述会话命中切分对象且有激活切分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;
如果所述会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特征;
如果未命中切分特征、或所述会话上无切分对象且无激活切分特征命中、或切分特征不属于会话切分对象,将所述数据包作为对应方向上当前检测单元的后续数据。
4.如权利要求1所述的方法,其特征在于,所述深度检测设备根据所述获得的切分特征对所述数据流进行切分,获得深度检测单元,具体包括:
如果所述会话中某个数据包命中开始切分特征,结束当前请求检测单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包作为当前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命 中结束切分特征且与当前请求检测单元反向,结束当前请求检测单元,将所述数据包作为当前回应检测单元的第一个数据包进行检测。
5.如权利要求1所述的方法,其特征在于,所述切分特征还可以是协议类型、方向和报文的长度特征,所述报文的长度特征是回应方向的负载不为0,或者是具体的报文负载长度范围。
6.如权利要求1至5中任一项所述的方法,其特征在于,所述切分特征还包括优先级。
7.一种基于应用层的数据分割装置,其特征在于,包括:
会话管理模块,用于检测来自用户的数据流,将具有会话的数据流发送到切分匹配模块;
切分匹配模块,与所述会话管理模块连接,用于接收来自所述会话管理模块的数据流,获取所述数据流对应的切分特征;其中,所述切分特征包括协议类型、方向和正则表达式;
检测单元控制模块,分别与所述会话管理模块和所述切分匹配模块连接,用于根据所述切分匹配模块获得的切分特征对来自所述会话管理模块的数据流进行切分,获得深度检测单元;
深度检测模块,与所述检测单元控制模块连接,用于对所述深度检测单元进行深度检测。
8.如权利要求7所述的装置,其特征在于,
所述会话管理模块,还用于判断所述数据流是否为TCP数据流;
所述装置还包括TCP保序模块,分别与所述会话管理模块和切分匹配模块连接,用于接收来自所述会话管理模块的TCP数据流,根据数据流中TCP数据包的TCP序列号,对TCP数据包进行保序,将TCP数据包有序地发送给所述切分匹配模块。
9.如权利要求8所述的装置,其特征在于,所述切分匹配模块,具体用于在所述会话数据流中进行切分特征查找,当该会话命中切分对象且有激活切分特征,将最高优先级切分特征所属切分对象作为当前会话切分对象;如 果该会话命中切分对象但没有命中激活切分特征,提取其中优先级最高切分特征;如果未命中切分特征、或该会话上无切分对象且无激活切分特征命中、或切分特征不属于会话切分对象,将该数据包作为对应方向上当前检测单元的后续数据。
10.如权利要求7所述的装置,其特征在于,所述检测单元控制模块,具体用于如果所述会话中某个数据包命中开始切分特征,结束当前请求检测单元,所述数据包作为一个新请求检测单元开始进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元同方向,将所述数据包作为当前请求检测单元的最后一个数据包进行检测;如果所述会话中某个数据包命中结束切分特征且与当前请求检测单元反向,结束当前请求检测单元,将所述数据包作为当前回应检测单元的第一个数据包进行检测。 
CN200910143613XA 2009-05-27 2009-05-27 一种基于应用层的数据分割方法及装置 Active CN101557329B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910143613XA CN101557329B (zh) 2009-05-27 2009-05-27 一种基于应用层的数据分割方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910143613XA CN101557329B (zh) 2009-05-27 2009-05-27 一种基于应用层的数据分割方法及装置

Publications (2)

Publication Number Publication Date
CN101557329A CN101557329A (zh) 2009-10-14
CN101557329B true CN101557329B (zh) 2011-05-11

Family

ID=41175283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910143613XA Active CN101557329B (zh) 2009-05-27 2009-05-27 一种基于应用层的数据分割方法及装置

Country Status (1)

Country Link
CN (1) CN101557329B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741644B (zh) * 2009-12-16 2012-05-30 成都市华为赛门铁克科技有限公司 流量检测方法及装置
CN102413141B (zh) 2011-11-30 2014-10-08 华为技术有限公司 网络消息解析方法及通信设备
CN102523139B (zh) * 2012-01-06 2015-01-14 深圳市共进电子股份有限公司 高速网络协议深度检测装置及检测方法
CN102664833B (zh) * 2012-05-03 2015-01-14 烽火通信科技股份有限公司 家庭网关及分析用户上网行为和监控网络质量的方法
CN103457824A (zh) * 2012-05-31 2013-12-18 中兴通讯股份有限公司 报文处理方法及装置
CN103607313B (zh) * 2013-12-09 2017-04-19 深圳市双赢伟业科技股份有限公司 基于正则表达式的tcp报文匹配方法
CN105763391B (zh) * 2014-12-17 2019-06-25 中国移动通信集团公司 一种会话数据流处理系统、方法和相关设备
CN105162626B (zh) * 2015-08-20 2018-07-06 西安工程大学 基于众核处理器的网络流量深度识别系统及识别方法
CN106506482A (zh) * 2016-11-02 2017-03-15 合肥微梦软件技术有限公司 一种基于网络探测引擎的会话管理系统
CN109314662B (zh) * 2016-11-11 2020-09-11 华为技术有限公司 数据传输方法及装置
CN111800257A (zh) * 2020-06-01 2020-10-20 青岛海尔智能技术研发有限公司 一种3d模型加密传输方法、解密方法
CN113068087B (zh) * 2021-03-31 2022-03-25 烽火通信科技股份有限公司 一种通过切包重组实现分布式信元交换的方法与装置
CN112994984B (zh) * 2021-04-15 2021-07-30 紫光恒越技术有限公司 识别协议及内容的方法、存储设备、安全网关、服务器
CN114760256B (zh) * 2022-04-14 2024-01-30 曙光网络科技有限公司 数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN101557329A (zh) 2009-10-14

Similar Documents

Publication Publication Date Title
CN101557329B (zh) 一种基于应用层的数据分割方法及装置
Narayan et al. A survey of automatic protocol reverse engineering tools
US9413776B2 (en) System for finding code in a data flow
CN109194680B (zh) 一种网络攻击识别方法、装置及设备
US7706378B2 (en) Method and apparatus for processing network packets
US8166547B2 (en) Method, apparatus, signals, and medium for managing a transfer of data in a data network
CN107592303B (zh) 一种高速镜像网络流量中外发文件的提取方法及装置
US9356844B2 (en) Efficient application recognition in network traffic
US9210090B1 (en) Efficient storage and flexible retrieval of full packets captured from network traffic
US11290484B2 (en) Bot characteristic detection method and apparatus
US7571278B2 (en) Content access memory (CAM) as an application hardware accelerator for servers
CN106936791B (zh) 拦截恶意网址访问的方法和装置
KR20130014226A (ko) 공격 트래픽 형태별 특성에 따른 dns 플러딩 공격 탐지 방법
CN102724317A (zh) 一种网络数据流量分类方法和装置
WO2014187238A1 (zh) 应用类型识别方法及网络设备
US20080313708A1 (en) Data content matching
WO2020037781A1 (zh) 一种实现服务器防攻击方法及装置
CN111865996A (zh) 数据检测方法、装置和电子设备
KR102014741B1 (ko) Fpga 기반 고속 스노트 룰과 야라 룰 매칭 방법
CN110581780B (zh) 针对web服务器资产的自动识别方法
CN106506400B (zh) 一种数据流识别方法及出口设备
CN115664833B (zh) 基于局域网安全设备的网络劫持检测方法
KR102014736B1 (ko) Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치
JP4391455B2 (ja) DDoS攻撃に対する不正アクセス検知システム及びプログラム
JP4027213B2 (ja) 侵入検知装置およびその方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 310013 Binjiang District, Hangzhou, Binjiang Avenue, No. Huarong Times Building, room 1601, room 3880

Patentee after: Hangzhou Dipu Polytron Technologies Inc

Address before: 310013 Binjiang District, Hangzhou, Binjiang Avenue, No. Huarong Times Building, room 1601, room 3880

Patentee before: Hangzhou Dipu Technology Co., Ltd.