BRNet:基于特征复用的僵尸网络检测模型

2023-04-21 13:10何娅蓥覃仁超蒋瑞林刘国航
计算机技术与发展 2023年4期
关键词:僵尸数据包卷积

何娅蓥,覃仁超,舒 月,蒋瑞林,李 丫,刘国航

(1.西南科技大学 计算机科学与技术学院,四川 绵阳 621000;2.成都信息工程大学 网络空间安全学院,四川 成都 610000)

0 引 言

僵尸网络是由许多受感染的主机(由僵尸程序感染)组成的覆盖网络,它们被僵尸程序攻击后由僵尸主控机(Botmaster)控制以进行恶意活动[1-2],包括各种类型的网络攻击,例如分布式拒绝服务(DDoS)、垃圾邮件、网络钓鱼、点击欺诈和信息盗窃。根据相关研究结果,黑客频繁利用基于僵尸网络的网络漏洞发动不同类型的网络攻击,对互联网中的基础设施造成危害[3]。例如,2008年互联网爆发的具有超强传播能力的conficker僵尸网络病毒,感染了超过1 000万台计算机[4]。2016年9月,Mirai僵尸网络攻击物理设备致使美国多个城市的互联网瘫痪[5]。鉴于僵尸网络不断变异带来的各式安全问题,准确识别和检测僵尸网络,特别是未知的僵尸网络,是学术和工业研究面临的首要挑战[6]。

现有的基于签名的检测技术可以很好地检测已知和相同类型的僵尸网络,但不能有效检测未知和不断发展的僵尸网络[7]。基于深度包(DPI)的检测技术侧重于用户隐私和复杂的数据源。因此,研究人员正在着手设计一种恶意软件检测模型,而无需了解数据包的内容。在不访问数据包内容的情况下分析网络流量的方法之一为通过基于行为的检测方法[7]。本研究旨在创建一种基于行为的分析方法,用于检测网络流量中的僵尸网络,迅速产生良好的效果。随着新攻击破坏能力的发展,传统机器学习算法在检测僵尸网络方面变得不那么有效。

在这方面,深度学习是一种更有效的方法,可以弥补常见的基于机器学习的僵尸网络检测方法的弱点。深度学习模型可以学习数据的不同特征,并使用它们对相似数据做出决策。从流量包中提取的特征非常有限,UNSW-NB13、CICIDS2017等大多数公共僵尸网络数据集只有几十个特征。当这些数据集拟合较深的神经网络时,实验结果会很差。特征集的好坏往往决定了僵尸网络的检测性能。如何从数据包中提取原始数据作为模型的输入,目前还没有特别明确的标准。讨论和研究上述问题,首先,在特征提取方面,需要指定一个统一的标准来提取原始数据,所以放弃手动提取方法,该类方法提取的特征差异太大,输入相同的模型,实验并不公平,转而改用CICFlowmeter。CICFlowmeter是加拿大网络安全研究所提供的开源工具,可以从数据包的头部提取原始数据。在实际检测任务中,并非所有CICFlowmeter提取的原始数据都能有效应用于模型,存在冗余和无效特征。数据清洗后获得的原始数据较少。如何充分利用有限的原始数据完成检测任务是一个亟待解决的问题。因此,该文研究了在计算机视觉中表现良好的CNN架构模型,并提出了BRNet,基于一维卷积神经网络和特征重用的思想,解决了有限特征的准确检测问题。

1 相关工作

目前,僵尸网络已经成为国内乃至全世界网络安全领域最为关注的危害之一。近年来,国内外提出使用传统的机器学习和数据挖掘算法识别和跟踪僵尸网络。

肖琦等[8]采用随机森林算法在CTU-13数据集上进行僵尸网络检测。Garre等[9]提出了一种基于SSH的僵尸网络的方法,并使用机器学习(ML)技术开发了实时检测模型。Jagadeesan等[10]开发了一种早期僵尸网络检测模型。Hossain等[11]介绍了一种从网络流中减少选定特征的方法,并使用神经网络检测僵尸网络。Hosseini等[12]提出了一种基于CNN-LSTM网络架构的方法,用于检测和比较四种僵尸网络攻击类型,即IRC、HTTP、DNS和P2P。林宏刚等[13]利用图神经网络对P2P网络进行检测。

虽然上述研究可以达到不错的检测效果,但部分需要知晓数据包隐私数据,可能会侵犯用户隐私;部分虽然可以取得较高的检测率,但过分依赖特征,即需要对初始特征再进行多次加工处理;还有的一部分存在模型过于简单本身检测率就不高的问题。

2 方法论

2.1 卷积神经网络

文中工作主要受到卷积神经网络(Convolutional Neural Network,CNN)的启发,因此,简单地介绍了模型中使用的卷积神经网络结构。

