APP下载

基于深度级联网络的入侵检测算法研究

2021-11-26郭卫霞杨国玉

电子技术应用 2021年11期
关键词:级联卷积流量

郭卫霞,张 伟,杨国玉

(中国大唐集团科学技术研究院,北京 100043)

0 引言

信息技术的高速发展极大地丰富和便利了人们的学习、生活和工作,但与此同时网络攻击导致的网络异常中断、用户个人信息泄露等事件频频发生,互联网所面临的各种安全威胁变得日益严重,因此维护网络安全变得至关重要。网络入侵检测作为一种动态有效的主动检测技术,能够通过分析网络流量数据识别具有攻击行为的信息,在网络受到攻击之前进行及时的拦截和响应,目前已经成为信息安全领域研究的重要内容之一。

入侵检测技术最早于1980 年由Anderson[1]提出。1987 年Denning[2]采纳了Anderson 技术报告中的检测建议,提出了入侵检测专家系统(Intrusion Detection Expert System,IDES),后来大量的研究人员提出了各种入侵检测算法来提升检测效果。近些年,机器学习算法被广泛应用在各种入侵检测技术中,文献[3]将支持向量机(Support Vector Machine,SVM)应用于网络异常流量检测中。文 献[4]利 用K 近 邻(K-Nearest Neighbor,KNN)算 法进行网络入侵检测,提高了分类效果。文献[5]基于并行K-means 聚类算法对异常流量数据进行分簇,降低分类误差。上述算法在一定程度上提高了入侵检测精度,但是基于机器学习的入侵检测算法依赖于人工提取的数据特征,需要人为进行大量复杂的特征工程,并且对于海量多源异构的网络入侵数据没有很好的鲁棒性。

近年来,随着深度学习的迅速崛起,卷积神经网络、循环神经网络、深度置信网络等多种深度学习算法逐渐应用到入侵检测领域。文献[6]、[7]基于卷积神经网络进行入侵检测,其漏检率和误检率均大幅低于基于传统机器学习的入侵检测算法。文献[8]、[9]将循环神经网络应用到入侵检测算法中,防止了训练过程中过拟合问题的发生,也提升了分类准确率。文献[10-12]提出基于改进深度置信网络的入侵检测算法,将深度置信网络与极限学习机结合,提高网络泛化能力,最终得到较好的检测效果。

本文提出一种基于深度级联网络的入侵检测模型,由CNN 网络和LSTM 网络串联构成,可以同时自学习流量数据的空间特征和时序特征,避免繁琐的特征工程,提高模型的表达能力和泛化能力。

1 基于深度级联网络的入侵检测模型

1.1 CNN 网络

基于深度级联网络的入侵检测模型的第一层CNN网络采用16 层的VGGNet[13]来提取流量数据的空间特征。VGGNet 是由牛津大学Visual Geometry Group 联合Google DeepMind 公司一起研发的深度卷积神经网络,它构建了很多不同深度(11~19 层)的网络,主要贡献在于探索了卷积神经网络的深度对其最终的检测性能有一定程度的影响。

VGG16 网络总体包含了5 个卷积层、5 个池化层、3个全连接层以及1 个Softmax 输出层,一共进行了13 次卷积操作,卷积层数较深,且每层通道数较多,因而能够提取到较为丰富和抽象的高级语义特征;网络结构非常规整,统一采用3×3 大小的卷积核(stride 为1)和2×2 的池化核(stride 为2),使得网络收敛速度较快;卷积层与层之间的池化层采用Max-Pooling,隐层的激活单元全部采用ReLU 激活函数,结构十分简洁。网络结构如图1所示,其中Conv1~Conv5 表示5 个卷积层,C 表示卷积操作,P 表示池化操作,FC 为全连接层。

图1 VGG16 网络结构

1.2 LSTM 网络

本文采用长短期记忆网络(Long Short-Term Memory Network,LSTM)[14]提取流量数据的时序特征。LSTM 是一种特殊的RNN 网络,常用于自然语言处理、语音识别等的序列信号处理任务中,能够解决RNN 网络长时间序列训练中存在的梯度消失问题。LSTM 细胞结构如图2所示,通过输入门、遗忘门和输出门3 个门控单元结构,对于处理长依赖问题有很好的效果。

