一种DNS隧道内复杂协议行为识别方法技术

技术编号:30180286 阅读:35 留言:0更新日期:2021-09-25 15:42
本发明专利技术公开了一种DNS隧道内复杂协议行为识别方法,该方法包括:首先识别DNS隧道流量,针对DNS隧道流量,提取DNS数据包中的查询和应答数据并生成长度序列,提取识别DNS隧道内不同协议行为的统计特征并生成特征向量,基于该特征向量识别DNS隧道内部的HTTP协议、邮件协议、SSH协议、FTP协议等常用协议及行为;对于对隧道内部多种协议混合使用的情况,进一步提取估计DNS隧道内部混合协议数据包比例的统计特征并生成特征向量,并基于该特征向量建立回归模型,估计DNS隧道内部混合协议情况下的各协议数据包占比。本发明专利技术用以实现DNS隧道流量的细粒度分析。细粒度分析。细粒度分析。

【技术实现步骤摘要】
一种DNS隧道内复杂协议行为识别方法


[0001]本专利技术涉及网络安全
,特别是一种DNS隧道内复杂协议行为识别方法。

技术介绍

[0002]DNS作为互联网最重要的基础协议之一,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
[0003]由于DNS协议在网络中的作用,监管设备通常不会阻断DNS数据包,因此可以利用DNS的查询过程建立隧道,进而传输私有数据。
[0004]由于DNS隧道的查询和相应中的负载数据与正常的DNS数据包存在字符分布的差异,通常可以使用字符规律来检测是否为DNS隧道。
[0005]现有的方法可以检测到DNS隧道的存在,但是没有针对DNS隧道内部的协议及应用行为进行细粒度的分析,尤其是隧道内部可能存在多协议混合的情况,目前完全没有有效的解决方法。

技术实现思路

[0006]本专利技术所要解决的技术问题是克服现有技术的不足而提供一种DNS隧道内复杂协议行为识别方法,用以实现DNS隧道流量的细粒度分析。
[0007]本专利技术为解决上述技术问题采用以下技术方案:根据本专利技术提出的一种DNS隧道内复杂协议行为识别方法,包括以下步骤:步骤1、识别DNS隧道;步骤2、提取DNS隧道中DNS隧道包的查询和回答数据,生成DNS隧道包序列;步骤3、根据所述DNS隧道包序列计算识别DNS隧道内部协议的统计特征并生成第一特征向量;步骤4、根据生成的第一特征向量,训练分类器模型,该分类器模型用于识别隧道内部协议行为;步骤5、根据隧道内部协议行为,针对多协议混合情况,进一步根据所述DNS隧道包序列计算估计DNS隧道内部混合协议隧道包比例的统计特征并生成第二特征向量;步骤6、使用主成分分析方法,筛选第二特征向量,使得筛选后的第二特征向量中不存在与DNS隧道内部混合协议隧道包比例无关的统计特征;步骤7、使用筛选后的第二特征向量训练回归模型,该回归模型用于估计隧道内部多协议混合情况下,不同协议的隧道包所占比例。
[0008]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,步骤1具体如下:通过DNS数据包的查询和回答内容识别DNS数据包中的DNS隧道包。
[0009]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,识别DNS隧道包后,根据源地址、目的地址、源端口、目的端口、协议类型五元组解
析出DNS隧道流;将DNS隧道流根据窗口尺寸N进行切分,得到N个DNS隧道包;根据DNS隧道包的Flags字段中的QR字段判断类型,将DNS隧道包分为查询隧道包和应答隧道包;根据查询隧道包和应答隧道包生成DNS隧道包序列,DNS隧道包序列中的每个元素为一个包含DNS隧道包的负载长度、时间间隔、和查询/应答类型的向量;其中,负载长度为DNS隧道包中查询或应答的内容长度。
[0010]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,使用+标记查询隧道包,使用