残差神经网络(Residual Neural Network,ResNet)是一种广泛使用的特征提取网络[14]。ResNet的结构加快了神经网络的训练速度,大大提高了模型的精度。其核心思想是使用残差块,如图1所示。

图1 ResNet残差块思想架构

将lth层的输出表示为xl,如公式(1)所示。

xl=Hl(xl-1)+xl-1

(1)

ResNet添加一个密集卷积网络(Dense Convolutional Network,DesNet),以前馈方式将每一层连接到其他每一层[15]。对于每层,将所有先前层的特征图用作输入,并将其特征图用作所有后续层的输入。DenseNet的正向过程如图2所示。

图2 DesNet特征复用示意图

从图2中可以更直观地理解DesNet的连接方法。例如,h2不仅包括第一层的x1,还包括第一层的x0。

2.2 BRNet模型

近些年来,CNN架构在图像分类方面取得了巨大成功,这给安全研究人员带来思考。笔者的设计始发点是“pcap”文件,即数据流量包,可以转换为类似于图像中像素的数字化信息。所以,通过CNN架构来处理数字信息,借此可以捕获到额外有用信息。本节分两部分描述模型。第一部分是关于处理“pcap”文件和清洗实时网络的数据,第二部分是关于BRNet模型的构建。以下步骤简要描述该模型,如图3所示。

图3 BRNet模型框架(Conv+BN+Relu+Maxpooling+Concat+Maxpooling =Recon块)

2.2.1 数据处理

特征提取在选择最佳特征集检测僵尸网络攻击方面起着关键作用。不同的特征对实验结果将会产生巨大的差异。

选择权威的方法处理僵尸网络数据集十分必要。CIC[16]提供名为CICFlowMeter-V4的实用程序提取特征。它可以从不同的“pcap”文件中提取相同的特征,因此,选择CICFlowMeter-V4作为特征提取工具。在清理数据后,剩余的特征如表1所示。

表1 数据清理后剩余特征

这些特征大致可以分为五组,包括包数、时间、大小、流和标志。其中未包含IP地址和协议等分类特征,因此,根据CIC网站的恶意IP对流量进行标记。使用CIC网站上提供的与特定僵尸网络相关的IP信息来标记数据集。标记后,删除所有高低偏斜值以抑制异常值。删除了具有NaN、Inf和零标准偏差的列。最后将数据缩放到[0,1]范围。

2.2.2 BRNet模型细节

模型启发于残差网络的残差块以及DesNet的特征复用,主要由Recon块、全局平均池化层、全连接层和Dropout层组成。对ISCX-2014数据集进行处理后,可以获得大约67个特征,并以一维矩阵的形式存储。与图片特征相比,僵尸网络数据集特征大部分较少并不能发挥它们的显著作用。笔者想到了一种设计技巧,采用在DesNet模型中的特征重用,并且需要一个类似于残差块的块。该块采用一维卷积、批量归一化、Relu、最大池化层和连接层,如图3所示。

当谈及CNN架构时,卷积层是不可或缺的。使用一维卷积来处理数据(参数设置见3.2小节)。由于卷积神经网络在训练阶段,每一层都会更新网络参数,每一层参数的更新都会影响后面网络输入数据的分布,且会随着网络深度的加深而放大。分布的变化会减慢网络训练的收敛速度。批量归一化操作可以解决数据分布变化的问题。归一化值都在特定范围内,这使得模型能够快速收敛,并在一定程度上防止网络过拟合。实验表明,激活函数Relu的性能优于选择Sigmoid和Tanh。在这三层之后,连接一个最大池层以减少参数,同时保留主要特征。第二个块包括卷积、批量归一化、Relu和最大池化层。

综上所述,由于特征数量较少的客观条件,在设计网络时需要考虑特征复用的思想。因此,第三个块的输入是前两个块的输出的通道连接。这里的操作是在几个块的输入拼接在一起之后,会进行一个最大池化操作,以减少参数,同时保留最主要的特征。以此类推,每个块接收来自所有先前块的特征,这些特征使用卷积、批量归一化、Relu和最大池化进行处理,并转发给所有后续块。ReconNet是一个卷积前馈网络,在块之间具有跳跃连接。形式上,递归公式定义了第k个recon block:

(2)

其中,yk是块k的输出向量,Fk是块k的运算符,它结合了Dropout、卷积、批量归一化、Relu和Max-Pooling的一系列操作,⊕是传入向量的连接运算符。yi是块i的输出向量,它被馈送到块k的输入。

在最后一个Recon块中,在卷积层和批量归一化、Relu和最大池化层之后,应用全局平均池化层来降低特征的维度。在这些操作之后,数据送到两个全连接层、Dropout和Softmax输出,用于二分类。模型性能将按以下小节进行评估。

3 实验与分析

3.1 数据集

