APP下载

基于半监督深度学习的网络恶意加密流量识别方法*

2023-08-15王天棋丁要军

信息安全与通信保密 2023年5期
关键词:加密标签损失

王天棋,丁要军

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

0 引 言

中国互联网信息中心发布的第49次《中国互联网发展状况统计报告》显示,截至2021年12月,中国互联网普及率达73.0%[1]。互联网中采用加密的流量呈逐年攀升的趋势。在全球主要国家与地区,这一数据更是已经超过了90%。由数据统计机构Netmarketshare发布的统计数据可知,截至2019年10月2日,超文本传输安全协议(Hyper Text Transfer Protocol over Secure Sockets Layer,HTTPS)加密万维网(World Wide Web,WWW)流量在全球范围内被使用的比例已经超过90%[2];2019年12月,谷歌宣称80%的Android应用程序默认使用传输层安全协议(Transport Layer Security,TLS)加密所有流量,且这一比例还会随着时间的推移而继续增大[3]。越来越多的恶意软件隐匿在加密TLS流量中来传输恶意信息,对用户、企业和国家的通信安全造成威胁。因此,对TLS恶意加密流量进行高效识别对网络监管和打击犯罪有着重要意义。

目前,已经有国内外研究人员对网络恶意加密流量进行研究,并且取得了一定的成就。Canard等人[4]提出对加密流量进行深度包检测(Deep Packet Inspection,DPI)而无需解密的技术,但在设置阶段需要大量的计算和较长的检测时间。Anderson等人[5]提出了一种TLS指纹识别系统,该系统利用目标地址、端口和服务器名精心构造的指纹串。近年来,半监督学习在图像识别、自然语言处理等领域也取得了显著成绩。Rezaei等人[6]提出了一种半监督检测模型,首先在大型未标记数据集上训练,然后使用少量标记数据集重新训练模型。谷歌的研发队伍提出了MixMatch[7]和FixMatch[8]技术,利用集成方法,提高了模型准确率。

为解决网络恶意加密流量识别方法中大量标记样本获取困难问题,本文提出一种基于FixMatch的网络恶意加密流量识别方法。通过借助网络流量图片化方法将PCAP格式的原始流量数据以流为单位进行切分、填充、映射到灰度图片中,构建FixMatch模型并对恶意加密流量进行分类,在公开数据集上进行验证,实验证明识别效果优于现有方法。

1 相关知识

1.1 卷积神经网络

卷积神经网络(Convolutional Neural Networks,CNN)是一种人工神经网络,目前已成为语音分析和图像识别领域的研究热点,广泛应用于人脸识别、疾病分析、图像处理等领域。CNN一般由输入层、卷积层、池化层、全连接层以及输出层构成[9]。其中卷积层可从输入数据中快速精准地提取样本特征。池化层有2个典型特性:一是可以大幅度加快模型的训练速度,对提取的特征信息进行降维处理,降低训练量。二是防止模型训练结果过拟合[10]。实际的操作中,常在两个相邻的卷积层之间加入一层池化层。全连接层的特性之一是能将当前训练所提取的特征和保留的样本特征进行组合。正是由于CNN拥有局部连接和权值共享的特性,使得CNN可以精准高效地从输入数据中挖掘潜在的特征。

1.2 一致性正则化

一致性正则化是当前最先进的半监督学习算法的一个重要组成部分。一致性正则化利用未标记的数据,它依赖于这样一个假设:当输入相同图像的扰动版本时,模型应该输出相似的预测。该想法首次在Learning with Pseudo-Ensembles[11]中提出,其中模型通过标准监督分类损失和损失函数对未标记数据进行训练。

式中:设X={(xb,pb):b∈(1,…,B)}为一批标记的样本,xb为训练样本,pb为one-hot标签。设U={ub:b∈(1,…,uB)}为一批未标记的样本,其中u是确定X和U相对大小的超参数。设pm(y|x)为模型对输入X产生的预测类分布。

1.3 相关半监督深度学习算法

1.3.1 伪标签(PseudoLabel)

伪标签是一种简单有效的深度神经网络半监督方法。其在监督的方式下训练有标签的样本,对于无标记样本通过伪标签的方法选择出该数据具有的最大概率预测类,把这个预测出的标签作为实际标签使用。伪标签利用模型本身的思想为未标记的数据获取人工标签。具体来说,这指的是用“硬”标签(即模型输出的参数最大值),并且只保留最大类概率高于预定义阈值的人工标签[12]。令qb=pm(y|ub),伪标记使用以下损失函数:

式中:qb=argmax(qb),τ为阈值,两个概率分布p和q之间的交叉熵为H(p,q)。

1.3.2 MixMatch

MixMatch是一种整体方法,它结合了半监督学习主流范例中的思想。给定一组标注实例X及其对应的one-hot目标(代表L个可能标签中的一个)和一批大小相同的未标记示例U,MixMatch将生成一批经过处理的增强标记示例X'和一批猜测标签U'的增强未标记示例。然后分别使用U'和X'计算单独的标记和未标记损失项。半监督学习的组合损失L如下:

式中:H(p,q)为分布p与分布q间的交叉熵;T,K,α,λu为超参数。模型pmodel(y|x;θ)对参数为θ的输入x产生类标签y上的分布。

1.3.3 ICT

插值一致性训练[13](Interpolation Consistency Training,ICT)鼓励对于无标记样本点的插值的预测和这些样本的预测的插值保持一致。ICT可以将决策边界移动到数据分布的低密度区域,如果两个样本在输入分布中属于同一个聚类或簇,它们很可能属于同一个类别,这被称为聚类假设,这也表明好的决策边界应当位于数据分布的低密度区域。不同的一致性正则化技术的区别在于如何选择对未标记数据的扰动,常规的做法是使用随机扰动,但是在高维情况下只有很小比例的随机扰动能够将决策边界推到低密度区域,对此,ICT提出了一种简单但是有效的基于插值一致性的方法:

式中:fθ为ICT的训练分类器,θ'为θ的滑动平均。Mixλ(·,·)为参数为λ的线性插值函数:Mixλ(a,b)=λ·a+(1-λ)·b。

1.3.4 FixMatch

在一致性正则化和伪标记方法基础上,将它们相结合,提出了新的一些具有更高准确率的方法。Sohn等[8]在2020年提出了FixMatch,该方法结合了伪标签和一致性正则化的思想,尽管FixMatch的整个环节较简单,但其在多个标准数据集上都得到了目前的最好结果。

FixMatch利用了两种增强:“弱”和“强”。FixMatch中使用的弱增强分为平移和翻转两类,数据增强前后,图片变化不大。平移是基于空间上的变换,表现为上、下、左、右的平行移动[14]。翻转表现为对图片进行水平、垂直翻转。FixMatch中使用的强增强包含Cutout[15]、CTAugment[16]和RandAugment[17]。Cutout是一种模拟遮挡的方法,表现为对图像的部分区域进行遮挡。AutoAugment[18]是一种能够利用搜索算法,自动检索合适的数据增强策略的方法。RandAugment是AutoAugment的变体,它给定了一个可以选择的数据增强方法的列表,并给定了一些可能的数据增强幅度。可以从这几个列表中选择N个增强方法,然后随机选择一个数据增强幅度上限M,使得这N个数据增强方法的幅度不能超过给定的幅度上限M,然后将这一系列增强方法用于图片。CTAugment通过控制理论的思想解决了RandAugment中对于数据增强策略的学习需求,动态学习了每个变换的幅度。

对于每一个有标签样本,用交叉熵损失训练一个有监督模型。对于每一个无标签样本,采用弱增强得到一幅图像,将该图像传递给模型,得到一个预测结果,该模型会设定一个阈值,如果这个预测结果最高的类别的置信度高于阈值,那么,该类别就会作为这张图片的标签。此时,运用了自训练的思想,即伪标签。然后,强增强后的图片通过模型进行一个分类的预测,此时会得到另一个预测结果,对模型的输出施加交叉熵损失。根据一致性正则化的思想,模型希望弱增强和强增强这两种数据增强方法后的图片的预测结果尽可能一致。最后,有标签样本损失和无标签样本损失的加权当作模型总损失,以总损失最小为目标优化模型。FixMatch的处理流程如图1所示。

图1 FixMatch的处理流程

2 基于FixMatch的TLS网络恶意流量识别方法

2.1 网络流量图片化

基于文献[19]对数据处理的经验,本节的网络流量图片化主要是使用工具集USTCTK2016将原始流量数据(PCAP)处理成cifar10数据集格式(便于更好地迁移到多数模型)。

(1)流量切分:按照流量表示形式将原始PCAP文件按照数据流形式切分为多个PCAP文件,本数据流是具有相同五元组信息的数据包的时间排序集合。

(2)图片生成:将处理过的文件按照784字节进行统一长度处理,即保留文件前784字节数据,舍弃文件785字节及以后的所有信息,如果长度少于784字节,则在文件后面补充0x00;统一长度后的文件按照二进制形式转换为灰度图片,即一个字节对应灰度像素值,如0x00对应黑色,0xff对应白色,输出格式为PNG。在公开数据集上对网络流量进行图片化处理后的效果如图2、图3所示。

图2 CTU-Malware-Capture数据集下流量图片化展示

图3 USTC-TFC2016数据集下流量图片化展示

2.2 构建FixMatch的TLS网络恶意流量识别模型

2.2.1 数据增强

