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

隐蔽信道检测方法、装置、设备及存储介质与流程

2022-02-20 14:23:17 来源:中国专利 TAG:


1.本公开实施例涉及计算机网络安全技术领域,尤其涉及一种隐蔽信道检测方法、装置、设备及存储介质。


背景技术:

2.网络隐蔽信道可以轻易绕过防火墙和入侵检测系统(intrusiondetection system,ids)的检测而攻击网络,安全套接字协议(securesockets layer,ssl)是一种基于安全传输的协议,其应用加密技术保护通信内容的安全,普通的防火墙和网络地址转换(network addresstranslation,nat)设备基本不会对其进行拦截,而基于ssl协议的安全超文本传输协议(hypertext transfer protocol secure,https)服务应用十分普及,故而出现了一种使用ssl协议作为承载协议的新型隐蔽信道。
3.相关技术中基于ssl隐蔽信道的检测方法,通常只用来检测隐蔽信道中是否存在加密木马,是根据已知木马操作的行为特征进行检测,而无法检测是否存在ssl隐蔽信道,即现有技术已经无法满足当前ssl隐蔽信道的检测的需求。因而亟需一种ssl隐蔽信道的检测方法来弥补现有隐蔽信道检测方法的不足。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种隐蔽信道检测方法、装置、设备及存储介质。
5.本公开实施例的第一方面提供了一种隐蔽信道检测方法,该方法包括:
6.获取客户端与服务器在握手阶段的流量;对流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征;对提取的特征进行编码处理,得到特征对应的特征向量;将特征向量输入预设的隐蔽信道检测模型,基于该隐蔽信道检测模型进行ssl隐蔽信道检测。
7.本公开实施例的第二方面提供了一种隐蔽信道检测装置,该装置包括:
8.获取模块,用于获取客户端与服务器在握手阶段的流量;
9.提取模块,用于对流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征;
10.编码模块,用于对特征进行编码处理,得到特征对应的特征向量;
11.检测模块,用于将特征向量输入预设的隐蔽信道检测模型,基于该隐蔽信道检测模型进行ssl隐蔽信道检测。
12.本公开实施例的第三方面提供了一种计算设备,该设备包括存储器和处理器,其中,存储器中存储有计算机程序,当计算机程序被处理器执行时,可以实现上述第一方面的方法。
13.本公开实施例的第四方面提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述第一方面的方法。
14.本公开实施例提供的技术方案与现有技术相比具有如下优点:
15.本公开实施例,通过获取客户端与服务器在握手阶段的流量;对流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征;对提取的特征进行编码处理,得到特征对应的特征向量;将特征向量输入预设的隐蔽信道检测模型,基于该隐蔽信道检测模型进行ssl隐蔽信道检测。本公开实施例通过预设的隐蔽信道检测模型,根据握手阶段流量中与ssl隐蔽信道相关的特征判断流量中是否存在ssl隐蔽信道,满足了当前对ssl隐蔽信道检测方法的需求,可以有效提高检测精度。
附图说明
16.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
17.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
18.图1是本公开实施例提供的一种隐蔽信道检测模型的训练方法的流程图;
19.图2是本公开实施例提供的一种隐蔽信道检测方法的流程图;
20.图3是本公开实施例提供的一种隐蔽信道检测装置的结构示意图。
具体实施方式
21.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
22.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
23.图1是本公开实施例提供的一种隐蔽信道检测模型的训练方法的流程图,该方法可以由一种计算设备来执行,该计算设备可以理解为任意一种具有计算功能和处理能力的设备。如图1所示,本实施例提供的隐蔽信道检测模型的训练方法包括如下步骤:
24.步骤101、从网络流量中选取正样本和负样本,构成模型训练的数据集。
25.本公开实施例中所称流量可以理解为传输的数据量。
26.本公开实施例中所称的正样本可以理解为网络流量中不包含安全套接字协议ssl隐蔽信道的正常流量,负样本可以理解为网络流量中包含安全套接字协议ssl隐蔽信道的异常流量,正样本和负样本一同构成模型训练的数据集。需要说明的是,上述的安全套接字协议ssl是为网络通信提供安全及数据完整性的一种安全协议,用以保障在互联网上数据传输的安全,利用数据加密技术,可确保数据在网络上的传输过程中不会被截取及窃听。上述的隐蔽信道是一种允许进程以违背系统安全策略的形式传送信息的通信通道,简单来说,隐蔽信道可以理解为实质不是用来传送信息的通信通道。
27.步骤102、从数据集中获取客户端与服务器在握手阶段的流量,对握手阶段的流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征。
28.其中,ssl通信可以分为握手阶段和数据传输阶段,握手阶段可以理解为客户端和服务器之间建立通信安全参数的过程,用来确认彼此之间的身份,客户端和服务器在握手过程中并没有建立完整的数据连接和产生实际的数据通信行为,因此,与数据传输阶段相比,握手阶段更容易隐匿信息,而大多大数ssl隐蔽信道均建立在握手阶段,因此,在本公开实施例中,通过提取客户端与服务器在握手阶段与安全套接字协议ssl隐蔽信道相关的特征作为模型训练的特征。
29.在本公开实施例中,对握手阶段的流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征,包括步骤s11-s12:
30.s11、从流量中提取得到客户问候报文中的随机数、服务器名称指示字段sni、证书信息量、数据交互的时序特征和背景流。
31.s12、分别基于客户问候报文中的随机数、服务器名称指示字段sni、证书信息量、数据交互的时序特征和背景流,确定得到客户问候报文中的随机数的字符重复率或熵值、服务器名称指示字段sni为空的占比、证书信息量在所述流量中的比例、数据交互的时序特征值和背景流在所述流量中的比例。
32.其中,客户问候报文即client hello报文,客户端发送client hello报文给服务器,服务器收到后返回服务器收到报文(server hello报文),这是客户端与服务器在握手阶段协商安全参数的过程,而ssl隐蔽信道常常会选择伪造client hello报文,ssl隐蔽信道携带的信息常被隐藏在client hello报文中28字节(byte)的随机数中,该随机数用于生成通信过程中的对称秘钥,随机数字段的修改不会影响client hello报文本身,随机数字段很可能被用来构造隐蔽信道,可以选择客户问候报文中的随机数的字符重复率或熵值评价随机数的复杂程度,随机数的复杂程度越高,字符重复率或熵值越大,流量中包含ssl隐蔽信道的概率就越大。因此,可以选择客户问候报文中的随机数的字符重复率或熵值作为ssl隐蔽信道相关的特征。
33.服务器名称指示字段(server name indication,sni)为客户端访问的服务器的域名,用于在数据传输时对计算机的定位标识,正常报文会携带sni字段,而隐蔽信道中的sni字段通常是空的,服务器名称指示字段sni为空的占比,即sni为空的字段在流量中的比例越大,流量中包含ssl隐蔽信道的概率就越大。因此,可以选择服务器名称指示字段sni为空的占比作为ssl隐蔽信道相关的特征。
34.证书可以理解为服务器和客户端进行加密信息认证的一种报文,包括证书公钥,证书的有效期,标准差等信息,合法证书的信息量完整,而隐蔽信道的证书很可能是伪造的,其中有很多空的字段,即证书的信息量较少,流量中的证书信息量越小,流量中包含ssl隐蔽信道的概率就越大。因此,可以选择证书信息量作为ssl隐蔽信道相关的特征。
35.数据交互的时序特征可以理解为一定时间段内数据交互的一些特征,包括上下行字节数、上下行数据包数、数据完成交互的时间、平均数据包长等时序特征,其中,数据完成交互的时间可以理解为从发出一个数据包开始到收到一个相应回复的数据包的时间,平均数据包长可以理解为一定时间段多个具有不同数据量的数据包的平均数据量。正常流量的数据交互都有一个完整的交互过程,发出一个数据包就会收到一个相应回复的数据包,数据包都是有去有回的,比如,客户端向服务器发送一个数据包,服务器收到该数据包并处理后会给客户端返回一个携带回复信息的数据包,而隐蔽信道由于其携带的内容经常没有数
据,客户端通过隐蔽信道发送给服务器的数据包,服务器不一定会回复,因此ssl隐蔽信道与正常流量相比,ssl隐蔽信道有着强烈的时序特征,隐蔽信道的上下行字节数较少、上下行数据包数较少、数据完成交互的时间较短、平均数据包长较小,可以用时序特征值综合评价上述时序特征,时序特征值越小,流量中包含ssl隐蔽信道的概率就越大。因此,可以选择数据交互的时序特征值作为ssl隐蔽信道相关的特征。
36.背景流可以理解为流量中区别于正常通信协议传输的流量之外的其他通信协议传输的流量,比如基于安全超文本传输协议https传输的流量之外的通过域名系统(domainname system,dns)协议的流量等类似的流量,正常流量中的背景流在正常范围之内,而隐蔽信道经常通过流量混淆的方式,使用同一台或不同客户端进行正常的访问行为,混淆着各种不同的通信协议的流量,隐蔽信道中的背景流通常比正常流量中的背景流多,可以用背景流在流量中的比例评价背景流的数量,背景流在流量中的比例越大,流量中包含ssl隐蔽信道的概率就越大。因此,可以选择背景流在流量中的比例作为ssl隐蔽信道相关的特征。
37.从网络中获取的流量样本往往比较复杂,包含着大量的冗余数据和无效数据等干扰数据,例如冗余数据包、有效载荷为零的数据包、单向数据流、心跳包等,这些数据影响模型训练的精确度,为降低这些数据对模型训练的干扰,提高数据集的质量,在本公开的一些实施例中,在提取数据集中客户端与服务器在握手阶段的流量的特征,得到与安全套接字协议ssl隐蔽信道相关的特征之前,可以从流量中剔除如下数据中的至少一种:冗余数据包、有效载荷为零的数据包、单向数据流、心跳包对数据进行过滤,其中,冗余数据包可以理解为多余的重复的数据包;有效载荷为零的数据包可以理解为数据包有合法的报文结构,但是报文携带的具有实际传输作用的有效数据长度为零;单向数据流可以理解为单个方向进行数据传输的数据流,而建立隐蔽信道通常需要进行双向交互;心跳包可以理解为在客户端和服务器间定时通知对方自己状态的一个自定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。
38.步骤103、对特征进行编码处理,得到特征对应的特征向量。
39.在本公开实施例中,在完成ssl隐蔽信道相关的特征提取后,对特征进行编码处理,可以采用现有的编码模型对特征进行编码,将特征信息转化为向量表示,得到特征对应的特征向量。
40.步骤104、将特征向量输入循环神经网络进行模型训练,获得隐蔽信道检测模型。
41.本公开实施例所称的循环神经网络(recurrent neural network,rnn)是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。实际的隐蔽信道的检测需要考虑数据的时序性,循环神经网络rnn作为一个双向深度网络可以对时序序列进行有效的实时检测,很好的解决了时序性的问题,深度学习的过程可以理解为神经元相互连接之间权值的改变过程。
42.在本公开实施例中,可以选择长短期记忆网络lstm(long short-term memory)进行模型训练,长短期记忆网络lstm是一种时间循环神经网络,是为了解决一般的循环神经网络rnn存在的长期依赖问题而专门设计出来的。通过lstm门控机制可以建立长距离时序依赖关系,每一个神经元处理当前节点形成该神经元的状态变量,并选择性保留上一节点神经元处理信息的有效部分,通过迭代,到序列末尾的最后一个神经元即可包含整个序列
中的神经元信息及相邻神经元的依赖关系,以获得更好的全局最优解。数据集中的样本数据经过lstm的神经网络层进行训练最终形成一个可以用于检测隐蔽信道的模型。
43.具体的,将上述数据集中的正样本和负样本中的各个特征向量输入长短期记忆网络lstm中进行模型训练,使模型学习到各个特征分别对应的权重值,一个特征权重值的大小反映该特征对判断流量中包含ssl隐蔽信道的置信水平,对每个特征的权重值设置一个对应的预设阈值,即客户问候报文中的随机数的字符重复率或熵值对应的权重值设置为第一预设阈值,服务器名称指示字段sni为空的占比对应的权重值设置为第二预设阈值,证书信息量在流量中的比例对应的权重值设置为第三预设阈值,数据交互的时序特征值对应的权重值设置为第四预设阈值,背景流在流量中的比例对应的权重值设置为第五预设阈值,通过数据集中正样本和负样本的多轮迭代训练,对各个特征对应的预设阈值进行修正,得到各个预设阈值的最优解,并且模型学习到根据各个预设阈值综合判断流量中存在ssl隐蔽信道的条件,包括:
44.客户问候报文中的随机数的字符重复率或熵值大于第一预设阈值;服务器名称指示字段sni为空的占比大于第二预设阈值;证书信息量在流量中的比例小于第三预设阈值;数据交互的时序特征值小于第四预设阈值;背景流在流量中的比例大于第五预设阈值。
45.其中,本公开实施例所称的“第一预设阈值,第二预设阈值,第三预设阈值,第四预设阈值,第五预设阈值”仅是用于区分基于各个与ssl隐蔽信道相关的特征对应的不同的预设阈值,而不具有其他含义。
46.当输入模型的特征向量同时满足上述条件时,模型输出该流量中包含ssl隐蔽信道的结果;当输入模型的特征向量无法同时满足上述条件时,模型输出该流量中不包含ssl隐蔽信道的结果。
47.本公开实施例提供的技术方案与现有技术相比具有如下优点:
48.本公开实施例,通过从网络流量中选取正样本和负样本,构成模型训练的数据集;提取数据集中客户端与服务器在握手阶段的流量的特征,得到与安全套接字协议ssl隐蔽信道相关的特征;对特征进行编码处理,得到特征对应的特征向量;将特征向量输入循环神经网络进行模型训练,获得隐蔽信道检测模型。本公开实施例通过安全套接字协议ssl隐蔽信道相关的特征进行隐蔽信道检测模型的训练得到隐蔽信道检测模型,可以应用于ssl隐蔽信道的检测,满足了当前对ssl隐蔽信道检测方法的需求,可以有效提高检测精度。
49.图2是本公开实施例提供的一种隐蔽信道检测方法的流程图,该方法可以由一种计算设备来执行。该计算设备可以理解为任意一种具有计算功能和处理能力的设备。如图2所示,本实施例提供的隐蔽信道检测方法包括如下步骤:
50.步骤201、获取客户端与服务器在握手阶段的流量。
51.本公开实施例中所称流量可以理解为传输的数据量。
52.本公开实施例的握手阶段可以理解为客户端和服务器之间建立通信安全参数的过程,用来确认彼此之间的身份,客户端和服务器在握手过程中并没有建立完整的数据连接和产生实际的数据通信行为。
53.步骤202、对流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征。
54.本公开实施例中的特征提取处理与上述图1步骤102中的步骤s11-s12相同,这里
不再赘述。
55.从网络中获取的流量往往比较复杂,包含着大量的冗余数据和无效数据等干扰数据,例如冗余数据包、有效载荷为零的数据包、单向数据流、心跳包等,这些数据影响隐蔽信道检测结果的准确度,为降低这些数据对检测结果的干扰,提高检测结果的准确度,在本公开的一些实施例中,在对流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征之前,可以从流量中剔除如下数据中的至少一种:冗余数据包、有效载荷为零的数据包、单向数据流、心跳包对数据进行过滤,相关剔除数据的含义在图1中步骤102已经说明,这里不再赘述。
56.步骤203、对特征进行编码处理,得到特征对应的特征向量。
57.在本公开实施例中,在完成ssl隐蔽信道相关的特征提取后,对特征进行编码处理,可以采用现有的编码模型对特征进行编码,将特征信息转化为向量表示,得到特征对应的特征向量。
58.步骤204、将特征向量输入预设的隐蔽信道检测模型,基于该隐蔽信道检测模型进行ssl隐蔽信道检测。
59.本公开实施例中预设的隐蔽信道检测模型为上述图1中训练得到的隐蔽信道检测模型,将上述特征向量输入该隐蔽信道检测模型,基于该隐蔽信道检测模型进行ssl隐蔽信道检测,当同时满足条件:客户问候报文中的随机数的字符重复率或熵值大于第一预设阈值;服务器名称指示字段sni为空的占比大于第二预设阈值;证书信息量在流量中的比例小于第三预设阈值;数据交互的时序特征值小于第四预设阈值;背景流在流量中的比例大于第五预设阈值时,该隐蔽信道检测模型输出该流量中包含ssl隐蔽信道的结果;当输入的特征向量无法同时满足上述条件时,模型输出该流量中不包含ssl隐蔽信道的结果。
60.本公开实施例提供的技术方案与现有技术相比具有如下优点:
61.本公开实施例,通过获取客户端与服务器在握手阶段的流量;对流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征;对提取的特征进行编码处理,得到特征对应的特征向量;将特征向量输入预设的隐蔽信道检测模型,基于该隐蔽信道检测模型进行ssl隐蔽信道检测。本公开实施例通过预设的隐蔽信道检测模型,根据握手阶段流量中与ssl隐蔽信道相关的特征判断流量中是否存在ssl隐蔽信道,满足了当前对ssl隐蔽信道检测方法的需求,可以有效提高检测精度。
62.图3是本公开实施例提供的一种隐蔽信道检测装置的结构示意图,该装置可以被理解为上述计算设备或者上述计算设备中的部分功能模块。如图3所示,该隐蔽信道检测装置300包括:
63.获取模块310,用于获取客户端与服务器在握手阶段的流量;
64.提取模块320,用于对流量进行特征提取处理,得到与安全套接字协议ssl隐蔽信道相关的特征;
65.编码模块330,用于对特征进行编码处理,得到特征对应的特征向量;
66.检测模块340,用于将特征向量输入预设的隐蔽信道检测模型,基于该隐蔽信道检测模型进行ssl隐蔽信道检测。
67.可选的,上述隐蔽信道检测装置300,还包括:
68.剔除模块,用于从流量中剔除如下数据中的至少一种:冗余数据包、有效载荷为零
的数据包、单向数据流、心跳包。
69.可选的,上述提取模块320包括:
70.第一提取子模块,用于从流量中提取得到客户问候报文中的随机数、服务器名称指示字段sni、证书信息量、数据交互的时序特征和背景流;
71.第一确定子模块,用于分别基于客户问候报文中的随机数、服务器名称指示字段sni、证书信息量、数据交互的时序特征和背景流,确定得到客户问候报文中的随机数的字符重复率或熵值、服务器名称指示字段sni为空的占比、证书信息量在所述流量中的比例、数据交互的时序特征值和背景流在所述流量中的比例。
72.可选的,上述检测模块340,包括:
73.第二确定子模块,用于在满足如下条件时,该隐蔽信道检测模型确定流量中存在ssl隐蔽信道:
74.客户问候报文中的随机数的字符重复率或熵值大于第一预设阈值;
75.服务器名称指示字段sni为空的占比大于第二预设阈值;
76.证书信息量在流量中的比例小于第三预设阈值;
77.数据交互的时序特征值小于第四预设阈值;
78.背景流在流量中的比例大于第五预设阈值。
79.本实施例提供的隐蔽信道检测装置能够执行上述图2中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
80.本公开实施例还提供一种计算设备,该计算设备包括处理器和存储器,其中,存储器中存储有计算机程序,当该计算机程序被该处理器执行时可以实现上述图2中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
81.本公开实施例提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述图2中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
82.上述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
83.上述计算机程序可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c 等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
84.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在
涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
85.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献