基于Stacking 的网络恶意加密流量识别方法*

2022-08-23 01:53王天棋丁要军
通信技术 2022年7期
关键词:会话分类器客户端

王天棋,丁要军

(甘肃政法大学,甘肃 兰州 730070)

0 引言

在安全和隐私保护需求的驱动下,加密流量在网络中占据了越来越重要的地位。根据谷歌在2020 年发布的透明度报告,已经有80%的安卓应用程序默认使用传输层安全协议(Transport Layer Security,TLS)加密所有流量[1]。根据CISCO 2019年的报告,使用加密来隐藏远程控制以及数据泄露等恶意行为的恶意软件占比超过70%,使用加密通信的恶意软件几乎覆盖了所有常见类型[2]。因此,高效识别TLS 恶意加密流量有重要的现实意义。

目前,已经有国内外研究人员对网络恶意加密流量进行了研究,并且取得了一定的成就。Canard等人[3]提出了对加密流量进行深度包检测(Deep Packet Inspection,DPI)而无需解密的技术,但在设置阶段需要大量的计算和较长的检测时间。Torroledo 等人[4]通过考虑TLS 协议中的证书,利用证书内容对恶意流量进行识别,但是此方法对无证书传递的加密会话恶意性检测无效。Anderson 等人[5]提出了一种TLS 指纹识别系统,该系统利用目标地址、端口和服务器名精心构造了指纹串。但是,Matoušek 等人[6]发现以取证为目的创建唯一且稳定的TLS 指纹并不容易,恶意用户可以通过恶意行为改变TLS 版本、密码套件等信息躲避检测,因此指纹的发展受到了限制。此外,Anderson等人在文献[7]中研究利用TLS 握手阶段的可用特征来识别加密恶意流量,但缺乏对握手阶段外的特征考虑,且只使用了逻辑回归分类器进行验证。

鉴于此,本文在TLS 加密流量特征分析的基础上,提出了一种基于Stacking 的网络恶意加密流量识别方法。该方法通过对恶意流量和正常流量进行分析,提取出能识别恶意流量的会话特征、握手特征和证书特征,并在单一特征和多特征条件下对恶意加密流量识别进行对比,发现多特征的检测方法能有效提升识别效果。为解决单一的机器学习方法在不同环境下的分类准确率难以保持稳定且泛化能力差的问题,构建Stacking 模型并选择合适的基学习器和元学习器,最后在公开数据集上进行训练,实验证明所提算法的识别效果优于现有方法。

1 TLS 加密流量分析

1.1 TLS 协议分析

TLS 协议是加密流量传输中常用的协议[8],也是保护许多明文应用协议的主要协议。图1 是一个完整的TLS 握手过程。如图1 所示,首先,客户端发送一条ClientHello 消息,该消息为服务器提供了一系列密码套件和一组客户端支持的TLS 扩展;其次,服务器发送一个ServerHello 消息,其中包含从客户端列表中选择的加密套件,还包含服务器支持的扩展列表以及证书链的Certificate 消息,该消息可用于对服务器进行身份验证;再次,在客户端发送ClientKeyExchange 消息给服务器端后,客户端和服务器交换ChangeCipherSpec 消息,以后的消息将使用协商好的加密参数进行加密;最后,客户机和服务器开始交换应用程序数据[9]。

图1 TLS 协议握手协商阶段流程

传统的通过TLS 解密来查看流量密文内容的方式,不仅耗时,而且不能保护隐私。由于TLS 协商的过程是通过明文来进行的,因此可以从未加密的消息中提取有用的信息。虽然证书是在TLS 握手阶段得到的,但由于其对分类结果的影响明显,因此本文将证书作为单独特征向量进行考虑。

1.2 TLS 加密流量特征分析和提取

1.2.1 TLS 握手特征分析和提取

握手特征从客户端发送明文Client Hello 消息和服务端反馈Server Hello 消息中提取。图2 展示了恶意会话和正常会话的服务器对TLS 加密套件的选择对比和客户端支持的曲线对比。为了更清晰地表示,将密码套件用16 进制代码表示。

图2 恶意会话和正常会话密码套件和曲线对比

服务器选择的密码套件针对大多数正常会话和恶意会话有严格划分。大多数正常的加密会话服务器选择的TLS 密码套件为000a、c014。

其中:

从图2(a)中可以看出,恶意软件占比多的0004、0005 是比较弱的加密套件,安全性不足。从客户端支持的曲线对比看出,除选用基于256 bits的素数域P 上的椭圆曲线(secp256r1)外,有23%的恶意会话的客户端依赖底层素数域特征为2255-19的椭圆曲线(x25519),而有33%的正常会话选用基于384 bits 的素数域P 上的椭圆曲线(secp384r1)。

此外,观察到正常加密流量客户端支持的扩展种类丰富,恶意流量客户端扩展种类较为单一。提取出的TLS 握手特征如表1 所示。

