首页> 中国专利> DNS隐蔽信道检测方法、装置及设备

DNS隐蔽信道检测方法、装置及设备

摘要

本申请涉及一种DNS隐蔽信道检测方法,包括:获取待检测DNS报文;对待检测DNS报文进行解析,由待检测DNS报文中提取出相应的特征信息,并将特征信息组合成多维度的特征向量;基于特征向量,利用预先训练好的报文检测模型对待检测DNS报文进行检测,得到相应的检测值;根据检测值与检测阈值之间的关系,确定待检测DNS报文是否为隐蔽信道报文。其中,由于所提取出的特征向量为包含有多个不同的特征信息的多维度的数据集,因此在基于该数据集的基础上对待检测DNS报文进行检测,有效提高了检测结果的准确度。

著录项

  • 公开/公告号CN112351018A

    专利类型发明专利

  • 公开/公告日2021-02-09

    原文格式PDF

  • 申请/专利权人 东巽科技(北京)有限公司;

    申请/专利号CN202011176245.1

  • 发明设计人 吴来云;张研;江志华;李薛;

    申请日2020-10-28

  • 分类号H04L29/06(20060101);H04L29/12(20060101);

  • 代理机构11751 北京市鼎立东审知识产权代理有限公司;

  • 代理人陈佳妹

  • 地址 100089 北京市海淀区西三环北路甲2号院6号楼13层05室

  • 入库时间 2023-06-19 09:51:02

说明书

技术领域

本申请涉及网络安全技术领域,尤其涉及一种DNS隐蔽信道检测方法、装置及设备。

背景技术

网络隐蔽信道是指网络环境下违反通信限制规则进行隐蔽信息传输的通信信道,使用网络信息载体(如:网络协议、网络数据包等)的载体特征(如:协议字段、时间特征等)的特征模式(如:值调制模式、时间间隔模式等)进行隐蔽信息的传输,防止信息被发现。网络隐蔽信道是攻击者绕过网络安全策略进行数据传输的重要途径,而DNS(域名系统)则是实现应用层隐蔽通道的常用手段。DNS是互联网最为关键的基础设施之一,将域名与IP地址相互映射。由于其在网络运行中的重要地位,DNS协议几乎不会被防火墙策略阻拦。基于DNS协议的隐蔽信道具有较高的隐蔽性,较快的数据传输效率,利用该技术可以穿越防火墙实现隐蔽通信。

目前,针对网络隐蔽信道的防御措施还不是很完善,网络隐蔽信道给网络信息安全带来了巨大的威胁。在相关技术中,通常采用传统的基于分类或聚类的算法模型来实现对隐蔽信道的检测,但是,现有的学习模型需要从大量的网络隐蔽信道样本中提取共性特征,这就使得传统的网络隐蔽信道检测算法过度依赖样本数目,这就使得传统的网络隐蔽信道检测算法的检测结果不够准确。

发明内容

有鉴于此,本申请提出了一种DNS隐蔽信道检测方法,可以有效提高隐蔽信道检测算法的准确性。

根据本申请的一方面,提供了一种DNS隐蔽信道检测方法,包括:

获取待检测DNS报文;

对所述待检测DNS报文进行解析,由所述待检测DNS报文中提取出相应的特征信息,并将所述特征信息组合成多维度的特征向量;

基于所述特征向量,利用预先训练好的报文检测模型对所述待检测DNS报文进行检测,得到相应的检测值;

根据所述检测值与检测阈值之间的关系,确定所述待检测DNS报文是否为隐蔽信道报文。

在一种可能的实现方式中,根据所述检测值与检测阈值之间的关系,确定所述待检测DNS报文是否为隐蔽信道,包括:

在所述检测值大于所述检测阈值时,确定所述待检测DNS报文为隐蔽信道报文;

在所述检测值小于或等于所述检测阈值时,确定所述待检测DNS报文不是隐蔽信道报文。

在一种可能的实现方式中,所述特征信息包括:DNS报文中的域名信息、应答报文信息和时间信息中的至少一种;

其中,所述域名信息包括:DNS报文数据包总长度、DNS报文获取请求的类型、DNS报文对应的请求域名、域名总长度、域名中不同子域名的个数、最长子域名的字符个数、域名中数字所占比例和域名中唯一字符占总字符的比率中的至少一种;

所述应答报文信息包括:应答报文的长度、应答报文中answer的个数和应答数据的大小中的至少一种;