图2 LSTM 细胞结构

LSTM 每个门控结构计算操作如下:

(1)遗忘门:决定从细胞状态中丢失上一时刻输入信息的比例,使用当前时刻的输入xt和上一时刻隐藏层的输出ht-1,通过激活函数映射为[0,1]中的一个值保存至细胞状态Ct-1中,其中0 表示完全丢弃,1 表示完全保留。

式中,Wf和bf分别为遗忘门的循环权重和偏置常量,σ为Sigmoid 激活函数,ft为丢失比例。

(2)输入门:决定当前输入信息保存至细胞状态的比例,首先由Sigmod 层确定当前细胞中哪些信息需要更新,然后由tanh 层生成候选值向量,用来更新当前细胞中的信息。最终的细胞状态是由遗忘门丢弃上一时刻细胞的值和输入门保留当前输入的信息共同决定的,整体操作如下:

(3)输出门:根据当前细胞状态决定最终的输出值,首先由Sigmod 层确定当前时刻细胞状态中信息的输出比例,然后将细胞状态经由tanh 层映射为[-1,1]中的一个值,并和Sigmod 层的输出相乘即为最终的输出值,计算公式如下:

网络流量数据通常是按照时间序列采集存储的,LSTM 通过3 个门控单元对数据进行非线性映射,解决了数据在网络中传输时间越长丢失越严重的问题,能够更好地保留每一时刻流量信息的关键特征。

1.3 深度级联网络

本文把VGGNet 和LSTM 网络结合起来,构成一个更深层次的多特征融合的神经网络,同时提取网络流量的空间特征和时序特征,使得网络可以更全面地表达流量的属性。基于深度级联网络的入侵检测模型整体网络结构如图3 所示,首先将流量数据经过预处理后得到的特征向量转化为11×11 的灰度图像作为CNN 网络的输入,先经过VGG16 网络提取流量的空间特征,然后将全连接层输出的特征图分为10 个时间步骤送入LSTM 网络,提取流量的时序特征,本文采用的LSTM 网络包含2个隐藏层,各有256 个神经元细胞,可以更好地保留流量的特征。LSTM 网络输出的向量送入全连接层,并采用Softmax 进行分类,输出流量数据属于各类别的概率,概率最大的类别即为网络预测该条流量所属的类别。

图3 深度级联网络结构

2 实验与结果分析

2.1 实验环境及参数设置

本文选择深度学习框架TensorFlow 1.8.0 作为实验平台,平台软硬件配置如下:操作系统为Ubuntu 16.04,16 GB内 存,GPU 为NVIDIA GeForce GTX Titan Xp,GPU 加 速库为CUDA 9.0 和CUDNN 7.6。

网络载入利用ImageNet[15]预训练过的VGG16 网络来初始化特征提取网络的权重,训练过程中选用SGD随机梯度下降算法优化网络模型,总迭代次数为70 000次,学习率初始值设为0.001,动量系数为0.9,5 万次迭代后学习率衰减为0.000 1。

2.2 数据集预处理

实验采用KDDCUP99 数据集[16],该数据集是基于美国国防部高级规划署,通过仿真不同的用户类型、网络流量和攻击手段,采集了9 周的网络连接和系统审计数据整理而成。KDDCUP99 共有500 万条记录,每条记录包含41 个特征和1 个分类标记(label),label 分为正常(Normal)和异常(Attack),异常类型包含Dos、Probe、R2L和U2R 4 种情况。

考虑到训练时间和内存占用情况,本文选用KDDCUP99数据集中的“kddcup.data_10_percent”作为训练集,共494 021条,“corrected”作为测试集,共311 029 条,实验数据的类别分布情况如表1 所示。

表1 数据集类别分布 (条)

KDDCUP99 数据集的41 维特征中有38 维是数字特征,其余3 维是符号特征,而CNN 要求输入数据为数字矩阵,因此在进行模型训练之前需要对数据集进行预处理。

符号特征数字化:将protocol_type、service 和flag 这3种符号特征转换为二进制向量,如protocol_type 中的TCP、UDP、ICMP 协议分别表示为[0,0,1]、[0,1,0]、[1,0,0]。同理,flag 特征可转换为11 维二进制特征,service 特征可转换为70 维二进制特征,最终数据集中的每一条记录可由41 维转换为122 维。

