CN112491643B - 深度报文检测方法、装置、设备及存储介质 - Google Patents
深度报文检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112491643B CN112491643B CN202011252361.7A CN202011252361A CN112491643B CN 112491643 B CN112491643 B CN 112491643B CN 202011252361 A CN202011252361 A CN 202011252361A CN 112491643 B CN112491643 B CN 112491643B
- Authority
- CN
- China
- Prior art keywords
- application
- flow
- application flow
- message
- rule
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种深度报文检测方法、装置、设备及存储介质,该方法包括:获取未能识别应用类型的第一流量数据,所述第一流量数据包括至少一条应用流;针对所述第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据;将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型。在实时DPI处理后,对于未识别应用类型的流量数据,可以基于预先训练获得的识别模型进行二次识别,进一步识别其应用类型,有效提高DPI识别率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种深度报文检测方法、装置、设备及存储介质。
背景技术
随着互联网技术的飞速发展,为了满足用户对网络安全性、可靠性及业务服务质量的要求,DPI(Deep Packet Inspection,深度报文检测)技术逐渐发展起来。DPI不仅能够检测普通报文检测方法所能检测的源地址、目的地址、源端口、目的端口以及业务类型等,还能够识别报文的应用类型,为网络应用的管理和流量监控提供有效的数据支撑,从而为用户提供更加精细化的服务。
现有技术中,通常采用DPI设备实时对接收到的报文进行应用类型识别,但是,往往存在很多的报文,比如加密的报文,DPI设备无法实时识别出报文的应用类型,导致DPI识别率较低。
发明内容
本发明提供一种深度报文检测方法、装置、设备及存储介质,以解决现有技术DPI识别率低等缺陷。
第一个方面,本发明提供一种深度报文检测方法,包括:
获取未能识别应用类型的第一流量数据,所述第一流量数据包括至少一条应用流;
针对所述第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据;
将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型;
其中,当所述识别模型为卷积神经网络模型时;相应地,针对所述第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据,具体包括:
针对所述第一流量数据中的每条应用流,根据第二获取规则获取该应用流的L个报文,L为预设正整数,所述第二获取规则与所述卷积神经网络模型训练过程中的获取规则一致;
针对该应用流L个报文中的每个报文,获取该报文payload的前D个字节,D为预设正整数;
根据该应用流的各报文的payload的前D个字节,确定该应用流对应的第一特征数据。
第二个方面,本发明提供一种深度报文检测装置,包括:
获取模块,用于获取未能识别应用类型的第一流量数据,所述第一流量数据包括至少一条应用流;
提取模块,用于针对所述第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据;
处理模块,用于将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型;
其中,当所述识别模型为卷积神经网络模型时;所述提取模块具体用于:针对所述第一流量数据中的每条应用流,根据第二获取规则获取该应用流的L个报文,L为预设正整数,所述第二获取规则与所述卷积神经网络模型训练过程中的获取规则一致;针对该应用流L个报文中的每个报文,获取该报文payload的前D个字节,D为预设正整数;根据该应用流的各报文的payload的前D个字节,确定该应用流对应的第一特征数据。
第三个方面,本发明提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。
第四个方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。
本发明提供的深度报文检测方法、装置、设备及存储介质,在实时DPI处理后,对于未识别应用类型的流量数据,可以基于预先训练获得的识别模型进行二次识别,进一步识别其应用类型,有效提高DPI识别率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的深度报文检测方法的流程示意图;
图2为本发明一实施例提供的深度报文检测方法的一种示例性流程示意图;
图3为本发明一实施例提供的深度报文检测方法的另一种示例性流程示意图;
图4为本发明一实施例提供的深度报文检测方法的再一种示例性流程示意图;
图5为本发明一实施例提供的深度报文检测方法的又一种示例性流程示意图;
图6为本发明一实施例提供的卷积神经网络模型的一种示例性网络结构示意图;
图7为本发明一实施例提供的全流量存储产品的一种示例性框图;
图8为本发明另一实施例提供的深度报文检测装置的结构示意图;
图9为本发明一实施例提供的电子设备的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明所涉及的名词进行解释:
应用流:将报文根据五元组分为一个个的应用流,五元组包括源地址、目的地址、源端口、目的端口及协议类型,即五元组相同的报文属于同一应用流。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个及两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
本发明一实施例提供一种深度报文检测方法,用于全流量存储产品及其他可实施的场景。本实施例的执行主体为深度报文检测装置,该装置可以设置在电子设备中,该电子设备可以是服务器或者其他可实现的计算机设备。
如图1所示,为本实施例提供的深度报文检测方法的流程示意图,该方法包括:
步骤101,获取未能识别应用类型的第一流量数据,第一流量数据包括至少一条应用流。
具体的,在实时DPI处理过程中,往往存在一些报文未能识别出其应用类型,导致后续无法对这些流量数据进行业务分析,因此,在实时DPI处理过程中,可以进行全流量存储,在获得实时DPI结果后,可以将原始流量数据(即原始的报文)及其对应的实时DPI结果进行存储,在进行业务分析时,可以对未能识别应用类型的原始流量数据进行二次识别。即第一流量数据为存储的未能识别应用类型的原始流量数据。第一流量数据可以包括至少一条应用流,每条应用流可以包括多个报文,五元组相同的报文即属于同一应用流。
可选地,实时DPI结果可以包括报文的应用类型,也即对于能够识别应用类型的报文,即具有实时DPI结果,对于未能识别应用类型的报文则不具有实时DPI结果。
可选地,可以是对于能够实时识别应用类型的报文只存储其实时DPI结果,对于未能实时识别应用类型的报文,存储原始流量数据,具体可以根据实际需求设置。
可选地,实时DPI结果也可以是包括报文的应用类型或者报文未能识别应用类型的信息,也即对于能够识别应用类型的报文,其实时DPI结果包括的是其应用类型,对于未能识别应用类型的报文,其实时DPI结果包括的是其未能识别应用类型的信息;该未能识别应用类型的信息可以是用任意可标识的信息表示,比如数字“0”,字符串“NULL”,具体可以根据实际需求设置,只要能够标记该报文未能识别应用类型即可。
可选地,在实时DPI处理过程中,对于属于同一应用流的报文,只要识别出一个报文的应用类型,即可确定该应用流的应用类型,后续该应用流的其他报文则可以不再进行实时DPI处理。
可选地,实时DPI处理可以是在某一服务器(可以称为第一服务器)中实现,二次识别可以是在另一服务器(可以称为第二服务器)中实现,则在进行二次识别时,第二服务器可以是从第一服务器获取未能识别应用类型的原始流量数据,作为第一流量数据。
可选地,实时DPI处理与二次识别也可以是在同一服务器(比如上述第二服务器)中实现,则第二服务器可以直接从自身全流量存储区域获取未能识别应用类型的第一流量数据。可选地,全流量存储区域也可以是其他服务器或存储系统,则第二服务器可以从其他服务器或存储系统中的全流量存储区域获取未能识别应用类型的第一流量数据。
步骤102,针对第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据。
在获取到未能识别应用类型的第一流量数据后,则可以对第一流量数据进行特征提取,用于二次识别。在进行特征提取时,可以针对每条应用流来提取特征。具体来说,针对第一流量数据中的每条应用流,对该应用流中报文进行特征提取,获得该应用流对应的第一特征数据。
示例性的,可以是对该应用流中报文的有效载荷(有效数据)payload长度进行各种相关统计,将统计结果作为该应用流对应的第一特征数据。
示例性的,也可以是对该应用流中报文的payload字节进行提取,组成该应用流对应的第一特征数据。具体的特征提取方式可以根据实际需求来设置。
具体的,针对二次识别的不同识别模型,第一特征数据的提取方式可以不同,具体根据实际需求设置。
步骤103,将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型。
具体的,识别模型可以是机器学习模型,也可以是深度学习模型。具体的识别模型可以根据实际需求设置。可以理解地,对于不同的识别模型,可以提取不同的特征,具体可以根据实际需求设置。
在获得各应用流对应的第一特征数据后,则可以将各应用流对应的第一特征数据输入相应的识别模型,对各应用流进行二次识别,来获得各应用流的应用类型。
示例性的,识别模型可以为随机森林模型,相应的,各应用流对应的第一特征数据则可以是通过对应用流中报文的payload长度进行各种相关统计获得的统计特征,还可以是统计特征结合该应用流的传输协议类型。
示例性的,识别模型可以为卷积神经网络模型,相应的,各应用流对应的第一特征数据则可以是根据一定规则提取各应用流中报文的payload字节组成灰度图像。
示例性的,识别模型还可以是支持向量机模型,以及其他任意可实施的模型,本实施例不做限定。
在一些实施例中,还可以获取已识别应用类型的第二流量数据进行二次识别,验证实时DPI结果的准确性,本实施例不做限定。具体识别方式与上述过程一致,在此不再赘述。
在一些实施例中,二次识别的第一流量数据可以是加密流量数据也可以是未加密流量数据,本实施例不做限定。
在一些实施例中,在通过二次识别获得第一流量数据的应用类型后,可以基于实时DPI结果及二次识别结果进行业务分析,为后续流量管理及流量控制提供数据支撑。
在一些实施例中,可以结合多个不同的识别模型,进行多次识别,提高DPI识别准确率。
本实施例提供的深度报文检测方法,在实时DPI处理后,对于未识别应用类型的流量数据,可以基于预先训练获得的识别模型进行二次识别,进一步识别其应用类型,有效提高DPI识别率。
本发明另一实施例对上述实施例提供的方法做进一步说明。
如图2所示,为本实施例提供的深度报文检测方法的一种示例性流程示意图。
作为一种可实施的方式,在上述实施例的基础上,可选地,该方法还可以包括:
步骤2011,接收待处理报文。
具体的,实时DPI处理是对网络传输的报文进行实时识别,确定其应用类型,即当接收到网络传输的报文,实时将该报文作为待处理报文,进行后续的实时深度报文检测处理。
可选地,该方法的执行主体深度报文检测装置可以是以串接的方式部署在网络链路之间,也可以是以并接方式,具体可以根据实际需求设置。串接方式以直连的形式接入,不需要进行网络连接配置,直接通过数据链路层二层透传;并接方式可以是采用分光器或交换机镜像端口等设备将网间的信号镜像到旁路部署的深度报文检测装置中,并不影响原链路的数据传输。
步骤2012,对待处理报文进行实时深度报文检测处理,获得第一识别结果,第一识别结果包括待处理报文的应用类型或者待处理报文未能识别应用类型的信息。
具体的,在接收到待处理报文后,即可对待处理报文进行实时深度报文检测处理,获得第一识别结果,也即上述的实时DPI结果。对于能够识别出应用类型的待处理报文,其第一识别结果包括该待处理报文的应用类型;对于不能够识别出应用类型的待处理报文,其第一识别结果包括该待处理报文未能识别应用类型的信息,比如,以“0”、“NULL”或者其他可实施的信息来表示。
可选地,对待处理报文进行实时深度报文检测处理可以采用现有技术中任一种处理方式,比如:提取待处理报文中的原特征信息,将该原特征信息依次与特征库中记录的特征信息进行匹配,直至在特征库中找到与该原特征信息匹配的目标特征信息,根据目标特征信息以及特征库中记录的该目标特征信息对应的应用类型,来确定该待处理报文的应用类型,即将目标特征信息对应的应用类型作为该待处理报文的应用类型,将该待处理报文的应用类型作为该待处理报文对应的第一识别结果。若在特征库中未找到与该原特征信息匹配的目标特征信息,则确定该待处理报文未能识别应用类型,则将该待处理报文未能识别应用类型的信息作为该待处理报文对应的第一识别结果。
步骤2013,存储待处理报文及待处理报文对应的第一识别结果。
在获得待处理报文对应的第一识别结果后,需要存储该待处理报文及其对应的第一识别结果,为后续二次识别提供数据支撑。
在一实施方式中,对待处理报文进行实时深度报文检测处理,获得第一识别结果,包括:根据预设的多级匹配规则,对待处理报文进行实时深度报文检测处理,获得第一识别结果。
需要说明的是,步骤2011-2013是随着待处理报文的接收不断重复执行的过程,不限于在步骤101之前,图2只是一种示例性的展示,用于表示步骤101获取的未能识别应用类型的第一流量数据是基于步骤2011-2013的执行积累存储的原始流量数据,在步骤101之后,仍可以重复执行步骤2011-2013,也可以在需要的时候再重复执行步骤101-103。
如图3所示,为本实施例提供的深度报文检测方法的另一种示例性流程示意图。
在一实施方式中,根据预设的多级匹配规则,对待处理报文进行实时深度报文检测处理,获得第一识别结果,包括:
步骤2021,将待处理报文与规则库中的第一级规则进行匹配,获得第一级匹配结果。
步骤2022,若第一级匹配结果为未匹配成功,则确定待处理报文为未能识别应用类型的报文。
步骤2023,若第一级匹配结果为匹配到目标第一级规则,则将待处理报文与目标第一级规则下的第二级规则进行匹配,获得第二级匹配结果。
步骤2024,若第二级匹配结果为未匹配成功,则将目标第一级规则对应的应用类型作为待处理报文的应用类型。
步骤2025,若第二级匹配结果为匹配到目标第二级规则,则将待处理报文与目标第二级规则下的第三级规则进行匹配。
步骤2026,将待处理报文的应用类型或者待处理报文未能识别应用类型的信息作为第一识别结果。
具体的,为了提高实时DPI处理性能,将实时DPI处理过程分为多级匹配,可以根据实际需求设置各级匹配规则,匹配规则可以包括采用待处理报文的哪些原特征信息,待处理报文的这些原特征信息符合哪些条件可以确定该待处理报文与该匹配规则匹配,以及该匹配规则对应的应用类型。具体来说,对于第一级匹配,可以将待处理报文与第一级匹配规则进行匹配,第一级匹配规则包括多条规则,每条规则对应一个应用类型,可以采用正则匹配的方式进行匹配,若在第一级规则中,未找到待处理报文匹配的规则,则可以确定第一级匹配结果为未匹配成功,可以确定待处理报文为未能识别应用类型的报文,无需再进行后续等级的匹配。当匹配到其中一条规则(可以称为目标第一级规则),则可以确定第一级匹配成功,第一级匹配结果可以为匹配到的目标第一级规则。可以继续第二级匹配,将待处理报文与目标第一级规则下的第二级规则进行匹配,获得第二级匹配结果,具体匹配方式与第一级类似,在此不再赘述。若第二级匹配结果为未匹配成功,则将第一级匹配结果的目标第一级规则对应的应用类型作为待处理报文的应用类型。若第二级匹配到目标第二级规则,则需要继续进行第三级匹配,将待处理报文与目标第二级规则下的第三级规则进行匹配,获得第三级匹配结果,以此类推,直至第M+1级匹配结果为未匹配成功,将目标第M级规则对应的应用类型作为待处理报文的应用类型,或者,直至第N级匹配结果为匹配到目标第N级规则,将目标第N级规则对应的应用类型作为待处理报文的应用类型,M、N均为正整数,N为预设的匹配等级数,M小于N。N的具体值可以根据实际需求设置,比如N可以设置为2、3、4、5,等等。M的值则是根据实际待处理报文的具体情况而定。
规则库中的不同等级的规则可以按照树的结构进行设置。如表1所示,为本实施例提供的规则库的示例性结构。
表1
其中,第一级规则可以称为第二级规则的父级规则,第二级规则可以称为第一级规则的子级规则,第二级规则可以称为第三级规则的父级规则,第三级规则可以称为第二级规则的子级规则,以此类推。每个子级规则中可以携带有其父级规则的标识,比如表1中,第一级规则1,其第二级规则携带有第一级规则的标识“1”,表1中仅为示例性表示,具体的父级规则的标识可以根据实际需求设置,本实施例不做限定。在实际应用中规则库可以采用任意形式进行存储,不限于上述表格形式,只要能够体现各级规则之间的关系即可。比如以文本形式存储,通过起始符来表示一条规则的开始。
示例性的,第一级规则为:
-SAPRO HTTP-RULEID 4-TRANS TCP-PROFILE SINGLE-DOUBT 1
-SIG 0:BEGIN:5:BIG:STR:EQ:"HTTP/"
其中,SAPRO HTTP表示HTTP规则的开始。
相应的,第二级规则为:
-SAPRO HTTP-IMAGE-RULEID 1-TRANS TCP-PROFILE SINGLE-PID HTTP
-SIG-1:BEGIN:20:BIG:STR:EQ:"Content-Type\:\image/"
其中,“PID HTTP”即为该第二级规则的父级规则标识,表示该第二级规则为上述的第一级规则HTTP规则下的第二级规则。
可以理解地,在匹配过程中,每完成一级匹配,可以判断是否完成了预设的N级匹配,若完成了N级匹配,则可以结束匹配。
由于将匹配过程进行分级,第一级匹配只需与规则库中第一级规则进行匹配,当匹配成功后才进行第二级匹配,同样地,第二级匹配也只与第二级规则进行匹配,以此类推,对于未能识别应用类型的待处理报文或者对于在前面等级即匹配结束的待处理报文来说,无需进行后续等级的匹配,可以大大减少处理数据量,减少处理时间,从而提高处理效率,有效提升实时DPI处理性能。
可选地,将待处理报文与规则库中的第一级规则进行匹配,获得第一级匹配结果,包括:将待处理报文的payload的前C个字节与规则库中的第一级规则进行匹配,获得第一级匹配结果;或者,将待处理报文的payload的前C个字节及后F个字节,与规则库中的第一级规则进行匹配,获得第一级匹配结果。
其中,C、F为预设正整数,C和F可以相同也可以不同,具体可以根据实际需求设置。
具体的,在进行第一级匹配时,可以只提取待处理报文的payload的前C个字节进行匹配,进一步提升实时DPI处理性能。由于有一些报文应用类型相关信息可能存在于payload中后面的字节中,因此,也可以提取待处理报文的payload的前C个字节和后F个字节进行匹配,相对于只提取前C个字节,可以提高识别率。
可选地,在第二级匹配以及第二级后的匹配过程中,可以采用待处理报文的payload的全部字节进行匹配。
示例性的,N为4,若第三级匹配成功,则继续进行第四级匹配,若第四级未匹配成功,则根据第三级匹配结果的目标第三级规则来确定待处理报文的应用类型,若第四级匹配成功,则根据第四级匹配结果的目标第四级规则确定待处理报文的应用类型。
示例性的,待处理报文的payload中以“http/”开头,第一级匹配到的目标第一级规则为http规则“-SAPRO HTTP-RULEID 4-TRANS TCP-PROFILE SINGLE-DOUBT 1;-SIG 0:BEGIN:5:BIG:STR:EQ:"HTTP/"”,对应一级应用类型“http”,待处理报文的payload中包括“Content-Type:image”,第二级匹配到的目标第二级规则为“-SAPRO HTTP-IMAGE-RULEID1-TRANS TCP-PROFILE SINGLE-PID HTTP;-SIG-1:BEGIN:20:BIG:STR:EQ:"Content-Type\:\image/"”,即对应二级应用类型为“http图片”。若第三级匹配未匹配成功,则根据第二级匹配结果可确定该待处理报文的应用类型为“http图片”。
示例性的,若第三级匹配成功,则对应的三级应用类型可以为“门户网站A的图片”、“门户网站B的图片”或者“门户网站C的图片”,具体可以根据实际需求设置。
在实际应用中,还可以基于待处理报文的五元组及payload的多级匹配共同确定该待处理报文的应用类型。比如,根据payload的多级匹配确定待处理报文的应用类型为二级应用类型“http图片”,根据该待处理报文的五元组中IP地址对应的域名可以获得相应的门户网站特征,比如为门户网站A,则可以确定该待处理报文的应用类型为“门户网站A的图片”。
可选地,C可以根据实际需求设置,比如可以设置为128,也可以设置为其他任意可实施的值比如16、64、256,等等。
通过将实时DPI设置为分级匹配,当前面等级的匹配未成功时,匹配结束,无需进行后续等级的匹配,可有效减少数据处理量,提高处理速率,从而提升实时DPI处理性能。
在一实施方式中,获取未能识别应用类型的第一流量数据,包括:获取至少一组属于同一条应用流的未能识别应用类型的报文作为第一流量数据。
具体的,在实时DPI处理过程中,在获得第一识别结果后,将待处理报文及其对应的第一识别结果进行存储,对于属于同一条应用流的报文可以存储在一起。在进行业务分析时,可以获取至少一组属于同一条应用流的未能识别应用类型的报文作为第一流量数据,进行二次识别。
可选地,还可以设置应用流标识,以便于后续二次识别时,可以方便地获取至少一条应用流的未能识别应用类型的报文作为第一流量数据。
如图4所示,为本实施例提供的深度报文检测方法的再一种示例性流程示意图。
作为另一种可实施的方式,在上述实施例的基础上,可选地,识别模型为随机森林模型;针对第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据,包括:
步骤2031,针对第一流量数据中的每条应用流,根据第一获取规则获取该应用流的S个报文,S为预设正整数,第一获取规则与识别模型训练过程中的获取规则一致。
步骤2032,根据该应用流的S个报文的payload长度及该应用流的传输层协议类型,确定该应用流对应的第一特征数据,报文的payload长度为该报文payload的字节数。
经创造性研究发现,随机森林模型对于流量数据的统计特征具有极好的分类效果,且随机森林模型为集成模型,泛化性能较好,不容易过拟合或者欠拟合,因此,采用随机森林模型对未能识别应用类型的流量数据进行二次识别,以进一步确定出其应用类型,提高DPI识别率及准确率。
具体来说,可以针对第一流量数据中的每条应用流来提取统计特征,作为第一流量数据对应的第一特征数据,可以根据第一获取规则获取该应用流的S个报文,S为预设的正整数,具体可以根据实际需求设置,比如S可以设置为50、64、78,等等。可选地,获取的S个报文可以是S个非零payload报文。第一获取规则可以根据实际需求设置,比如可以是获取每个应用流的前S个报文、或者后S个报文、或者中间的S个报文,也可以是按一定的间隔获取S个报文,等等。需要说明的是,第一特征数据的获取规则应与随机森林模型训练过程中的获取规则一致。比如在训练时,获取的是前S个报文,则在应用随机森林模型时也需获取应用流的前S个报文。在获得第一流量数据中每条应用流的S个报文后,针对每个应用流,则可以根据该应用流的S个报文的payload长度及该应用流的传输层协议类型,确定该应用流对应的第一特征数据,报文的payload长度为该报文payload的字节数。
示例性的,以该条应用流的前S个报文为例,可以根据该应用流的前S个报文的payload长度,确定该应用流的payload平均长度、payload长度标准差、最大payload长度、第一个payload长度、第一四分位数的payload长度、第二四分位数的payload长度、第三四分位数的payload长度及最后一个payload长度。结合该应用流的传输协议类型(比如TCP、UDP等),组成该应用流对应的第一特征数据。如表2所示,为一条应用流对应的第一特征数据的示例。
表2
在一实施方式中,可选地,随机森林模型可以是预先在线下进行训练获得,可以是在其他任意可实施的计算机设备进行训练获得。
在一实施方式中,可选地,在将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型之前,该方法还包括:
获取第一训练样本数据,第一训练样本数据包括第一特征样本数据及对应的第一应用类型标签数据;基于第一训练样本数据,对预先建立的随机森林进行训练优化,当随机森林的识别结果满足第一条件时停止训练,获得随机森林模型。
具体的,随机森林模型也可以是在本发明实施例提供的深度报文检测装置中进行训练获得,可以预先获取相应的训练样本数据(可以称为第一训练样本数据),第一训练样本数据可以包括第一特征样本数据及对应的第一应用类型标签数据。基于第一训练样本数据,对预先建立的随机森林进行训练优化,当随机森林的识别结果满足第一条件时停止训练,获得随机森林模型。
示例性的,可以获取不同企业产品的流量数据作为原始样本数据,比如总共选择400个原始样本数据,可以从每个原始样本数据中提取如表2所示的特征,并打上应用类型标签,比如应用ID,作为第一训练样本数据,对建立的随机森林进行有监督训练,获得随机森林模型。
具体的训练过程可以采用现有技术中任意可实施的方式,比如,可以基于第一训练样本数据,获取多个训练样本子集,根据多个训练样本子集生成多颗决策树;该多颗决策树构成随机森林模型。还可以获取更多训练样本子集,训练样本子集可以包括特征样本子集及对应的应用类型标签,依次输入随机森林模型,获得多个预测数据,预测数据是随机森林模型输出的预测结果,可以包括各训练样本子集对应的预测应用类型,根据多个预测数据及训练样本子集对应的应用类型标签,计算随机森林模型的精度,根据计算获得的精度进一步对随机森林进行优化,获得优化的随机森林模型作为最终随机森林模型应用流量数据的二次识别。在实际应用中,还可以实时或定时对随机森林模型进行优化,具体可以根据实际需求设置,本实施例不做限定。
示例性的,如表3所示,为本实施例提供的采用随机森林模型的特征及标签示例。0-4表示5个样本。
表3
0 | 1 | 2 | 3 | 4 | |
标签 | 1306 | 1306 | 1306 | 1306 | 1306 |
IsTcp | 1 | 1 | 1 | 1 | 1 |
IsUdp | 0 | 0 | 0 | 0 | 0 |
PLLMean | 369.2500 | 499.2500 | 371.4375 | 178.2500 | 290.6250 |
PLLVariance | 360.6795 | 534.5696 | 479.8041 | 192.2815 | 384.4628 |
PLLnMax | 1404 | 1452 | 1452 | 589 | 1452 |
PLL1 | 48 | 45 | 42 | 39 | 42 |
PLLQuartile | 64 | 64 | 1009 | 86 | 1009 |
PLLQuartile2 | 411 | 962 | 60 | 31 | 185 |
PLLQuartile3 | 253 | 31 | 1452 | 39 | 1452 |
PLLQuartile4 | 48 | 45 | 42 | 39 | 42 |
上述提取的统计特征对于应用分类具有良好效果,结合随机森林模型本身泛化性能好、不容易过拟合或欠拟合等优点,从而对应用流的应用类型的识别效果较好,准确性较高。
如图5所示,为本实施例提供的深度报文检测方法的又一种示例性流程示意图。
作为另一种可实施的方式,在上述实施例的基础上,可选地,识别模型为卷积神经网络模型;针对第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据,包括:
步骤2041,针对第一流量数据中的每条应用流,根据第二获取规则获取该应用流的L个报文,L为预设正整数,第二获取规则与识别模型训练过程中的获取规则一致。
步骤2042,针对该应用流L个报文中的每个报文,获取该报文payload的前D个字节。
步骤2043,根据该应用流的各报文的payload的前D个字节,确定该应用流对应的第一特征数据。
具体的,以一条应用流为例,第二获取规则与上述第一获取规则类似,可以根据实际需求设置为任意的获取方式,比如获取该应用流的前L个报文、中间L个报文、后L个报文,有一定间隔的L个报文,等等。只要保证卷积神经网络模型训练过程与应用过程获取规则一致即可,具体不再赘述。L也可以根据实际需求设置,比如16、32、64,等等。
在获取到该应用流的L个报文后,可以针对该应用流L个报文中的每个报文,获取该报文payload的前D个字节,D为预设的正整数,D可以根据实际需求设置。根据该应用流的各报文的payload的前D个字节,来确定该应用流对应的第一特征数据。
示例性的,可以获取每条应用流的前32个报文,每个报文提取其payload前32个字节,组成32×32的灰度图像作为该应用流对应的第一特征数据。
可选地,卷积神经网络模型需要预先训练获得,可以在其他任意的计算机设备进行训练,也可以在本发明实施例提供的深度报文检测装置中进行训练。卷积神经网络模型的网络结构可以采用任意可实施的结构。
示例性的,如图6所示,为本实施例提供的卷积神经网络模型的一种示例性网络结构示意图。该示例中,卷积神经网络模型的网络结构可以包括第一卷积层、第一池化层、第二卷积层、第二池化层、全连接层和输出层。在实际应用中,也可以是根据实际需求设置为更多卷积层与池化层。其中,CNN layer即表示卷积层,pooling layer即表示池化层,full-connection layer表示全连接层。soft-max表示softmax函数,将多个神经元的输出映射到(0,1)区间。
在一实施方式中,可选地,根据该应用流的各报文的payload的前D个字节,确定该应用流对应的第一特征数据,包括:根据该应用流的各报文的payload的前D个字节,组成L×D的灰度图像;将灰度图像作为该应用流对应的第一特征数据。
具体的,L和D可以根据实际需求设置为相等或不相等。比如L和D均可以设置为32,再比如L可以设置为64、D可以设置为32,具体可以根据实际需求设置。
在一实施方式中,可选地,在将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型之前,该方法还包括:获取第二训练样本数据,第二训练样本数据包括第二特征样本数据及对应的第二应用类型标签数据;将第二特征样本数据输入预先建立的卷积神经网络,获得训练识别结果;基于训练识别结果及第二应用类型标签数据,确定损失;当损失满足第二条件时停止训练,获得卷积神经网络模型。
具体的,卷积神经网络模型需要预先通过训练获得,可以预先获取大量训练样本数据(可以称为第二训练样本数据),第二训练样本数据可以包括第二特征样本数据及对应的第二应用类型标签数据。示例性的,可以获取不同企业产品的大量流量数据作为原始样本数据,比如获取上百万个原始样本数据,从每个原始样本数据中提取出L×D的灰度图,并为每个样本打上应用类型标签,则获得第二训练样本数据,将第二训练样本数据中各第二特征样本数据输入预先建立的卷积神经网络,进行有监督训练,输出对应的预测应用类型,基于预测应用类型及各第二特征样本数据对应的第二应用类型标签数据来确定损失,具体可以是将预测应用类型及对应的第二应用类型标签数据代入预设损失函数,计算获得模型的损失。当损失满足预设的第二条件时,可以认为训练结束,获得卷积神经网络模型用于二次识别。
可选地,损失函数可以采用任意可实施的损失函数,比如交叉熵损失(crossentropy)函数,也称对数损失函数,即对数似然损失(Log-likelihood Loss)函数。
可选地,卷积神经网络模型可以用于对加密流量的二次识别,也可以用于对未加密流量的识别。
在一些实施方式中,还可以结合上述的随机森林模型识别结果和卷积神经网络识别结果,进一步提高识别率。具体可以根据实际需求设置。
比如,还可以设置三级识别,先进行实时DPI处理,对于实时DPI未能识别应用的流量数据再采用随机森林模型进行二次识别,对于二次识别仍未能识别应用类型的流量,可以再采用卷积神经网络模型进行第三次识别。
比如,还可以对全流量同时都进行实时DPI识别、随机森林模型识别、卷积神经网络识别,综合三种识别结果来确定各应用流的应用类型。
在一些实时方式中,可选地,规则库存储在第一存储区域;若监测到第二存储区域存入新的规则库,则在根据预设的多级匹配规则,对待处理报文进行实时深度报文检测处理时,采用第二存储区域的新的规则库进行匹配。
可选地,在实时DPI处理采用新的规则库时,可以删除第一存储区域的规则库,以使该第一存储区域可以用于后续规则库的再次升级导入。
具体的,可以预先配置两个存储区域用于存储规则库,并实时监测两个存储区域,最初,在其中一个存储区域(称为第一存储区域)导入一规则库,深度报文检测装置监测到该规则库的导入后,在进行实时DPI处理时,使用该规则库进行匹配,当对规则库进行了升级,导入新的规则库时,将该新的规则库导入到另一个存储区域(称为第二存储区域),深度报文检测装置则可以监测到有新的规则库导入,若当前正在进行一待处理报文的多级匹配,则当前待处理报文还继续采用第一存储区域规则库进行匹配,在匹配完后可以删除第一存储区域的规则库,当接收到下一个待处理报文时,可以直接使用第二存储区域中的新的规则库进行匹配,从而实现规则库的实时升级,且升级过程不影响DPI识别处理过程。
可以理解地,第一存储区域可以指两个存储区域中的任一存储区域,规则库可以不断升级,针对每次规则库升级,可以将当前正使用的规则库所在的存储区域称为第一存储区域,将新的规则库所在的存储区域称为第二存储区域。比如存储区域A和存储区域B,当前规则库(比如称为规则库1)存储在存储区域A,升级后的新的规则库(比如称为规则库2)导入到存储区域B,则存储区域A称为第一存储区域,存储区域B称为第二存储区域,若后续规则库再次升级,则获得的规则库3可以导入到存储区域A,这时,存储区域B称为第一存储区域,存储区域A称为第二存储区域。
示例性的,在实时DPI处理过程中,具体使用哪个存储区域的规则库进行匹配,可以通过一标志位来表示,比如0表示第一存储区域,1表示第二存储区域,最初监测到第一存储区域导入了规则库时,可以将标志位置为0,在进行实时DPI时可以根据标志位的状态0确定需要与第一存储区域的规则库进行匹配,若规则库进行一次升级,则可以将新的规则库导入到第二存储区域,深度报文检测装置监测到第二存储区域导入了新的规则库时,在导入完成后,可以将标志位置为1,则再有新的待处理报文时,可以根据标志位的状态1确定需要与第二存储区域的新的规则库进行匹配。当第一存储区域正在匹配的待处理报文处理完后,则可以清空第一存储区域的规则库,待再次升级规则库时,可以将新的规则库导入该第一存储区域,以此类推,从而实现规则库的实时升级。
可选地,对于二次识别的识别模型,可以采用与规则库类似的升级原理,前提是识别模型的特征提取方式不变。若识别模型的特征提取方式改变,则需要更新深度报文检测方法中相应特征提取部分。
在一些实施方式中,本发明实施例提供的深度报文检测方法可以应用于全流量存储产品中。该全流量存储产品可以设置在一单独服务器中,也可以设置在服务器集群中。比如划分为不同的功能单元,不同功能单元可以设置在相同服务器或不同服务器中。如图7所示,为本实施例提供的全流量存储产品的一种示例性框图。该全流量存储产品可以包括实时处理单元和业务处理单元,其中,实时处理单元可以包括收包子单元、实时DPI子单元和存储子单元,业务处理单元可以包括判断子单元、二次识别子单元及业务分析子单元。
其中,收包子单元用于快速收包,即接收待处理报文,实时DPI子单元用于对待处理报文进行实时DPI处理,获得第一识别结果;存储子单元用于存储接收到的待处理报文及对应的第一识别结果。业务处理单元在需要进行业务分析时,其判断子单元可以从存储子单元提取存储的原始流量数据(即不断存储的待处理报文)及对应的第一识别结果,并可以判断各原始流量数据对应的第一识别结果是否包括该原始流量数据的应用类型,若已包括应用类型,则可以将该原始流量数据的第一识别结果发送给业务分析子单元,若第一识别结果未包括应用类型,或者包括的是未能识别应用类型的信息,或者根本没有第一识别结果,则可以将该原始流量数据作为第一流量数据发送给二次识别子单元。二次识别子单元对第一流量数据进行二次识别,确定第一流量数据的应用类型,并发送给业务分析子单元,业务分析子单元基于判断子单元发送的部分原始流量数据的应用类型及二次识别子单元发送的另一部分原始流量数据的应用类型,进行业务分析,根据分析结果进行流量管理及流量控制,以为用户提供更好的服务。
可选地,实时处理单元可以设置在服务器A中,业务处理单元可以设置在服务器B中,也可以将实时处理单元和业务处理单元设置在同一服务器中。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本发明不做限定。
本实施例提供的深度报文检测方法,通过实时DPI与二次识别结合,可以有效提高DPI识别率。通过将实时DPI设置为多级匹配,当前面等级的匹配未成功时,匹配结束,无需进行后续等级的匹配,可有效减少数据处理量,提高处理速率,从而提升实时DPI处理性能。还通过将卷积神经网络模型应用于流量数据的二次识别,对加密流量具有较好的识别效果,结合实时DPI实现对加密流量和非加密流量的全方位识别,且能够随时提取全流量进行二次识别,或结合多种二次识别方法进行多次识别,提高DPI识别准确率。在二次识别时,可以基于存储的全流量数据重新提取特征,不受制于实时采集的报文信息,比如可以综合应用流中多个报文进行特征提取,相对于实时DPI能够获得更多分类效果更好的特征用于二次识别,进一步提高识别准确性。
本发明再一实施例提供一种深度报文检测装置,用于执行上述实施例的方法。
如图8所示,为本实施例提供的深度报文检测装置的结构示意图。该深度报文检测装置30包括获取模块31、提取模块32和处理模块33。
其中,获取模块31,用于获取未能识别应用类型的第一流量数据,第一流量数据包括至少一条应用流;提取模块32,用于针对第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据;处理模块33,用于将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,且能够达到相同的技术效果,此处将不做详细阐述说明。
本发明又一实施例对上述实施例提供的装置做进一步补充说明。
作为一种可实施的方式,在上述实施例的基础上,可选地,获取模块,还用于接收待处理报文;处理模块,还用于对待处理报文进行实时深度报文检测处理,获得第一识别结果,第一识别结果包括待处理报文的应用类型或者待处理报文未能识别应用类型的信息;处理模块,还用于存储待处理报文及待处理报文对应的第一识别结果。
可选地,处理模块33,具体用于:根据预设的多级匹配规则,对待处理报文进行实时深度报文检测处理,获得第一识别结果。
可选地,处理模块33,具体用于:将待处理报文与规则库中的第一级规则进行匹配,获得第一级匹配结果;若第一级匹配结果为未匹配成功,则确定待处理报文为未能识别应用类型的报文;若第一级匹配结果为匹配到目标第一级规则,则将待处理报文与目标第一级规则下的第二级规则进行匹配,获得第二级匹配结果;若第二级匹配结果为未匹配成功,则将目标第一级规则对应的应用类型作为待处理报文的应用类型;若第二级匹配结果为匹配到目标第二级规则,则将待处理报文与目标第二级规则下的第三级规则进行匹配;将待处理报文的应用类型或者待处理报文未能识别应用类型的信息作为第一识别结果。
可选地,处理模块,具体用于:将待处理报文的payload的前C个字节与规则库中的第一级规则进行匹配,获得第一级匹配结果;或者,将待处理报文的payload的前C个字节及后F个字节,与规则库中的第一级规则进行匹配,获得第一级匹配结果。
其中,C、F为预设正整数。
可选地,获取模块31,具体用于:获取至少一组属于同一条应用流的未能识别应用类型的报文作为第一流量数据。
作为另一种可实施的方式,在上述实施例的基础上,可选地,识别模型为随机森林模型;
提取模块32,具体用于:针对第一流量数据中的每条应用流,根据第一获取规则获取该应用流的S个报文,S为预设正整数,第一获取规则与识别模型训练过程中的获取规则一致;
根据该应用流的S个报文的payload长度及该应用流的传输层协议类型,确定该应用流对应的第一特征数据,报文的payload长度为该报文payload的字节数。
可选地,获取模块,还用于获取第一训练样本数据,第一训练样本数据包括第一特征样本数据及对应的第一应用类型标签数据;
处理模块,还用于基于第一训练样本数据,对预先建立的随机森林进行训练优化,当随机森林的识别结果满足第一条件时停止训练,获得随机森林模型。
作为另一种可实施的方式,在上述实施例的基础上,可选地,识别模型为卷积神经网络模型;
提取模块,具体用于:针对第一流量数据中的每条应用流,根据第二获取规则获取该应用流的L个报文,L为预设正整数,第二获取规则与识别模型训练过程中的获取规则一致;
针对该应用流L个报文中的每个报文,获取该报文payload的前D个字节,D为预设正整数;
根据该应用流的各报文的payload的前D个字节,确定该应用流对应的第一特征数据。
可选地,提取模块,具体用于:根据该应用流的各报文的payload的前D个字节,组成L×D的灰度图像;
将灰度图像作为该应用流对应的第一特征数据。
可选地,获取模块,还用于获取第二训练样本数据,第二训练样本数据包括第二特征样本数据及对应的第二应用类型标签数据;
处理模块,还用于:将第二特征样本数据输入预先建立的卷积神经网络,获得训练识别结果;
基于训练识别结果及第二应用类型标签数据,确定损失;
当损失满足第二条件时停止训练,获得卷积神经网络模型。
可选地,规则库存储在第一存储区域;处理模块,还用于:
若监测到第二存储区域存入新的规则库,则在根据预设的多级匹配规则,对待处理报文进行实时深度报文检测处理时,采用第二存储区域的新的规则库进行匹配。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本发明不做限定。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,且能够达到相同的技术效果,此处将不做详细阐述说明。
本发明再一实施例提供一种电子设备,用于执行上述实施例提供的方法。该电子设备可以是服务器或其他可实现的计算机设备。
如图9所示,为本实施例提供的电子设备的结构示意图。该电子设备50包括:至少一个处理器51和存储器52;
存储器52存储计算机执行指令;至少一个处理器51执行存储器存储的计算机执行指令,使得至少一个处理器执行如上任一实施例提供的方法。
需要说明的是,本实施例的电子设备能够实现上述任一实施例提供的方法,且能够达到相同的技术效果,在此不再赘述。
本发明又一实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的方法。
需要说明的是,本实施例的计算机可读存储介质能够实现上述任一实施例提供的方法,且能够达到相同的技术效果,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
Claims (14)
1.一种深度报文检测方法,其特征在于,包括:
对接收的待处理报文进行实时深度报文检测处理;
获取实时深度报文检测处理后未能识别应用类型的第一流量数据,所述第一流量数据包括至少一条应用流;
针对所述第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据;
将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型;
其中,当所述识别模型为卷积神经网络模型时;相应地,针对所述第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据,具体包括:
针对所述第一流量数据中的每条应用流,根据第二获取规则获取该应用流的L个报文,L为预设正整数,所述第二获取规则与所述卷积神经网络模型训练过程中的获取规则一致;
针对该应用流L个报文中的每个报文,获取该报文有效数据的前D个字节,D为预设正整数;
根据该应用流的各报文的有效数据的前D个字节,确定该应用流对应的第一特征数据。
2.根据权利要求1所述的方法,其特征在于,对接收的待处理报文进行实时深度报文检测处理,具体包括:
对接收的待处理报文进行实时深度报文检测处理,获得第一识别结果,所述第一识别结果包括所述待处理报文的应用类型或者所述待处理报文未能识别应用类型的信息;
存储所述待处理报文及所述待处理报文对应的第一识别结果。
3.根据权利要求2所述的方法,其特征在于,所述对接收的待处理报文进行实时深度报文检测处理,获得第一识别结果,包括:
根据预设的多级匹配规则,对接收的待处理报文进行实时深度报文检测处理,获得第一识别结果。
4.根据权利要求3所述的方法,其特征在于,所述根据预设的多级匹配规则,对接收的待处理报文进行实时深度报文检测处理,获得第一识别结果,包括:
将接收的待处理报文与规则库中的第一级规则进行匹配,获得第一级匹配结果;
若所述第一级匹配结果为未匹配成功,则确定所述待处理报文为未能识别应用类型的报文;
若所述第一级匹配结果为匹配到目标第一级规则,则将所述待处理报文与所述目标第一级规则下的第二级规则进行匹配,获得第二级匹配结果;
若所述第二级匹配结果为未匹配成功,则将所述目标第一级规则对应的应用类型作为所述待处理报文的应用类型;
若所述第二级匹配结果为匹配到目标第二级规则,则将所述待处理报文与所述目标第二级规则下的第三级规则进行匹配;
将所述待处理报文的应用类型或者所述待处理报文未能识别应用类型的信息作为所述第一识别结果。
5.根据权利要求4所述的方法,其特征在于,所述将接收的待处理报文与规则库中的第一级规则进行匹配,获得第一级匹配结果,包括:
将接收的待处理报文的有效数据的前C个字节与规则库中的第一级规则进行匹配,获得第一级匹配结果;或者,
将接收的待处理报文的有效数据的前C个字节及后F个字节,与规则库中的第一级规则进行匹配,获得第一级匹配结果,C、F为预设正整数。
6.根据权利要求4所述的方法,其特征在于,所述获取实时深度报文检测处理后未能识别应用类型的第一流量数据,包括:
获取至少一组属于同一条应用流的未能识别应用类型的报文作为所述第一流量数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,当所述识别模型为随机森林模型时;
所述针对所述第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据,具体包括:
针对所述第一流量数据中的每条应用流,根据第一获取规则获取该应用流的S个报文,S为预设正整数,所述第一获取规则与所述随机森林模型训练过程中的获取规则一致;
根据该应用流的S个报文的有效数据长度及该应用流的传输层协议类型,确定该应用流对应的第一特征数据,报文的有效数据长度为该报文有效数据的字节数。
8.根据权利要求7所述的方法,其特征在于,在将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型之前,所述方法还包括:
获取第一训练样本数据,所述第一训练样本数据包括第一特征样本数据及对应的第一应用类型标签数据;
基于所述第一训练样本数据,对预先建立的随机森林进行训练优化,当随机森林的识别结果满足第一条件时停止训练,获得所述随机森林模型。
9.根据权利要求1所述的方法,其特征在于,所述根据该应用流的各报文的有效数据的前D个字节,确定该应用流对应的第一特征数据,包括:
根据该应用流的各报文的有效数据的前D个字节,组成L×D的灰度图像;
将所述灰度图像作为该应用流对应的第一特征数据。
10.根据权利要求1所述的方法,其特征在于,在所述将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型之前,所述方法还包括:
获取第二训练样本数据,所述第二训练样本数据包括第二特征样本数据及对应的第二应用类型标签数据;
将所述第二特征样本数据输入预先建立的卷积神经网络,获得训练识别结果;
基于所述训练识别结果及所述第二应用类型标签数据,确定损失;
当损失满足第二条件时停止训练,获得所述卷积神经网络模型。
11.根据权利要求4所述的方法,其特征在于,所述规则库存储在第一存储区域;
若监测到第二存储区域存入新的规则库,则在根据预设的多级匹配规则,对接收的待处理报文进行实时深度报文检测处理时,采用所述第二存储区域的新的规则库进行匹配。
12.一种深度报文检测装置,其特征在于,包括:
获取模块,用于获取实时深度报文检测处理后未能识别应用类型的第一流量数据,所述第一流量数据包括至少一条应用流;
提取模块,用于针对所述第一流量数据中的每条应用流,对该应用流中的报文进行特征提取,获得该应用流对应的第一特征数据;
处理模块,用于对接收的待处理报文进行实时深度报文检测处理;及将各应用流对应的第一特征数据输入预先训练获得的识别模型,对各应用流进行二次识别,获得各应用流的应用类型;
其中,当所述识别模型为卷积神经网络模型时;所述提取模块具体用于:针对所述第一流量数据中的每条应用流,根据第二获取规则获取该应用流的L个报文,L为预设正整数,所述第二获取规则与所述卷积神经网络模型训练过程中的获取规则一致;针对该应用流L个报文中的每个报文,获取该报文有效数据的前D个字节,D为预设正整数;根据该应用流的各报文的有效数据的前D个字节,确定该应用流对应的第一特征数据。
13.一种电子设备,其特征在于,包括:存储器和至少一个处理器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011252361.7A CN112491643B (zh) | 2020-11-11 | 2020-11-11 | 深度报文检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011252361.7A CN112491643B (zh) | 2020-11-11 | 2020-11-11 | 深度报文检测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112491643A CN112491643A (zh) | 2021-03-12 |
CN112491643B true CN112491643B (zh) | 2022-01-18 |
Family
ID=74929514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011252361.7A Active CN112491643B (zh) | 2020-11-11 | 2020-11-11 | 深度报文检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112491643B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486935A (zh) * | 2021-06-24 | 2021-10-08 | 南京烽火星空通信发展有限公司 | 基于dpi和cnn的区块链应用流量识别方法 |
CN113726550A (zh) * | 2021-07-21 | 2021-11-30 | 广东电网有限责任公司广州供电局 | 流量预测方法、装置、计算机设备和可读存储介质 |
CN113726689B (zh) * | 2021-07-27 | 2023-06-13 | 新华三信息安全技术有限公司 | 一种安全业务处理方法以及装置 |
CN113794601B (zh) * | 2021-08-17 | 2024-03-22 | 中移(杭州)信息技术有限公司 | 网络流量处理方法、装置和计算机可读存储介质 |
CN115334013B (zh) * | 2022-08-12 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 一种流量统计方法、网卡及电子设备 |
CN116192997B (zh) * | 2023-02-21 | 2023-12-01 | 兴容(上海)信息技术股份有限公司 | 一种基于网络流的事件检测方法和系统 |
CN116016289A (zh) * | 2023-03-23 | 2023-04-25 | 芯知科技(江苏)有限公司 | 一种基于移动终端数据中心检测方法 |
CN116488949B (zh) * | 2023-06-26 | 2023-09-01 | 中国电子信息产业集团有限公司第六研究所 | 工控系统入侵检测处理方法、系统、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645806A (zh) * | 2009-09-04 | 2010-02-10 | 东南大学 | Dpi和dfi相结合的网络流量分类系统及分类方法 |
CN102546299A (zh) * | 2012-01-09 | 2012-07-04 | 北京锐安科技有限公司 | 一种在大流量下进行深度包检测的方法 |
CN111404768A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种dpi识别的实现方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681389B (zh) * | 2015-12-18 | 2019-03-26 | 北京神州绿盟信息安全科技股份有限公司 | 一种基于Skype不同功能通信流的识别方法及装置 |
-
2020
- 2020-11-11 CN CN202011252361.7A patent/CN112491643B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645806A (zh) * | 2009-09-04 | 2010-02-10 | 东南大学 | Dpi和dfi相结合的网络流量分类系统及分类方法 |
CN102546299A (zh) * | 2012-01-09 | 2012-07-04 | 北京锐安科技有限公司 | 一种在大流量下进行深度包检测的方法 |
CN111404768A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种dpi识别的实现方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112491643A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112491643B (zh) | 深度报文检测方法、装置、设备及存储介质 | |
CN109117634B (zh) | 基于网络流量多视图融合的恶意软件检测方法及系统 | |
CN110598774B (zh) | 加密流量检测方法及装置、计算机可读存储介质、电子设备 | |
CN111191767A (zh) | 一种基于向量化的恶意流量攻击类型的判断方法 | |
CN112491917B (zh) | 一种物联网设备未知漏洞识别方法及装置 | |
CN111835763B (zh) | 一种dns隧道流量检测方法、装置及电子设备 | |
CN108418727B (zh) | 一种探测网络设备的方法及系统 | |
CN111431819A (zh) | 一种基于序列化的协议流特征的网络流量分类方法和装置 | |
CN113590764A (zh) | 训练样本构建方法、装置、电子设备和存储介质 | |
CN112884075A (zh) | 一种流量数据增强方法、流量数据分类方法及相关装置 | |
CN116956026A (zh) | 一种网络资产识别模型的训练方法及系统 | |
CN111404768A (zh) | 一种dpi识别的实现方法及设备 | |
CN115238799A (zh) | 基于ai随机森林恶意流量检测方法和系统 | |
CN111401063A (zh) | 一种基于多池化网络的文本处理方法、装置和相关设备 | |
CN113489606A (zh) | 一种基于图神经网络的网络应用识别方法及装置 | |
CN117633666A (zh) | 网络资产识别方法、装置、电子设备和存储介质 | |
CN116389166B (zh) | 一种恶意dos流量的检测方法、装置、电子设备及存储介质 | |
CN116192527A (zh) | 攻击流量检测规则生成方法、装置、设备及存储介质 | |
CN110601909A (zh) | 网络维护方法、装置、计算机设备和存储介质 | |
CN116227723A (zh) | 基于特征引擎的资产定级方法、装置、电子设备及介质 | |
CN111291078A (zh) | 一种域名匹配检测方法及装置 | |
CN114465875B (zh) | 故障处理方法及装置 | |
CN111177595B (zh) | 一种针对http协议模板化提取资产信息的方法 | |
CN114978964A (zh) | 基于网络自检的通信公告配置方法、装置、设备及介质 | |
CN114362982A (zh) | 流量细分识别方法、系统、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |