一种基于Xgboost的Skype时间式隐信道检测方法
2021-07-26常婷婷翟江涛戴跃伟
常婷婷,翟江涛,戴跃伟
(1.江苏科技大学电子信息学院,江苏镇江212003;2.南京信息工程大学电子与信息工程学院,南京210044)
0 概述
随着互联网技术的快速崛起,中国已发展为5G网络大国,与相对封闭的传统移动通信系统相比,“5G+移动互联网”大数据背景下人和物的连接更紧密,但同时也造成网络攻击和恶意代码出现的频率大幅提高,给网络用户隐私数据保护、移动办公和国家基础网络设施安全带来重大影响。2019年,美国阿拉斯加拉文航空公司宣布其计算机网络受到恶意攻击,并在假日出行高峰期取消了至少6 班次航班,影响到近260 名乘客的正常出行。同年,美国路易斯安那州新奥尔良市遭到网络攻击,政府在当日宣布该市进入紧急状态。随着网络攻击出现频率的上升,网络安全维护成为研究人员关注的热点。
网络隐蔽通信是继加密技术后一种新兴的信息传输安全技术,其根据隐蔽信息隐藏方式的不同分为存储式隐蔽通信和时间式隐蔽通信。存储式隐蔽通信主要采用向网络协议的冗余位中嵌入IP 头的扩展与填充段[1-3]、IP 标志符[4-5]等隐蔽信息来构建存储式隐信道,由于网络数据包对上述字段内容的检查不严格,因此在其中嵌入此类信息不易被发现。除了这种传统的存储式隐蔽通信外,近年来还出现基于多链路传输序列的隐信道[6]、基于DNS 协议的隐信道[7]等新型存储式隐蔽通信。多链路传输序列的隐信道构建隐蔽通道的机制不再与网络协议冗余位有关,仅与数据包的时间特性有关,这与时间式隐蔽通信类似,但因为其构建方法是基于数据包的到达序列编码,与包间时延无关,所以其本质仍属于存储式隐信道,由于其兼具时间式隐蔽通信的隐蔽性与存储式隐蔽通信的稳定性,因此具有良好的实用价值。DNS 协议在网络运行中占有重要地位,一般不会被防火墙等安全系统阻拦,因此DNS 协议是实现隐蔽通信的常用手段。2019年,云服务商巨头亚马逊公司AWSDNS 服务器遭到DDoS 攻击,攻击者利用垃圾网络流量堵塞系统,造成服务器无法访问。此次攻击持续15 小时,大量数据包阻塞了DNS 系统,其中一些合法的域名请求被释放以缓解问题,由于网站和应用软件尝试联系S3 存储桶等亚马逊后端托管的系统可能失败,从而导致用户会看到出错信息或空白页面。
时间式隐信道通常利用数据包的包间时延特性来传递秘密信息,由于其不改变数据包内部信息,因此隐蔽性较存储式隐信道更高[8-10]。2013年,美国将该方法应用于匿名网络节点追踪。时间式隐信道一般以on/off 和delay 模式来模拟真实网络传输的包间间隔以进行隐蔽信息传输[11],在数据传输过程中IP报文被存储转发的情况下,目前常用的检测算法会失效。此外,还有model-based 模式的隐蔽信道[12-13],其主要通过拟合现实通信时的数据模型来构建隐秘信道。model-based 模式下的隐蔽通信模型具有更好的隐蔽性,且由于网络的时间特性较复杂,因此对该网络隐信道的检测更困难。其中,针对Skype 流量的隐写较大的情况,研究人员提出一种隐蔽通道检测算法[14],先对获取的Skype 流量进行基于Erlang模型的拟合,再利用Walsh 编码构建隐蔽通道,采用传统数据随机分组的方式,将80%的数据作为训练数据,20%的数据作为测试数据,并采用BP 神经网络方法进行检测。该方法虽然检测率较高,但也具有较高的虚警率。
针对上述隐信道,在处理训练数据和测试数据时,可提取峰态、偏态以及标准偏差的差值等特征,其中偏态和峰态用于观察包间时延的整体分布情况。由于在基于Erlang 模型构建隐信道的过程中,在对应区间随机选取一个包间隔(IPD)会破坏正常通信时包间时延的分布,因此峰态和偏态作为特征能起到较好的筛选排查作用。标准偏差的差值可用于研究较小范围内包间时延之间的关系,文献[15]将其引入时间式隐信道的检测算法并取得了较好的检测效果,因此可选取标准偏差的差值作为训练特征,然后采用五折交叉验证法结合无重复抽样技术,使得每次迭代过程中每个样本点只有一次被划入训练集或测试集。同时,找到使得模型泛化性能最优的超参值,并在全部训练集上重新训练模型,使用独立测试集对模型性能做出最终评价,以保证分类精度的准确性并有效避免模型产生过拟合现象。
本文提出一种Skype 时间式隐信道检测方法。在传统方法的基础上增加峰态、偏态以及标准偏差的差值3 种特征,并采用Xgboost 模型判决[16-17]和检测待测数据,利用一阶导数和二阶导数将树模型的复杂度作为目标函数的正则项考虑,已避免出现过拟合现象。
1 基于Skype 的时间式网络隐写算法
对正常数据的累积分布函数(CDF)进行拟合,可实现隐秘数据的嵌入且不易被检测[13]。因此,本文以常用的Skype 通信流量为载体,拟合出CDF 模型。基于Skype 的时间式网络隐写算法流程如图1所示。
图1 基于Skype 的时间式网络隐写算法流程Fig.1 Procedure of timing network steganography algorithm based on Skype
该算法具体流程如下:
1)获取正常环境下Skype 通信的流量数据,建立CDF 模型(与Erlang 模型类似),其累积分布函数P(x;m,λx)的计算公式如下:
其中:x为包间时延,m=1 为图形参数,λ为速率参数,K为扩频编码时使用正交信道的数目。
2)采用N阶Walsh 码进行二进制扩频编码如下:
其中:ck为N阶Walsh 码。
3)将正常通信数据的CDF 划分为F=3 个区间,每个区间再分为2m+1 个小区间,以保证每个区间之间保持最小的汉明距离。s中不同的值依次与CDF的F个小区间对应,并在相应区间内选择一个IPD。
2 本文方法
2.1 特征提取
本文检测对象是对正常Skype 数据的CDF 模型进行拟合实现的隐写,因此较一般隐信道具有更强的抗检测性。信息熵作为目前有效的时间式隐信道检测手段,与上述隐写方式相结合的检测效果不佳,因此本文提取以下7 种特征组成特征矩阵进行分类器的训练。
1)基于时间序列的马尔可夫(Markov)转移矩阵。设ti为第i个包间间隔,ti+1为第i+1 个包间间隔,如果ti+1<ti,则mi=0;否则mi=1,由此可得到1 条马尔可夫链。由式(4)可得到马尔可夫转移矩阵的元素:
由于隐蔽信息的IPD 根据特定的规律随机调制,使得马尔可夫转移矩阵中的4 个元素相对较稳定,但是在现实网络中,由于受到各方面因素的影响,马尔可夫转移矩阵中的元素可能会受到干扰,与含密数据的马尔可夫移矩阵中元素有所不同,因此将其作为一种提取特征。
2)信息熵。熵可反映出一个整体的不确定性以及信息容量。由于时间式隐蔽通信会使IPD 整体分布发生变化,使其不同于正常通信的信息熵值,且对于传统时间式隐信道而言,基于信息熵的检测是一种常用的检测手段,因此将信息熵作为一种提取特征,具体操作过程如下:
(1)分别从正常数据和含密数据中提取N个数据包,分为w=1 000 个窗口。
(2)将正常数据的IPD 分为大小相等的L块,计算IPD 落在每块中的概率。
(3)根据式(5)计算每个窗口的信息熵,设置检验阀值,比较测试数据的信息熵值和检验阀值来判断数据是否含密,计算公式如下:
其中:Pni为时延信息落在每个块中的概率。
3)均值与方差。包间时延的均值和方差与当前的网络环境密切相关。当网络质量较好时,正常数据的包间时延均值一般小于含密数据,此时方差较小;当网络出现拥塞时,正常数据的包间时延均值会随着包间时延的增大而增加,方差也较大。由此可知,正常数据包间时延均值与方差的波动一般比较大。含密数据的包间时延通常按照一定规律随机选择,其均值和方差较正常数据波动更小,因此将均值和方差作为一种提取特征,其计算公式分别如下:
其中:n为样本时延总数。
4)DCT 系数。传统隐信道的检测仅注重数据之间的时域特性,忽视了频域特性的重要性。目前较常用的时频域转换方法属于DCT 变换,研究人员将DCT 系数应用于隐蔽通道检测取得较好的效果,因此将DCT 系数作为一种提取特征,相关计算公式如下:
其中:0 ≤p≤M-1,0 ≤q≤N-1,M和N分别为A的行数和列数;B为变换后的矩阵。
5)ε-相似度。由式(11)可计算出相邻两个数据包之间的差异率dif,dif 小于ε的包间时延个数占总包间时延个数的比值称为ε-相似度E,由式(12)计算得到。
其中:num(dif <ε)表示差异率小于ε的包间时延总数。
本文采用模型拟合方法构建隐蔽信道,对含密数据构建的CDF 模型与现实数据的CDF 模型相似,但是ε-相似度是基于邻近的包间间隔特性进行分析,含密数据与真实数据之间可能会存在较明显的差异,因此将ε-相似度作为一种提取特征。
6)峰态(K)和偏态(S)。偏态和峰态用于观察包间时延的整体分布情况,在基于Erlang 模型进行隐写的过程中,在对应区间随机选取一个IPD,难免会破坏正常通信时包间时延的分布,因此将峰态和偏态作为一种提取特征,其计算公式如下:
其中:为样本的平均值。
7)包间时延标准差的差值(C)。在研究较小范围内包间时延之间的关系时,研究人员将包间时延标准差引入时间式隐信道检测算法取得较好的检测效果[15],本文取标准差的差值作为一种分类器的训练特征。分别从正常数据和含密数据中提取N个数据包并分为w=1 000 个窗口,再将这w个窗口分为w/2 个窗口,分别求得各自的标准偏差σi和σj,再计算两个窗口之间标准差的差值C,计算公式如下:
其中:为样本的平均值。
2.2 Xgboost 算法
2.2.1 梯度提升树算法
梯度提升树(GBDT)算法是2001年FRIEDMAN等提出的一种boosting 算法[18],其由多棵决策树组合而成,是通过迭代产生的一种决策树算法,并将所有决策树的统计结果作为最终预测的结果,GBDT算法的基本原理如图2所示。
图2 GBDT 算法的基本原理Fig.2 Basic principle of GBDT algorithm
对于回归树的分裂结点,如果是在平方损失函数中,则是对残差的拟合;如果是在一般损失函数中(梯度下降),则是对残差近似值的拟合。当划分分裂结点时,需列举出所有的特征值,然后选取划分点并统计每棵树的预测结果,统计结果即为最终的预测结果。
2.2.2 Xgboost 算法原理
Xgboost 是2014年诞生的用于梯度提升树算法的机器学习函数库[19],该函数库因学习效果好和训练速度快获得广泛关注。在2015年KAGGLE 竞赛中获胜的29 个算法中,有17 个使用了Xgboost,相较梯度提升算法在另一个常用机器学习库scikit-learn 中的实现情况,Xgboost的性能有10 倍以上的提升。此外,Xgboost将损失函数从平方损失推广到二阶可导的损失,加入了正则化项,支持列抽样,能对连续型特征进行处理,同时可以利用数据的稀疏性,当数据量大时有效提高硬盘吞吐率。目前Xgboost 算法被广泛用于企业破产风险评估、物联网消费人群减少评估、网络安全风险评估[20-21]等领域。
Xgboost 算法是在GBDT 算法的基础上略加改进得到,其与GBDT 算法存在一些差异[22]。GBDT 算法只采用了一阶导数进行优化,而Xgboost算法在优化时将一阶导数和二阶导数相结合,引入树模型的复杂度,并将其作为目标函数里的正则项,可有效避免发生过拟合。Xgboost算法中boosting 树模型结构如图3所示(其中,f(□)=2.0+0.9=2.9,f(○)=-1.0+0.9=-0.1)。
图3 Xgboost 算法中boosting 树模型结构Fig.3 Structure of boosting tree model in Xgboost algorithm
Xgboost 算法的具体实现过程如下:
1)设Xgboost 模型第t轮的目标函数为:
其中:l为第t轮的损失项;Ω为模型中决策树的正则项,其计算公式如下:
2)由泰勒展开公式得到:
设以下条件成立:
将式(18)~式(21)代入式(17)得到:
3)对式(22)进行求解可得最优系数与目标函数最优值分别如下:
4)根据式(23)和式(24)的最优结果确定最优决策树结构,进而进行计算和预测。
3 实验与结果分析
3.1 实验过程
为保证实验数据的一般性和实验结果的可靠性,本文实验所用数据是在教育网-教育网、教育网-中国镇江移动有线网、中国镇江移动有线网-中国六安电信有线网3 种不同的网络环境下抓取获得。在教育网-教育网环境下登录Skype 建立语音连接,分别抓取正常流量数据60 326 条和65 200 条并编号为M1 和M2;在教育网-中国镇江移动有线网环境下登录Skype 建立语音连接,分别抓取正常流量数据34 465 条和46 519 条并编号为N1 和N2;在中国镇江移动有线网-中国六安电信有线网环境下登录Skype建立语音连接,抓取正常流量数据65 178 条,编号为P。按照本文隐信道构建方法模拟生成含密流量数据Q1(40 000 条)以及Q2(4 000 条)。
本文实验流程如图4所示,具体如下:
图4 本文实验流程Fig.4 Procedure of the experiment in this paper
1)将正常数据与含密数据混合后按大小为w=1 000 的窗口进行分割,两种数据用标识符标记,正常数据标记为0,含密数据标记为1。
2)在w个数据中提取7 种特征,形成1 个13 维数组,数组中包含马尔可夫转移矩阵的4 个元素、熵值、包间时延均值、峰态、偏态、包间时延方差、DCT系数最大值、DCT 系数最小值、ε-相似度(ε=0.5)以及标准偏差的差值。
3)针对上述数据集预处理得到的实验数据,采用五折交叉验证,同时为证明在本实验背景下Xgboost 算法相较Logistic 回归算法、决策树算法、随机森林算法等目前较流行的算法具有更好的适用性,使用上述算法分别进行训练和建模预测。
五折交叉验证步骤如图5所示,具体如下:
图5 五折交叉验证原理图Fig.5 Schematic diagram of five-fold cross validation
1)将实验数据平均分为5 份,在分割过程中保证每份数据均含有两种标签样本。
2)保留1 份单独的数据样本作为测试数据,其他4 份数据样本用于对上述4 种分类器逐一进行训练,交叉验证重复5 次,每个样本数据测试1 次,当输出结果为1 时表示为含密数据,当输出结果为0 时表示为正常数据。
3)计算5 次结果的平均值作为各个分类器的评价指标最终结果。
3.2 结果分析
本文采用基于Xgboost 的方法(以下称为本文方法)对待测数据进行分组实验,并将所得结果与BP神经网络方法(以下称为BP 方法)结果[10]进行对比。
3.2.1 对比实验结果
分别对单组数据、多组数据以及不同实验环境数据进行检测,以下为对比实验的结果。
1)单组数据检测。将M1 与Q1(单组数据1)、N1 与Q1(单组数据2)分别作为原始数据通过五折交叉验证进行Xgboost 判决,得到实验结果如表1 和表2所示。
表1 单组数据1 检测结果对比Table 1 Comparison of detection results of single group data 1
表2 单组数据2 检测结果对比Table 2 Comparison of detection results of single group data 2
2)多组数据检测。将M1、M2、N1、N2、Q1、Q2作为原始数据通过五折交叉验证进行Xgboost 判决,得到实验结果如表3所示。
表3 多组数据检测结果对比Table 3 Comparison of detection results of multi-group data
3)不同实验环境数据检测。将M1、N1、P、Q1、Q2 作为原始数据通过五折交叉验证进行Xgboost 判决,得到实验结果如表4所示。
表4 不同环境数据检测结果对比Table 4 Comparison of detection results of different environmental data
本文添加了峰态、偏态以及标准偏差的差值3 种特征,再利用五折交叉验证和Xgboost 算法,根据不同实验得到了相应的检测率和虚警率。在检测率方面,虽然本文方法偶尔略低于BP 方法,但检测率依然保持在0.999 0 以上,基本与BP 方法检测率相同;在虚警率方面,本文方法较BP 方法最多降低约10 个百分点。总体而言,本文方法检测率更高且虚警率更低。
3.2.2 适用性实验结果
为进一步验证Xgboost 算法在本文实验研究背景下的适用性,另外选取精确率(P)、召回率(R)、精确率和召回率的调和均值(F1)、准确率(A)这4 个性能指标,加上检测率和虚警率共采用6 个性能指标来比较Xgboost 分类器和逻辑回归、决策树、随机森林等当前较流行分类器的分类效果。
对二分类问题而言,如果实例是正类且被预测为正类,则称为真正类(True Positive,TP);如果实例是负类且被预测成正类,则称为假正类(False Positive,FP);如果实例是负类且被预测成负类,则称为真负类(True Negative,TN);如果实例是正类且被预测成负类,则称为假负类(False Negative,FN)。准确率A用于描述分类器的分类效果,准确率越大,分类器分类效果越好。当A=1 时,该分类器是完美分类器;当0.5<A<1 时,该分类器的结果优于随机猜测结果;当A=0.5 时,该分类器的结果与随机猜测结果接近;当A<0.5 时,该分类器的结果比随机猜测结果要差。
相关计算公式如下:
其中:TP 为正类预测正确的个数,FP 为负类预测错误的个数,TN 为负类预测正确的个数,FN 为正类预测错误的个数。
各分类器的性能指标如表5所示。由表5 可见,Xgboost 分类器和随机森林分类器均有较好的分类效果,决策树分类器次之,逻辑回归分类器效果最差。逻辑回归分类器的准确率虽然达到0.987 51,但是另外5 项指标远低于其他3 种分类器,其分类效果最差。决策树分类器和随机森林分类器的各项指标都较好,但Xgboost 分类器的检测率相较决策树分类器提升约0.5 个百分点,较随机森林分类器提升0.1 个百分点。Xgboost 分类器的召回率略高于决策树分类器,相较随机森林分类器提升约0.1 个百分点。Xgboost分类器的调和均值相对决策树分类器提升约2 个百分点,相较随机森林分类器提升约1 个百分点。Xgboost 分类器的准确率为1.000 00,在本文中分类效果接近理想状态,较决策树分类器提升约2 个百分点。Xgboost 分类器的虚警率在4 个分类器中最低。虽然Xgboost 分类器精确率略低于随机森林分类器,但从总体来看,Xgboost分类器的分类效果最佳。
表5 不同分类器的性能指标Table 5 Performance indicators of different classifiers
4 结束语
本文提出一种利用Xgboost 算法的Skype 时间式隐信道检测方法。基于正常通信数据的CDF 模型建立网络隐蔽通道提取数据特征并构建特征向量,采用五折交叉验证法和Xgboost 算法进行判决。同时,找到使模型泛化性能最优的超参值,利用独立测试集对模型性能进行评价,以提高分类精度并避免产生过拟合现象。实验结果表明,该方法较BP 神经网络方法检测率更高且虚警率更低。后续将在本文方法的基础上对新型时间式隐信道检测进行研究,进一步提高检测率。