基于变分自编码器的入侵检测系统设计与实现

2020-07-04 02:13罗智钰黄立群
电脑知识与技术 2020年13期
关键词:网络安全

罗智钰 黄立群

摘要:随着网络技术的快速发展,网络入侵等网络信息安全隐患引起人们的日益关注,通过入侵检测来及时发现潜在网络入侵行为是抵御入侵的一种有效手段,在实际应用中具有重要的意义。该文引人基于条件变分自编码器的深度学习模型,利用Tensorflow框架搭建了一个人侵检测系统。为了验证本文入侵检测系统的有效性,我们在公开的NSL-KDD数据集上开展了相应的性能测试,实验结果表明所设计的人侵检测系统在五种网络状态的预判分类上准确率达到了72.2%,可以在实际部署中对入侵行为进行有效分类。

关键词:网络安全;人侵检测;条件变分自编码器;Tensorflow

中图分类号:TP393 文献标识码:A

文章编号:1009-3044(2020)13-0022-03

当今,各类网络入侵考验着计算机的防御体系与安全策略,而入侵检测(Intrusion Detection)正是抵御入侵的一种有效手段。随着目前人工智能领域的兴起及深度学习算法的日趋成熟,使用深度习方法进行基于异常的入侵检测也成为研究热点。深度学习有着强大的特征学习能力,有助于应对攻击特征愈发丰富、数据愈发复杂所带来的高维数据处理问题以及预测、分类攻击的准确率问题。

本文构造一个基于条件变分自编码器(conditional Varia-tiona]Autoencoder,CVAE)的人侵检测系统,以实现对网络状态数据的分析,在文献[4]中该方法被称为ID-CVAE。与使用变分自编码器(vAE)的不同之处在于,VAE以样本特征为唯一输入,而CVAE使用样本特征与入侵标签两种输入,入侵标签将作为CVAE解码层的附加输入。使用该方法仅需训练出单个模型,训练过程更省时,但需对测试样本进行多次测试,通过比较测试结果完成对所测样本的分类判断。

1基于变分自编码器的入侵检测系统设计

本文入侵检测系统包含数据预处理模块、入侵检测模型、预测模块三个部分,经过数据采集、数据分析、给出预判三个步骤实现其对网络攻击的检测功能。

1.1数据集选择

本文采用人侵检测数据集NSL-KDD作为采集的数据,它包含125,973个训练样本和22,544个测试样本,41个特征,40种标签。41个特征中,38个为连续型,3个为离散型。根据文献[5],在使用机器学习方法实验入侵检测时,特征9、20和21没有作用,特征15、17、19、32、40在检测攻击时作用很小,特征7、8、11和14的值几乎都为零。数据集中的40种标签对应网络正常状态Normal和39种网络攻击,其中,训练集包含22种攻击,而剩下的17种攻击仅出现在测试集中,这使得该数据集可用于测试模型的泛化性。39种网络攻击可以分为四大类:DoS、Probe、R2L、U2R,样本类别分布见表1。可见DoS攻击的样本在数量上远远多于其他类别的样本,入侵数据是不平衡的。

1.2数据预处理模块

数据预处理模块将数据集文件转化成输入模型所需的样本特征集和标签集。首先,丢弃六个几乎为零的连续型特征,对剩余32个连续型特征进行标准化。然后对三个离散型特征进行独热编码,这三个离散型特征protocol_type、flag、service分别有3个、11个和70个不同的值,独热编码后它们分别产生了3个、11个、70个项,将样本特征项与标签项分离,产生一个116项的最终样本特征集。而标签项中的40种数值需被归类替换为Normal、DoS、Probe、R2L、U2R五种值,经过独热编码生成五个长度的额外输入向量。预处理流程可用图2表示。

1.3基于条件变分自编码器的生成式入侵检测模型

自编码器是深度学习领域中一种无监督学习方法,它一般包含编码器与解码器两个模块,编码器可以将高维输入转化为低维的隐向量z,而解码器则将隐向量还原为尽可能接近输入的输出。本文采用的是条件变分自编码器。

首先,编码器将入侵样本x映射为两组参数,这两组参数确定一个输出z基于输人x的条件概率分布q(ZIX),假设它为一个正态分布,而确定一个正态分布需要均值和方差,因此假设两组参数代表的意义分别为均值u和方差盯σ2。从中采样得到服从于该分布的隐向量z,通过解码器将隐向量z映射为新的一组参数,映射过程中将在解码层额外輸入一个标签向量L,标签L与样本x;是相关联的。由此确定一个基于z与L的条件概率分布p(x,IZ,L),表明解码器的概率分布受隐向量和标签的约束。假设该分布为伯努利分布,可从中获得最终输出x,这个x即代表重构的入侵样本。为了使生成的x与x的距离尽可能小且保证模型具有生成能力,q(Zlx)应尽可能向标准正态分布N(0,1)看齐。为此,在模型中加入反向传播,建立损失函数,使用随机梯度下降算法将损失值最小化。本文采用与文献[4]相同形式的损失函数,如公式(1)所示。

