一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用识别方法、装置、设备及计算机可读存储介质与流程

2022-08-17 00:43:12 来源:中国专利 TAG:


1.本技术涉及云计算技术,尤其涉及一种应用识别方法、装置、设备及计算机可读存储介质。


背景技术:

2.目前,应用程序(application,app)识别方式主要采用深度包检测技术(deep packet inspection,dpi)。dpi是一种基于应用层的流量检测和控制技术,主要通过人工提取的特征库来对app产生的网络数据的包头和网络传输的应用层数据进行分析,以实现通过网络数据呈现的特征对app进行匹配和识别。但人工提取特征效率低,并且更新速度慢,且提取的特征维度有局限,从而极大降低了应用识别的效率和准确性。


技术实现要素:

3.本技术实施例提供一种应用识别方法、装置、设备及计算机可读存储介质,能够提高应用识别的效率。
4.本技术实施例的技术方案是这样实现的:
5.本技术实施例提供一种应用识别方法,包括:
6.实时采集并解析网络流量数据,得到所述网络流量数据的传输类型;
7.根据所述传输类型,提取出所述网络流量数据对应的流量特征;
8.将所述流量特征在预设流量指纹库中进行匹配,得到所述流量特征匹配的目标样本应用;所述预设流量指纹库中包含至少一个样本应用中每个样本应用对应的明文传输类型指纹与加密传输类型指纹;所述明文传输类型指纹包括对明文传输类型数据进行特征提取与预处理所生成的应用名称指纹、载荷关键数据指纹与头域字段次序指纹中的至少一种;所述加密传输类型指纹包括对加密传输类型数据进行特征提取与预处理所生成的目标主机指纹与客户端握手消息指纹中的至少一种;
9.将所述目标样本应用确定为所述网络流量数据的应用识别结果。
10.上述方法中,所述将所述流量特征在预设流量指纹库中进行匹配,得到所述流量特征匹配的目标样本应用之前,所述方法还包括:
11.获取所述每个样本应用的应用信息;所述应用信息包含应用包名;
12.在所述每个样本应用的运行过程中,采集多份样本流量数据;所述多份样本流量数据的每份样本流量数据中包含明文传输类型数据与加密传输类型数据;
13.在所述每份样本流量数据的明文传输类型数据中,当检测到包含所述应用包名的字符串时,将所述应用包名作为所述应用名称指纹;
14.在所述每份样本流量数据的明文传输类型数据中,检测是否包含以下至少一个字段:目标主机域名字段、通用网关接口字段、资源请求参数字段、与用户代理信息字段;
15.提取检测到的所述至少一个字段进行归一化预处理,得到至少一个特征,并基于所述多份样本流量数据,统计所得到的所述至少一个特征各自的特征数量,将所述特征数
量大于预设数量阈值的特征作为所述载荷关键数据指纹;
16.在所述每份样本流量数据的明文传输类型数据中,从所述明文传输类型数据的数据包头域提取至少一个预设字段名,根据所述至少一个预设字段名在所述数据包头域中的排列顺序,生成所述头域字段次序指纹,进而得到所述明文传输类型指纹;
17.当所述每份样本流量数据的加密传输类型数据为服务器名称指示协议的第一握手消息数据时,从所述第一握手消息数据中提取目标主机域名字段,作为所述目标主机指纹;
18.当所述每份样本流量数据的加密传输类型数据为安全传输层协议的第二握手消息数据时,从所述第二握手消息数据中提取至少一个预设握手消息字段,并对所述至少一个预设握手消息字段进行内容拼接与信息签名处理,得到所述客户端握手消息指纹;
19.基于所述多份样本流量数据,统计所得到的所述目标主机指纹与所述客户端握手消息指纹各自的数量,进而将数量大于预设数量阈值的指纹作为所述加密传输类型指纹;
20.根据所述每个样本应用对应的明文传输类型指纹与加密传输类型指纹,构建得到所述预设流量指纹库。
21.上述方法中,所述应用信息包含客户端信息;所述提取检测到的所述至少一个字段进行归一化预处理,得到至少一个特征,根据所述至少一个特征各自的数量信息生成所述载荷关键数据指纹,包括:
22.当所述至少一个字段包含所述目标主机域名字段时,对所述目标主机域名字段进行预设格式的归一化,得到所述至少一个特征中的主机域名特征;
23.当所述至少一个字段包含通用网关接口字段时,将所述通用网关接口字段中的数字字符串与随机字符串替换为预设字符,得到所述至少一个特征中的网关接口特征;
24.当所述至少一个字段包含资源请求参数字段时,从所述资源请求参数字段中,提取出键类型字符串,作为所述至少一个特征中的请求参数特征;
25.当所述至少一个字段包含所述用户代理信息字段时,从所述用户代理信息字段中提取所述客户端信息,作为所述至少一个特征中的代理特征。
26.上述方法中,所述根据所述至少一个预设字段名在所述数据包头域中的排列顺序,生成所述头域字段次序指纹,包括:
27.获取所述至少一个预设字段名在所述数据头域中的排列顺序;
28.将所述至少一个预设字段名按所述排列顺序进行拼接,得到所述头域字段次序指纹。
29.上述方法中,所述第二握手消息数据包括:客户端握手消息数据;所述从所述安全传输层协议数据的第二握手消息数据中提取至少一个预设握手消息字段,并对所述至少一个预设握手消息字段进行内容拼接与信息签名处理,得到所述客户端握手消息指纹,包括:
30.从所述客户端握手消息数据中,提取版本信息、加密套件候选列表、扩展列表长度、椭圆曲线密钥交换算法支持列表作为所述至少一个预设握手消息字段;
31.将所述至少一个预设握手消息字段进行拼接,使用第一预设符号分隔每个预设握手消息字段,使用第二预设符号在所述每个预设握手消息字段中分隔至少一个消息内容,得到拼接数据;
32.通过消息摘要算法计算所述拼接数据的哈希值,完成对所述拼接数据的信息签
名,得到所述客户端握手消息指纹。
33.上述方法中,所述根据所述网络流量数据的传输类型,提取出所述网络流量数据对应的流量特征,包括:
34.当所述传输类型为明文传输类型时,对所述网络流量数据进行字符提取与预处理,得到应用名称特征、载荷关键数据特征与头域字段次序特征中的至少一种作为所述流量特征;
35.当所述传输类型为加密传输类型时,对所述网络流量数据进行字符提取与预处理,得到目标主机特征与客户端握手消息特征中的至少一种作为所述流量特征。
36.上述方法中,所述将所述目标样本应用确定为所述网络流量数据的应用识别结果之后,所述方法还包括:
37.基于所述应用识别结果,实现应用监控和/或网络管理功能。
38.本技术实施例提供一种应用识别装置,包括:。
39.流量采集模块,用于实时采集并解析网络流量数据,得到所述网络流量数据的传输类型;
40.数据预处理模块,用于根据所述传输类型,提取出所述网络流量数据对应的流量特征;
41.流量匹配引擎模块,用于将所述流量特征在预设流量指纹库中进行匹配,得到所述流量特征匹配的目标样本应用;所述预设流量指纹库中包含至少一个样本应用中每个样本应用对应的明文传输类型指纹与加密传输类型指纹;所述明文传输类型指纹包括对明文传输类型数据进行特征提取与预处理所生成的应用名称指纹、载荷关键数据指纹与头域字段次序指纹中的至少一种;所述加密传输类型指纹包括对加密传输类型数据进行特征提取与预处理所生成的目标主机指纹与客户端握手消息指纹中的至少一种;
42.确定模块,用于将所述目标样本应用确定为所述网络流量数据的应用识别结果。
43.上述装置中,所述装置还包括指纹生成模块,所述指纹生成模块,用于所述将所述流量特征在预设流量指纹库中进行匹配,得到所述流量特征匹配的目标样本应用之前,获取所述每个样本应用的应用信息;所述应用信息包含应用包名;
44.在所述每个样本应用的运行过程中,采集多份样本流量数据;所述多份样本流量数据的每份样本流量数据中包含明文传输类型数据与加密传输类型数据;
45.在所述每份样本流量数据的明文传输类型数据中,当检测到包含所述应用包名的字符串时,将所述应用包名作为所述应用名称指纹;
46.在所述每份样本流量数据的明文传输类型数据中,检测是否包含以下至少一个字段:目标主机域名字段、通用网关接口字段、资源请求参数字段、与用户代理信息字段;
47.提取检测到的所述至少一个字段进行归一化预处理,得到至少一个特征,并基于所述多份样本流量数据,统计所得到的所述至少一个特征各自的特征数量,将所述特征数量大于预设数量阈值的特征作为所述载荷关键数据指纹;
48.在所述每份样本流量数据的明文传输类型数据中,从所述明文传输类型数据的数据包头域提取至少一个预设字段名,根据所述至少一个预设字段名在所述数据包头域中的排列顺序,生成所述头域字段次序指纹,进而得到所述明文传输类型指纹;
49.当所述每份样本流量数据的加密传输类型数据为服务器名称指示协议的第一握
手消息数据时,从所述第一握手消息数据中提取目标主机域名字段,作为所述目标主机指纹;
50.当所述每份样本流量数据的加密传输类型数据为安全传输层协议的第二握手消息数据时,从所述第二握手消息数据中提取至少一个预设握手消息字段,并对所述至少一个预设握手消息字段进行内容拼接与信息签名处理,得到所述客户端握手消息指纹;
51.基于所述多份样本流量数据,统计所得到的所述目标主机指纹与所述客户端握手消息指纹各自的数量,进而将数量大于预设数量阈值的指纹作为所述加密传输类型指纹;根据所述每个样本应用对应的明文传输类型指纹与加密传输类型指纹,构建得到所述预设流量指纹库。
52.上述装置中,所述应用信息包含客户端信息;所述指纹生成模块,还用于当所述至少一个字段包含所述目标主机域名字段时,对所述目标主机域名字段进行预设格式的归一化,得到所述至少一个特征中的主机域名特征;当所述至少一个字段包含通用网关接口字段时,将所述通用网关接口字段中的数字字符串与随机字符串替换为预设字符,得到所述至少一个特征中的网关接口特征;当所述至少一个字段包含资源请求参数字段时,从所述资源请求参数字段中,提取出键类型字符串,作为所述至少一个特征中的请求参数特征;当所述至少一个字段包含所述用户代理信息字段时,从所述用户代理信息字段中提取所述客户端信息,作为所述至少一个特征中的代理特征;根据所述多份样本流量数据得到所述主机域名特征、所述网关接口特征、所述请求参数特征与所述代理特征各自的数量,将数量超过预设数量阈值的特征作为所述载荷关键数据指纹。
53.上述装置中,所述指纹生成模块,还用于获取所述至少一个预设字段名在所述数据头域中的排列顺序;将所述至少一个预设字段名按所述排列顺序进行拼接,得到所述头域字段次序指纹。
54.上述装置中,所述第二握手消息数据包括:客户端握手消息数据;所述指纹生成模块,还用于从所述客户端握手消息数据中,提取版本信息、加密套件候选列表、扩展列表长度、椭圆曲线密钥交换算法支持列表作为所述至少一个预设握手消息字段;将所述至少一个预设握手消息字段进行拼接,使用第一预设符号分隔每个预设握手消息字段,使用第二预设符号在所述每个预设握手消息字段中分隔至少一个消息内容,得到拼接数据;通过消息摘要算法计算所述拼接数据的哈希值,完成对所述拼接数据的信息签名,得到所述客户端握手消息指纹。
55.上述装置中,所述数据预处理模块,还用于当所述传输类型为明文传输类型时,对所述网络流量数据进行字符提取与预处理,得到应用名称特征、载荷关键数据特征与头域字段次序特征中的至少一种作为所述流量特征;当所述传输类型为加密传输类型时,对所述网络流量数据进行字符提取与预处理,得到目标主机特征与客户端握手消息特征中的至少一种作为所述流量特征。
56.上述装置中,所述装置还包括识别结果应用模块,所述识别结果应用模块,用于所述将所述目标样本应用确定为所述网络流量数据的应用识别结果之后,基于所述应用识别结果,实现应用监控和/或网络管理功能。
57.本技术实施例提供一种电子设备,包括:
58.存储器,用于存储可执行指令;
59.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的方法。
60.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的方法。
61.本技术实施例具有以下有益效果:
62.通过对每个样本应用的明文传输类型数据与加密传输类型数据进行特征提取与预处理,生成每个样本应用对应的明文传输类型指纹与加密传输类型指纹,实现了自动生成预设流量指纹库,极大提升了特征提取、以及特征指纹更新的速度,使得应用识别系统能够更快速的识别出新型的应用,从而提高了应用识别的效率。并且,明文传输类型指纹与加密传输类型指纹中各自包含有不同特征维度的至少一种指纹,从而提高了与至少一个流量特征的可匹配度,进而提高了应用识别的准确性。
附图说明
63.图1是本技术实施例提供的应用识别系统架构的一个可选的结构示意图;
64.图2是本技术实施例提供的应用识别装置的一个可选的结构示意图;
65.图3是本技术实施例提供的应用识别方法的一个可选的流程示意图;
66.图4是本技术实施例提供的应用识别方法的一个可选的流程示意图;
67.图5是本技术实施例提供的应用识别方法的一个可选的流程示意图;
68.图6是本技术实施例提供的应用识别方法的一个可选的流程示意图;
69.图7是本技术实施例提供的客户端握手消息数据的一个数据内容示意图;
70.图8是本技术实施例提供的应用识别装置的一个可选的功能模块示意图;
71.图9是本技术实施例提供的应用识别方法的一个可选的流程示意图。
具体实施方式
72.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
73.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
74.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
75.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
76.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
77.1)云安全(cloud security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
78.云安全主要研究方向包括:1、云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2、安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3、云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
79.2)大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
80.3)分光交换机:又称为光分路器,是具有多个输入端和多个输出端的光纤汇接器件,常用于光信号的耦合、分支和分配。在移动通信网络中,分光器作为信令监测的专用探针,主要实现原始信令数据采集。配合信令分析系统,对网络进行实时监控和深度故障定位,为网维,市场,客户提供有力支撑并通过多种维度的指标统计分析报表,实现网络与业务质量的评估,提高服务质量。
81.4)cgi:通用网关接口(common gateway interface)是一个web服务器主机提供信息服务的标准接口。通过cgi接口,web服务器就能够获取客户端提交的信息,转交给服务器端的cgi程序进行处理,最后返回结果给客户端。
82.5)安全传输层协议(tls):用于在两个通信应用程序之间提供保密性和数据完整性。
83.6)client_hello消息:tls协议中,客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息。
84.本技术实施例提供一种应用识别方法、装置、设备和计算机可读存储介质,能够提高应用识别的效率与准确性,下面说明本技术实施例提供的电子设备的示例性应用,本技术实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时的示例性应用。
85.参见图1,图1是本技术实施例提供的应用识别系统100的一个可选的架构示意图,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
86.终端400可以是企业网或局域网内的终端,终端400上安装有应用客户端410(示例性示出了应用客户端410-1与应用客户端410-2),应用客户端410在接收到用户操作时,通过网络300与对应的应用服务器600进行数据交互(示例性地示出了应用服务器600-1与应用服务器600-2;其中,应用服务器600-1可以是应用客户端410-1对应的后台服务器,应用服务器600-2可以是应用客户端410-2对应的后台服务器),以完成与用户操作相应的功能。
87.应用识别服务器200可以部署在网络300的网络分光交换机处,用于对企业网或局域网进行全局监控。应用识别服务器实时采集并解析应用客户端410与应用服务器600之间的网络流量数据,得到网络流量数据的传输类型;根据网络流量数据的传输类型,提取出网络流量数据对应的至少一个流量特征;将至少一个流量特征在数据库500中的预设流量指纹库中进行匹配,得到流量特征匹配的目标样本应用;预设流量指纹库中包含至少一个样本应用中每个样本应用对应的明文传输类型指纹与加密传输类型指纹;明文传输类型指纹包括对明文传输类型数据进行特征提取与预处理所生成的应用名称指纹、载荷关键数据指纹与头域字段次序指纹中的至少一种;加密传输类型指纹包括对加密传输类型数据进行特征提取与预处理所生成的目标主机指纹与客户端握手消息指纹中的至少一种;将目标样本应用确定为网络流量数据的应用识别结果。进而,应用识别服务器可以将应用识别结果输出至存储平台或者下游业务中,以使下游业务如应用监控管理业务、网络安全业务对应用识别结果进行使用、跟进和分析,完成相应的应用监控管理和网络安全防护功能。
88.在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
89.参见图2,图2是本技术实施例提供的应用识别服务器200的结构示意图,图2所示的应用识别服务器200包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
90.处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
91.用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
92.存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
93.存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only me mory),易失性存储器可以是随机存取存储器(ram,random access memor y)。本技术实施例描述的存储器450旨在包括任意适合类型的存储器。
94.在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
95.操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
96.网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
97.呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
98.输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
99.在一些实施例中,本技术实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的应用识别装置455,其可以是程序和插件等形式的软件,包括以下软件模块:流量采集模块4551、数据预处理模块4552、流量匹配引擎模块4553和确定模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
100.将在下文中说明各个模块的功能。
101.在另一些实施例中,本技术实施例提供的装置可以采用硬件方式实现,作为示例,本技术实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的应用识别方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specif ic integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic de vice)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
102.将结合本技术实施例提供的服务器的示例性应用和实施,说明本技术实施例提供的应用识别方法。
103.参见图3,图3是本技术实施例提供的应用识别方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
104.s101、实时采集并解析网络流量数据,得到网络流量数据的传输类型。
105.本技术实施例中,应用程序在运行过程中会与其对应的应用服务器进行数据交互,从而产生网络流量,在网络流量数据中通常携带有该应用对应的一些标识信息,以及该应用一些常见特点的特征性内容数据。因此,应用识别装置可以通过采集终端上的应用程序与应用服务器之间交互的网络流量数据,包括应用程序发送至应用服务器的网络流量数据、以及应用服务器回应给应用程序的网络流量数据,对网络流量数据加以分析,以进一步进行应用的识别。
106.在一些实施例中,应用识别装置可以以数据包为应用识别的数据单位,采集应用程序与应用服务器之间的七层http流量数据每个http数据包,或者四层的tcp/udp数据中每个tcp/udp数据包,作为网络流量数据。
107.本技术实施例中,应用识别装置可以对采集到的网络流量数据进行解析,从中得到网络流量数据是明文传输还是加密传输的数据,对应确定出网络流量数据的传输类型为明文传输类型,如http协议传输类型的数据,还是加密传输类型,如https协议传输类型的数据。
108.s102、根据传输类型,提取出网络流量数据对应的流量特征。
109.本技术实施例中,同一应用在与应用服务器进行交互时,不同传输类型的网络流量数据中包含数据内容不同,因而在不同传输类型的网络流量数据中所呈现出的数据特征也不同。应用识别装置根据网络流量数据的传输类型,提取出网络流量数据对应的流量特征。
110.本技术实施例中,当传输类型为明文传输类型时,应用识别装置可以获取到网络流量数据具体的数据内容,因此,应用识别装置根据预设的关键字段,对网络流量数据检测,并对检测出关键字段对应的字符串进行字符提取与预处理,得到明文传输类型的数据特征。示例性的,应用识别装置可以通过检测网络流量数据中是否包含应用名称,作为应用名称特征;通过检测网络流量数据中是否包含目标资源主机域名字段、通用网关接口字段以及一些区别与其他应用的关键消息字段,并对检测到的字段进行特征提取与归一化,得到载荷关键数据特征;通过检测数据包头域的字段排序,得到头域字段次序特征;并将应用名称特征、载荷关键数据特征与头域字段次序特征中的至少一种作为流量特征。
111.本技术实施例中,当传输类型为加密传输类型时,由于无法获取到被加密传输的消息数据内容,应用识别装置可以从应用程序与服务器握手阶段的消息中获取网络流量数据,并对握手阶段的网络流量数据进行字符提取与预处理,得到目标主机特征与客户端握手消息特征中的至少一种作为流量特征。
112.s103、将流量特征在预设流量指纹库中进行匹配,得到流量特征匹配的目标样本应用;预设流量指纹库中包含至少一个样本应用中每个样本应用对应的明文传输类型指纹与加密传输类型指纹;明文传输类型指纹包括对明文传输类型数据进行特征提取与预处理所生成的应用名称指纹、载荷关键数据指纹与头域字段次序指纹中的至少一种;加密传输类型指纹包括对加密传输类型数据进行特征提取与预处理所生成的目标主机指纹与客户端握手消息指纹中的至少一种。
113.本技术实施例中,预设流量指纹库是通过采集至少一个样本应用与各自的应用服务器之间交互的样本流量数据,并对样本流量数据进行预处理与特征提取,自动生成每个样本应用对应的流量指纹所构建得到的。每个样本应用的流量指纹为该样本应用在流量运行过程中与应用服务器交互过程中产生的稳定的流量特征,这个特征可以用来标识网络流量数据属于哪个样本应用,同时不会与其他样本应用的流量指纹产生冲突。
114.本技术实施例中,应用识别装置可以采集每个样本应用与其后台服务器交互过程中产生的加密传输类型数据与明文传输类型数据;通过对明文传输类型数据进行特征提取与预处理,生成应用名称指纹、载荷关键数据指纹与头域字段次序指纹中的至少一种作为明文传输类型指纹;并通过对加密传输类型数据进行特征提取与预处理,生成目标主机指
纹与握手消息内容拼接指纹中的至少一种作为加密传输类型指纹。
115.本技术实施例中,应用识别装置可以将流量特征在预设流量指纹库中进行匹配,得到流量特征匹配的至少一个目标流量指纹。根据至少一个目标流量指纹与每个样本应用的预设对应关系,示例性的,预设对应关系可以是每个样本应用的流量指纹满足的正则表达式,确定出至少一个目标流量指纹对应的样本应用,作为目标样本应用。
116.s104、将目标样本应用确定为网络流量数据的应用识别结果。
117.本技术实施例中,应用识别装置将目标样本应用确定为网络流量数据的应用识别结果,也即网络流量数据属于的应用,并可以基于应用识别结果进行进一步的应用监控和网络管控、网络安全管理等功能。
118.可以理解的是,本技术实施例中,应用识别装置通过对每个样本应用的明文传输类型数据与加密传输类型数据进行特征提取与预处理,生成每个样本应用对应的明文传输类型指纹与加密传输类型指纹,实现了自动生成预设流量指纹库,极大提升了特征提取、以及特征指纹更新的速度,使得应用识别系统能够更快速的识别出新型的应用,从而提高了应用识别的效率。并且,明文传输类型指纹与加密传输类型指纹中各自包含有不同特征维度的至少一种指纹,从而提高了与至少一个流量特征的可匹配度,进而提高了应用识别的准确性。
119.在一些实施例中,参见图4,图4是本技术实施例提供的应用识别方法的一个可选的流程示意图,基于图3,在s103之前,还可以执行s201-s210,将结合各步骤进行说明。
120.s201、获取每个样本应用的应用信息;应用信息包含应用包名。
121.本技术实施例中,应用识别装置根据预设的样本应用列表,获取其中每个样本应用,下载安装至终端,并获取每个应用的应用信息,如应用包名。
122.在一些实施例中,应用包名可以是bundle id。bundle id是各个手机app在应用市场中分配的唯一id,可以作为标识应用的强特征。
123.s202、在每个样本应用的运行过程中,采集多份样本流量数据;多份样本流量数据的每份样本流量数据中包含明文传输类型数据与加密传输类型数据。
124.本技术实施例中,为了提取出稳定出现的指纹特征,应用识别装置可以在每个样本应用的运行过程中,采集多份样本流量数据。其中,多份样本流量数据的每份样本流量数据中包括明文传输类型数据与加密传输类型数据。
125.在一些实施例中,每个样本应用在执行不同操作,与应用服务器交互时,既可以产生明文传输类型数据,如http数据;也可以产生加密传输类型数据,如https数据。
126.s203、在每份样本流量数据的明文传输类型数据中,当检测到包含应用包名的字符串时,将应用包名作为应用名称指纹。
127.本技术实施例中,应用识别装置可以在明文传输类型的http流量数据中,检测是否有包含应用包名的字符串,若在该应用的多份样本流量数据中稳定检测到包含应用包名的字符串,如5份样本流量数据中检测到4份或全部5份均携带有包含应用包名的字符串时,应用识别装置将应用包名作为应用名称指纹。
128.在一些实施例中,当应用识别装置在某个样本应用的http流量数据中检测到包含该样本应用的bundle id的字符串时,说明该样本应用与服务器交互数据中通常会携带应用包名,应用识别装置可以将bundle id作为该样本应用的应用名称指纹。
129.s204、在每份样本流量数据的明文传输类型数据中,检测是否包含以下至少一个字段:目标主机域名字段、通用网关接口字段、资源请求参数字段、与用户代理信息字段。
130.本技术实施例中,每个样本应用在其对应的应用服务器交互时,通常会在http流量数据中的目标主机域名字段、cgi接口字段、http请求参数字段与ua(user_agent)信息字段带有该应用区别于其他应用的个体特征。因此,应用识别装置可以在明文传输类型数据中,根据实际项目需要或多份样本流量数据中每份样本流量数据的具体数据内容,提取网络资源地址字段、http请求参数字段、与ua信息字段对应的至少一个字符串,将上述至少一个字符串作为能够标识该应用的载荷关键数据,用以生成载荷关键数据指纹。
131.s205、提取检测到的至少一个字段进行归一化预处理,得到至少一个特征,并基于多份样本流量数据,统计所得到的至少一个特征各自的特征数量,将特征数量大于预设数量阈值的特征作为载荷关键数据指纹。
132.本技术实施例中,为了减少样本流量数据中随机数据影响生成指纹的准确性,需要从流量数据中提取出样本应用能够稳定产生的数据内容以生成该样本应用的特征指纹。因此,应用识别装置可以对提取出至少一个字符串进行预处理,在每个样本应用产生的多份样本流量数据中,对同一类型字段的共性部分,进行提取,并将其归一化为固定的特征格式,从而得到至少一个特征,并在至少一个特征中确定出能够在多份样本流量数据中稳定出现的特征,作为每个样本应用的载荷关键数据指纹。
133.在一些实施例中,应用信息包含客户端信息;参见图5,图5是本技术实施例提供的应用识别方法的一个可选的流程示意图,基于图4,s205中的提取检测到的至少一个字段进行归一化预处理,得到至少一个特征的过程可以通过执行s2051-s2054来实现,将结合各步骤进行说明。
134.s2051、当至少一个字段包含目标主机域名字段时,对目标主机域名字段进行预设格式的归一化,得到至少一个特征中的主机域名特征。
135.在一些实施例中,应用识别装置可以将对目标主机域名字段对应的字符串归一化处理为www.example.com的形式,作为预处理后的主机地址字符串。
136.s2052、当至少一个字段包含通用网关接口字段时,将通用网关接口字段中的数字字符串与随机字符串替换为预设字符,得到至少一个特征中的网关接口特征。
137.本技术实施例中,每个样本应用都有各自对应的通用网关接口,可以用来作为应用的特征标识,但通用网关接口字段中可能会含有一些用于网关访问所产生的数字字符串或随机字符串,这部分内容数据对同一应用来说也是经常变化的,因此需要将通用网关接口字段中的数字字符串与随机字符串替换为预设字符,减少随机数据对特征生成的影响,得到至少一个特征中的网关接口特征。
138.在一些实施例中,应用识别装置可以在cgi接口字段中,将/index/abskhjs hdkjfkashdkf/123字符串,替换为预设字符/index/str/num,从而将容易变化的字符串替换成统一字符串,以生成更稳定的特征。
139.s2053、当至少一个字段包含资源请求参数字段时,从资源请求参数字段中,提取出键类型字符串,作为至少一个特征中的请求参数特征。
140.本技术实施例中,资源请求参数字段可以是http中的param字段,该字段为键值对格式,示例性的,可以是key1=value1&key2=value的格式。对于同一个应用来说,键key通
常是固定不变的,而值value通常会随着终端操作系统或固件版本的变化而变化。因此,应用识别装置从http请求参数字段对应的字符串中,提取出固定不变的键类型字符串作为请求参数字符串。
141.s2054、当至少一个字段包含用户代理信息字段时,从用户代理信息字段中提取客户端信息,作为至少一个特征中的代理特征。
142.本技术实施例中,用户代理信息字段可以是http消息数据中的user_agent字段。该字段用于告知应用服务器,访问方式通过何种工具发起访问请求的。因此user_agent字段中通常会带有客户端的标识性信息。应用识别装置可以从用户代理信息字段中提取客户端信息,作为至少一个特征中的代理特征。
143.在一些实施例中,应用识别装置可以在ua字段对应的字符串中,去除浏览器版本、系统等信息,提取客户端信息对应的字符串,作为代理特征。例如已知微信应用的客户端信息为micromessenger,微信应用的ua字段如下:
144.mozilla/5.0(linux;android 4.4.2;nx505j build/kvt49l)applewebkit/537.36(khtml,like gecko)version/4.0 chrome/37.0.0.0 mobile mqqbrows er/6.2 tbs/036548 safari/537.36 micromessenger/6.3.18.800 nettype/wifi lan guage/zh_cn;应用识别装置对上述ua信息进行处理,保留处理客户端信息对应的micromessenger字符串,作为代理特征。
145.本技术实施例中,对于每个样本应用对应的多份样本流量数据,应用识别装置可以对每份样本流量数据进行s2051-s2055中相同的出,得到根据多份眼样本流量数据得到的主机域名特征、网关接口特征、请求参数特征、代理特征的各自的特征数量。应用识别装置基于每个特征的统计特征,从中选取出特征数量大于预设数量阈值的特征,作为每个样本应用的载荷关键数据指纹。
146.需要说明的是,本技术实施例中,应用识别装置也可以从每份样本流量数据的明文传输类型数据中,提取其他能够标识应用特征的关键字段,以同样的原理进行特征提取和归一化,得到其他类型的流量特征,具体的根据实际情况进行选择,本技术实施例不作限定。
147.s206、在每份样本流量数据的明文传输类型数据中,从明文传输类型数据的数据包头域提取至少一个预设字段名,根据至少一个预设字段名在数据包头域中的排列顺序,生成头域字段次序指纹,进而得到明文传输类型指纹。
148.本技术实施例中,对于同一应用生成的明文传输类型数据如http流量数据,其http header中的各个字段的顺序往往是固定的,因此预设字段的顺序可以作为标识应用的特征。应用识别装置可以从明文传输类型数据中,获取至少一个预设字段名在数据头域中的排列顺序;将至少一个预设字段名按排列顺序进行拼接,得到头域字段次序指纹。
149.在一些实施例中,http流量数据内容可以如下所示:
150.post/http/1.1
151.host:www.example.com
152.user-agent:mozilla/5.0(windows nt 5.1;rv:10.0.2)gecko/20100101 fir efox/10.0.2
153.content-length:40
154.content-type:application/x-www-form-urlencoded
155.connection:keep-alive
156.sex=man&&name=professional
157.其中,至少一个预设字段依次为“host”、“user-agent”、“content-length”、“content-type”与“connection”。则应用识别装置根据至少一个预设字段名的排列顺序,可以生成“host_user-agent_content-type_content-length_conecti on”的字符串,作为头域字段次序指纹。
158.本技术实施例中,对于每个样本应用,应用识别装置根据其对应的多份样本流量数据进行上述三种指纹的检测与生成,由于样本流量数据具体内容的不同,应用识别装置可以得到应用名称指纹、载荷关键数据指纹与头域字段次序指纹中的至少一种,作为该应用对应的明文传输类型指纹。
159.s207、当每份样本流量数据的加密传输类型数据为服务器名称指示协议的第一握手消息数据时,从第一握手消息数据中提取目标主机域名字段,作为目标主机指纹。
160.本技术实施例中,当样本流量数据为加密传输类型数据时,通常从加密传输类型数据中无法解析出目标主机域名的明文信息。服务器名称指示(server name indication,sni)扩展协议是一种加密tls协议下的扩展协议,在sni协议下,应用通过可以在握手过程开始时向其对应的服务器提交其所要连接的主机名称。因此,应用识别装置可以通过sni协议的握手消息数据得到应用对应的目标主机域名字段,并通过与s2051中同样的方法,将其归一化成统一的预设格式,如www.example.com,作为目标主机指纹。
161.s208、当每份样本流量数据的加密传输类型数据为安全传输层协议的第二握手消息数据时,从第二握手消息数据中提取至少一个预设握手消息字段,并对至少一个预设握手消息字段进行内容拼接与信息签名处理,得到客户端握手消息指纹。
162.本技术实施例中,在https的安全传输层协议数据中,握手阶段的消息数据内容是不加密的,因此,当加密传输类型数据为安全传输层协议数据的第二握手消息数据时,可以从第二握手消息数据中提取出能够表征应用个体特征的字段内容,作为客户端握手消息指纹。
163.在一些实施例中,参见图6,图6是本技术实施例提供的方法的一个可选的流程示意图,基于图4或图5,s208可以通过执行s2081-s2083来实现,将结合各步骤进行说明。
164.s2081、从客户端握手消息数据中,提取版本信息、加密套件候选列表、扩展列表长度、椭圆曲线密钥交换算法支持列表作为至少一个预设握手消息字段。
165.本技术实施例中,客户端握手消息数据可以是client hello消息,图7示出了通过tcpdump或wireshark软件中抓取并解析出的client hello消息数据内容的显示界面。其中,“version”字段的内容“tls 1.2(0x0303)”为版本信息,“ciper suites(19suites)”字段的内容为加密套件候选列表;“extensions length”字段的内容“141”为扩展列表长度;“extension:elliptic_curves”与“extension:ec_point_formats”字段对应的内容为椭圆曲线密钥交换算法支持列表。应用识别装置可以对上述字段进行相应的提取,得到至少一个预设握手消息字段。
166.s2082、将至少一个预设握手消息字段进行拼接,使用第一预设符号分隔每个预设握手消息字段,使用第二预设符号在每个预设握手消息字段中分隔至少一个消息内容,得
到拼接数据。
167.本技术实施例中,应用识别装置可以将至少一个预设握手消息字段进行串联,并使用第一预设符号来分隔开每个预设握手消息字段,并在每个预设握手消息字段中,使用第二预设符号分隔开每个预设握手消息字段中的至少一个消息内容,从而得到拼接数据。
168.在一些实施例中,应用识别装置可以使用“,”来分隔每个预设握手消息字段,同时,使用
“‑”
来分隔每个预设握手消息字段中的至少一个消息内容,得到如下所示的拼接数据:769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0。
169.需要说明的是,若某个预设握手消息字段的内容为空,可以将其直接置为空的字符串。
170.s2083、通过消息摘要算法计算拼接数据的哈希值,完成对拼接数据的信息签名,得到客户端握手消息指纹。
171.本技术实施例中,应用识别装置可以将上述得到的拼接数据通过md5算法计算哈希值,作为握手消息内容拼接指纹。
172.需要说明的是,本技术实施例中,应用识别装置也可以通过其他签名算法对拼接数据进行信息签名处理,得到握手消息内容拼接指纹,具体的根据实际情况进行选择,本技术实施例不作限定。
173.s209、基于多份样本流量数据,统计所得到的目标主机指纹与客户端握手消息指纹各自的数量,进而将数量大于预设数量阈值的指纹作为加密传输类型指纹。
174.本技术实施例中,对于每个样本应用对应的多份样本流量数据,应用识别装置可以统计根据多份样本流量数据分别计算得到的目标主机指纹与握手消息内容拼接指纹的数量,数量大于预设次数阈值的指纹作为该应用加密传输类型数据的稳定特征,得到加密传输类型指纹。
175.s210、根据每个样本应用对应的明文传输类型指纹与加密传输类型指纹,构建得到预设流量指纹库。
176.本技术实施例中,对于通过s203-s206得到的每个样本应用的应用名称指纹、载荷关键数据指纹与头域字段次序指纹中的至少一种,应用识别装置可以建立每个样本应用与上述根据明文传输类型数据生成的指纹的对应关系,示例性的,通过正则表达式样本应用a=应用名称指纹||(载荷关键数据指纹&头域字段次序指纹),表征当流量特征中出现应用名称指纹、或者载荷关键数据指纹、或者头域字段次序指纹时,将网络流量数据识别为样本应用a对应的网络流量数据。
177.应用识别装置可以通过类似的方法,生成每个样本应用与加密传输类型指纹的对应关系,并根据每个样本应用与明文传输类型指纹与加密传输类型指纹的对应关系,构建得到预设流量指纹库。
178.可以理解的是,本技术实施例中,应用识别装置可以分别对明文或加密两种传输类型的样本流量数据自动进行至少一个维度的特征提取与指纹生成,从而提高了构建指纹库的效率和生成应用流量指纹的准确性。并且,应用识别装置可以筛选在在重复执行过程中能够稳定产生的流量指纹作为其最终的app识别特征,从而进一步保证了应用识别的稳定性和准确性。
179.在一些实施例中,s104之后,还可以包括s105,如下:
180.s105、基于应用识别结果,实现应用监控和/或网络管理功能。
181.本技术实施例中,应用识别装置可以基于对网络中每个网络流量数据的识别,实现对网络中应用行为的监控,以及网络安全管理、网络流量管控等功能,示例性的,可以防止恶意应用攻击,或者,根据预设权限对应用联网行为进行管控等等。具体的根据实际情况进行选择,本技术实施例不作限定。
182.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
183.本技术实施例中,应用识别装置应用于应用监控平台,实现应用流量识别功能时,各功能模块可以如图8所示。应用识别装置首先通过指纹提取模块80中的应用下载模块80_1,进行至少一个样本应用的下载,在至少一个样本应用中每个样本应用的运行过程中,通过应用自动抓包模块80_2进行数据包采集,得到每个样本应用对应的多份样本流量数据,通过特征提取模块80_3,从多份样本流量数据中,根据加密传输类型与明文传输类型提取出不同的数据流量特征,使用指纹生成模块80_4根据不同的数据流量特征生成每个样本应用对应的明文传输类型指纹与加密传输类型指纹,进而构建得到预设流量指纹库。以生成明文传输类型指纹为例,可以包含如图9所示的执行过程:
184.s901、下载多个样本应用,解析多个样本应用各自的应用包名。
185.s901中,应用下载模块80_1可以根据需要识别的预设样本应用列表,在终端如手机上下载并安装预设样本应用列表中的至少一个样本应用;并在下载过程中通过解析得到每个样本应用的bundleid作为应用包名。
186.s902、在每个样本应用的运行过程中自动抓包,得到每个样本应用的5个流量包文件。
187.s902中,对于已经下载完成的样本应用,应用自动抓包模块80_2在手机上通过自动化脚本命令安装好每个样本应用并且启动每个样本应用,同时在后台启动抓包程序,示例性的,抓包程序可以是tcpdump。每个样本应用运行之后,应用识别装置通过自动或手动的方式,在屏幕上随机的点击内容,可以与服务器产生交互的流量,从而能够通过tcpdump抓取到pcap格式的流量包文件作为一份样本数据流量。由于应用执行过程中可能会夹杂着一些随机流量,为了提取应用运行过程中稳定出现的流量特征,应用自动抓包模块80_2对每个样本应用重复执行5次,这样可得到每个样本应用的5个pcap流量包文件作为多份样本流量数据。
188.s903、对每个流量包文件中的http流量数据进行解析,得到解析后内容数据。
189.s903中,通过tcpdump等抓包工具抓取的pcap包无法直接使用,需要通过解析程序将pcap包中的http流量数据解析成结构化的日志。特征提取模块80_3可以通过python中的pyshark模块,将原始的pcap格式文件解析成字段格式的内容数据。
190.s904、在解析后内容数据中,通过检测应用包名得到应用名称指纹。
191.s904中,对于s903中解析出的格式化字段,特征提取模块80_3可以检测其中是否包含与应用包名匹配的字段,若有,则通过指纹生成模块80_4将应用包名作为应用名称指纹。
192.s905、从解析后内容数据中,统计提取载荷关键数据。
193.s905中,对于s903中解析出的格式化字段,特征提取模块80_3可以检测其中是否包含目标主机域名字段host、通用网关接口字段cgi、资源请求参数字段param、与用户代理
信息字段user-agent,并在检测出上述字段中的任意一种时,通过与s204中相同的过程,通过指纹生成模块80_4对其进行归一化预处理,得到至少一个特征,将稳定出现,如出现达到5次的特征作为载荷关键数据指纹。
194.s906、从解析后内容数据中,提取客户端指纹。
195.s906中,指纹生成模块80_4将各个http的头域名顺序排列,得到host_user-agent_content-type_content-length_conection作为客户端指纹,其中,客户端指纹相当于头域字段次序指纹。
196.s907、根据应用名称指纹、载荷关键数据指纹与客户端指纹生成明文流量指纹。
197.本技术实施例中,指纹生成模块80_4将应用名称指纹、载荷关键数据指纹与客户端指纹作为该样本应用对应的明文流量指纹,即明文传输类型指纹。
198.进一步的,基于图8,本技术实施例中,在应用识别装置对实时监控场景中的网络流量进行处理时,可以通过流量采集模块81对应用监控平台指定网络内的数据流量包进行采集,得到明文传输类型或加密传输类型的http数据包,作为网络流量数据。数据预处理模块82可以通过特征提取模块80_3中类似的过程,从http数据包中提取取出对应的实时流量特征,输出至流量匹配引擎83。流量匹配引擎模块83对实时流量特征进行匹配之前,先通过组件调用的形式加载指纹提取模块80构建的预设流量指纹库,并通过正则表达式将实时流量特征与预设流量指纹库中的每个流量指纹组合成逻辑表达式,从中确定出表征匹配的逻辑表达式,根据表征匹配的逻辑表达式中的流量指纹对应得到目标样本应用,作为http数据包的识别结果。结果输出模块84可以将识别结果输出至下游的应用监控业务模块,以使应用监控业务模块根据识别结果与预设的应用网络访问白名单或黑名单,确定是否对该应用的联网行为进行限制和管控。
199.可以理解的是,本技术实施例中,应用识别装置可以通过自动化的方式提取样本应用运行过程中产生的流量指纹特征,省去了人工提取特征的过程,并且实现了对加密流量的处理,从而能够准确且高效的识别流量所对应的应用。进一步的,应用识别装置通过基于统计的方式,重复的采集应用运行过程中的产生的指纹,可极大提升应用流量指纹的准确性和稳定性。
200.下面继续说明本技术实施例提供的应用识别装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的应用识别装置455中的软件模块可以包括:
201.流量采集模块4551,用于实时采集网络流量数据;
202.数据预处理模块4552,用于根据所述网络流量数据的传输类型,提取出所述网络流量数据对应的流量特征;
203.流量匹配引擎模块4553,用于将所述流量特征在预设流量指纹库中进行匹配,得到所述流量特征匹配的目标样本应用;所述预设流量指纹库中包含至少一个样本应用中每个样本应用对应的明文传输类型指纹与加密传输类型指纹;所述明文传输类型指纹包括对明文传输类型数据进行特征提取与预处理所生成的应用名称指纹、载荷关键数据指纹与头域字段次序指纹中的至少一种;所述加密传输类型指纹包括对加密传输类型数据进行特征提取与预处理所生成的目标主机指纹与客户端握手消息指纹中的至少一种;
204.确定模块4554,用于将所述目标样本应用确定为所述网络流量数据的应用识别结
果。
205.在一些实施例中,所述应用识别装置455还包括指纹生成模块,所述指纹生成模块,用于所述将所述流量特征在预设流量指纹库中进行匹配,得到所述流量特征匹配的目标样本应用之前,获取所述每个样本应用的应用信息;所述应用信息包含应用包名;在所述每个样本应用的运行过程中,采集多份样本流量数据;所述多份样本流量数据包括明文传输类型数据与加密传输类型数据;在每份样本流量数据的明文传输类型数据中,通过检测包含所述应用包名的字符串,得到所述应用名称指纹;在所述每份样本流量数据的明文传输类型数据中,检测是否包含目标主机域名字段、通用网关接口字段、资源请求参数字段、与用户代理信息字段,提取检测到的至少一个字段进行归一化预处理,得到至少一个特征,根据所述至少一个特征各自的数量信息生成所述载荷关键数据指纹;在所述每份样本流量数据的明文传输类型数据中,从所述明文传输类型数据的数据头域,提取至少一个预设字段名,根据所述至少一个预设字段名在所述数据头域的排列顺序,生成所述头域字段次序指纹,进而得到所述明文传输类型指纹;在所述每份样本流量数据的加密传输类型数据中,当所述加密传输类型数据为服务器名称指示协议数据时,从所述服务器名称指示协议数据的第一握手消息数据中,提取目标主机域名字段,作为所述目标主机指纹;在所述每份样本流量数据的加密传输类型数据中,当所述加密传输类型数据为安全传输层协议数据时,从所述安全传输层协议数据的第二握手消息数据中提取至少一个预设握手消息字段,并对所述至少一个预设握手消息字段进行内容拼接与信息签名处理,得到所述客户端握手消息指纹;根据所述多份样本流量数据,得到所述目标主机指纹与所述客户端握手消息指纹各自的数量,进而将数量大于预设数量阈值的指纹作为所述加密传输类型指纹;根据所述每个样本应用对应的明文传输类型指纹与加密传输类型指纹,构建得到所述预设流量指纹库。
206.在一些实施例中,所述应用信息包含客户端信息;所述指纹生成模块,还用于当所述至少一个字段包含所述目标主机域名字段时,对所述目标主机域名字段进行预设格式的归一化,得到所述至少一个特征中的主机域名特征;当所述至少一个字段包含通用网关接口字段时,将所述通用网关接口字段中的数字字符串与随机字符串替换为预设字符,得到所述至少一个特征中的网关接口特征;当所述至少一个字段包含资源请求参数字段时,从所述资源请求参数字段中,提取出键类型字符串,作为所述至少一个特征中的请求参数特征;当所述至少一个字段包含所述用户代理信息字段时,从所述用户代理信息字段中提取所述客户端信息,作为所述至少一个特征中的代理特征;根据所述多份样本流量数据得到所述主机域名特征、所述网关接口特征、所述请求参数特征与所述代理特征各自的数量,将数量超过预设数量阈值的特征作为所述载荷关键数据指纹。
207.在一些实施例中,所述指纹生成模块,还用于将所述至少一个预设字段名按排列顺序进行拼接,得到所述头域字段次序指纹。
208.上述装置中,所述第二握手消息数据包括:客户端握手消息数据;所述指纹生成模块,还用于从所述客户端握手消息数据中,提取版本信息、加密套件候选列表、扩展列表长度、椭圆曲线密钥交换算法支持列表作为所述至少一个预设握手消息字段;连接所述至少一个预设握手消息字段,使用第一预设符号分隔每个预设握手消息字段,使用第二预设符号在所述每个预设握手消息字段中分隔至少一个消息内容,得到拼接数据;通过消息摘要算法计算所述拼接数据的哈希值,完成对所述拼接数据的信息签名,得到所述客户端握手
消息指纹。
209.在一些实施例中,所述数据预处理模块4552,还用于当所述传输类型为明文传输类型时,对所述网络流量数据进行字符提取与预处理,得到应用名称特征、载荷关键数据特征与头域字段次序特征中的至少一种作为所述流量特征;当所述传输类型为加密传输类型时,对所述网络流量数据进行字符提取与预处理,得到目标主机特征与客户端握手消息特征中的至少一种作为所述流量特征。
210.在一些实施例中,所述应用识别装置455还包括识别结果应用模块,所述识别结果应用模块,用于所述将所述目标样本应用确定为所述网络流量数据的应用识别结果之后,基于所述应用识别结果,实现应用监控和/或网络管理功能。
211.需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
212.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的应用识别方法。
213.本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的方法,例如,如图3-6或图9示出的方法。
214.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
215.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
216.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
217.作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
218.综上所述,本技术实施例可以通过对每个样本应用的明文传输类型数据与加密传输类型数据进行特征提取与预处理,生成每个样本应用对应的明文传输类型指纹与加密传输类型指纹,实现了自动生成预设流量指纹库,极大提升了特征提取、以及特征指纹更新的速度,使得应用识别系统能够更快速的识别出新型的应用,从而提高了应用识别的效率。并且,明文传输类型指纹与加密传输类型指纹中各自包含有不同特征维度的至少一种指纹,从而提高了与至少一个流量特征的可匹配度,进而提高了应用识别的准确性。
219.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献