本发明涉及人工智能领域,具体涉及一种流量报文的识别方法及装置、计算设备及计算机存储介质。
背景技术:
1、近年来,随着互联网时代的来临,从2g、3g到4g、5g,移动设备和应用程序的数量大幅增长,用户在互联网上的产生的行为数据量以指数级上升,同时随着传输端技术的发展,对各大应用产品在流量端产生的数据进行识别的难度也逐渐上升。
2、目前业界的流量识别技术方案通常利用dpi(deep packet inspection)设备对网络关键点处的流量和报文内容进行检测分析,根据事先定义的策略和规则对流量进行识别,包括流量采集、流量过滤、http流量学习分析、特征提取等。
3、然而,现有上述流量识别技术方案存在如下缺点:一是不能很好地识别加密流量,特别是对于音频、视频应用所产生的数据流量,并且,加密流量在整体流量中的占比非常高,使用传统的dpi方法将导致较低的覆盖率和准确率;二是没有考虑新的流量类型不断增多的情形,对于更新频繁的流量类型没有相应的流量规则对其进行匹配,不具备泛化性;三是流量匹配识别所依赖的特征规则库无法自动生成,或者,生成特征规则库的成本较高、智能化程度不足。
技术实现思路
1、鉴于上述问题,提出了本发明以便提供一种克服上述流量识别存在的泛化性较差问题的流量报文的识别方法及装置、计算设备及计算机存储介质。
2、根据本发明的一个方面,提供了一种流量报文的识别方法,包括:
3、根据应用指纹网络对流量报文进行识别,得到应用指纹网络识别结果,其中,所述应用指纹网络用于发现流量报文字段的显式规则;
4、将流量报文输入至深度学习网络,得到深度学习网络识别结果,其中,所述深度学习网络用于挖掘流量报文特征之间的隐式关系和高阶特征;
5、将所述应用指纹网络识别结果和所述深度学习网络识别结果进行加权合并,得到流量报文的识别结果。
6、在一种可选的方式中,所述流量报文字段包含如下字段中的至少一者:
7、加密报文中的sni字段;
8、非加密报文中的ua字段、host字段、refer_uri字段。
9、在一种可选的方式中,所述根据应用指纹网络对流量报文进行识别,得到应用指纹网络识别结果进一步包括:
10、判断所述流量报文是否为加密报文;若是,则提取所述流量报文的sni字段,根据所述sni字段进行识别;若否,则提取所述流量报文的ua字段,根据所述ua字段进行识别;
11、若判断未成功,则提取所述流量报文的host字段和/或refer_uri字段,根据所述host字段和/或refer_uri字段进行识别。
12、在一种可选的方式中,所述将流量报文输入至深度学习网络,得到深度学习网络识别结果进一步包括:
13、对流量报文进行特征抽取,得到流量报文特征;
14、所述流量报文特征包括如下特征中一项或多项:服务器ip和端口、ua字段、host字段、uri字段、refer_uri字段、sni字段、反编译文件中的域字段。
15、在一种可选的方式中,在所述得到流量报文特征之后,所述方法还包括:
16、根据预设阈值对流量报文特征对应的序列表征向量进行掩膜处理。
17、在一种可选的方式中,所述方法还包括:
18、采集历史流量报文;
19、根据历史流量报文对应用指纹网络和深度学习网络进行训练;其中,将历史流量报文输入至应用指纹网络和深度学习网络中,结合损失函数计算梯度,反向传播到应用指纹网络和深度学习网络中,分别训练各自的参数,当满足迭代条件时,结束训练。
20、在一种可选的方式中,所述应用指纹网络和深度学习网络的输出通过以下公式进行加权合并:
21、
22、其中,p为流量报文的识别结果;wprint为应用指纹网络的权重;wdeep为深度学习网络最后一层激活函数的权重;x为应用指纹网络的输入;b为常量。
23、根据本发明的另一方面,提供了一种流量报文的识别装置,包括:
24、应用指纹网络模块,用于根据应用指纹网络对流量报文进行识别,得到应用指纹网络识别结果,其中,所述应用指纹网络用于发现流量报文字段的显式规则;
25、深度学习网络模块,用于将流量报文输入至深度学习网络,得到深度学习网络识别结果,其中,所述深度学习网络用于挖掘流量报文特征之间的隐式关系和高阶特征;
26、流量报文识别模块,用于将所述应用指纹网络识别结果和所述深度学习网络识别结果进行加权合并,得到流量报文的识别结果。
27、根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
28、所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述流量报文的识别方法对应的操作。
29、根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述流量报文的识别方法对应的操作。
30、根据本发明提供的方案,根据应用指纹网络对流量报文进行识别,得到应用指纹网络识别结果,其中,应用指纹网络用于发现流量报文字段的显式规则;将流量报文输入至深度学习网络,得到深度学习网络识别结果,其中,深度学习网络用于挖掘流量报文特征之间的隐式关系和高阶特征;将应用指纹网络识别结果和所述深度学习网络识别结果进行加权合并,得到流量报文的识别结果。本发明通过应用指纹网络发现报文字段显式的规则以增强模型的记忆能力,同时,通过深度学习网络挖掘特征之间隐式的关系和高阶特征以增强模型的泛化能力,提升了模型的表达能力和系统的泛化性能。
31、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
1.一种流量报文的识别方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述流量报文字段包含如下字段中的至少一者:
3.根据权利要求2所述的方法,其特征在于,所述根据应用指纹网络对流量报文进行识别,得到应用指纹网络识别结果进一步包括:
4.根据权利要求1所述的方法,其特征在于,所述将流量报文输入至深度学习网络,得到深度学习网络识别结果进一步包括:
5.根据权利要求4所述的方法,其特征在于,在所述得到流量报文特征之后,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述应用指纹网络和深度学习网络的输出通过以下公式进行加权合并:
8.一种流量报文的识别装置,其特征在于,包括:
9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的流量报文识别方法对应的操作。