基于视觉注意力网络的恶意加密流量检测*

2023-10-22 01:45薛秋爽汤艳君王世航中国刑事警察学院
警察技术 2023年5期
关键词:加密注意力卷积

薛秋爽 汤艳君 王世航 中国刑事警察学院

引言

随着网络隐私安全事件频发,公众越来越关注数据传输的保密性和安全性,加密流量传输方式相较于非加密流量传输方式更倾向于被采用[1]。通过对端口协议、字段特征等方法将流量进行加密,对保护国家和公众的隐私起到了至关重要的作用[2],但同时攻击者也可使用加密流量绕过现有的网络安全产品来传输信息,逃避检测,为从事违法犯罪活动提供了便利,其使得恶意流量因加密而不容易被检测。在计算机中传播恶意流量触犯非法侵入计算机信息系统罪和破坏计算机信息系统罪等《刑法》条文。因此,如何在加密流量中关注流量的图像特征,快速检测未知威胁并做出响应,是网络安全态势感知中的关键问题,此问题的解决同时也为公安部门办理网络犯罪案件中鉴别是否属于恶意流量、属于哪种恶意流量提供依据,进一步为定罪量刑打下了基础。

目前对恶意加密流量的检测方法可分为以下四种方式:基于端口号的方法、基于深度包检测的方法、基于机器学习的方法和基于深度学习的方法[3]。基于端口号的方法通过识别协议类别来检测流量。然而此方法只适用于检测协议类别,动态端口号的普及和隧道技术以及专有的加密方法可以将协议进行隐藏。基于深度包检测的方法以应用层的有效载荷为检测对象,对字段特征进行分析,以此来实现对流量的具体分析。此方法通过流量协议知悉其协议和字段含义,但是需要频繁维护特征库,仅适用于未加密的流量,且具有较高的计算开销。新一代基于机器学习的方法依赖于统计或时间序列特征,通常采用经典的机器学习算法,如随机森林和k近邻算法。然而,此方法的性能很大程度上取决于人工设计的特性,这大大限制了它的通用性。基于深度学习的方法消除了人工选择特征的过程,通过训练来自动选择特征,这使得当新的恶意流量出现并且旧的恶意流量逐渐升级时此方法依旧适用;同时,基于深度学习的方法具有相当好的学习能力,可以学习高度复杂的模式。因此,深度学习方法作为一种端到端的方法,能够学习原始输入和相应输出之间的非线性关系,而无需将过程分解出特征选择的步骤。但是不同模型结构的性能以及构建方法仍有差异,如何合理运用和搭建不同的深度学习模型,使其学习不同的表征,提高恶意加密流量的检测率,仍然是一个需要研究的问题。

国内外学者基于深度学习的方法进行恶意加密流量检测的相关研究中,提出了包括以文本序列形式检测和将流量转化为图像的方式进行检测方法。Wei W等人[4]提出一维卷积神经网络(One-Dimensional Convolutional Neural Network,1D-CNN)更适用于提取作为一维的序列数据的流量特征,并创建了USFC-TFC数据集并针对该数据集开发了预处理工具;Zhuang Z等人[5]提出采用CNN和LSTM分别进行分组特征提取和流级别的时序特征提取的方法进行加密流量分类;Yu T等人[6]提出一种基于多自动编码器的加密恶意流量检测方法,使用恶意沙盒收集流量数据,再使用AE的多层网络进行特征提取和训练分类器模型。上述研究均取得了不错的结果,虽多关注流量本身的特征,但忽略了将其进行数据处理转换后针对数据形式对模型的选择和改进,同时目前恶意流量检测研究领域的实验多在未加密流量和虚拟数据集上开展,与公安实际较不符合。

为了解决上述问题,本文采用将流量数据转换为图像的方法,以公开数据集USTC-TFC作为实验数据集,针对图像引入基于视觉注意力网络(Visual Attention Network,VAN)[7]的恶意加密流量检测模型,VAN模型中的大核注意力(Large Kernal Attention,LKA)是最关键的部分,其将大卷积核分解成深度卷积、深度扩张卷积和通道上的卷积,再结合注意力机制根据不同的权重生成注意力图,突出重要特征,以此生成更有效的表征提高模型的检测率。最后设置消融实验与变体模型和常见其他模型进行对比,来验证模型的有效性[8]。

一、VAN模型设计

(一)总体模型架构设计

基于深度学习使用端到端的方式进行恶意加密流量检测。首先,对USTC-TFC数据集进行预处理,将原始流量转换为灰度图。此过程经历流量切分、流量清洗、流量匿名化、统一大小、图片生成、标记数据。其次,将处理好的图片输入到VAN模块中,首先利用LKA模块提取流量图像的特征,再根据注意力机制计算每个特征图的权重值生成注意力图,然后将其输入多层感知机(Multilayer Perceptron,MLP)中,使用多层非线性变换将输入数据映射到高维度的特征空间中,经历多个阶段后,将最终提取到的特征通过线性函数得到流量分类的结果。模型总体架构如图1所示。

(二)数据预处理模块