数字特征归一化:为了消除特征之间由于量纲不同导致的差异性,对所有特征采用最大最小归一化法进行均值化处理,将每个特征的取值映射为[0,1]之间,公式如下:

式中,Mmax和Mmin分别为某一维特征中的最大值和最小值,y 为原始特征值,y′为归一化之后的值。

2.3 实验评价标准

入侵检测算法的性能通常通过准确率AC、检测率DR、误报率FA 来衡量。AC 是指正确分类的样本数占总测试样本数量的比例,DR 是指正确识别为攻击样本数占总测试攻击样本数量的比例,FA 是指错误识别为攻击的正常样本数占总测试正常样本数量的比例。准确率和检测率越高,误报率越低,说明该入侵检测算法的性能越好。各评价指标计算公式如下:

式中,TP 为被正确识别为攻击样本的数量,FP 为被错误识别为攻击的正常样本的数量,TN 为被正确识别为正常样本的数量,FN 为被错误识别为正常的攻击样本的数量。

2.4 结果分析

为了验证本文改进算法的有效性,本次实验分别对比了VGGNet、LSTM 以及改进后的深度级联网络对不同种类攻击的识别情况,检测率对比结果如表2 所示,可以看出,改进后的深度级联网络在Normal、Dos、Probe、R2L和U2R 这5 类攻击上检测率均高于VGGNet 和LSTM 网络,这说明将CNN 网络与LSTM 结合,能够获得更好的检测能力。但对于异常R2L 和U2R,训练集样本数量较少,模型学习到的特征也相对较少,检测率略显不足。

表2 各网络对不同种类攻击的检测率对比(%)

本文还对比了不同大小的训练集对VGGNet、LSTM以及本文改进算法的影响,各算法的检测准确率和误报率对比如图4 和图5 所示,其中训练集采用不同比例的kddcup.data_10_percent 数据集,由图可知,当训练集样本数量较少时,CNN 的检测性能存在明显优势,随着训练集样本数量的增多,LSTM 的检测性能优势逐渐显现,深度级联网络的检测效果更佳。由此可以验证在训练样本充足的情况下,采用CNN 网络和LSTM 同时学习流量数据的空间特征和时序特征,能够更好地提升入侵检测性能。

图4 不同大小训练集下各算法的准确率对比

图5 不同大小训练集下各算法的误报率对比

本文改进的深度级联网络与常见的机器学习算法的性能比较结果见表3,由此可见本文提出的深度级联网络相较于传统的机器学习算法有较大的性能提高,对比效果较好的KNN-RF 算法,深度级联网络的准确率提升1.03%,误报率下降1.38%,这也验证了在入侵检测方面,深度神经网络凭借强大的特征学习能力,比传统的机器学习算法更具有优势。

表3 本文和机器学习算法性能对比(%)

本文与其他基于深度学习的入侵检测算法性能对比见表4,可以看出,本文提出的深度级联网络的准确率均高于基于DBN、CNN、RNN 的入侵检测模型,但误报率也相对较高,后期可以进一步优化本文算法以获得更好的整体检测性能。

表4 本文和其他深度学习算法性能对比(%)

3 结论

本文针对海量多源异构的网络流量数据难以提取特征的问题,提出一种基于深度级联网络的入侵检测算法,同时利用卷积神经网络和循环神经网络的优势,将VGG16 网络与LSTM 级联,分别提取流量数据的空间特征和时序特征,并通过KDDCUP99 数据集进行训练和测试。实验结果表明,本文改进的深度级联网络能够有效地提高入侵检测准确率,降低误报率。但对于稀疏攻击U2R 和R2L,本文模型仍需要进行优化改进。

猜你喜欢

级联卷积流量
冰墩墩背后的流量密码
基于3D-Winograd的快速卷积算法设计及FPGA实现
张晓明:流量决定胜负!三大流量高地裂变无限可能!
寻找书业新流量
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
级联LDPC码的STBC-OFDM系统
基于级联MUSIC的面阵中的二维DOA估计算法
LCL滤波器在6kV级联STATCOM中的应用
H桥级联型STATCOM的控制策略研究