第二部分表示使用概率分布p(X' IZ,L)下PX的对数似然,它可表征重构输出x与输入样本x的距离。反向传播的过程将得出p的最大似然估计,它表示最有可能导致已知样本结果的参数值,它将作为重构的输出x。入侵检测总体模型如图3所示。

1.3.1编码器结构

本文编码器中包含至少4个全连接层,第一个全连接层将使116个维度的输入变换为500维度的输出,中间层输入与输出的维度不变,最后一层由两个并列的神经元层组成,它们都输出25维度的向量,分别代表正态分布的均值u及方差的对数logo2。从正态分布中采样一个25维隐向量z,根据正态分布的性质,已知标准正态分布XNN(01),且a、b为实数,则有:

编码器设计如图4所示,图中圆圈表示神经元,下方数字表示神经元个数,即该全连接层节点数。

1.3.2解码器结构

解码器包含4个全连接层,先将25维的z映射为495维的输出,并将独热编码的5维标签向量作为额外输入,一起输入到第二个全连接层中。额外输入的插入位置是根据测试经验判断的。在解码器的最后,还原出116维的重构输出x。解码器如图5所示。

1.4预测模块

预测过程使用测试集样本,同样分为两种输入:测试样本特征以及标签。整个预测过程可分为两大步骤。第一步,对于同一条样本记录,需要将它多次送入已训练好的模型中,每次使用不同的标签作为额外输入,因为有五种标签,所以需要送人五次,得到五个重构输出。第二步,计算真实测试样本和每个重构输出之间的误差。当使用正确的标签作为输入时,网络将更好地恢复原始特征,因此为每个样本选择与最小误差相关的标签。

为测试样本选中的标签即为预判结果,它表示五种网络状态中的一种:正常Normal以及可能受到DoS、PROBE、R2L或U2R入侵。预测模块如图6所示。

2实验分析

实验分为两个阶段。第一阶段为模型训练,借助Tensor-flow搭建入侵检测模型,输入完整训练集训练模型。第二阶段为测试,将1000条测试集样本输入到已训练完成的系统中,对比预测的测试样本标签与实际的测试样本标签,计算准确率,从而验证本文入侵检测系统的可行性。由于标签有五种可能值,所以本实验也是一个五分类任务,本文会给出标签分类的具体结果,统计每种实际标签被预判为某一类标签的数量与占比。准确率计算公式如公式(6)。A、B、c、D、E表示各类样本数量,TA、TB、TC、TD、TE为五种类别各自被正确分类的数量。

条件变分自编码器中的全连接层层数会影响模型的非线性学习效果,本文首先在编码器部分采用四层全连接层,迭代训练模型30次后进行测试,得出准确率为0.202,准确率偏低。此时标签分类情况如表2所示。可看出每一类实际标签的预测分类情况偏向于呈现均匀分布,无明显规律,分类效果差。

将编码器部分全连接层数减为三层,同时还将损失函数中的对数似然部分改为均方差。给出随着训练迭代次数变化而变化的测试准确率如表3所示。

可见迭代训练91次后,测试所得的准确率达到最高,为72.2%,此时标签分类具体情况如表4所示。NORMAL与DOS类的样本的预判分类结果最好,分类正确的数目占该类实际标签总数的比例分别为77.4%与76.8%。而这两类样本在训练集中占比也最多,分别为53.4%与36.4%。

3结论

當前网络态势复杂,及时辨别网络攻击尤为重要,入侵检测技术是一项有效的手段,有多种基于机器学习构建入侵检测模型的方法。当使用VAE方法时,需要创建尽可能多的模型,每个模型都需要一个特定的训练步骤,每个训练步骤都使用与所学标签相关的特定样本作为训练数据。相反,使用ID-CVAE方法仅需训练一个模型,这就是为什么基于CVAE的入侵检测模型在计算时间和求解复杂度上是更好的选择。

本文设计的基于条件变分自编码器的入侵检测系统一定程度上是可行的,其准确率最高为72.2%,且当训练集中某类样本数量占比越多,该类样本的测试分类效果越好。该系统可对网络状态进行分类,预测多种攻击,同时具备特征学习能力,可检测到存在同样规律的新型攻击。但还应注意到,系统的准确率仍有提高的空间,这与系统的具体编程实现有关,入侵模型仍存在需要改进的地方。

猜你喜欢
网络安全
网络安全知多少?
新形势下的特种设备网络安全防护探讨
新量子通信线路保障网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
网络安全与执法专业人才培养探索与思考
设立网络安全专项基金 促进人才培养
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月