1.一种DNS隧道内复杂协议行为识别方法,其特征在于,包括以下步骤:步骤1、识别DNS隧道;
步骤2、提取DNS隧道中DNS隧道包的查询和应答数据,生成DNS隧道包序列;
步骤3、根据所述DNS隧道包序列计算识别DNS隧道内部协议的统计特征并生成第一特征向量;
步骤4、根据生成的第一特征向量,训练分类器模型,该分类器模型用于识别隧道内部协议行为;
步骤5、根据隧道内部协议行为,针对多协议混合情况,进一步根据所述DNS隧道包序列计算估计DNS隧道内部混合协议隧道包比例的统计特征并生成第二特征向量;
步骤6、使用主成分分析方法,筛选第二特征向量,使得筛选后的第二特征向量中不存在与DNS隧道内部混合协议隧道包比例无关的统计特征;
步骤7、使用筛选后的第二特征向量训练回归模型,该回归模型用于估计隧道内部多协议混合情况下,不同协议的隧道包所占比例;
步骤6中,筛选第二特征向量是进行特征筛选,具体方法为:计算第二特征向量中的统计特征与DNS隧道内不同混合协议隧道包比例之间的相关性,计算方法为:
其中, 为协方差, 表示方差, 是第二特征向量中的第u个统计特征,h≥u≥1,h是第二特征向量中统计特征的总数,y是DNS隧道内不同混合协议隧道包比例;设置第一相关性阈值 ,若 ,则 作为筛选出的统计特征;筛选后的第二特征向量中统计特征的总数为j个;
针对 的统计特征,计算第二特征向量中的统计特征之间的相关性:
其中, 和 分别是第二特征向量中的第 和 个统计特征,, ,且 ;设置第二相关性阈值 ,若,则比较 和 ,若 则选择 作为筛选出的统计特征,否则选择 作为筛选出的统计特征;最终筛选后的第二特征向量中统计特征的总数为k个。
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隧道内部混合协议隧道包比例的统计特征包括:
在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隧道包的比例。
8.根据权利要求1所述的一种DNS隧道内复杂协议行为识别方法,其特征在于,步骤7中的回归模型为线性相关模型:其中,筛选后的第二特征向量中的第v个统计特征为自变量xv,以DNS隧道内混合协议隧道包比例为因变量y, 为筛选后的第二特征向量中第v个统计特征的权重参数,k≥v≥1,k为筛选后的第二特征向量中统计特征的总数, 表示偏置参数。
9.根据权利要求8所述的一种DNS隧道内复杂协议行为识别方法,其特征在于,根据线性相关模型,采用梯度下降法得到线性相关模型的权重参数和偏置参数。