所述时间信息包括:请求报文以及对应的应答报文的时间间隔、指定域名中两个连续报文之间的时间间隔、指定域名两个连续的应答报文的时间间隔、以及指定域名不同请求类型的频率中的至少一种。

在一种可能的实现方式中,对所述待检测DNS报文进行解析,由所述待检测DNS报文中提取出相应的特征信息,包括:

基于获取到的所述待检测DNS报文,计算得到所述待检测DNS报文的数据包总长度;

基于所述待检测DNS报文中的query,获取所述待检测DNS报文中的请求类型以及对应的请求域名;

根据获取到的所述请求类型以及对应的所述请求域名,获取相应的所述域名信息。

在一种可能的实现方式中,根据获取到的所述请求类型以及对应的所述请求域名,获取相应的所述域名信息,包括:

针对各所述请求域名,计算域名总长度、域名中不同子域名的个数、最长子域名的字符个数;

计算域名中数字所占的比例,域名中唯一字符占总字符的比率。

在一种可能的实现方式中,对所述待检测DNS报文进行解析,由所述待检测DNS报文中提取出相应的特征信息,还包括:

获取各应答报文的长度、各所述应答报文中answer的个数,以及应答数据的大小;

对所述待检测DNS报文进行解析,由所述待检测DNS报文中提取出相应的报文信息,还包括:

提取请求报文以及对应的应答报文的时间间隔、指定域名中两个连续报文之间的时间间隔、指定域名中两个连续应答报文之间的时间间隔、以及指定域名中不同请求类型的频率。

在一种可能的实现方式中,还包括对所述报文检测模型进行训练的步骤;

其中,对所述报文检测模型进行训练,包括:

获取训练样本集中的各训练样本;其中,所述训练样本包括正常DNS报文和DNS隐蔽信道报文;

对各所述训练样本提取特征信息,并将提取到的所述特征信息进行组合得到相应的特征向量;

基于提取到的所述特征向量对所述报文检测模型进行训练。

在一种可能的实现方式中,还包括模型检测的步骤;

其中,所述模型检测的步骤,包括:

由所述训练样本集中提取预设数量的所述DNS隐蔽信道报文作为测试样本;

将所述测试样本输入至已训练的所述报文检测模型中进行检测,得到相应的检测值;

由得到的多个所述检测值中选取出数值最小的作为所述检测阈值。

根据本申请的一方面,还提供了一种DNS隐蔽信道检测装置,包括报文获取模块、特征提取模块、报文检测模块和报文确定模块;

所述报文获取模块,被配置为获取待检测DNS报文;

所述特征提取模块,被配置为对所述待检测DNS报文进行解析,由所述待检测DNS报文中提取出相应的特征信息,并将所述特征信息组合成多维度的特征向量;

所述报文检测模块,被配置为基于所述特征向量,利用预先训练好的报文检测模型对所述待检测DNS报文进行检测,得到相应的检测值;

所述报文确定模块,被配置为根据所述检测值与检测阈值之间的关系,确定所述待检测DNS报文是否为隐蔽信道。

根据本申请的另一方面,还提供了一种DNS隐蔽信道检测设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。

本申请实施例的DNS隐蔽信道检测方法,通过对待检测DNS报文进行解析,得到该待检测DNS报文的特征向量,进而再基于所得到的特征向量,利用预先训练好的报文检测模型对待检测DNS报文进行检测,得到相应的检测值后,再根据检测值与检测阈值之间的关系确定待检测DNS报文是否为隐蔽信道报文。其中,由于所提取出的特征向量为包含有多个不同的特征信息的多维度的数据集,因此在基于该数据集的基础上对待检测DNS报文进行检测,有效提高了检测结果的准确度。同时,在对待检测DNS报文进行是否为隐蔽信道报文的检测时,利用预先训练好的报文检测模型进行检测,相较于相关技术中基于分类或聚类的算法模型来说,不需要提取出样本中的共性特征,从而使得本申请实施例的DNS隐蔽信道检测方法的适用性更强。

根据下面参考附图对示例性实施例的详细说明,本申请的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。

图1示出本申请一实施例的DNS隐蔽信道检测方法的流程图;

图2示出本申请一实施例的DNS隐蔽信道检测方法中孤立森林效果展示图;

图3示出本申请一实施例的DNS隐蔽信道检测方法中,进行报文检测模型训练的流程图;

图4示出本申请一实施例的DNS隐蔽信道检测方法中对报文检测模型进行训练时所采集到的正常DNS报文图;

图5示出本申请一实施例的DNS隐蔽信道检测方法中,由待检测DNS报文中提取特征信息的流程图;