ISCX-2014数据集结合了三个公开可用的数据集ISOT、ISCX-2012 IDS和CTU-13。正如ISCX网站上所提到的,整个数据集代表了普遍性、真实性和代表性。普遍性代表了僵尸网络行为的多样性。真实性可以定义为与捕获的数据为现实世界的流量,而代表性则是可以代表大部分的僵尸网络数据集[16]。目前,对于ISCX-2014数据集,其权威版本是“pcap”流量包形式。它结合了三个不同的数据集,包括大多数类别的僵尸网络。因此,这个数据集作为实验的数据集有充分的理由。在ISCX-2014数据集中,包含几种类型的僵尸网络攻击,在实验中选取部分的恶意样本和所有的正常样本,其中正常样本数量为450 878,恶意样本数量为48 926。

为了体现模型在其他数据集上的表现能力,在实验部分还采取其他的僵尸网络数据集,包括CIC-IDS2017和DARKNET-2020,它们均是由加拿大安全研究所提供。在其官方网站上有已经处理好的csv文件。

3.2 实验参数设置

模型采用了Adam优化器,初始学习率设置为0.005。kernel size设置为15,filter设置为15,stride设置为1,pooling size设置为2,dropout设置为0.3,它们的参数值在整个模型中保持不变。实验在GPU工作站Ryzen threadripper 1950x上进行,配备16核处理器、GeForce GTC 1070 Ti (8 GB)显卡,在Windows10上运行。该模型使用Keras框架实现。

3.3 评价指标

一般来说,分类器可以使用整体准确度来衡量。为了更好地评估模型的性能,该文使用准确率、召回率和F1作为指标。计算公式如下所示:

(3)

(4)

(5)

其中,TP是被正确分类为僵尸网络攻击流量的僵尸网络攻击样本数;FP是被错误分类为僵尸网络攻击流量的正常样本数;TN是被正确分类为僵尸网络攻击流量的正常样本数作为正常流量;FN是被错误分类为正常流量的僵尸网络攻击样本的数量。

3.4 结果分析

3.4.1 对比实验

为了显示提出的方法与使用ISCX-2014数据集的其他研究相比的优越性,在表2中进行了性能对比。在ISCX-2014数据集上的整个实验的训练过程如图4所示。整个训练过程并没有过拟合现象。

表2 与之前的研究性能对比 %

图4 模型损失训练

在比较的方法中,Yin等[17]使用生成对抗网络;Beigi等[18]使用一组手动设计的特征来使用C4.5决策树进行僵尸网络检测;Homayoun等[19]使用由自动编码器和CNN组成的深层结构;Qin等[20]使用两步深度学习方法来检测攻击,它可以创建符合任意协议的少量头字段的流规则;Bijalwan等[21]使用分类器集合进行僵尸网络检测;Hossain等[11]首先减少手动选择的特征,再使用深度学习进行僵尸网络检测;Shahhosseini等[22]使用LSTM模型检测原始数据包数据以进行僵尸网络检测。

所有这些方法都使用来自ISCX-2014数据集的预定义特征作为学习算法的输入。表2展示了四个分类器在ISCX-2014数据集上的性能评估的实验结果。从表2可以看出,该模型优于其他检测算法。提出的方法的准确率可以达到99.29%,比Shahhosseini等[22]提出的方法准确率提高了2.16百分点,其他性能指标均有大幅度提高。

3.4.2 其他数据集

为了更好地展示模型在其他僵尸网络数据集上的表现能力,这里采用了3.1小节中提到的CIC-IDS2017和DARKNET-2020数据集进行实验,实验结果如表3所示。

表3 性能展示 %

4 结束语

僵尸网络是网络安全领域亟待解决的问题之一。目前,已经出现了大量的方法来检测僵尸网络。从数据包中提取原始数据的方法多种多样,初始特征的选取也参差不齐。初始特征的选取会对整个实验产生较大的影响。因此,需要找到一个统一的处理僵尸网络数据包的方式,再交由神经学习模型处理。CICFlowmeter是一个广泛使用的数据包处理组件,可以设置统一的标准从流量数据包中提取原始数据。根据CICFlowmeter提取的有限特征,该模型利用特征重用的思想,在有限特征下取得良好的性能。通过实验证明了其架构的可行性。提出的BRNet模型可以有效识别僵尸网络攻击,并且实验指标明显优于目前大多数方法。

猜你喜欢
僵尸数据包卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
笔记本电脑“僵尸”
从滤波器理解卷积
SmartSniff
基于傅里叶域卷积表示的目标跟踪算法
你愿意当吸血鬼还是僵尸?
App已死?80%的僵尸应用带来的困惑
“僵尸肉”横行谁之过
一种基于卷积神经网络的性别识别方法
视觉注意的数据包优先级排序策略研究