表1 TLS 握手特征

1.2.2 服务器证书特征分析和提取

服务器证书是用于验证服务器身份的文件,普通认证机构(Certificate Authority,CA)证书由可信的CA 机构颁发。自签名证书任何人都可以颁发,它的issuer 与subject 相同。

在提取证书特征的过程中,证书的有效期、证书链的长度、证书是否自签名等重要特征指标无法直接获取,需要通过相应的算法来获得。图3 展示了正常和恶意加密流量的服务器证书有效期时长对比和服务器证书的issuer 长度对比。可以看出,正常的加密流量证书有效期较短,有58%的正常会话证书有效期是80 天左右。而恶意加密流量有效期时间相对较长,甚至有5.6%达到36 500 天。

图3 恶意和良性流量证书有效期和issuer 长度对比

从服务器证书的issuer 长度可以看出,60%的正常加密会话的服务器证书issuer 长度为1,而恶意流量证书issuer 长度为2 和3 的占比86%。此外,观察到TLS 服务器使用自签名证书的频率和使用公钥的长度等指标在恶意和正常加密流量中也有明显区别。提取出的服务器证书特征如表2 所示。

表2 证书特征

1.2.3 会话的特征分析和提取

会话特征是现有文献中的常见特征。通过观察发现,大部分恶意软件的接收数据包数量为5~12个,而正常流量数据包的数量变化范围较大。恶意加密流量的连接状态为连接已建立,发起方中止RSTO 的最多,占比43%,而正常加密流量的连接状态以正常建立和终止SF 的居多。此外,包长度、包到达时间等也是重要的会话统计特征。提取出的会话特征如表3 所示。

表3 会话特征

2 基于Stacking 集成学习的加密恶意流量检测方法

2.1 Stacking 集成模型

Stacking 是组合异质分类器的集成学习方法,它融合不同的学习算法实现高精度的分类任务[10],能够有效降低泛化误差,并通过元学习器来取代Bagging 的投票法,来综合降低偏差和方差。同时,Stacking 作为一种集成框架,往往采用两层结构,第1 层组合多个基学习器输出特征,第2 层使用元学习器组合第1 层的输出特征,给出最终的预测结果。研究表明,Stacking 在增加有限计算开销的同时,有出色的性能和鲁棒性[11]。

Stacking 算法共分成3 个步骤:

(1)根据原始数据D训练第一层分类器,一共有T个分类器,其中ht是第t次循环得到的分类器;

(2)根据第一层分类器的输出,构造新的数据集,第一层的预测结果将作为数据的新特征,原始数据的标签成为新数据的标签;

(3)根据新的数据集训练第二层分类器得到新的分类器h´,对于每一个数据实例x,分类器的预测结果为h´(h1(x),h2(x),…,hT(x)),其中,h1(x),h2(x),…,hT(x)表示第一层中的分类器[12]。

Stacking 算法伪代码如下:

2.2 Stacking 模型构建

Stacking 集成方法通过将不同的算法结合在一起,发挥每个算法的优势来获得更佳的预测性能。在构建Stacking 集成模型中,首先需要确定基学习器的种类,而基学习器的选择需从准确性和多样性两个方面考虑。

从基学习器的预测性能方面考虑,本文除了选择随机森林(Random Forest,RF)和LightGBM[13]模型作为基学习器,还选择了其他预测性能优异的模型。其中,XGBoost 针对传统的梯度提升决策树进行改进,在训练时间等方面都有所提升。

为了获得最佳的集成模型,还需要考虑基学习器之间的相关性。选择相关性较小的算法能够充分发挥不同算法的优势[14],达到互补的目的。本文采用Pearson 相关系数衡量算法之间的相关性大小,其表达式为:

式中:和分别为各向量中元素的平均值。最后,依据基分类器追求“准而不同”的原则,初步选 择RF、K 近 邻(K-Nearest Neighbor,KNN)、XGBoost、支持向量机(Support Vector Machine,SVM)和LightGBM 作为基学习器。

Wolpert 在提出Stacking 时,就说明了元学习算法和新数据的属性表示对Stacking 集成的泛化性能影响很大[15]。对于输出类概率的初级分类器,分类器h对样例x的预测是,x属于所有可能类标签的概率为pht(cj|x),j=1,…,l,其中,l是指l个分类问题,pht(cj|x)定义了分类器h估计样例x属于类别cj的概率值。将基分类器对所有类预测的后验概率作为元层学习器的输入属性[16],乘以最大概率的概率分布,其表达式为:

概率分布的熵为:

元模型通常很简单,为了减轻过拟合,第二层元学习器选择逻辑回归模型。本文构建的基于Stacking 的加密恶意流量检测模型如图4 所示。

图4 基于Stacking 的恶意加密流量识别算法流程