使用的数据集是来自文献[4]所创建的USTC-TFC的一部分。USTC-TFC数据集为少有的来源于真实环境,同时流量种类较多且为加密流量的数据集,在恶意加密流量研究领域较为广泛的被使用。其数据格式为PCAP,实验仅将其应用层的会话数据作为研究对象。表1为使用数据集的具体情况,左边为正常流量,右边为恶意流量,数据列为预处理后生成的样本数量。

数据预处理模块的主要功能是将原始PCAP文件中的数据包按照会话的方式进行划分,并提取有用的信息,具体的处理过程如上述图1所示,此模块使用文献[4]开发的工具集USTC-TK,在处理过程中,需要识别数据包中的五元组信息。通过这些信息,可以将流量分配到相应的会话中,从而实现会话的划分。

(1)流量切分:将数据集中的原始PCAP流量文件通过使用SplitCap[9]工具进行切分,以流量的五元组信息为唯一标识,本文只对数据集中的应用层数据进行研究,将其以会话为单位切分为小单元。

(2)流量清洗:将流量切分后生成的重复文件以及没有应用层数据的流量单元进行清洗,只保留存在完整的通信会话标志的流量小单元,将信息完整的流量小单元保存,以便后续模型对表征进行学习以区分恶意流量和非恶意流量。

(3)地址混淆:使用USTC-TK工具对数据链路层的Mac地址和IP层的IP地址进行处理,这些带有特定环境标识的信息可能对流量检测造成干扰,导致结果过拟合,失去检测的真实性,因此统一删除IP地址并使用随机生成的IP地址进行随机混淆,使其地址不对检测结果造成影响。

(4)统一大小:切分过的流量由于交互的为不同的信息和数据,数据包的数量和大小各不相同,由于深度学习模型要求输入的数据大小为固定长度,因此将流量切割或者填充为相同长度才可进行后续处理。参考USTCTFC数据集的原始论文数据预处理方式,使用USTC-TK工具将流量切分为784字节大小。对于大于784字节的流量进行截断,对于小于784字节的后续填充0x00,使流量都满足784字节长度。

(5)图片生成:将统一大小后的流量转化为28×28的灰度图进行存储,以便后续进行可视化分析。随机抽取各类灰度图如图2所示。

(6)标记数据:将20类灰度图存放到各类标签文件夹下。

(三)VAN模块

VAN是基于LKA构造的神经网络。VAN的每一个阶段有两个子层,分别是注意力机制(Attention)和前馈神经网络(Feed-Forward Network,FFN)。其中注意力层包括了LKA模块,每个子层前使用批标准化(Batch Normalization,BN),每个子层后使用加法残差连接(Residual Connection,)。VAN每个阶段结构如图3所示。

LKA基于CNN(Convolutional Nerual Network,卷积神经网络)和视觉注意力方法进行实现。CNN的主要目的是特征提取,选择适当大小的卷积核对流量图像各部分的特征进行提取,不同大小的卷积核提取的特征重点不相同,根据提取的各部分流量特征以及参数设置生成对应的特征图。CNN可以减少特征维度,并找出图像最明显的特征。同时,卷积核越大意味着参数量越多,运算量也越大,所以为了达到轻量化的目的,LKA对大卷积核分成三个部分,分别是空间局部卷积(深度卷积)、空间长距离卷积(深度扩张卷积)和通道上的卷积(1×1卷积)。具体来说,即将K×K卷积分解为 的深度扩张卷积,扩张度为d,(2d-1)×(2d-1)的深度卷积和1×1的卷积。VAN模块中默认采用K=21,当K=21时,根据公式(2)d=3时取得最小值。这相当于将大卷积分解成5×5的深度卷积和7×7的深度卷积,扩张率为3的小卷积。

使用上述方式将大核分解后,加入视觉注意力的方法,将提取的流量图像特征根据每个部分的注意力权重进行加权求和,来计算一个点的重要性并生成注意力图,越明显的特征的比重更大从而得到更好的特征表示。LKA模块可写为(1)(2):

其中,F∈RC×H×W是输入特征,注意力图中的值表示每个特征的重要性[10],是张量积运算。

每个阶段如上述图3所示,首先对输入进行下采样,并使用跨度数来控制将采样率。下采样后,一个阶段的所有其他层保持相同的输出大小,即空间分辨率和通道数量。然后,L组进行批量归一化、1×1卷积、GELU激活函数、LKA和前馈神经网络(FFN),这些操作被依次堆叠以提取特征,L的取值分别为3、3、5、2。

二、实验结果与分析

(一)实验环境和VAN模块超参数设置

本文实验训练环境调用GPU在Pytorch上进行训练,实验环境如表2所示。

VAN模型参数设置如下:图片输入大小为28X28,经历四个阶段,每个阶段的注意力机制中嵌入的向量维度分别是[64,128,160,256],每个阶段的空间维度与嵌入向量维度之间的比率分别为[8,8,4,4],每个阶段的网络深度分别为[3,3,5,2]。模型选择交叉熵作为损失函数、AdamW优化算法,批大小为50,学习率为1×10-4。为防止训练结果过拟合,实验设置一个早停机制,当验证集的loss比上一个epoch的验证集的loss小的时候,保存这一个epoch的预训练模型;如果连续10个epoch的验证集的loss都没有比目前保存的预训练模型小,那么训练结束。

