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

一种DNS隧道流量检测方法、装置、存储介质及终端与流程

2022-11-16 07:24:20 来源:中国专利 TAG:

一种dns隧道流量检测方法、装置、存储介质及终端
技术领域
1.本公开涉及机器学习技术领域,特别涉及一种dns隧道流量检测方法、装置、存储介质及终端。


背景技术:

2.dns(domainnamesystem,域名系统)是网络中的一项核心服务,主要用于域名与ip地址之间的相互转换,其中dns隧道(dns tunneling)是将其他协议的内容封装在dns协议中,然后以dns请求和响应包完成传输数据(通信)的技术。当前网络世界中的dns是一项必不可少的服务,所以防火墙和入侵检测设备处于可用性和用户友好的考虑大都不会过滤dns流量,也为dns成为隐蔽信道创造了条件,因此,dns隧道在僵尸网络和apt攻击中扮演着重要的角色,攻击者利用这一特点使用dns协议隐匿恶意行为,实现木马病毒的入侵。因此研发人员渴望检测出dns隧道流量进行防御。
3.在现有技术中,目前主要的检测方式分为以下几种,(1)基于ids特征库,识别已知的dns隧道工具特征。基于ids特征库方案,只能识别已知的dns隧道工具,对于未知的dns隧道工具或者无固定特征的dns隧道,无法检测。(2)基于请求的域名长度、请求频率等静态阈值,来识别dns隧道。基于请求的域名长度、请求频率等静态阈值方案,易被绕过,攻击者可以通过修改域名长度、请求频率,绕过检测。可见,现有技术中的两种方案检测dns隧道的误报率较高,检测结果不是很准确。


技术实现要素:

4.本公开实施例提供了一种dns隧道流量检测方法、装置、存储介质及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
5.第一方面,本公开实施例提供了一种dns隧道流量检测方法,方法包括:通过网络接口抓取并解析交换机上传输的目标流量数据;当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征;将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型;其中,预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的;根据流量类型确定目标流量数据是否为dns隧道流量。
6.进一步地,通过网络接口抓取并解析交换机上传输的目标流量数据,包括:当通过交换机监测到客户端与服务端之间建立会话时,通过网络接口抓取交换机上传输的目标流量数据;获取针对目标流量数据设置的会话解析函数;根据会话解析函数对目标流量数据进行深度包解析,得到解析后的目标流量数
据。
7.进一步地,根据流量类型确定目标流量数据是否为dns隧道流量,包括:当流量类型为dns隧道流量类型时,将目标流量数据确定为dns隧道流量;对dns隧道流量启动防御;或者,当流量类型为dns正常流量类型时,将目标流量数据确定为dns正常流量;允许dns正常流量进行传输。
8.进一步地,通过网络接口抓取并解析交换机上传输的目标流量数据之前,还包括:提取历史dns隧道流量和历史dns正常流量各自对应的多维度特征;创建dns隧道流量检测模型;将多维度特征确定为机器学习的训练样本,并将训练样本输入dns隧道流量检测模型中,输出模型损失值;当损失值到达最小时,生成预先训练的dns隧道流量检测模型;或者,当损失值未到达最小时,将模型损失值进行反向传播以更新dns隧道流量检测模型的参数,并继续执行将训练样本输入dns隧道流量检测模型中的步骤。
9.进一步地,提取历史dns隧道流量和历史dns正常流量各自对应的多维度特征,包括:查询历史dns隧道流量和历史dns正常流量各自对应的dns会话时长;查询历史dns隧道流量和历史dns正常流量各自对应的域名长度;计算历史dns隧道流量和历史dns正常流量各自对应的域名熵;统计历史dns隧道流量和历史dns正常流量各自对应的dns会话负载字节数;计算历史dns隧道流量和历史dns正常流量各自对应的dns会话中请求方向报文数占总的会话报文数的比例;计算历史dns隧道流量和历史dns正常流量各自对应的dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例;查询历史dns隧道流量和历史dns正常流量各自对应的dns会话中上下文关联请求数据;将dns会话时长、域名长度、域名熵、dns会话负载字节数、dns会话中请求方向报文数占总的会话报文数的比例、dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例以及dns会话中上下文关联请求数据确定为多维度特征。
10.进一步地,计算历史dns隧道流量和历史dns正常流量各自对应的域名熵,包括:对历史dns隧道流量和历史dns正常流量各自对应的域名中每个字符进行概率统计,得到每个字符的概率统计结果;根据每个字符的概率统计结果,并结合信息熵公式计算每个字符熵值;根据所述每个字符熵值计算计算历史dns隧道流量和历史dns正常流量各自对应的域名熵;其中,域名熵的计算公式如下:;其中,为域名熵计算函数,为历
史dns隧道流量和历史dns正常流量各自对应的每个字符的概率统计结果,为字符数量。
11.进一步地,dns隧道流量检测模型包括向量转换模块、特征提取模块、特征映射模块以及回归模块;将训练样本输入dns隧道流量检测模型中,输出模型损失值,包括:将训练样本输入向量转换模块中,得到向量矩阵;将向量矩阵中第一个元素和最后一个元素进行连接,得到连接线;根据特征提取模块对连接线上的所有元素进行编码,得到训练样本的序列特征;根据特征映射模块映射出序列特征对应的特征类型标识符;采用回归模块将序列特征与序列特征对应的特征类型标识符进行归一化处理,得到归一化后的参数值;根据归一化后的参数值,并结合损失函数计算出模型损失值。
12.第二方面,本公开实施例提供了一种dns隧道流量检测装置,装置包括:目标流量数据解析模块,用于通过网络接口抓取并解析交换机上传输的目标流量数据;多种数据特征提取模块,用于当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征;流量类型输出模块,用于将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型;其中,预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的;流量数据判断模块,用于根据流量类型确定目标流量数据是否为dns隧道流量。
13.第三方面,本公开实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
14.第四方面,本公开实施例提供一种终端,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
15.本公开实施例提供的技术方案可以包括以下有益效果:在本公开实施例中,dns隧道流量检测装置首先通过网络接口抓取并解析交换机上传输的目标流量数据,当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征,然后将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型,其中预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的,最后根据流量类型确定目标流量数据是否为dns隧道流量。由于本公开通过提取历史dns隧道流量和历史dns正常流量所对应的多维度特征进行模型训练,同时多维度特征可以最大程度表征dns流量的流量类型,从而使得模型识别的dns隧道流量的误报率较低,检测结果更加准确。
16.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
17.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施
例,并与说明书一起用于解释本公开的原理。
18.图1是本公开实施例提供的一种dns隧道流量检测方法的流程示意图;图2是本公开实施例提供的一种dns隧道流量检测过程的流程示意框图;图3是本公开实施例提供的一种dns隧道流量检测模型的模型训练方法示意图;图4是本公开实施例提供的一种多维度特征提取方法的流程示意图;图5是本公开实施例提供的一种dns隧道流量检测装置的结构示意图;图6是本公开实施例提供的一种终端的结构示意图。
具体实施方式
19.以下描述和附图充分地示出本公开的具体实施方案,以使本领域的技术人员能够实践它们。
20.应当明确,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
21.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
22.在本公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本公开中的具体含义。此外,在本公开的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
23.本公开提供了一种dns隧道流量检测方法、装置、存储介质及终端,以解决上述相关技术问题中存在的问题。本公开提供的技术方案中,由于本公开通过提取历史dns隧道流量和历史dns正常流量所对应的多维度特征进行模型训练,同时多维度特征可以最大程度表征dns流量的流量类型,从而使得模型识别的dns隧道流量的误报率较低,检测结果更加准确,下面采用示例性的实施例进行详细说明。
24.下面将结合附图1-附图4,对本公开实施例提供的dns隧道流量检测方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的dns隧道流量检测装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
25.请参见图1,为本公开实施例提供了一种dns隧道流量检测方法的流程示意图。如图1所示,本公开实施例的方法可以包括以下步骤:s101,通过网络接口抓取并解析交换机上传输的目标流量数据。
26.其中,网络接口指交换机设备的各种接口,现今正在使用的网络接口都为以太网接口。常见的以太网接口类型有rj-45接口,rj-11接口,sc光纤接口,fddi接口,aui接口,bnc接口,console接口。交换机是一种用于电(光)信号转发的网络设备,它可以为接入交换机的任意两个网络节点提供独享的电信号通路,例如以太网交换机。目标流量数据是经过
交换机转发的信息数据包。
27.在本公开实施例中,在通过网络接口抓取并解析交换机上传输的目标流量数据时,首先当通过交换机监测到客户端与服务端之间建立会话时,通过网络接口抓取交换机上传输的目标流量数据,然后获取针对目标流量数据设置的会话解析函数,最后根据会话解析函数对目标流量数据进行深度包解析,得到解析后的目标流量数据。
28.在一种可能的实现方式中,当需要对dns隧道流量进行检测时,首先流量分析终端通过有线方式连接交换机,流量分析终端然后通过网络接口实时监测是否有数据包经过交换机,若检测到经过时,抓取经过交换机的数据包,得到目标流量数据,最后对目标流量数据进行解析后得到解析后的目标流量数据。
29.s102,当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征。
30.其中,目标流量数据可以分多种形式的流量数据。dns数据是通过dns协议封装的数据,并以dns请求和响应包完成传输。
31.通常,dns数据可分为两种类型。一种是dns隧道流量,dns隧道流量是在僵尸网络和apt攻击中扮演着重要角色的流量,另一种是dns正常流量,dns正常流量是不对网络进行攻击的流量,属于合法dns流量。
32.在一种可能的实现方式中,通过数据判断器分析解析后的目标流量数据的数据形式,根据判断结果分析出解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征。或者,根据判断结果分析出解析后的目标流量数据为其他形式的数据时,不进行处理,允许该目标流量数据通过。
33.s103,将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型。
34.其中,预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的,预先训练的dns隧道流量检测模型是可以检测出经过交换机的流量是否为dns隧道流量的数学模型。
35.通常,多种数据特征是dns会话时长、域名长度、域名熵、dns会话负载字节数、dns会话中请求方向报文数占总的会话报文数的比例、dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例以及dns会话中上下文关联请求数据。
36.在本公开实施例中,在生成预先训练的dns隧道流量检测模型时,首先提取历史dns隧道流量和历史dns正常流量各自对应的多维度特征,然后创建dns隧道流量检测模型,其次将多维度特征确定为机器学习的训练样本,并将训练样本输入dns隧道流量检测模型中,输出模型损失值,最后当损失值到达最小时,生成预先训练的dns隧道流量检测模型;或者,当损失值未到达最小时,将模型损失值进行反向传播以更新dns隧道流量检测模型的参数,并继续执行将训练样本输入dns隧道流量检测模型中的步骤。
37.在一种可能的实现方式中,在基于步骤s102提取到多种数据特征后,可将提取的多种数据特征输入预先训练的dns隧道流量检测模型中进行分析处理,最后输出目标流量数据对应的流量类型。
38.s104,根据流量类型确定目标流量数据是否为dns隧道流量。
39.在一种可能的实现方式中,在根据流量类型确定目标流量数据是否为dns隧道流
量时,首先当流量类型为dns隧道流量类型时,将目标流量数据确定为dns隧道流量,然后对dns隧道流量启动防御;或者,当流量类型为dns正常流量类型时,将目标流量数据确定为dns正常流量,然后允许dns正常流量进行传输。
40.例如图2所示,图2是本公开提供的一种dns隧道流量检测过程的过程示意框图,首先客户端和服务端之间通过交换机进行dns响应和dns请求,此时有目标流量数据经过交换机,流量分析终端通过网络接口抓取网络接口流量,并进行opi(深度包解析),解析后得到解析后的目标流量数据,当目标流量数据为dns数据时,得到dns会话,并从该会话中提取dns会话的7大特征,最后将提取的dns会话的7大特征输入预先训练的模型中进行模型检测,检测后输出检测结果,以确定目标流量数据是否为dns隧道流量。
41.在本公开实施例中,dns隧道流量检测装置首先通过网络接口抓取并解析交换机上传输的目标流量数据,当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征,然后将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型,其中预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的,最后根据流量类型确定目标流量数据是否为dns隧道流量。
42.由于本公开通过提取历史dns隧道流量和历史dns正常流量所对应的多维度特征进行模型训练,同时多维度特征可以最大程度表征dns流量的流量类型,从而使得模型识别的dns隧道流量的误报率较低,检测结果更加准确。
43.请参见图3,为本公开实施例提供了一种dns隧道流量检测模型的模型训练方法的流程示意图。如图3所示,本公开实施例的方法可以包括以下步骤:s201,提取历史dns隧道流量和历史dns正常流量各自对应的多维度特征。
44.在本公开实施例中,dns协议基于udp,没有明确的会话开始和会话结束标记,可以以一次dns请求作为开始标记,以当前udp连接的最后一个dns报文的超时时间作为结束标记,比如30秒。
45.在一种可能的实现方式中,提取多维度特征时,首先查询历史dns隧道流量和历史dns正常流量各自对应的dns会话时长,再查询历史dns隧道流量和历史dns正常流量各自对应的域名长度,然后计算历史dns隧道流量和历史dns正常流量各自对应的域名熵,再统计历史dns隧道流量和历史dns正常流量各自对应的dns会话负载字节数,其次计算历史dns隧道流量和历史dns正常流量各自对应的dns会话中请求方向报文数占总的会话报文数的比例,再计算历史dns隧道流量和历史dns正常流量各自对应的dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例,并查询历史dns隧道流量和历史dns正常流量各自对应的dns会话中上下文关联请求数据,最后将dns会话时长、域名长度、域名熵、dns会话负载字节数、dns会话中请求方向报文数占总的会话报文数的比例、dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例以及dns会话中上下文关联请求数据确定为多维度特征。
46.具体的,在计算历史dns隧道流量和历史dns正常流量各自对应的域名熵时,首先对历史dns隧道流量和历史dns正常流量各自对应的域名中每个字符进行概率统计,得到每个字符的概率统计结果,然后根据每个字符的概率统计结果,并结合信息熵公式计算每个字符熵值,最后根据每个字符熵值计算计算历史dns隧道流量和历史dns正常流量各自对应
的域名熵。
47.其中,域名熵的计算公式如下:;其中,为域名熵计算函数,为历史dns隧道流量和历史dns正常流量各自对应的每个字符的概率统计结果,为字符数量。
48.s202,创建dns隧道流量检测模型。
49.其中,dns隧道流量检测模型包括向量转换模块、特征提取模块、特征映射模块以及回归模块。
50.通常,dns隧道流量检测模型可以根据现有的主流神经网络进行构建。
51.s203,将多维度特征确定为机器学习的训练样本,并将训练样本输入dns隧道流量检测模型中,输出模型损失值。
52.在一种可能的实现方式中,在输出模型损失值时,首先将训练样本输入向量转换模块中,得到向量矩阵,再将向量矩阵中第一个元素和最后一个元素进行连接,得到连接线,然后根据特征提取模块对连接线上的所有元素进行编码,得到训练样本的序列特征,其次根据特征映射模块映射出序列特征对应的特征类型标识符,并采用回归模块将序列特征与序列特征对应的特征类型标识符进行归一化处理,得到归一化后的参数值,最后根据归一化后的参数值,并结合损失函数计算出模型损失值。
53.s204,当损失值到达最小时,生成预先训练的dns隧道流量检测模型;或者,当损失值未到达最小时,将模型损失值进行反向传播以更新dns隧道流量检测模型的参数,并继续执行将训练样本输入dns隧道流量检测模型中的步骤。
54.在本公开实施例中,dns隧道流量检测装置首先通过网络接口抓取并解析交换机上传输的目标流量数据,当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征,然后将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型,其中预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的,最后根据流量类型确定目标流量数据是否为dns隧道流量。由于本公开通过提取历史dns隧道流量和历史dns正常流量所对应的多维度特征进行模型训练,同时多维度特征可以最大程度表征dns流量的流量类型,从而使得模型识别的dns隧道流量的误报率较低,检测结果更加准确。
55.请参见图4,为本公开实施例提供了一种多维度特征提取方法的流程示意图。如图4所示,本公开实施例的方法可以包括以下步骤:s301,查询历史dns隧道流量和历史dns正常流量各自对应的dns会话时长。
56.通常,dns没有会话时长的严格定义。本公开定义在一次dns会话中,最后一个dns报文的时间和第一个dns报文的时间差就作为这个dns会话的时长。
57.在本公开实施例中,历史dns正常流量一般本地有缓存,请求响应时间间隔较短;历史dns隧道流量,每次查询的域名不同,本地无缓存,请求响应时间间隔较长。
58.s302,查询历史dns隧道流量和历史dns正常流量各自对应的域名长度。
59.在本公开实施例中,历史dns正常流量的dns请求,查询的域名一般长度适中,比如:www.baidu.com;dns隧道,查询的域名长度一般较长,比如:3f59038040000000000e4c5
5a46546fbf50d88a23817c278a3438b29b0cc.905cad5a3f7432cddcf86ebb11c965c6c3bde418bcc42edd4d9670e00fef.766f33d5971818a4c5594fa9a9.1.eej.me。
60.s303,计算历史dns隧道流量和历史dns正常流量各自对应的域名熵。
61.在本公开实施例中,历史dns正常流量的dns请求,域名字符串为小写字母a-z,大写字母a-z,数字0-9,以及分隔符
‘‑’
共63种字符。dns隧道,一般为了提高通信内容的隐蔽性,会对通信数据进行加密,一般会出现上述63种字符以外的字符。
62.具体的,熵值计算方法如下: 1)对所有出现的字符进行概率统计; 2)使用信息熵公式计算每个字符熵值; 3)求查询域名的总熵。
63.s304,统计历史dns隧道流量和历史dns正常流量各自对应的dns会话负载字节数。
64.在本公开实施例中,正常的dns请求,一次请求和一次响应即为完整的会话,一次会话负载字节数较少。dns隧道,被控端和控制端之间会有频繁的dns交互,且有数据交互,一次会话负载字节数较大。
65.s305,计算历史dns隧道流量和历史dns正常流量各自对应的dns会话中请求方向报文数占总的会话报文数的比例。
66.在本公开实施例中,正常的dns请求,请求方向报文数与响应方向报文数一致,或者请求方向报文数少于响应方向报文数。dns隧道,请求方向用于传输数据,响应方向用于下达命令,所以一般情况下,dns隧道请求方向的报文数会多于响应方向的报文数。
67.s306,计算历史dns隧道流量和历史dns正常流量各自对应的dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例。
68.在本公开实施例中,正常的dns请求,请求方向报文数只携带待查询的域名,响应方向除返回查询结果外,还携带授权与额外信息等,请求方向报文负载字节数一般少于响应方向报文负载字节数。dns隧道,请求方向用于传输数据,响应方向用于下达命令,所以一般情况下,dns隧道请求方向的报文负载字节数会远远大于响应方向的报文负载字节数。
69.s307,查询历史dns隧道流量和历史dns正常流量各自对应的dns会话中上下文关联请求数据。
70.在本公开实施例中,上下文关联(枚举型特征,0-代表无后续的http或tcp会话,1-代表有后续的http或tcp会话):正常的dns请求,dns会话完成后,短时间内会有http请求或者tcp请求。dns隧道,被控端和控制端之间只通过dns来传输数据和下达控制指令,所以短时间内不会有http和tcp请求。
71.s308,将dns会话时长、域名长度、域名熵、dns会话负载字节数、dns会话中请求方向报文数占总的会话报文数的比例、dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例以及dns会话中上下文关联请求数据确定为多维度特征。
72.在本公开实施例中,dns隧道流量检测装置首先通过网络接口抓取并解析交换机上传输的目标流量数据,当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征,然后将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型,其中预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史
dns正常流量所对应的多维度特征训练生成的,最后根据流量类型确定目标流量数据是否为dns隧道流量。
73.由于本公开通过提取历史dns隧道流量和历史dns正常流量所对应的多维度特征进行模型训练,同时多维度特征可以最大程度表征dns流量的流量类型,从而使得模型识别的dns隧道流量的误报率较低,检测结果更加准确。
74.下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
75.请参见图5,其示出了本公开一个示例性实施例提供的dns隧道流量检测装置的结构示意图。该dns隧道流量检测装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括目标流量数据解析模块10、多种数据特征提取模块20、流量类型输出模块30、流量数据判断模块40。
76.目标流量数据解析模块10,用于通过网络接口抓取并解析交换机上传输的目标流量数据;多种数据特征提取模块20,用于当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征;流量类型输出模块30,用于将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型;其中,预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的;流量数据判断模块40,用于根据流量类型确定目标流量数据是否为dns隧道流量。
77.需要说明的是,上述实施例提供的dns隧道流量检测装置在执行dns隧道流量检测方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的dns隧道流量检测装置与dns隧道流量检测方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
78.上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
79.在本公开实施例中,dns隧道流量检测装置首先通过网络接口抓取并解析交换机上传输的目标流量数据,当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征,然后将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型,其中预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的,最后根据流量类型确定目标流量数据是否为dns隧道流量。由于本公开通过提取历史dns隧道流量和历史dns正常流量所对应的多维度特征进行模型训练,同时多维度特征可以最大程度表征dns流量的流量类型,从而使得模型识别的dns隧道流量的误报率较低,检测结果更加准确。
80.本公开还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的dns隧道流量检测方法。
81.本公开还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例的dns隧道流量检测方法。
82.请参见图6,为本公开实施例提供了一种终端的结构示意图。如图6所示,终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少
一个通信总线1002。
83.其中,通信总线1002用于实现这些组件之间的连接通信。
84.其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
85.其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
86.其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个终端1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行终端1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
87.其中,存储器1005可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图6所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及dns隧道流量检测应用程序。
88.在图6所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的dns隧道流量检测应用程序,并具体执行以下操作:通过网络接口抓取并解析交换机上传输的目标流量数据;当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征;将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型;其中,预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的;根据流量类型确定目标流量数据是否为dns隧道流量。
89.在一个实施例中,处理器1001在执行通过网络接口抓取并解析交换机上传输的目标流量数据时,具体执行以下操作:当通过交换机监测到客户端与服务端之间建立会话时,通过网络接口抓取交换机上传输的目标流量数据;获取针对目标流量数据设置的会话解析函数;
根据会话解析函数对目标流量数据进行深度包解析,得到解析后的目标流量数据。
90.在一个实施例中,处理器1001在执行根据流量类型确定目标流量数据是否为dns隧道流量时,具体执行以下操作:当流量类型为dns隧道流量类型时,将目标流量数据确定为dns隧道流量;对dns隧道流量启动防御;或者,当流量类型为dns正常流量类型时,将目标流量数据确定为dns正常流量;允许dns正常流量进行传输。
91.在一个实施例中,处理器1001在执行通过网络接口抓取并解析交换机上传输的目标流量数据之前时,还体执行以下操作:提取历史dns隧道流量和历史dns正常流量各自对应的多维度特征;创建dns隧道流量检测模型;将多维度特征确定为机器学习的训练样本,并将训练样本输入dns隧道流量检测模型中,输出模型损失值;当损失值到达最小时,生成预先训练的dns隧道流量检测模型;或者,当损失值未到达最小时,将模型损失值进行反向传播以更新dns隧道流量检测模型的参数,并继续执行将训练样本输入dns隧道流量检测模型中的步骤。
92.在一个实施例中,处理器1001在执行提取历史dns隧道流量和历史dns正常流量各自对应的多维度特征时,具体执行以下操作:查询历史dns隧道流量和历史dns正常流量各自对应的dns会话时长;查询历史dns隧道流量和历史dns正常流量各自对应的域名长度;计算历史dns隧道流量和历史dns正常流量各自对应的域名熵;统计历史dns隧道流量和历史dns正常流量各自对应的dns会话负载字节数;计算历史dns隧道流量和历史dns正常流量各自对应的dns会话中请求方向报文数占总的会话报文数的比例;计算历史dns隧道流量和历史dns正常流量各自对应的dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例;查询历史dns隧道流量和历史dns正常流量各自对应的dns会话中上下文关联请求数据;将dns会话时长、域名长度、域名熵、dns会话负载字节数、dns会话中请求方向报文数占总的会话报文数的比例、dns会话中请求方向报文负载字节数占总的会话报文负载字节数的比例以及dns会话中上下文关联请求数据确定为多维度特征。
93.在一个实施例中,处理器1001在执行计算历史dns隧道流量和历史dns正常流量各自对应的域名熵时,具体执行以下操作:对历史dns隧道流量和历史dns正常流量各自对应的域名中每个字符进行概率统计,得到每个字符的概率统计结果;根据每个字符的概率统计结果,并结合信息熵公式计算每个字符熵值;
根据每个字符熵值计算计算历史dns隧道流量和历史dns正常流量各自对应的域名熵;其中,域名熵的计算公式如下:;其中,为域名熵计算函数,为历史dns隧道流量和历史dns正常流量各自对应的每个字符的概率统计结果,为字符数量。
94.在一个实施例中,处理器1001在执行将训练样本输入dns隧道流量检测模型中,输出模型损失值时,具体执行以下操作:将训练样本输入向量转换模块中,得到向量矩阵;将向量矩阵中第一个元素和最后一个元素进行连接,得到连接线;根据特征提取模块对连接线上的所有元素进行编码,得到训练样本的序列特征;根据特征映射模块映射出序列特征对应的特征类型标识符;采用回归模块将序列特征与序列特征对应的特征类型标识符进行归一化处理,得到归一化后的参数值;根据归一化后的参数值,并结合损失函数计算出模型损失值。
95.在本公开实施例中,dns隧道流量检测装置首先通过网络接口抓取并解析交换机上传输的目标流量数据,当解析后的目标流量数据为dns数据时,提取目标流量数据的多种数据特征,然后将多种数据特征输入预先训练的dns隧道流量检测模型中,输出目标流量数据对应的流量类型,其中预先训练的dns隧道流量检测模型是根据历史dns隧道流量和历史dns正常流量所对应的多维度特征训练生成的,最后根据流量类型确定目标流量数据是否为dns隧道流量。由于本公开通过提取历史dns隧道流量和历史dns正常流量所对应的多维度特征进行模型训练,同时多维度特征可以最大程度表征dns流量的流量类型,从而使得模型识别的dns隧道流量的误报率较低,检测结果更加准确。
96.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,dns隧道流量检测的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
97.以上所揭露的仅为本公开较佳实施例而已,当然不能以此来限定本公开之权利范围,因此依本公开权利要求所作的等同变化,仍属本公开所涵盖的范围。
再多了解一些

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

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

相关文献