3 实验结果及分析

3.1 实验环境与数据集

本文采用scikit-learn 机器学习库构建Stacking模型并完成实验评估,在Windows 10 环境下运行,处理器为AMD Ryzen 4800H,图形处理器(Graphics Processing Unit,GPU)为RTX 2060,内存为16 GB。

本实验选用DataCon 开放数据集[17],源自2020年2—6 月收集的恶意软件与正常软件,经奇安信技术研究院天穹沙箱运行并采集其产生的流量筛选生成,数据集格式为pcap 文件。由于本文研究需要更精确的数据集,对数据进行以下处理:

(1)过滤未完成完整握手过程的会话;

(2)过滤确认包、重传包及传输丢失的坏包;

(3)借助Zeek[18]将pcap 包转换为流量日志,进行特征提取;

(4)特征提取后对非数值型的特征流量使用One-Hot 编码,满足模型输入的需要;

(5)对特征的缺失值和异常值进行处理,采用Z-score 对数据进行标准化。经过数据预处理后,最终的数据集如表4 所示。

表4 最终数据集构成

3.2 评价指标

本文采用精确率(Precision)、召回率(Recall)、F1 值和ROC 曲线下方的面积(Area Under Curve,AUC)值作为评价指标来估计方法的分类效果。精确率(Precision)、召回率(Recall)和F1 值的定义分别为:

式中:TP为被模型预测为正类的正样本数量;FN为被模型预测为负类的正样本数量;FP为被模型预测为正类的负样本数量。

3.3 特征性能对比

本文提取出会话统计特征86 维,握手特征62维和证书特征31 维,共计179 维特征向量。为了分析不同特征组合的性能,使用随机森林算法分别测试了3 种特征组合下的识别效果,实验结果如表5 所示。

表5 不同的特征组合五折交叉验证结果

为了减小特征冗余和噪声,去除相关度高及有负影响的特征,使用特征筛选算法Correlation AttributeEval,分别选择特征从10 到100 维的10 种情况进行实验,确定特征维数为多少时,模型分类效果最佳,实验结果如图5 所示。

图5 特征维数确定

当特征维数为30 时,使用随机森林算法分类时,F1 最高,达到97.2%。此后随着维数的增加,F1 值逐渐降低。因此,本文将特征维数缩减到30 来进行实验,在提高识别效果的同时缩短了运行时间。

不同特征组合下分类性能对比如图6 所示。可以看出多特征识别显著提升了模型精确率和召回率,特征筛选进一步提升了模型的性能。

3.4 元分类器选择

为了减轻过拟合,第二层元学习器一般选择简单的模型,本文选择逻辑回归作为元分类器学习。表6 比较了常用于Stacking 模型中的K 近邻(K-Nearest Neighbor,KNN)、支持向量机(Support Vector Machine,SVM)和逻辑回归(Logistic Regression,LR)算法作为基分类器的差异。结果表明LR 算法作为元学习器时,Stacking 模型表现最好。

3.5 算法性能对比

将本文构建的Stacking 模型与SVM、RF、XGBoost、CNN 算法对比,实验结果如表7 所示。

表7 算法性能对比

由表7 可以看出,本文构建的Stacking 模型的查准率、召回率、F1 值和AUC值均高于其他算法模型。与SVM 相比,分别提高了3.4%,3.3%,3.4%和3.2%;与XGBoost 相比,分别提高了2.2%,2.1%,1.7%和0.3%;与CNN 相比,分别提高了1.5%,2.7%,2.1%和4.1%。因此,通过上述对实验结果的分析,验证了本文提出的基于Stacking 的网络恶意加密流量识别方法的可行性。

4 结语

本文通过分析大量的正常和恶意加密流量,从中提取出具有显著区分度的会话特征、握手特征和证书特征。对单一特征和多特征识别网络恶意加密流量进行对比,结果表明加入了握手和证书特征后可以显著提升模型的识别效果。构建基于Stacking集成学习的网络恶意加密流量检测模型,实验表明,在Datacon2020 数据集下,本文Stacking 模型效果比XGBoost 等4 种算法效果均有所提升,解决了单一的机器学习方法泛化能力弱的问题。此外,文章还存在一些不足之处,如在构建Stacking 模型时可以尝试更多基分类器和元分类器的组合,从而作出更优的选择,这也是今后进一步研究的方向。

猜你喜欢
会话分类器客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
基于朴素Bayes组合的简易集成分类器①
QQ和微信会话话轮及话轮转换特点浅析
基于特征选择的SVM选择性集成学习方法
如何看待传统媒体新闻客户端的“断舍离”?
基于差异性测度的遥感自适应分类器选择
基于集群节点间即时拷贝的会话同步技术研究①
新华社推出新版客户端 打造移动互联新闻旗舰
基于层次化分类器的遥感图像飞机目标检测