根据FixMatch模型中的弱增强和强增强方法对转换成图片的数据进行数据增强处理。本文采用的弱增强为50%的概率对图片进行水平翻转,利用reflect的方式进行填充,然后进行随机裁剪和数据归一化处理;本文采用RandAugment方法进行数据强增强,规定从RandAugment给定的数据增强方法列表N中随机选择增强方法,从1到10之间随机选择一个数据增强幅度上限M,使得这N个数据增强方法的幅度不能超过给定的幅度上限M。

2.2.2 FixMatch模型构建

FixMatch结合了伪标签和一致性正则化的思想,其损失函数由两个交叉熵损失项组成:应用于标记数据的监督损失ls和非监督损失lu。

针对有标签样本:使用交叉熵损失训练一个有监督模型,得到有监督样本的损失函数ls:

针对无标签样本:首先,在给定的无标签图像的弱增强版本下计算模型的预测类分布qb=pm(y|α(ub)),如果得到的类别预测结果的最高值大于预先给定的阈值,则该类别就是这个图片的标签。其次,使用q^b=argmax(qb)作为伪标签,该图片再经过强增强,得到强增强后的分类预测结果。这个结果与新生成的标签信息做交叉熵损失,得到无标签样本的损失lu:

式中:τ为一个标量超参数,表示阈值以上保留一个伪标签。有标签样本损失和无标签样本损失的加权当作模型总损失,以总损失最小为目标优化模型,FixMatch最小的损失函数为ls+λulu,其中λu为一个固定的标量超参数,表示未标记损失的相对权重。FixMatch算法伪代码如算法1所示。

算法1:FixMatch算法Input: Labeled batch X={(xb,pb):b∈(1,…,B)}, unlabeled batch U={ub:b∈(1,…,uB)}, confidence threshold τ, unlabeled data ratio μ, unlabeled loss weight λu 11(,())B s bb b=1 lHpx Bα=∑{Cross-entropy loss for labeled data}2 for b=1 to μB do 3 qb=pm(y|α(ub);θ){Compute prediction after applying weak data augmentation of ub}4 end for 5l 11{max()}(argmax(),(|()))u b bmb b qHqpyAu BµBµ=1=∑>τ{Cross-entropy loss with pseudo-label and confidence for unlabeled data}6 return ls+λulu

FixMatch模型的训练流程:对于每一个有标签的样本,用交叉熵损失训练一个有监督模型,得到一个有标签样本的损失;对于每一个没有标签的样本,采用弱增强得到一幅图像,将该图像传递给模型,得到一个预测结果。比较模型与预先设定的阈值,如果这个预测结果最高的类别的置信度高于阈值,该类别就会作为这张图片的标签,即伪标签。然后,强增强后的图片也会通过模型进行一个分类的预测,此时会得到另一个预测结果,对模型的输出施加交叉熵损失。基于FixMatch的网络恶意加密流量检测系统架构如图4所示。

3 实验结果及分析

3.1 实验环境与数据集

本文实验在Windows 10环境下运行,处理器为AMD Ryzen 7 4800H,GPU为RTX 2060,内存为16 GB。采用Pytorch1.8.0软件框架实现基于FixMatch的网络恶意加密流量识别。

图4 基于FixMatch的网络恶意加密流量检测系统架构

本实验选用的是开放数据集CTU-Malware-Capture[20]和USTC-TFC2016[19]中的部分数据,数据由原始的PCAP文件组成。从CTU-Malware-Capture中选择了Dridex,Dynamer,HTBot,Miuref,Zbot和Cerber 6类使用TLS进行加密通信的恶意应用流量;从USTC-TFC2016中选择了Neris,Shifu,Zeus,Virut和Htbot 5类使用TLS进行加密通信的恶意应用流量。数据集构成如表1和表2所示。

表1 CTU-Malware-Capture恶意家族样本

表2 USTC-TFC2016数据集样本

3.2 评价指标

本文采用查准率(Precision)、召回率(Recall)、F1值(F1-score)和准确率(Accuary)作为评价指标来估计方法的分类效果,其定义如下:

查准率(Pre):

召回率(Rec):

F1-score(F1):

准确率(Acc):

式中:TP,TN,FP和FN分别为正确识别的目标流量数、正确识别的其他流量数、错误识别的目标流量数和错误识别为其他流量数的目标流量数。

3.3 模型参数设置

FixMatch模型训练时,选择带动量的随机梯度下降算法(Stochastic Gradient Descent,SGD)作为优化器,且动量的大小设置为0.9。批量大小(Batch Size)设置为100。本文参照FixMatch原论文的设定,将无监督部分损失的系数λu设置为1,无标签数据批量倍数u设置为7。过滤低置信度的无标签样本阈值τ设为0.95,学习率(Learning Rate)设置为0.01,并且使用带热启动(Warm Up)的余弦学习率衰减(Cosine Decay Schedule)。本文使用的网络恶意加密流量分类模型的骨干网络是CNN,批量大小设置为50。将数据集打乱后,设定0.2为拆分阈值,选取20%做测试集,剩下的为训练集。