图6示出本申请一实施例的DNS隐蔽信道检测方法中进行报文检测模型训练的又一流程图;

图7示出本申请一实施例的DNS隐蔽信道检测方法的又一流程图;

图8示出本申请一实施例的DNS隐蔽信道检测装置的结构框图;

图9示出本申请一实施例的DNS隐蔽信道检测设备的结构框图。

具体实施方式

以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。

图1示出根据本申请一实施例的DNS隐蔽信道检测方法的流程图。如图1所示,该方法包括:步骤S100,获取待检测DNS报文。此处,需要指出的是,待检测DNS报文的获取可以通过直接由网络中抓取的方式来获取,也可以通过其它方式获取,此处不进行具体限定。

步骤S200,对待检测DNS报文进行解析,由待检测DNS报文中提取出相应的特征信息,并将特征信息组成多维度的特征向量。进而再通过步骤S300,基于所得到的特征向量,利用预先训练好的报文检测模型对待检测DNS报文进行检测,得到相应的检测值。最后,再通过步骤S400,根据检测值与检测阈值之间的关系,确定待检测DNS报文是否为隐蔽信道报文。

由此,本申请实施例的DNS隐蔽信道检测方法,通过对待检测DNS报文进行解析,得到该待检测DNS报文的特征向量,进而再基于所得到的特征向量,利用预先训练好的报文检测模型对待检测DNS报文进行检测,得到相应的检测值后,再根据检测值与检测阈值之间的关系确定待检测DNS报文是否为隐蔽信道报文。其中,由于所提取出的特征向量为包含有多个不同的特征信息的多维度的数据集,因此在基于该数据集的基础上对待检测DNS报文进行检测,有效提高了检测结果的准确度。同时,在对待检测DNS报文进行是否为隐蔽信道报文的检测时,利用预先训练好的报文检测模型进行检测,相较于相关技术中基于分类或聚类的算法模型来说,不需要提取出样本中的共性特征,从而使得本申请实施例的DNS隐蔽信道检测方法的适用性更强。

其中,需要指出的是,由于本申请实施例的DNS隐蔽信道检测方法中,对待检测DNS报文进行检测时主要是利用预先训练好的报文检测模型进行检测的,因此在执行本申请实施例的DNS隐蔽信道检测方法之前,需要先构建相应的网络模型,然后对所构建的网络模型进行训练。

在一种可能的实现方式中,所构建的报文检测模型主要是采用孤立森林算法对报文进行检测。孤立森林作为异常检测算法中的一种,属于无监督算法。即,不需要对训练样本进行标记,常用于挖掘异常数据,或者是离群点挖掘,如:网络安全中的攻击检测和流量异常分析等。由于隐蔽信道数据特征值和正常流量数据的差别很大,而孤立森林能够显示地找出异常数据,提高对未知的网络隐蔽信道的识别精度。如图2所示,孤立森林作为孤立树的总体,常用于异常数据的挖掘,或者是离群点的挖掘,能够找出与其他数据的规律不太符合的数据,并将其识别为异常点。在孤立森林中,不同的孤立树扮演了不同异常识别的专家。

同时,在对报文检测模型进行训练时,参见图3,首先还需要通过步骤S001,收集一定数量的训练样本。其中,需要指出的是,所收到的训练样本中应当包含正常DNS报文和隐蔽信道报文。具体的,在本申请一实施例中,训练样本的收集可以通过以下方式来实现。

即,正常DNS报文(如图4所示)可以通过从网络上公开采集现网流量数据包获取得到。同时,搭建DNS隐蔽信道环境,收集小部分DNS隐蔽信道报文。其中,正常DNS报文占大多数。

收集到一定数量的训练样本后,即可通过步骤S002,对DNS报文进行解析,以及步骤S003,提取DNS报文中的特征信息。即,对各训练样本进行解析以提取相应的特征信息,并将提取到的特征信息进行组合得到相应的特征向量。

其中,应当指出的是,特征信息的选取直接决定了孤立森林的展示结果,同时也决定了是否能够检测未知的隐蔽信道报文。参阅图5,在本申请实施例的DNS隐蔽信道检测方法中,根据对DNS隐蔽信道分析的经验总结,在对收集到的DNS报文(包括正常DNS报文和隐蔽信道报文)进行解析以提取特征信息时,具体包括以下方式:

参阅图5,首先,通过步骤S0031,对获取到的DNS报文进行解析,计算DNS数据包的总长度。进而,执行步骤S0032,针对DNS报文中的query,获取请求类型以及对应的请求域名。对于请求域名,计算域名的总长度(即,步骤S0033),域名中不同子域名的个数(即,步骤S0036),最长子域名的字符个数(即,步骤S0033)。同时,还计算域名中数字所占的比例(即,步骤S0034),域名中唯一字符占总字符的比率(即,步骤S0035)。以及,获取每个应答报文的长度(即,步骤S0037),应答报文中answer的个数(即,步骤S0038),以及所有应答数据的大小。此外,还同时提取请求报文以及对应的应答报文的时间间隔(即,步骤S0039),针对指定域名两个连续报文之间的时间间隔(即,步骤S00310),针对指定域名两个连续应答报文的时间间隔(即,步骤S00311),以及针对指定域名不同请求类型的频率(即,步骤S00312)等信息。在提取到上述各项特征信息后,再将上述特征信息组合形成多维度的特征向量。

参阅图3,在得到特征向量后,即可执行步骤S004,将所得到的特征向量输入至报文检测模型,从而基于得到的特征向量对报文检测模型进行训练。其中,在将针对包含大量正常DNS报文以及少量DNS隐蔽信道报文进行相应的特征向量提取,形成最终的特征向量后,对报文检测模型进行训练时,主要是结合前面所述的孤立森林异常检测算法。在模型训练过程中,通过不断优化算法参数,同时对特征向量数据的调整,最终形成满足检测标准的模型,进而通过步骤S005,输出最优化后的报文检测模型。

进一步的,为了保证模型训练结果的准确性,在对报文检测模型的训练过程中,还包括模型检测的步骤。其中,在一种可能的实现方式中,模型检测的步骤,主要包括:首先,由训练样本集中提取预设数量的所述DNS隐蔽信道报文作为测试样本。然后,将测试样本输入至已训练的报文检测模型中进行检测,得到相应的检测。进而,再由得到的多个检测值中选取出数值最小的作为检测阈值。

即,在模型训练过程中,将训练样本中提取出一部分隐蔽信道样本作为测试样本,并将这部分测试样本输入已训练的模型中进行检测,这样既可以检测模型是否有效,同时在确定模型有效的基础上,将得到的对应的检测值中的最小值确定为隐蔽信道的检测阈值。

其中,参阅图6,在对已训练的模型进行检测时,可以通过步骤S0041,判断输出的检测值是否满足检测标准。在判断出满足检测标准时,执行步骤S005,输出训练好的模型作为最终的报文检测模型。在判断出不满足检测标准时,则执行步骤S006,进行网络模型中的参数优化,进而再基于优化后的网络模型,进行DNS报文特征信息的提取,继续进行报文检测模型的训练,直至训练后的网络模型收敛至最优。

由此,本申请实施例的DNS隐蔽信道检测方法中,通过从网络上公开采集现网流量数据包,获取一批正常DNS报文。同时,搭建DNS隐蔽信道环境,收集小部分的DNS隐蔽信道报文。将获取到的DNS报文进行解析,提取特征信息,并将从大量正常DNS报文以及少量隐蔽信道报文提取到的特征信息进行组合,生成相应的特征向量后,输入异常检测算法进行报文检测模型的训练,并不断进行参数调整以及特征选取,最终形成最优的能够确定DNS报文是否属于隐蔽信道报文的模型。

在通过上述方式对报文检测模型训练完成之后,即可采用训练好的报文检测模型进行待检测DNS报文的检测。其中,在对待检测DNS报文进行检测时,同样需要先提取出待检测DNS报文的特征信息。

具体的,根据前面所述,所提取到的特征信息包括:DNS报文中的域名信息、应答报文信息和时间信息中的至少一种。更加具体的,域名信息包括:DNS报文数据包总长度、DNS报文获取请求的类型、DNS报文对应的请求域名、域名总长度、域名中不同子域名的个数、最长子域名的字符个数、域名中数字所占比例和域名中唯一字符占总字符的比率。

应答报文信息包括:应答报文的长度、应答报文中answer的个数和应答数据的大小中的至少一种。时间信息包括:请求报文以及对应的应答报文的时间间隔、指定域名中两个连续报文之间的时间间隔、指定域名两个连续的应答报文的时间间隔、以及指定域名不同请求类型的频率中的至少一种。

对应的,基于前面所述的各项特征信息,对待检测DNS报文进行解析,由所述待检测DNS报文中提取出相应的特征信息时,包括以下步骤:

首先,基于获取到的待检测DNS报文,计算得到待检测DNS报文的数据包总长度。然后,基于待检测DNS报文中的query,获取待检测DNS报文中的请求类型以及对应的请求域名。进而,再根据获取到的请求类型以及对应的请求域名,获取相应的域名信息。

其中,在一种可能的实现方式中,根据获取到的所述请求类型以及对应的所述请求域名,获取相应的所述域名信息,包括:针对各请求域名,计算域名总长度、域名中不同子域名的个数、最长子域名的字符个数的步骤;以及计算域名中数字所占的比例,域名中唯一字符占总字符的比率。

此外,在一种可能的实现方式中,对待检测DNS报文进行解析,由待检测DNS报文中提取出相应的特征信息,还包括:首先,获取各应答报文的长度、各应答报文中answer的个数,以及应答数据的大小。

进一步的,对待检测DNS报文进行解析,由待检测DNS报文中提取出相应的报文信息,还包括:提取请求报文以及对应的应答报文的时间间隔、指定域名中两个连续报文之间的时间间隔、指定域名中两个连续应答报文之间的时间间隔、以及指定域名中不同请求类型的频率。

通过上述方式提取出待检测DNS报文的特征信息,并将上述各项特征信息组合成特征向量后,即可将得到的特征向量输入至已训练好的报文检测模型中进行报文检测。

此处,还应当指出的是,在通过训练好的报文检测模型对待检测DNS报文进行检测时,得到相应的检测值。进而再基于得到的检测值与在训练过程中所确定的检测阈值之间的大小关系,进行待检测DNS报文是否为隐蔽信道报文的确定。

具体的,参阅图7,在基于检测值与检测阈值的关系确定待检测DNS报文是否为隐蔽信道报文时,可以通过步骤S400’,判断检测值是否大于检测阈值来实现。在判断出检测值大于检测阈值时,则表明当前检测的DNS报文更加符合隐蔽信道报文的标准,因此通过步骤S500,输出待检测DNS报文为隐蔽信道报文的结果。在判断出检测值小于或等于检测阈值时,则表明当前检测的DNS报文更加符合正常报文的标准,因此可直接执行步骤S600,输出报文为正常DNS报文的结果。

由此,本申请实施例的DNS隐蔽信道检测方法,通过提取待检测DNS报文的各项特征信息以生成相应的特征向量,进而再将生成的特征向量输入至预先训练好的报文检测模型进行报文检测,从而根据检测得到的检测值与检测阈值之间的关系确定待检测DNS报文是否为隐蔽信道报文,有效提高了对DNS隐蔽信道检测的准确率,具有简单、高效的特点,避免了动态检测技术中繁杂的操作和较大的能耗,在保证准确率的基础上大幅度提高了检测速率。

此外,还应当指出的是,采用本申请实施例的DNS隐蔽信道检测方法,可以直接包装成异常检测算法引擎,将该引擎嵌入至已有的铁穹高级持续性威胁预警系统中,通过抓取并解析DNS报文信息,输入至相应的报文检测模型中,最终输出所抓取到的报文是否为隐蔽信道报文的结果,从而实现实时监测和预警的目的。

相应的,基于前面任一所述的DNS隐蔽信道检测方法,本申请还提供了一种DNS隐蔽信道检测装置。由于本申请提供的DNS隐蔽信道检测装置的工作原理与本申请提供的DNS隐蔽信道检测方法的原理相同或相似,因此重复之处不再赘述。

参阅图8,本申请实施例提供的DNS隐蔽信道检测装置100,包括报文获取模块110、特征提取模块120、报文检测模块130和报文确定模块140。其中,报文获取模块110,被配置为获取待检测DNS报文。特征提取模块120,被配置为对待检测DNS报文进行解析,由待检测DNS报文中提取出相应的特征信息,并将特征信息组合成多维度的特征向量。报文检测模块130,被配置为基于特征向量,利用预先训练好的报文检测模型对待检测DNS报文进行检测,得到相应的检测值。报文确定模块140,被配置为根据检测值与检测阈值之间的关系,确定待检测DNS报文是否为隐蔽信道。

更进一步地,根据本申请的另一方面,还提供了一种DNS隐蔽信道检测设备200。参阅图9,本申请实施例的DNS隐蔽信道检测设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的DNS隐蔽信道检测方法。

此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本申请实施例的DNS隐蔽信道检测设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。

存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本申请实施例的DNS隐蔽信道检测方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行DNS隐蔽信道检测设备200的各种功能应用及数据处理。

输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。

以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号