标记应答隧道包。
[0011]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,根据DNS隧道包序列中的类型,分别计算识别DNS隧道内部协议的统计特征,包括DNS隧道包序列中的负载长度和时间间隔的均值、方差、偏度、峰度、最小值、四分之一分位数、中位数、四分之三分位数和最大值。
[0012]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,分类器模型是SVM、决策树、随机森林或贝叶斯网络。
[0013]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,针对DNS隧道内的多协议混合情况,所述计算的估计DNS隧道内部混合协议数据包比例的统计特征包括:在DNS 隧道包序列中,根据类型分别计算以下统计特征值:最小负载长度占N个DNS隧道包的比例;负载长度的四分之一分位数占N个DNS隧道包的比例;负载长度中位数占N个DNS隧道包的比例;负载长度四分之三分位数占N个DNS隧道包的比例;最大负载长度占N个DNS隧道包的比例;负载长度均值占N个DNS隧道包的比例;负载长度均值;负载长度方差;负载长度峰度;负载长度偏度;最小DNS隧道包时间间隔占N个DNS隧道包的比例;DNS隧道包时间间隔四分之一分位数占N个DNS隧道包的比例;DNS隧道包时间间隔中位数占N个DNS隧道包的比例;DNS隧道包时间间隔四分之三分位数占N个DNS隧道包的比例;DNS隧道包时间间隔占N个DNS隧道包的比例;DNS隧道包时间间隔均值占N个DNS隧道包的比例;DNS隧道包时间间隔均值;DNS隧道包时间间隔方差;DNS隧道包时间间隔峰度;DNS隧道包时间间隔偏度;
用于保持隧道连接的心跳包占N个DNS隧道包的比例。
[0014]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,步骤6中,筛选第二特征向量是进行特征筛选,具体方法为:计算第二特征向量中的统计特征与DNS隧道内不同混合协议隧道包比例之间的相关性计算方法为:其中,为协方差,表示方差,是第二特征向量中的第u个统计特征,h≥u≥1,h是第二特征向量中统计特征的总数,y是DNS隧道内不同混合协议隧道包比例;设置第一相关性阈值,若,则作为筛选出的统计特征;筛选后的第二特征向量中统计特征的总数为j个;针对的统计特征,计算第二特征向量中的统计特征之间的相关性:其中,和分别是第二特征向量中的第和个统计特征,,,且;设置第二相关性阈值,若,则比较和,若则选择作为筛选出的统计特征,否则选择作为筛选出的统计特征;最终筛选后的第二特征向量中统计特征的总数为k个。
[0015]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,步骤7中的回归模型为线性相关模型:其中,筛选后的第二特征向量中的第v个统计特征为自变量x
v
,以DNS隧道内混合协议隧道包比例为因变量y,为筛选后的第二特征向量中第v个统计特征的权重参数,k≥v≥1,k为筛选后的第二特征向量中统计特征的总数, 表示偏置参数。
[0016]作为本专利技术所述的一种DNS隧道内复杂协议行为识别方法进一步优化方案,根据线性相关模型,采用梯度下降法得到线性相关模型的权重参数和偏置参数。
[0017]本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:(1)当前针对DNS隧道流量的研究主要针对隧道发现技术,或针对通过DNS隧道进行数据传输的行为进行检测,忽略了DNS隧道本身作为隐蔽通信信道的能力,缺乏隧道内部
协议行为的有效识别技术;本专利技术针对这一问题,分析DNS隧道内部协议行为产生的统计特征,并结合机器学习算法可以有效识别隧道内部的协议行为,包括Web浏览、邮件收发、文件传输、命令控制等多种常见行为;(2)进一步,针对DNS隧道内部可能存在的混合协议的情况,本专利技术分析多种混合情况下的统计特征,并结合深度学习算法,有效地估计出混合情况中各协议数据包所占的比例值;针对DNS隧道内部协议行为的有效识别,可以精细化分析DNS流量的类型,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种DNS隧道内复杂协议行为识别方法,其特征在于,包括以下步骤:步骤1、识别DNS隧道;步骤2、提取DNS隧道中DNS隧道包的查询和回答数据,生成DNS隧道包序列;步骤3、根据所述DNS隧道包序列计算识别DNS隧道内部协议的统计特征并生成第一特征向量;步骤4、根据生成的第一特征向量,训练分类器模型,该分类器模型用于识别隧道内部协议行为;步骤5、根据隧道内部协议行为,针对多协议混合情况,进一步根据所述DNS隧道包序列计算估计DNS隧道内部混合协议隧道包比例的统计特征并生成第二特征向量;步骤6、使用主成分分析方法,筛选第二特征向量,使得筛选后的第二特征向量中不存在与DNS隧道内部混合协议隧道包比例无关的统计特征;步骤7、使用筛选后的第二特征向量训练回归模型,该回归模型用于估计隧道内部多协议混合情况下,不同协议的隧道包所占比例。2.根据权利要求1所述的一种DNS隧道内复杂协议行为识别方法,其特征在于,步骤1具体如下:通过DNS数据包的查询和回答内容识别DNS数据包中的DNS隧道包。3.根据权利要求2所述的一种DNS隧道内复杂协议行为识别方法,其特征在于,识别DNS隧道包后,根据源地址、目的地址、源端口、目的端口、协议类型五元组解析出DNS隧道流;将DNS隧道流根据窗口尺寸N进行切分,得到N个DNS隧道包;根据DNS隧道包的Flags字段中的QR字段判断类型,将DNS隧道包分为查询隧道包和应答隧道包;根据查询隧道包和应答隧道包生成DNS隧道包序列,DNS隧道包序列中的每个元素为一个包含DNS隧道包的负载长度、时间间隔、和查询/应答类型的向量;其中,负载长度为DNS隧道包中查询或应答的内容长度。4.根据权利要求3所述的一种DNS隧道内复杂协议行为识别方法,其特征在于,使用+标记查询隧道包,使用

标记应答隧道包。5.根据权利要求1所述的一种DNS隧道内复杂协议行为识别方法,其特征在于,根据DNS隧道包序列中的类型,分别计算识别DNS隧道内部协议的统计特征,包括DNS隧道包序列中的负载长度和时间间隔的均值、方差、偏度、峰度、最小值、四分之一分位数、中位数、四分之三分位数和最大值。6.根据权利要求1所述的一种DNS隧道内复杂协议行为识别方法,其特征在于,分类器模型是SVM、决策树、随机森林或贝叶斯网络。7.根据权利要求1所述的一种DNS隧道内复杂协议行为识别方法,其特征在于,针对DNS隧道内的多协议混合情况,所述计算估计DNS隧道内部混合协议隧道包比例...

【专利技术属性】
技术研发人员:白惠文刘光杰翟江涛刘伟伟王桢云
申请(专利权)人:南京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1