本文将提出的基于FixMatch的TLS网络恶意流量识别方法分别与近年来提出的半监督学习方法MixMatch、ICT以及经典半监督学习方法PseudoLabel进行对比。在进行实验前,对上述3种模型的超参数进行设置,根据此前研究者们提供的参考值并结合实验结果,对实验参数进行多次调整,设置参数值如表3所示。

表3 半监督模型超参数

3.4 实验结果及分析

3.4.1 不同标记样本占比的结果对比

将本文构建的FixMatch模型与其他3种半监督模型在不同少标记样本下进行实验,在数据集CTU-Malware-Capture和USTC-TFC2016下多分类结果如图5、图6所示。

图5 CTU-Malware-Capture在不同标记样本占比下的多分类结果对比

由图5、图6可知,在20%标记样本下,本文使用的所有半监督模型F1都达到0.9以上的水平,这说明使用20%的标记数据集,大部分模型都可以准确识别恶意流量类型。随着标记样本量的减少和未标记样本占比的上升,FixMatch模型逐渐显示出更好的分类效果。当标记样本占比下降到10%时,除FixMatch模型各项指标依然保持较高水平外,其他模型指标都有明显下降,说明FixMatch模型整体效果要优于其他半监督模型。在CTU-Malware-Capture数据集下,当标记样本占比下降到0.3%时,与PseudoLabe算法相比,FixMatch模型的查准率、召回率、F1值分别提高了4.56%,3.26%和3.93%。在USTC-TFC2016数据集下,当标记样本占比下降到0.5%时,与ICT相比,FixMatch模型的查准率、召回率、F1值分别提高了3.11%,3.47%和3.29%。该实验说明,标记样本占比逐渐减少对FixMatch模型造成的影响相对较小,尤其是标记样本占比极小时,FixMatch模型的优势更加明显。

3.4.2 不同算法性能对比

随着样本数量的增加,FixMatch的准确率有稳定上升的趋势,在相同的样本总数下,只需要少量标记样本就能达到其他半监督学习模型的识别效果,这大大减少了在网络流量识别中需要准确标记所有训练样本的人力、物力和时间成本。同时,在样本数量不断增加时,模型的准确率、查准率、召回率和F1值逐渐趋于稳定。

图6 USTC-TFC2016在不同标记样本占比下的多分类结果对比

通过上述实验可以看到,在CTU-Malware-Capture和USTC-TFC2016数据集下,FixMatch在20%的标记样本数时,能达到很好的识别效果。表4详细记录了FixMatch模型与MixMatch、ICT和PseudoLabel 3种半监督模型的对比结果。

从表4可以看出,在CTU-Malware-Capture数据集下,FixMatch模型的准确率、查准率、召回率和F1值均高于其他半监督模型,与MixMatch相比,这4个指标分别提高了2.25%,1.75%,2.94%和2.36%;与ICT相比,分别提高了0.88%,1.18%,0.78%和0.98%;与PseudoLabel相比,分别提高了0.73%,2.07%,4.83%和3.48%。在USTC-TFC2016数据集下,FixMatch模型与MixMatch相比,分别提高了3.41%,0.92%,0.96%和0.94%;与ICT相比,分别提高了2.75%,0.07%,1.03%和0.55%;与PseudoLabel相比,分别提高了3.65%,1.15%,1.23%和1.19%。这也验证了本文提出的基于FixMatch的网络恶意加密流量识别方法的可行性。

表4 FixMatch模型与其他半监督模型对比结果

4 结 语

针对网络流量数据量大且未标记数据易获取等特点,本文提出了基于FixMatch的TLS网络恶意流量识别模型,保证了在少量标记样本和大量未标记样本下,该模型对恶意流量识别仍具有良好的效果。实验表明,在USTCTFC2016和CTU-Malware-Capture数据集下,本文FixMatch模型的效果比近年来提出的半监督方法MixMatch、ICT以及PseudoLabel的效果均有所提升,尤其在少量标记样本上表现突出。然而,文章还存在一些不足之处,例如,在FixMatch训练模型使用的基分类器选择上,可以尝试更多种的组合和更优的分类器。下一步工作将在基分类器选择上做出更优的调整,以及在网络流量的特征工程上开展更深层次的研究。

猜你喜欢

加密标签损失
胖胖损失了多少元
一种基于熵的混沌加密小波变换水印算法
玉米抽穗前倒伏怎么办?怎么减少损失?
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
标签化伤害了谁
认证加密的研究进展
一般自由碰撞的最大动能损失
基于多进制查询树的多标签识别方法
损失