(二)评价指标

本文通过多种常见评价指标平均准确率(Average Accuracy,AA)、平均精确率(Average Precision,AP)、平均召回率(Average Recall,AR)、平均F1值(Average F1_Score,AF)对模型的检测效果进行评估[11]。其中,准确率为正例和负例中预测正确数量占总数量的比例;精确率为预测为正例的样本中预测正确的比例;召回率为实际为正例的样本中,被预测为正确的正例占实际正例样本的比例;F1值为精确率和召回率乘积的二倍除以精确率和召回率的和。

(三)实验结果

1.消融实验

VAN网络中最重要的部分为LKA模块,LKA分解为三个卷积分别是:空间上的局部卷积和长距离卷积以及通道上的卷积,同时又加上了注意力机制。过多或过少的分解均有可能造成模型性能的下降,导致流量图像特征提取不全面。因此本文设置了消融实验,分别去掉深度卷积(DW-Conv)、深度扩张卷积(DW-D-Conv)、通道上的卷积(1×1Conv)以及注意力机制,并在LKA的基础上加上sigmoid函数,在公开数据集USTC-TFC上进行六组实验。使用平均精确率(AP)和平均F1值(AF)作为评价指标,除改动上述模块之外其他参数保持一致,来评估VAN模型的有效性。实验结果表明原始LKA的性能最好,说明LKA中的所有部分对于提高性能都是必不可少的,使得模型分类更为准确。对比增加sigmoid函数,证明归一化对LKA模块来说是没有必要的。VAN模型与其消融实验模型的对比结果如图4所示。

2.基准模型对比实验

为验证基于上述LKA模块的VAN模型的有效性,在设置了早停机制的训练中,本文选取了5种模型(ResNet[12]、GoogLeNet[13]、DPN[14]、VGG[15]、1DCNN)做为基准模型进行对比。

根据表3数据,VAN模型的表现最好,它在AA、AP、AR、AF指标上分别达到了95.53%、96.27%、95.56%和95.65%。相比其他基准模型,在AA指标上分别提升了0.74%、3.01%、2.66%、2.98%、3.88%,在AP指标上分别提升了0.71%、2.03%、2.23%、2.41%、4.49%,在AR指标上分别提升了0.81%、3.45%、3.02%、3.31%、4.15%,在AF指标上分别提升了0.8%、3.51%、3.07%、3.48%、4.2%。

为验证所提VAN模型在加密流量检测上的区分度,发现多数模型在Neris和Virut两类上存在一定混淆。与此同时,VAN模型预测为Neris类样本中有63个属于Virut类,预测为Virut类样本中有52个属于Neris类,而基准模型中表现最好的ResNet模型,预测为Neris类样本中有51个属于Virut类,预测为Virut类样本中有114个属于Neris类,减少了50个样本混淆。各模型的混淆矩阵如图5所示。

此外,VAN模型在Neris和Virut两类的F1指标上值最高,相较于基准模型中性能最好的ResNet模型分别提升了3.77%和6.07%,相较于在基准模型中Neris和Virut区分度最好的VGG模型分别提升了0.27%和0.97%。由图5混淆矩阵的预测标签与真实标签的归类可以看出,其他模型在对恶意加密流量Tinba类进行预测时,将该类的多个样本错误地预测为其他种类的流量,而VAN模型在该类别上没有错误地将样本进行分类;基准模型中表现最好的ResNet模型在对Miuref类进行预测时,将其错误地预测为了四类,而VAN模型仅将2个样本错误预测为Htbot类,对恶意加密流量检测类的区分度更强。各模型在Neris和Virut两类的F1值评价指标结果如图6所示。

三、结语

本文基于VAN模型对恶意加密流量进行检测,将VAN结构应用于恶意加密流量检测领域,更关注将流量转为图片后的特征,实现高性能的分类。实验结果有效证明,将该模型应用于恶意加密流量图像识别中,四大指标相比其他模型均有一定程度的提升,同时对不同种类的恶意加密流量上的细粒度区分明显增强。该模型对于流量转换为图片后的形式提取了更有效的恶意加密流量特征,提升了对恶意加密流量检测的各方面指标。

但本文的实验仅仅使用了单一数据集,且仅选择应用层会话的流量作为研究对象,没有对别的计算机网络层以及单向流进行实验检测恶意加密流量的效果。因此,为了获得更好的表示性能以及对比差异,后续研究将考虑在多种数据集上对多层的流量以及单向流进行实验,以进一步打击新型黑客类网络犯罪活动,提升公安领域对恶意加密流量检测的预期效果,为涉及恶意加密流量的犯罪认定以及量刑提供普适性依据。

猜你喜欢
加密注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种基于熵的混沌加密小波变换水印算法
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
认证加密的研究进展
基于ECC加密的电子商务系统
基于格的公钥加密与证书基加密