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

数据特征提取方法及装置与流程

2023-01-15 08:22:45 来源:中国专利 TAG:


1.本技术涉及数据处理领域,具体而言,涉及一种数据特征提取方法及装置。


背景技术:

2.传统的dns(domain name system,域名系统)数据流是明文状态下的数据流,本身存在较大的信息安全风险,为了提高信息安全,现有技术可使用doh(dns over https,一种基于https实现的dns解析技术)技术对dns数据流中的数据包进行加密,从而防止第三方应用程序对明文的dns数据包进行窃取或者篡改。但是,在分析加密后的数据流是否存在异常时,由于域名信息已经被加密,因此不能再采用传统的基于解析域名信息的方式识别数据流是否存在异常,而是需要对加密后的数据流进行特征分析,从而再基于提取得到的数据特征确定数据流是否存在异常。
3.其中,现有技术通常是使用tls(transport layer security,安全传输层协议)指纹库对数据流中的所有数据包进行特征提取和分析,由于要分析的数据量过多,并且tls指纹库的维护成本较高,因此,对于数据流的特征提取过程效率较低。其中,tls指纹库为一种用于存储大量数据特征的数据库,tls指纹库中的数据特征需要经过大规模的tls流量分析才能得到。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本技术实施例提供了一种数据特征提取方法及装置,以至少解决现有技术中对数据流特征提取效率低的技术问题。
6.根据本技术实施例的一个方面,提供了一种数据特征提取方法,包括:从数据传输隧道中获取n个目标数据包;根据每个目标数据包的四元组信息将n个目标数据包组成数据流,其中,四元组信息至少包括每个目标数据包对应的网络地址信息以及数据端口信息;根据每个目标数据包的获取时间对数据流进行数据包过滤操作,得到目标数据流,其中,目标数据流包含q个目标数据包,q小于或等于n;基于目标数据流提取多个数据特征,其中,数据特征用于确定数据传输隧道在传输数据包时是否存在异常。
7.进一步地,四元组信息至少包括第一终端设备的网络地址信息、第一数据端口的端口信息、第二终端设备的网络地址信息以及第二数据端口的端口信息,其中,第一终端设备用于生成目标数据包,并且将目标数据包发送至第二终端设备中,第一数据端口为第一终端设备上用于发送目标数据包的端口,第二数据端口为第二终端设备上用于接收目标数据包的端口。
8.进一步地,数据特征提取方法还包括:从数据传输隧道中获取m个数据包,其中,m大于或等于n;从m个数据包中确定n个目标数据包,其中,每个目标数据包的字节数量大于或等于预设字节数量,每个目标数据包的第一字段所对应的至少一个字符中包含第一预设字符,每个目标数据包的第二字段所对应的至少一个字符中包含第二预设字符,第一字段
表征传输每个目标数据包的传输层安全协议,第二字段表征每个目标数据包的隐含类型。
9.进一步地,数据特征提取方法还包括:检测数据流中n个目标数据包的总数量是否大于预设数量;在总数量大于预设数量的情况下,根据每个目标数据包的获取时间对n个目标数据包进行排序,得到排序结果;计算总数量与预设数量的差值,得到第一数量;根据排序结果按照从后向前的顺序,从数据流中删除第一数量的目标数据包,得到目标数据流。
10.进一步地,数据特征提取方法还包括:根据目标数据流中每个目标数据包的传输方向将目标数据流划分为第一数据流和第二数据流,其中,第一数据流中的目标数据包的传输方向为第一方向,第二数据流中的目标数据包的传输方向为第二方向,第一方向与第二方向为相反的方向;确定第一数据流中的每个目标数据包为第一数据包;根据第一数据包的数量以及每个第一数据包的字节数量确定第一数据流的数据长度;确定第二数据流中的每个目标数据包为第二数据包;根据第二数据包的数量以及每个第二数据包的字节数量确定第二数据流的数据长度,其中,多个数据特征至少包括第一数据流的数据长度以及第二数据流的数据长度。
11.进一步地,数据特征提取方法还包括:在确定第一数据流的数据长度以及第二数据流的数据长度之后,获取传输目标数据流的持续时长,其中,持续时长用于表征目标数据流中的q个目标数据包全部传输完成的时长;计算第一数据流的数据长度与持续时长的比值,得到第一数据传输速率;计算第二数据流的数据长度与持续时长的比值,得到第二数据传输速率,其中,多个数据特征至少包括第一数据传输速率以及第二数据传输速率。
12.进一步地,数据特征提取方法还包括:获取目标数据流中每个目标数据包的字节数量,得到q个字节数量;确定q个字节数量的统计数值,其中,q个字节数量的统计数值至少包括:q个字节数量的平均值、q个字节数量的中位数、q个字节数量的众数、q个字节数量的方差以及q个字节数量的标准差;根据q个字节数量的统计数值确定数据长度变量因子,其中,数据长度变量因子用于表征在目标数据流中目标数据包的字节数量的变化特征,多个数据特征至少包括数据长度变量因子。
13.进一步地,数据特征提取方法还包括:确定数据传输隧道中第一个数据包的出现时间为第一时间;确定目标数据流中每个目标数据包在数据传输隧道中的出现时间为第二时间;根据第二时间以及第一时间确定每个目标数据包的目标时长,得到q个目标时长,其中,目标时长用于表征每个目标数据包与第一个数据包先后出现在数据传输隧道的间隔时长;确定q个目标时长的统计数值,其中,q个目标时长的统计数值至少包括:q个目标时长的平均值、q个目标时长的中位数、q个目标时长的众数、q个目标时长的方差以及q个目标时长的标准差;根据q个目标时长的统计数值确定目标时长变量因子,其中,目标时长变量因子用于表征间隔时长的变化特征,多个数据特征至少包括目标时长变量因子。
14.进一步地,数据特征提取方法还包括:识别目标数据流中的k个请求数据包,其中,请求数据包为用于提交数据处理请求的目标数据包,k小于或等于q;获取每个请求数据包对应的响应数据包;根据请求数据包的生成时间以及响应数据包的生成时间确定每个请求数据包的响应时长,得到k个响应时长;确定k个响应时长的统计数值,其中,k个响应时长的统计数值至少包括k个响应时长的平均值、k个响应时长的中位数、k个响应时长的众数、k个响应时长的方差以及k个响应时长的标准差;根据k个响应时长的统计数值确定响应时长变量因子,其中,响应时长变量因子用于表征在目标数据流中请求数据包的响应时长的变化
特征,多个数据特征至少包括响应时长变量因子。
15.根据本技术实施例的另一方面,还提供了一种数据特征提取装置,包括:获取模块,用于从数据传输隧道中获取n个目标数据包;数据包处理模块,用于根据每个目标数据包的四元组信息将n个目标数据包组成数据流,其中,四元组信息至少包括每个目标数据包对应的网络地址信息以及数据端口信息;过滤模块,用于根据每个目标数据包的获取时间对数据流进行数据包过滤操作,得到目标数据流,其中,目标数据流包含q个目标数据包,q小于或等于n;特征提取模块,用于基于目标数据流提取多个数据特征,其中,数据特征用于确定数据传输隧道在传输数据包时是否存在异常。
16.在本技术中,采用根据目标数据包的获取时间对数据流进行数据包过滤操作,得到目标数据流的方式,首先从数据传输隧道中获取n个目标数据包,然后根据每个目标数据包的四元组信息将n个目标数据包组成数据流,再根据目标数据包的获取时间对数据流进行数据包过滤操作,得到目标数据流,最后基于目标数据流提取多个数据特征。其中,四元组信息至少包括每个目标数据包对应的网络地址信息以及数据端口信息;目标数据流包含q个目标数据包,q小于或等于n;数据特征用于确定数据传输隧道在传输数据包时是否存在异常。
17.由上述内容可知,本技术在对数据流进行分析时,并不会对数据传输隧道中的所有数据包都进行分析,而是针对于n个目标数据包组成一个新的数据流,并且还会对该数据流进行进一步地整合处理,最终得到一个由预设数量的目标数据包组成的目标数据流。在此基础上,本技术针对目标数据流进行特征提取操作,由于降低了所要分析的数据包数量,因此可以提高数据特征的提取效率,进而提高根据数据特征确定数据流是否存在异常的效率。
18.由此可见,本技术的技术方案达到了降低数据包的分析数量的目的,从而降低了数据特征的提取成本,进而解决了现有技术中对数据流特征提取效率低的技术问题。
附图说明
19.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
20.图1是根据本技术实施例的一种可选的数据特征提取方法的流程图;
21.图2是根据本技术实施例的一种可选的对数据流进行过滤操作的流程图;
22.图3是根据本技术实施例的一种可选的获取数据流的数据长度的流程图;
23.图4是根据本技术实施例的一种可选的数据特征提取装置的示意图。
具体实施方式
24.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
25.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
26.实施例1
27.根据本技术实施例,提供了一种数据特征提取方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
28.图1是根据本技术实施例的一种可选的数据特征提取方法的流程图,如图1所示,该方法包括如下步骤:
29.步骤s101,从数据传输隧道中获取n个目标数据包。
30.在步骤s101中,一种网络安全设备可作为本技术实施例中的数据特征提取方法的执行主体,其中,网络安全设备包括但不限于防火墙设备等设备。网络安全设备可与多个终端设备之间连接,例如,网络安全设备分别与终端设备a与终端设备b相连接,终端设备a、网络安全设备、终端设备b三者之间构成数据传输隧道,数据包可在数据传输隧道中传输,从而被三个设备处理。
31.另外,需要注意到的是,数据传输隧道中传输的数据包数量大于或等于n,换言之,数据传输隧道中所传输的数据包可能是目标数据包,也可能不是目标数据包,只有满足预设条件的数据包才是目标数据包。
32.步骤s102,根据每个目标数据包的四元组信息将n个目标数据包组成数据流。
33.在步骤s102中,四元组信息至少包括每个目标数据包对应的网络地址信息以及数据端口信息。具体的,四元组信息至少包括第一终端设备的网络地址信息、第一数据端口的端口信息、第二终端设备的网络地址信息以及第二数据端口的端口信息,其中,第一终端设备用于生成目标数据包,并且将目标数据包发送至第二终端设备中,第一数据端口为第一终端设备上用于发送目标数据包的端口,第二数据端口为第二终端设备上用于接收目标数据包的端口。
34.举例而言,上述的第一终端设备为服务器a,上述的第二终端设备为服务器b。其中,服务器a的网络地址信息为ip地址1,服务器b的网络地址信息为ip地址2。服务器a可生成目标数据包a,并且通过数据端口g将目标数据包a发送给服务器b,由于网络安全设备设置在服务器a与服务器b之间,因此,目标数据包a会先被网络安全设备获取,然后由网络安全设备将目标数据包a转发至服务器b中。其中,服务器b上用于接收目标数据包a的数据端口为数据端口h。在该示例中,ip地址1也可称为源ip,ip地址2也可称为目的ip,数据端口g也可称为源端口,数据端口h也可称为目的端口。
35.需要注意到的是,本技术根据每个目标数据包的四元组信息将n个目标数据包组成数据流,因此,在后续的数据特征提取过程中,本技术可以根据目标数据包的四元组信息提取数据流的数据特征,从而达到了在不使用tls指纹库的情况下提取数据特征的目的,进
而降低了数据特征的提取成本。
36.步骤s103,根据每个目标数据包的获取时间对数据流进行数据包过滤操作,得到目标数据流。
37.在步骤s103中,目标数据流包含q个目标数据包,q小于或等于n。具体的,在将n个目标数据包组成一个数据流之后,网络安全设备会根据n个目标数据包的数量确定是否对n个目标数据包进行过滤操作。在网络安全设备中,预先设置有预设数量q,如果网络安全设备检测到n个目标数据包的数量大于预设数量q,则网络安全设备将根据每个目标数据包的获取时间对n个目标数据包进行排序,并过滤第q个数据包之后的目标数据包,最终剩余的q个目标数据包组成一个目标数据流。其中,q的取值范围为[40,200]。
[0038]
步骤s104,基于目标数据流提取多个数据特征。
[0039]
在步骤s104中,数据特征用于确定数据传输隧道在传输数据包时是否存在异常。需要注意到的是,网络安全设备根据目标数据流中每个目标数据包的四元组信息提取目标数据流的多个数据特征。
[0040]
在一种可选的实施例中,n个目标数据包可以是加密后的dns数据包,多个数据特征可以用于建立神经网络模型,通过该神经网络模型,可检测加密后的dns数据流是否存在异常。
[0041]
在现有技术中,dns是一种常用的信息传输协议,其中,dns明文传输的机制虽然便于防火墙等安全设备进行安全检查和审计,但同时也导致了严重的隐私问题和安全问题。为了解决dns明文传输机制中的信息安全问题,可采用doh技术将dns请求数据包和dns响应数据包加密,从而防止第三方应用程序对明文状态的dns数据包进行窃听和篡改。
[0042]
但是,随着doh技术的使用范围日益扩大,基于doh的隧道攻击行为也越发频繁。其中,doh的隧道攻击行为本质上是对原来的dns隧道攻击行为进行了一层https封装。
[0043]
需要注意到的是,在实际的网络通信过程中,会通过各种防火墙设备来检查对外连接状况,如果发现通信异常,防火墙设备便会对通信进行阻断。在此基础上,数据发起方会将数据包按照防火墙设备所允许的数据包类型或端口进行封装,然后穿过防火墙设备与数据接收方进行通信,当封装的数据包到达数据接收方之后,数据接收方会对数据包进行还原,然后将还原后的数据包发送至对应的服务器上。这种技术称为隧道技术。
[0044]
在不法分子从事信息入侵行为时,不法分子会利用dns、icmp等合法协议来构建隐匿隧道来掩护器传递的异常信息,这类信息安全攻击行为称为隧道攻击行为,上述的doh的隧道攻击行为便是通过doh技术结合dns协议所进行的隧道攻击行为。
[0045]
还需要注意到的是,在现有技术中,通常是基于域名信息检测dns隧道攻击行为,但是这种检测技术能够成功实施的前提是由于dns数据流是未加密的、处于明文状态下的数据流,因此任何第三方应用程序都可以通过分析dns数据流获取到域名信息。在此基础上,在使用doh技术对dns数据流进行了加密的情况下,由于dns请求的内容和dns响应的内容不再可见,因此现有基于域名信息的dns隧道攻击行为检测技术便无法应用至doh隧道攻击行为检测的过程中。
[0046]
为了实现对doh隧道攻击行为的检测,常用的检测方式是针对加密后的数据流进行特征提取,然后利用提取得到的数据特征训练神经网络模型,进而利用神经网络模型检测doh隧道攻击行为。但是,现有技术通常使用tls指纹库对数据传输隧道中的所有数据包
进行特征提取以及分析,由于要分析的数据量过多,并且tls指纹库的维护成本较高,因此,数据流的特征提取过程效率较低。
[0047]
而在本技术中,在对数据流进行分析时,并不会对数据传输隧道中的所有数据包都进行分析,而是针对于n个目标数据包组成一个新的数据流,并且还会对该数据流进行进一步地整合处理,最终得到一个由预设数量的目标数据包组成的目标数据流。在此基础上,本技术针对目标数据流进行下一步的特征提取操作,由于降低了所要分析的数据包数量,因此可以提高数据特征的提取效率,进而提高了根据数据特征确定数据流是否存在异常的效率。
[0048]
在一种可选的实施例中,网络安全设备首先从数据传输隧道中获取m个数据包,其中,m大于或等于n。然后,网络安全设备从m个数据包中确定n个目标数据包,其中,每个目标数据包的字节数量大于或等于预设字节数量,每个目标数据包的第一字段所对应的字符为第一预设字符,每个目标数据包的第二字段所对应的字符为第二预设字符,第一字段表征传输每个目标数据包的传输层安全协议,第二字段表征每个目标数据包的隐含类型。
[0049]
可选的,m个数据包用于表征数据传输隧道中的全流量数据包,即数据传输过程中通过数据传输隧道的所有数据包。为了减少需要分析的数据包的数量,网络安全设备将不符合预设条件的数据包进行过滤,将符合预设条件的数据包确定为目标数据包。其中,预设条件如下:每个目标数据包的字节数量大于或等于预设字节数量;每个目标数据包的第一字段所对应的至少一个字符中包含第一预设字符;每个目标数据包的第二字段所对应的至少一个字符中包含第二预设字符。
[0050]
具体的,上述的第一字段为“transport layer security”字段,上述的第一预设字符为“tls”字符,上述的第二字段为“opaque type”字段,上述的第二预设字符为“application data”字符,上述的预设字节数量可为z字节,z的取值范围为[30,80]。
[0051]
在一种可选的实施例中,为了进一步地减少待分析的数据包的数量,网络安全设备通过图2中的步骤对由n个目标数据包组成的数据流进行过滤处理操作。具体的,如图2所示:
[0052]
步骤s201,网络安全设备检测数据流中n个目标数据包的总数量是否大于预设数量;
[0053]
步骤s202,在总数量大于预设数量的情况下,网络安全设备根据每个目标数据包的获取时间对n个目标数据包进行排序,得到排序结果;
[0054]
步骤s203,网络安全设备计算总数量与预设数量的差值,得到第一数量,并根据排序结果按照从后向前的顺序,从数据流中删除第一数量的目标数据包,得到目标数据流。
[0055]
在上述过程中,预设数量可记为q,如果网络安全设备检测到n个目标数据包的数量大于预设数量q,则网络安全设备将根据每个目标数据包的获取时间对n个目标数据包进行排序,并过滤第q个数据包之后的目标数据包,最终剩余的q个目标数据包组成一个目标数据流。其中,q的取值范围为[40,200]。
[0056]
在一种可选的实施例中,网络安全设备根据目标数据流中每个目标数据包的传输方向将目标数据流划分为第一数据流和第二数据流,其中,第一数据流中的目标数据包的传输方向为第一方向,第二数据流中的目标数据包的传输方向为第二方向,第一方向与第二方向为相反的方向。然后,网络安全设备通过图3中的步骤得到第一数据流的数据长度以
及第二数据流的数据长度。如图3所示:
[0057]
步骤s301,确定第一数据流中的每个目标数据包为第一数据包;
[0058]
步骤s302,根据第一数据包的数量以及每个第一数据包的字节数量确定第一数据流的数据长度;
[0059]
步骤s303,确定第二数据流中的每个目标数据包为第二数据包;
[0060]
步骤s304,根据第二数据包的数量以及每个第二数据包的字节数量确定第二数据流的数据长度。
[0061]
其中,多个数据特征至少包括第一数据流的数据长度以及第二数据流的数据长度。
[0062]
可选的,假设目标数据流为pi为按照获取时间进行排序后的第i个目标数据包,数据包的字节数量记为li,d为目标数据包的传输方向,d=0表示该目标数据包的传输方向为第一方向,例如正向,d=1表示该目标数据包的传输方向为第二方向,例如反向。根据每个目标数据包的传输方向,网络安全设备将目标数据流flow划分为第一数据流和第二数据流。
[0063]
具体的,将d=0的目标数据包组成第一数据流将d=1的目标数据包组成第二数据流并且flowf∪flowr=flow。
[0064]
可选的,可通过以下公式计算得到第一数据流的数据长度f1:
[0065][0066]
可通过以下公式计算得到第二数据流的数据长度f3:
[0067][0068]
其中,多个数据特征中至少包括第一数据流的数据长度以及第二数据流的数据长度。
[0069]
在一种可选的实施例中,在确定第一数据流的数据长度以及第二数据流的数据长度之后,网络安全设备获取传输目标数据流的持续时长,其中,持续时长用于表征目标数据流中的q个目标数据包全部传输完成的时长。然后,网络安全设备计算第一数据流的数据长度与持续时长的比值,得到第一数据传输速率,并计算第二数据流的数据长度与持续时长的比值,得到第二数据传输速率,其中,多个数据特征至少包括第一数据传输速率以及第二数据传输速率。
[0070]
可选的,仍以目标数据流为为例,目标数据流flow的持续时长用duration表示。
[0071]
第一数据传输速率f2可通过以下公式计算得到:
[0072][0073]
第二数据传输速率f4可通过以下公式计算得到:
[0074][0075]
其中,第一数据传输速率以及第二数据传输速率也是多个数据特征中的两个数据特征。
[0076]
在一种可选的实施例中,网络安全设备获取目标数据流中每个目标数据包的字节数量,得到q个字节数量;并确定q个字节数量的统计数值,其中,q个字节数量的统计数值至少包括:q个字节数量的平均值、q个字节数量的中位数、q个字节数量的众数、q个字节数量的方差以及q个字节数量的标准差。最后,网络安全设备根据q个字节数量的统计数值确定数据长度变量因子,其中,数据长度变量因子用于表征在目标数据流中目标数据包的字节数量的变化特征,多个数据特征至少包括数据长度变量因子。
[0077]
可选的,仍以目标数据流为为例,i∈[1,q],q∈[40,200],pi为按照获取时间进行排序后的第i个目标数据包,数据包的字节数量记为li。
[0078]
可通过以下公式计算得到目标数据流flow的数据长度变量因子f5:
[0079]
f5=α1mean({li|i∈[1,q]}) α2median({li|i∈[1,q]})
[0080]
α3mode({li|i∈[1,q]}) α4*0.005*var({li|i∈[1,q]})
[0081]
α5std({li|i∈[1,q]}) α6*2000*cov({li|i∈[1,q]}) α7*500
[0082]
*|skew1({li|i∈[1,q]})| α8*500*|skew2({li|i∈[1,q]})|
[0083]
其中,αk∈(0.01,0.2),k∈[1,8]。数据长度变量因子也是多个数据特征中的一个数据特征。
[0084]
上述公式中的mean()表示求取平均值;median()表示求取中位数;mode()表示求取众数,即最常出现的数值以及出现的次数;var()表示求取方差;std()表示求取标准差;cov()表示求取标准差与均值的比值,即(标准差/均值);skew1()=5*(均值-中位数)/标准差;skew2()=(均值-众数)^2/标准差。
[0085]
在一种可选的实施例中,网络安全设备首先识别目标数据流中的k个请求数据包,其中,请求数据包为用于提交数据处理请求的目标数据包,k的值小于或等于q的值。然后网络安全设备获取每个请求数据包对应的响应数据包,并根据每个请求数据包的生成时间以及每个响应数据包的生成时间确定每个请求数据包的响应时长,得到k个响应时长,随后网络安全设备确定k个响应时长的统计数值,其中,k个响应时长的统计数值至少包括k个响应时长的平均值、k个响应时长的中位数、k个响应时长的众数、k个响应时长的方差以及k个响应时长的标准差。最后,网络安全设备根据k个响应时长的统计数值确定响应时长变量因子,其中,响应时长变量因子用于表征在目标数据流中请求数据包的响应时长的变化特征,多个数据特征至少包括响应时长变量因子。
[0086]
可选的,目标数据流中的目标数据包可分为请求数据包和响应数据包两种,其中,在正常情况下,请求数据包和响应数据包是成对存在的,即一个请求数据包与一个响应数
据包相对应。假设目标数据流flow中存在k个请求数据包,并且存在k个响应数据包,根据每个请求数据包的生成时间以及每个响应数据包的生成时间确定每个请求数据包的响应时长,得到k个响应时长,按照请求数据包在目标数据流中的排列顺序,得到请求数据包与响应数据包的响应时长序列r={r1,r2,

,ri,
…rk
},k取决于请求、响应的具体对数,k《q。
[0087]
基于上述响应时长序列r,可通过以下公式计算得到响应时长变量因子f7:
[0088]
f7=γ1mean({ri|i∈[1,k]}) γ2median({ri|i∈[1,k]})
[0089]
γ3mode({ri|i∈[1,k]}) γ4*100*var({ri|i∈[1,k]}) γ5*10
[0090]
*std({ri|i∈[1,k]}) γ6*0.0001*cov({ri|i∈[1,k]}) γ7[0091]
*0.0001*|skew1({ri|i∈[1,k]})| γ8*0.0001
[0092]
*|skew2({ri|i∈[1,k]})|
[0093]
其中,γk∈(0.02,08),k∈[1,8]。响应时长变量因子也是多个数据特征中的一个数据特征。
[0094]
在一种可选的实施例中,网络安全设备确定数据传输隧道中第一个数据包的出现时间为第一时间,并确定目标数据流中每个目标数据包在数据传输隧道中的出现时间为第二时间。然后,网络安全设备根据第二时间以及第一时间确定每个目标数据包的目标时长,得到q个目标时长,其中,目标时长用于表征每个目标数据包与第一个数据包先后出现在数据传输隧道的间隔时长。随后,网络安全设备确定q个目标时长的统计数值,其中,q个目标时长的统计数值至少包括:q个目标时长的平均值、q个目标时长的中位数、q个目标时长的众数、q个目标时长的方差以及q个目标时长的标准差。最后,网络安全设备根据q个目标时长的统计数值确定目标时长变量因子,其中,目标时长变量因子用于表征间隔时长的变化特征,多个数据特征至少包括目标时长变量因子。
[0095]
可选的,仍以目标数据流flow为例,将目标数据流中的第i个目标数据包与目标数据流的第一个数据包先后出现在数据传输隧道中的间隔时长记为ti。
[0096]
上述的目标时长变量因子f6可通过以下公式计算得到:
[0097]
f6=β1mean({ti|i∈[1,q]}) β2*8*median({ti|i∈[1,q]}) β3*8
[0098]
*mode({ti|i∈[1,q]}) β4var({ti|i∈[1,q]})
[0099]
β5std({ti|i∈[1,q]}) β6*0.1*cov({ti|i∈[1,q]}) β7[0100]
*|skew1({ti|i∈[1,q]})| β8*|skew2({ti|i∈[1,q]})|
[0101]
其中,βk∈(0.05,03),k∈[1,8]。目标数据变量因子也是多个数据特征中的一个数据特征。
[0102]
在通过计算得到上述7个数据特征之后,可利用该7个数据特征训练得到神经网络模型,进而利用神经网络模型检测doh隧道攻击行为。与现有技术相比,本技术在对数据流进行分析时,并不会对数据传输隧道中的所有数据包都进行分析,而是针对于n个目标数据包组成一个新的数据流,并且还会对该数据流进行进一步地整合处理,最终得到一个由预设数量的目标数据包组成的目标数据流,从而降低了所要分析的数据包数量,进而提高了数据特征的提取效率。
[0103]
实施例2
[0104]
根据本技术实施例,还提供了一种数据特征提取装置实施例,其中,图4是根据本技术实施例的一种可选的数据特征提取装置的示意图,如图4所示,该装置包括:获取模块
401,用于从数据传输隧道中获取n个目标数据包;数据包处理模块402,用于根据每个目标数据包的四元组信息将n个目标数据包组成数据流,其中,四元组信息至少包括每个目标数据包对应的网络地址信息以及数据端口信息;过滤模块403,用于根据每个目标数据包的获取时间对数据流进行数据包过滤操作,得到目标数据流,其中,目标数据流包含q个目标数据包,q小于或等于n;特征提取模块404,用于基于目标数据流提取多个数据特征,其中,数据特征用于确定数据传输隧道在传输数据包时是否存在异常。
[0105]
需要说明的是,上述获取模块401、数据包处理模块402、过滤模块403以及特征提取模块404对应于上述实施例1中的步骤s101至步骤s104,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
[0106]
在一种可选的实施例中,n个目标数据包可以是加密后的dns数据包,多个数据特征可以用于建立神经网络模型,通过该神经网络模型,可检测加密后的dns数据流是否存在异常。
[0107]
在现有技术中,dns是一种常用的信息传输协议,其中,dns明文传输的机制虽然便于防火墙等安全设备进行安全检查和审计,但同时也导致了严重的隐私问题和安全问题。为了解决dns明文传输机制中的信息安全问题,可采用doh技术将dns请求数据包和dns响应数据包加密,从而防止第三方应用程序对明文状态的dns数据包进行窃听和篡改。
[0108]
但是,随着doh技术的使用范围日益扩大,基于doh的隧道攻击行为也越发频繁。其中,doh的隧道攻击行为本质上是对原来的dns隧道攻击行为进行了一层https封装。
[0109]
需要注意到的是,在实际的网络通信过程中,会通过各种防火墙设备来检查对外连接状况,如果发现通信异常,防火墙设备便会对通信进行阻断。在此基础上,数据发起方会将数据包按照防火墙设备所允许的数据包类型或端口进行封装,然后穿过防火墙设备与数据接收方进行通信,当封装的数据包到达数据接收方之后,数据接收方会对数据包进行还原,然后将还原后的数据包发送至对应的服务器上。这种技术称为隧道技术。
[0110]
在不法分子从事信息入侵行为时,不法分子会利用dns、icmp等合法协议来构建隐匿隧道来掩护器传递的异常信息,这类信息安全攻击行为称为隧道攻击行为,上述的doh的隧道攻击行为便是通过doh技术结合dns协议所进行的隧道攻击行为。
[0111]
还需要注意到的是,在现有技术中,通常是基于域名信息检测dns隧道攻击行为,但是这种检测技术能够成功实施的前提是由于dns数据流是未加密的、处于明文状态下的数据流,因此任何第三方应用程序都可以通过分析dns数据流获取到域名信息。在此基础上,在使用doh技术对dns数据流进行了加密的情况下,由于dns请求的内容和dns响应的内容不再可见,因此现有基于域名信息的dns隧道攻击行为检测技术便无法应用至doh隧道攻击行为检测的过程中。
[0112]
为了实现对doh隧道攻击行为的检测,常用的检测方式是针对加密后的数据流进行特征提取,然后利用提取得到的数据特征训练神经网络模型,进而利用神经网络模型检测doh隧道攻击行为。但是,现有技术通常使用tls指纹库对数据传输隧道中的所有数据包进行特征提取以及分析,由于要分析的数据量过多,并且tls指纹库的维护成本较高,因此,数据流的特征提取过程效率较低。
[0113]
而在本技术中,在对数据流进行分析时,并不会对数据传输隧道中的所有数据包都进行分析,而是针对于n个目标数据包组成一个新的数据流,并且还会对该数据流进行进
一步地整合处理,最终得到一个由预设数量的目标数据包组成的目标数据流。在此基础上,本技术针对目标数据流进行下一步的特征提取操作,由于降低了所要分析的数据包数量,因此可以提高数据特征的提取效率,进而提高了根据数据特征确定数据流是否存在异常的效率。
[0114]
可选的,四元组信息至少包括第一终端设备的网络地址信息、第一数据端口的端口信息、第二终端设备的网络地址信息以及第二数据端口的端口信息,其中,第一终端设备用于生成目标数据包,并且将目标数据包发送至第二终端设备中,第一数据端口为第一终端设备上用于发送目标数据包的端口,第二数据端口为第二终端设备上用于接收目标数据包的端口。
[0115]
可选的,上述获取模块还包括:第一获取单元以及第一确定单元。其中,第一获取单元,用于从数据传输隧道中获取m个数据包,其中,m大于或等于n;第一确定单元,用于从m个数据包中确定n个目标数据包,其中,每个目标数据包的字节数量大于或等于预设字节数量,每个目标数据包的第一字段所对应的至少一个字符中包含第一预设字符,每个目标数据包的第二字段所对应的至少一个字符中包含第二预设字符,第一字段表征传输每个目标数据包的传输层安全协议,第二字段表征每个目标数据包的隐含类型。
[0116]
在一种可选的实施例中,数据特征提取装置可设置在一种网络安全设备中,网络安全设备可作为本技术实施例中的数据特征提取方法的执行主体,其中,网络安全设备包括但不限于防火墙设备等设备。网络安全设备可与多个终端设备之间连接,例如,网络安全设备分别与终端设备a与终端设备b相连接,终端设备a、网络安全设备、终端设备b三者之间构成数据传输隧道,数据包可在数据传输隧道中传输,从而被三个设备处理。
[0117]
上述的m个数据包用于表征数据传输隧道中的全流量数据包,即数据传输过程中通过数据传输隧道的所有数据包。为了减少需要分析的数据包的数量,网络安全设备将不符合预设条件的数据包进行过滤,将符合预设条件的数据包确定为目标数据包。其中,预设条件如下:每个目标数据包的字节数量大于或等于预设字节数量;每个目标数据包的第一字段所对应的至少一个字符中包含第一预设字符;每个目标数据包的第二字段所对应的至少一个字符中包含第二预设字符。
[0118]
具体的,上述的第一字段为“transport layer security”字段,上述的第一预设字符为“tls”字符,上述的第二字段为“opaque type”字段,上述的第二预设字符为“application data”字符,上述的预设字节数量可为z字节,z的取值范围为[30,80]。
[0119]
可选的,上述过滤模块还包括:第一检测单元、第二获取单元、第一计算单元以及删除单元。其中,第一检测单元,用于检测数据流中n个目标数据包的总数量是否大于预设数量;第二获取单元,用于在总数量大于预设数量的情况下,根据每个目标数据包的获取时间对n个目标数据包进行排序,得到排序结果;第一计算单元,用于计算总数量与预设数量的差值,得到第一数量;删除单元,用于根据排序结果按照从后向前的顺序,从数据流中删除第一数量的目标数据包,得到目标数据流。
[0120]
在上述过程中,预设数量可记为q,如果网络安全设备检测到n个目标数据包的数量大于预设数量q,则网络安全设备将根据每个目标数据包的获取时间对n个目标数据包进行排序,并过滤第q个数据包之后的目标数据包,最终剩余的q个目标数据包组成一个目标数据流。其中,q的取值范围为[40,200]。
[0121]
可选的,上述特征提取模块还包括:第一划分单元、第二确定单元、第三确定单元、第四确定单元以及第五确定单元。其中,第一划分单元,用于根据目标数据流中每个目标数据包的传输方向将目标数据流划分为第一数据流和第二数据流,其中,第一数据流中的目标数据包的传输方向为第一方向,第二数据流中的目标数据包的传输方向为第二方向,第一方向与第二方向为相反的方向;第二确定单元,用于确定第一数据流中的每个目标数据包为第一数据包;第三确定单元,用于根据第一数据包的数量以及每个第一数据包的字节数量确定第一数据流的数据长度;第四确定单元,用于确定第二数据流中的每个目标数据包为第二数据包;第五确定单元,用于根据第二数据包的数量以及每个第二数据包的字节数量确定第二数据流的数据长度,其中,多个数据特征至少包括第一数据流的数据长度以及第二数据流的数据长度。
[0122]
假设目标数据流为假设目标数据流为pi为按照获取时间进行排序后的第i个目标数据包,数据包的字节数量记为li,d为目标数据包的传输方向,d=0表示该目标数据包的传输方向为第一方向,例如正向,d=1表示该目标数据包的传输方向为第二方向,例如反向。根据每个目标数据包的传输方向,网络安全设备将目标数据流flow划分为第一数据流和第二数据流。
[0123]
具体的,将d=0的目标数据包组成第一数据流将d=1的目标数据包组成第二数据流并且flowf∪flowr=flow。
[0124]
可选的,可通过以下公式计算得到第一数据流的数据长度f1:
[0125][0126]
可通过以下公式计算得到第二数据流的数据长度f3:
[0127][0128]
其中,多个数据特征中至少包括第一数据流的数据长度以及第二数据流的数据长度。
[0129]
可选的,数据特征提取装置还包括:第一获取模块、第一计算模块、第二计算模块。其中,第一获取模块,用于获取传输目标数据流的持续时长,其中,持续时长用于表征目标数据流中的q个目标数据包全部传输完成的时长;第一计算模块,用于计算第一数据流的数据长度与持续时长的比值,得到第一数据传输速率;第二计算模块,用于计算第二数据流的数据长度与持续时长的比值,得到第二数据传输速率,其中,多个数据特征至少包括第一数据传输速率以及第二数据传输速率。
[0130]
仍以目标数据流为为例,目标数据流flow的持续时长用duration表示。
[0131]
第一数据传输速率f2可通过以下公式计算得到:
[0132][0133]
第二数据传输速率f4可通过以下公式计算得到:
[0134][0135]
其中,第一数据传输速率以及第二数据传输速率也是多个数据特征中的两个数据特征。
[0136]
可选的,上述特征提取模块还包括:第三获取单元、第六确定单元以及第七确定单元。其中,第三获取单元,用于获取目标数据流中每个目标数据包的字节数量,得到q个字节数量;第六确定单元,用于确定q个字节数量的统计数值,其中,q个字节数量的统计数值至少包括:q个字节数量的平均值、q个字节数量的中位数、q个字节数量的众数、q个字节数量的方差以及q个字节数量的标准差;第七确定单元,用于根据q个字节数量的统计数值确定数据长度变量因子,其中,数据长度变量因子用于表征在目标数据流中目标数据包的字节数量的变化特征,多个数据特征至少包括数据长度变量因子。
[0137]
仍以目标数据流为为例,i∈[1,q],q∈[40,200],pi为按照获取时间进行排序后的第i个目标数据包,数据包的字节数量记为li。
[0138]
可通过以下公式计算得到目标数据流flow的数据长度变量因子f5:
[0139]
f5=α1mean({li|i∈[1,q]}) α2median({li|i∈[1,q]})
[0140]
α3mode({li|i∈[1,q]}) α4*0.005*var({li|i∈[1,q]})
[0141]
α5std({li|i∈[1,q]}) α6*2000*cov({li|i∈[1,q]}) α7*500
[0142]
*|skew1({li|i∈[1,q]})| α8*500*|skew2({li|i∈[1,q]})|
[0143]
其中,αk∈(0.01,0.2),k∈[1,8]。数据长度变量因子也是多个数据特征中的一个数据特征。
[0144]
上述公式中的mean():表示求取平均值;median()表示求取中位数;mode()表示求取众数,即最常出现的数值以及出现的次数;var()表示求取方差;std()表示求取标准差;cov()表示求取标准差与均值的比值,即(标准差/均值);skew1()=5*(均值-中位数)/标准差;skew2()=(均值-众数)^2/标准差。
[0145]
可选的,上述特征提取模块还包括:第八确定单元、第九确定单元、第十确定单元、第十一确定单元、第十二确定单元。其中,第八确定单元,用于确定数据传输隧道中第一个数据包的出现时间为第一时间;第九确定单元,用于确定目标数据流中每个目标数据包在数据传输隧道中的出现时间为第二时间;第十确定单元,用于根据第二时间以及第一时间确定每个目标数据包的目标时长,得到q个目标时长,其中,目标时长用于表征每个目标数据包与第一个数据包先后出现在数据传输隧道的间隔时长;第十一确定单元,用于确定q个目标时长的统计数值,其中,q个目标时长的统计数值至少包括:q个目标时长的平均值、q个目标时长的中位数、q个目标时长的众数、q个目标时长的方差以及q个目标时长的标准差;第十二确定单元,用于根据q个目标时长的统计数值确定目标时长变量因子,其中,目标时长变量因子用于表征间隔时长的变化特征,多个数据特征至少包括目标时长变量因子。
[0146]
仍以目标数据流flow为例,将目标数据流中的第i个目标数据包与目标数据流
的第一个数据包先后出现在数据传输隧道中的间隔时长记为ti。
[0147]
上述的目标时长变量因子f6可通过以下公式计算得到:
[0148]
f6=β1mean({ti|i∈[1,q]}) β2*8*median({ti|i∈[1,q]}) β3*8
[0149]
*mode({ti|i∈[1,q]}) β4var({ti|i∈[1,q]})
[0150]
β5std({ti|i∈[1,q]}) β6*0.1*cov({ti|i∈[1,q]}) β7[0151]
*|skew1({ti|i∈[1,q]})| β8*|skew2({ti|i∈[1,q]})|
[0152]
其中,βk∈(0.05,03),k∈[1,8]。目标数据变量因子也是多个数据特征中的一个数据特征。
[0153]
可选的,上述特征提取模块还包括:识别单元、第四获取单元、第十三确定单元、第十四确定单元、第十五确定单元。其中,识别单元,用于识别目标数据流中的k个请求数据包,其中,请求数据包为用于提交数据处理请求的目标数据包,k的值小于或等于q的值;第四获取单元,用于获取每个请求数据包对应的响应数据包;第十三确定单元,用于根据每个请求数据包的生成时间以及每个响应数据包的生成时间确定每个请求数据包的响应时长,得到k个响应时长;第十四确定单元,用于确定k个响应时长的统计数值,其中,k个响应时长的统计数值至少包括k个响应时长的平均值、k个响应时长的中位数、k个响应时长的众数、k个响应时长的方差以及k个响应时长的标准差;第十五确定单元,用于根据k个响应时长的统计数值确定响应时长变量因子,其中,响应时长变量因子用于表征在目标数据流中请求数据包的响应时长的变化特征,多个数据特征至少包括响应时长变量因子。
[0154]
目标数据流中的目标数据包可分为请求数据包和响应数据包两种,其中,在正常情况下,请求数据包和响应数据包是成对存在的,即一个请求数据包与一个响应数据包相对应。假设目标数据流flow中存在k个请求数据包,并且存在k个响应数据包,根据每个请求数据包的生成时间以及每个响应数据包的生成时间确定每个请求数据包的响应时长,得到k个响应时长,按照请求数据包在目标数据流中的排列顺序,得到请求数据包与响应数据包的响应时长序列r={r1,r2,

,ri,
…rk
},k取决于请求、响应的具体对数,,k《q。
[0155]
基于上述响应时长序列r,可通过以下公式计算得到响应时长变量因子f7:
[0156]
f7=γ1mean({ri|i∈[1,k]}) γ2median({ri|i∈[1,k]})
[0157]
γ3mode({ri|i∈[1,k]}) γ4*100*var({ri|i∈[1,k]}) γ5*10
[0158]
*std({ri|i∈[1,k]}) γ6*0.0001*cov({ri|i∈[1,k]}) γ7[0159]
*0.0001*|skew1({ri|i∈[1,k]})| γ8*0.0001
[0160]
*|skew2({ri|i∈[1,k]})|
[0161]
其中,γk∈(0.02,08),k∈[1,8]。响应时长变量因子也是多个数据特征中的一个数据特征。
[0162]
在通过计算得到上述7个数据特征之后,可利用该7个数据特征训练得到神经网络模型,进而利用神经网络模型检测doh隧道攻击行为。与现有技术相比,本技术在对数据流进行分析时,并不会对数据传输隧道中的所有数据包都进行分析,而是针对于n个目标数据包组成一个新的数据流,并且还会对该数据流进行进一步地整合处理,最终得到一个由预设数量的目标数据包组成的目标数据流,从而降低了所要分析的数据包数量,进而提高了数据特征的提取效率。
[0163]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0164]
在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0165]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0166]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0167]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0168]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0169]
以上仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献