2. 中国石油天然气股份有限公司 管道长春输油气分公司, 长春 130000
2. Pipeline Changchun Transmission and Oil Company, China National Petroleum Corporation, Changchun 130000, China
近年来,随着大数据、云计算和移动互联网等技术的迅速崛起,网络安全问题也日益突出。为了加强网络安全防御体系建设,有效应对网络环境出现的新型威胁攻击,稳定、高效的网络威胁态势评估方法成为重要的研究课题。网络威胁态势评估方法主要可以分为3类:基于数学模型、基于概率和知识推理、基于模式分类的评估方法。
基于数学模型的融合评估方法作为最早应用于网络威胁态势评估中的一类方法,由于其简单、易实现而被广泛应用。该类方法往往首先对影响网络威胁态势的各项因素进行综合分析,建立威胁指标集,然后通过数学变换函数建立威胁态势指标集与威胁态势的映射关系,最后进行多指标综合威胁态势评估。Wang等[1]将层次分析法(analytic hierarchy process,AHP)与情境评估的层次模型相结合,利用Dempster-Shafer(D-S)证据理论融合多源设备的模糊结果,解决了单一信息源和评估准确度偏差大的问题。Zhou等[2]提出一种基于信息-状态转移(distance of information-state transition,DIT)理论距离的安全策略配置作为风险度量参数的相对偏差距离,建立信息系统评估模型。
基于概率和知识推理的评估方法应用较为广泛。该类方法通常会利用先验知识的统计特性,结合专家知识和经验数据库来搭建模型,然后采用逻辑推理的方式评估威胁态势。文志诚等[3]通过分级朴素Bayes分类器融合信息源,并结合数理统计特性融合各安全评估指数,以此对网络安全态势进行量化评估。Yu等[4]基于D-S证据理论确定了态势评估指标体系的权重,然后通过优化后的Dempster组合规则合成每个索引层的可靠性分布值,提高了网络风险预警的可靠性。朱闻亚[5]根据熵值关联度,筛选出影响网络安全的关键因素,提出一种基于Kalman熵值模型的估计方法,并构建了网络安全评估的状态模型和测量模型。
基于模式分类的评估方法往往先通过模型训练的方式来建立网络模型,然后根据分类和测试结果进行态势评估。Hu等[6]提出一种基于隐藏置信规则库(hidden belief rule base,HBRB)的网络安全态势预测模型,并使用改进的协方差矩阵适应进化策略(covariance matrix adaption - evolution strategy,CMA-ES)来优化HBRB模型的初始参数,该方法能够有效预测网络安全状况。谢丽霞等[7]首先通过反向传播(back propagation,BP)神经网络建立了二级评估模型,然后利用径向基函数(radical basis function,RBF)神经网络的预测模型进行网络安全态势感知。
但是,随着网络技术不断更替和网络信息多元化不断发展,上述3类方法在网络安全态势评估中的局限性和不足愈发突出。首先,基于数学模型和概率知识推理这2类方法在面对新型网络威胁时不能及时作出反馈,已无法满足任务处理需求。其次,在实际网络场景中,基于模式分类的评估方法在面对海量网络安全数据时,由于缺乏足够的先验知识和既定的数据类别标注准则,且人工类别标注的任务量大、成本高,因此基于数据标签的监督式数据建模已无法适用。
为弥补以上方法的不足,无监督学习提供了一种解决思路,其主要特点就是无须人为标注数据类别,而是直接对预处理后的数据进行特征学习和建模。为对多源数据环境下的网络威胁态势进行有效评估,本文提出一种基于无监督生成推理的网络威胁态势评估方法,采用变分自动编码器-生成式对抗网络(variant auto encoder - generative adversarial networks,VAE-GAN)模型对训练集数据进行聚类解析,通过3层变分自动编码器计算训练异常阈值,利用异常流量数据集进行威胁测试并根据威胁态势值计算结果对网络安全态势进行量化评估。实验结果表明, 本文方法对网络威胁具有较好的评估效果,在面对网络威胁时具有较强的表征能力,可在不依靠数据标签的情况下对网络威胁态势进行有效评估。
1 无监督生成网络模型 1.1 变分自动编码器和生成式对抗网络变分自动编码器(VAE)[8]作为自动编码器(auto-encoder,AE)的改进模型,由于其高效、实用的特性而被广泛应用于视觉分类和网络入侵检测(network intrusion detection,NID)[9]等领域。两者均由编码器和解码器构成,主要区别是VAE对解码器添加了“噪声”约束,迫使解码器产生服从单位Gauss分布的潜在变量(latent variables,LV)集合。
生成式对抗网络(generative adversarial network,GAN)[10]是无监督学习领域最具发展前景的深度生成网络模型之一,它由生成器和判别器构成。
1.2 VAE-GAN模型设计本文的VAE-GAN模型的设计基于以下分析:
1) VAE在编码过程中能够学习数据的先验分布,样本生成多样性良好,但在度量生成样本与原始样本的相似度时,只能使用均方误差(mean squared error,MSE)等函数对数据元素间的相似度误差进行粗略计算,而无法采取更为合理的相似度度量策略,这降低了样本匹配的准确度。
2) GAN在通过判别器进行样本相似度判别时,对生成样本和原始样本的判别标准很高,但生成器在生成样本时,由于其本身没有添加任何条件约束,解空间极大,因此对真实样本分布的拟合不易收敛到一个较好的结果;此外,由于GAN在生成样本过程中容易出现输入的多个随机噪声样本对应同一类生成样本的情况,因此容易出现生成样本的多样性减少和陷入模式坍塌(model collapse,MC)的情形。
为了进行优势互补,本文将VAE的编码器与GAN的判别器进行结合,组成VAE-GAN模型。VAE-GAN模型结构如图 1所示。
![]() |
图 1 VAE-GAN模型结构图 |
由图 1可见,VAE的解码器与GAN的生成器由于共享参数,可以将其合并为同一部分。通过VAE-GAN模型对网络安全数据进行特征解析,则GAN的判别器的特征学习结果可作为VAE重构样本数据的基础。此外,在进行相似度度量时,原本由VAE进行的误差度量转变为由GAN的判别器进行,这样可以更容易捕获数据的分布特性。因此,使用VAE-GAN进行模型训练,既能保证样本生成的多样性不受限制,提升其对原始样本的映射能力,又能保证相似度的判别结果更加精确。
VAE-GAN的训练过程需最小化的损失函数LVAE-GAN为
$ {L_{{\rm{VAE - GAN}}}} = {\gamma _1}{L_{{\rm{KL}}}} + {\gamma _2}{L_{{\rm{Rec}}}} + {L_{{\rm{Di}}}}. $ | (1) |
其中:γ1和γ2是通过对实验数据的分析设定的参数。LKL、LRec、LDi分别为编码器、解码器、判别器的重构误差。VAE-GAN模型训练算法如图 2所示。
![]() |
图 2 VAE-GAN模型训练算法 |
2 基于无监督生成推理的网络安全威胁态势评估方法 2.1 可行性分析
1) 面对复杂多变的网络攻击特征,无须人为地对海量的网络安全信息数据进行类别标注,可有效减少数据处理时间,提升工作效率;
2) 无监督学习在有效降低因主观因素干扰对网络安全态势评估要素造成的影响方面,具有很好的普适性,能够有效提升评估结果的客观真实性;
3) VAE-GAN模型的设计结合了VAE和GAN两种深度网络生成模型的优势,能够更加有效地检测网络新型攻击元素的出现,因此更有利于网络安全威胁态势评估工作的开展。
2.2 网络安全威胁态势评估框架目前常见的网络安全威胁类型包括网站信息泄露、Web攻击威胁、DDOS攻击漏洞、主机常用服务漏洞、系统配置安全等。本文通过对主机和网络流量数据进行威胁分析,以期达到及时发现网络威胁和安全漏洞并实时进行网络安全威胁态势评估的目的。本文搭建的网络安全威胁态势评估架构如图 3所示。该架构包括:数据预处理、特征选取、基于无监督网络模型的威胁测试和网络安全威胁态势评估共4个部分。
![]() |
图 3 网络安全威胁态势评估架构图 |
2.3 评估数据源 2.3.1 流量数据集选取
本文选取网络安全领域4个不同种类的网络安全流量数据集作为评估数据源,分别为基于Web攻击的HTTP CSIC 2010数据集、基于Linux系统主机异常的ADFA-LD数据集、基于DDOS匿名流量攻击的UNSW-NB15数据集和由混合僵尸网络流量组成的ISOT数据集。4类数据集基本信息如表 1所示。其中:XSS(cross site scripting)是指跨站脚本攻击,CRLF(carriage return/line feed)是指回车/换行注入攻击。
数据集 | 数据量 | 类别 | 数据类型 |
HTTP CSIC 2010 | 17 445 | 16 | Web应用程序 |
ADFA-LD | 5 925 | 6 | Linux主机异常 |
ISOT | 134 916 | 19 | 混合僵尸网络 |
UNSW-NB15 | 257 673 | 10 | DDOS匿名攻击 |
评估数据源中的部分网络安全威胁态势指标如图 4所示。
![]() |
图 4 部分网络安全威胁态势评估指标 |
2.3.2 网络安全威胁态势影响因素评定标准
本研究在执行对网络流量的威胁测试时,需根据检测结果确定威胁严重度和威胁影响度,以便进行网络安全威胁态势评估,为此本文参考了2006年国务院颁布的《国家突发公共事件总体应急预案》[11]并结合Snort中文用户手册的攻击分类制订了网络安全威胁严重度等级划分表(如表 2所示)。本文将威胁严重度划分为安全、低危、中危、高危和超危共5个等级,分别对应5个威胁概率发生区间:0.00~0.20、0.21~0.40、0.41~0.60、0.61~0.80和0.81~1.00。
严重度 | 概率区间 | 说明 |
安全 | 0.00~0.20 | 网络运行稳定正常,没有超出正常认知的恶意行为或具有严重威胁的安全漏洞被发现 |
低危 | 0.21~0.40 | 网络运行受到轻微影响,有少量威胁的安全漏洞被发现 |
中危 | 0.41~0.60 | 网络运行受到一定影响,有较高威胁级别的安全漏洞被发现 |
高危 | 0.61~0.80 | 网络运行受到较大影响,Web攻击、非法访问等活动增加,多种威胁类型的安全漏洞被发现 |
超危 | 0.81~1.00 | 网络运行受到严重影响,有大量异常攻击行为和威胁级别很高的安全漏洞被发现 |
此外,本文根据通用漏洞评分系统(common vulnerability scoring system,CVSS)[12-13]制定了威胁影响度等级划分表,如表 3所示。表 3中的C、I和A分别指机密性(confidentiality)、完整性(integrity)和可用性(availability)3个威胁影响指标。
影响度 | 概率区间 | 影响指标 | ||
机密性C | 完整性I | 可用性A | ||
无影响 | 0.00~0.40 | 0 | 0 | 0 |
低影响 | 0.41~0.80 | 0.22 | 0.22 | 0.22 |
高影响 | 0.81~1.00 | 0.56 | 0.56 | 0.56 |
2.3.3 数据预处理
数据预处理主要包括数值化和特征规范化处理两项操作。由于VAE-GAN模型的训练需要数字特征向量作为输入项,因此对评估数据源中存在的符号型数据需进行数值化处理,将所有符号型特征转换为有序数值特征;同时,为了消除量纲,便于运算,将经过数值化处理后的所有数值特征规范到同一区间。
1) 字符特征数值化。
通过独热(one-hot)编码的方式将HTTP CSIC 2010数据集中存在的14个HTTP请求特征类转化为数值化向量,具体地:将Protocal、userAgent、accept、acceptEncoding、pragma、cacheControl、acceptCharset、acceptLanguage 8类特征数据转换为大小介于0和1之间的数值向量;将3类HTTP请求数据GET、POST和PUT分别转换为二进制特征向量(1, 0, 1)、(1, 0, 0)和(1, 1, 0);将Web应用程序的3类URL扩展JSP、GIF和PNG分别转换为二进制特征向量(1, 1, 1)、(0, 1, 1)和(0, 1, 0);同样地,UNSW-NB15数据集的42维特征在经过数值化处理后最终被转换为196维二进制数值向量。
2) 特征规范化。
在评估数据源中,部分特征的最小值和最大值之间取值差异明显。为了抑制这类异常给模型训练带来的负面影响,使用Max-Min缩放法将特征值统一规范在[0, 1]区间,
$ x_{i, j}^* = \frac{{{x_{i, j}} - \min \left( {{x_{i, j}}} \right)}}{{\max \left( {{x_{i, j}}} \right) - \min \left( {{x_{i, j}}} \right)}}. $ | (2) |
其中:xi, j表示数据集任意矩阵x的第i行第j列的初始特征值,min(xi, j)为特征最小值,max(xi, j)为特征最大值。
2.3.4 特征选取为避免评估数据源中存在的大量冗余数据可能导致VAE-GAN在模型训练时过拟合风险增加和泛化能力降低,本文对评估数据源进行特征选取,将数据源中的不相关特征进行过滤以保证数据的高可用性和非冗余性,以提高VAE-GAN网络对各类数据特征的聚类准确率,同时降低模型训练的时间复杂度。
通常情况下,特征选取过程无须考虑数据本身的结构特性,但本文所用数据集中的数据流具有多聚类结构特性,因此在进行特征选取前需考虑以下3方面因素:
1) VAE-GAN模型的训练是一个多特征聚类过程;
2) 经过特征选取的数据能够最大程度地保持数据流本身的聚类结构特性;
3) 经过特征选取的数据可以覆盖单一数据集中所有可能的聚类情况。
综上分析,本文选择使用多簇特征选择(multi-cluster feature selection,MCFS)算法进行特征选取。MCFS是一种无监督特征选取算法,它在进行特征选取时无须依赖数据集中的数据标签信息来引导特征选取,其特征选取过程分为以下4个步骤:
步骤1 构建k-最近邻图。对于具有N个顶点的图所对应的每个数据点xi,通过寻找xi的k个最近邻点构建一个k-最近邻图,以此获取数据分布的局部几何结构特征和邻接权重矩阵W。本文使用热核权重(heat kernel weighting)法来计算数据点间的邻接权重矩阵W,
$ {W_{ij}} = {{\rm{e}}^{ - \frac{{|{x_i} - {x_j}{|^2}}}{\sigma }}}. $ | (3) |
其中:xi和xj表示k-最近邻图中的任意两个数据点,σ是固定参数。
步骤2 谱嵌入聚类分析。定义一个对角矩阵D,D的对角元素为
$ \mathit{\boldsymbol{Ls}} = \lambda \mathit{\boldsymbol{Ds}}. $ | (4) |
其中L= D- W。设S={ s1,s2,…,sk},它是通过式(4)求得的最小广义特征值所对应特征向量s集合,S的每一列表示任意一个数据点xi的平面嵌入。k表示数据的内在维度,其大小通常为数据集的簇(聚类)的个数。
步骤3 稀疏系数学习。在获取数据点的平面嵌入S之后,为了评估每个特征在其对应数据维度内(S的每一列)的重要性和衡量每个特征对数据聚类的区分能力,给定S列的任意一个嵌入sk,MCFS将其作为一个回归目标,目标函数为
$ \mathop {\min }\limits_{{\mathit{\boldsymbol{a}}_k}} {\left\| {{\mathit{\boldsymbol{s}}_k} - {\mathit{\boldsymbol{Q}}^{\rm{T}}}{\mathit{\boldsymbol{a}}_k}} \right\|^2} + \beta \left| {{\mathit{\boldsymbol{a}}_k}} \right|. $ | (5) |
其中:ak是一个M维向量,Q为N ×M维矩阵。为能够最小化该目标函数,定义ak的L1范数为
$ \left| {{\mathit{\boldsymbol{a}}_k}} \right| = \sum\limits_{j = 1}^M {\left| {{a_{k, j}}} \right|} . $ | (6) |
其中ak包含用于近似计算sk时不同特征的稀疏系数。根据L1范数的惩罚性质,当β足够大时,ak的稀疏系数将逐渐缩小为零,此时能够选择一个与sk相关性最强的特征子集。
步骤4 计算每个特征的MCFS分数并进行特征选取。对于一个包含k个簇的数据集,使用步骤3的方法计算k个稀疏系数向量{ a1, a2, …, ak}∈ RM,其中每个非零元素ak对应d个特征。为了能够从k个稀疏系数向量中选取d个有效特征,对于每个特征j,定义该特征的MCFS分数为
$ {\rm{MCFS}}\left( j \right) = \mathop {\max }\limits_k \left| {{a_{k, j}}} \right|. $ | (7) |
其中ak,j表示向量ak的第j个元素。通常MCFS分数越大,表示特征重要程度越高,因此在对所有特征的MCFS分数进行降序排序后,可从中选取前d个重要特征。
3 网络安全威胁态势量化评估分析 3.1 基于VAE-GAN的网络威胁测试方法为了对网络环境中可能出现的新型攻击威胁进行实时检测,本文将基于VAE-GAN的无监督生成推理模型应用于网络威胁测试任务中。本文搭建的网络安全威胁态势测试模型如图 5所示。威胁测试过程主要分为4个处理阶段:网络集合层训练、网络参数优化、输出层重构误差训练和威胁测试。
![]() |
图 5 网络威胁测试模型 |
为了便于表述和分析,令l表示单个VAE-GAN网络层,同时令L1和L2分别表示网络集合层和网络输出层。L1是由m个l组成,
$ {L_1} = \left\{ {{l_1}, {l_2}, \cdots , {l_m}} \right\}. $ | (8) |
L2是一个3层变分自动编码器网络,具有k个输入和输出单元。
3.1.1 网络集合层的训练为了能够实时监测网络威胁,本文用于VAE-GAN模型集合层训练的数据来自4类数据集中的正常网络流量组成的数据源X(1)。设网络集合层数为m,每层网络的神经元个数相同,均为k个。对于数据源X(1)中的n个特征,将其平分为m组,每组由k个较小的子实例组成数据向量集合x,
$ {X^{\left( 1 \right)}} = \left\{ {{x_1}, {x_2}, \cdots , {x_n}} \right\}. $ | (9) |
设x为包含k个有序特征的子实例集,将其作为每个VAE-GAN网络集合层的输入数据,
$ x = \left\{ {{\mathit{\boldsymbol{x}}_1}, {\mathit{\boldsymbol{x}}_2}, \cdots , {\mathit{\boldsymbol{x}}_k}} \right\}. $ | (10) |
不难看出,x中的任意一个子实例xi均来自X(1)的一个子空间,而k的大小对应每层网络的神经元个数。
以此数据分配标准为基础,将经过数据预处理和特征选取后的训练集数据分批次输入VAE-GAN模型集合层进行训练,当训练达到Nash平衡状态,训练结束。
3.1.2 网络参数优化为了克服梯度下降(gradient descent,GD)法、Newton法(NM)和Gauss-Newton(GN)法等算法在参数调优过程中经常出现的参数值易陷入局部最优的情况,本文使用Levenberg-Marquardt(LM)优化算法对VAE-GAN网络进行参数调优。LM是一种信赖域算法,同时也是一种自适应优化算法,该算法结合了GD与GN的优点,具备全局收敛能力。
在优化网络参数的过程中,GD、NM、GN和LM 4类算法通过最小化误差平方和的方式来确定高维数据的最佳函数匹配,即最小化目标函数f(x),
$ f\left( \mathit{\boldsymbol{x}} \right) = \min \sum\limits_{j = 1}^M {\sum\limits_{i = 1}^N {f_{i, j}^2\left( \mathit{\boldsymbol{x}} \right)} } . $ | (11) |
目标函数的梯度变化为
$ f'\left( {{x_{j, k}}} \right) = \sum\limits_{j = 1}^M {\sum\limits_{i = 1}^N {{f_{i, j}}\left( \mathit{\boldsymbol{x}} \right)} } \frac{{\partial {f_{i, j}}\left( \mathit{\boldsymbol{x}} \right)}}{{\partial {x_{j, k}}}}. $ | (12) |
使用GD算法优化目标函数,
$ \mathit{\boldsymbol{x}}_{k + 1}^* = {\mathit{\boldsymbol{x}}_k} - \alpha f'\left( {{\mathit{\boldsymbol{x}}_k}} \right)\mathit{\boldsymbol{d}}. $ | (13) |
其中:α表示迭代步长,d为单位向量。通过算法优化目标函数易取得局部最优值,这是因为当算法迭代优化至局部最优点时,函数的梯度变化极小,此时算法易被误导已获取全局最优点而提前收敛于该局部最优点。
NM算法最小化目标函数时,使用Hesse矩阵代替GD算法的迭代步长α,
$ \mathit{\boldsymbol{x}}_{k + 1}^* = {\mathit{\boldsymbol{x}}_k} - f'\left( {{\mathit{\boldsymbol{x}}_k}} \right){\mathit{\boldsymbol{H}}^{ - 1}}. $ | (14) |
由多元函数的二阶偏导数组成的Hesse矩阵如式(15)所示,
$ {\mathit{\boldsymbol{H}}_f} = \left[ {\begin{array}{*{20}{c}} {\frac{{{\partial ^2}f}}{{\partial x_0^2}}}&{\frac{{{\partial ^2}f}}{{\partial {x_0}\partial {x_1}}}}& \cdots &{\frac{{{\partial ^2}f}}{{\partial {x_0}\partial {x_n}}}}\\ {\frac{{{\partial ^2}f}}{{\partial {x_1}\partial {x_0}}}}&{\frac{{{\partial ^2}f}}{{\partial x_1^2}}}& \cdots &{\frac{{{\partial ^2}f}}{{\partial {x_1}\partial {x_n}}}}\\ \vdots&\vdots &{}& \vdots \\ {\frac{{{\partial ^2}f}}{{\partial {x_n}\partial {x_0}}}}&{\frac{{{\partial ^2}f}}{{\partial {x_n}\partial {x_1}}}}& \cdots &{\frac{{{\partial ^2}f}}{{\partial x_n^2}}} \end{array}} \right]. $ | (15) |
当H为正定矩阵(即实对称矩阵)时,式(14)为凸函数,此时函数存在最小值;而当H非正定,则无法求得最小值。
GN算法通过使用Jacobi矩阵近似表示Hesse矩阵,解决了NM算法中的矩阵非正定问题:
$ \mathit{\boldsymbol{x}}_{k + 1}^* = {\mathit{\boldsymbol{x}}_k} - {\mathit{\boldsymbol{V}}^{ - 1}}{\mathit{\boldsymbol{J}}^{\rm{T}}}f\left( {{\mathit{\boldsymbol{x}}_k}} \right), $ | (16) |
$ \mathit{\boldsymbol{V}} = {\mathit{\boldsymbol{J}}^{\rm{T}}}\mathit{\boldsymbol{J}}. $ | (17) |
由多元函数的一阶偏导数组成的Jacobi矩阵如式(18)所示,
$ {\mathit{\boldsymbol{J}}_f} = \left[ {\begin{array}{*{20}{c}} {\frac{{\partial f}}{{\partial {x_0}}}}& \cdots &{\frac{{\partial f}}{{\partial {x_n}}}}\\ \vdots &{}& \vdots \\ {\frac{{\partial f}}{{\partial {x_0}}}}& \cdots &{\frac{{\partial f}}{{\partial {x_n}}}} \end{array}} \right]. $ | (18) |
通过GN算法优化目标函数时,当优化曲线为线性且fi, j(x)足够小时,能够取得全局最优值,但由于Jacobi矩阵可能出现不满秩而导致无法迭代的情况,因此仍然存在局部收敛的可能。
LM算法通过引入单位矩阵I以避免Jacobi矩阵近似表示Hesse矩阵时可能出现的不可逆现象,同时引入阻尼因子μ以调节算法的运行,
$ \mu = \mu \cdot \max \left( {\frac{1}{3}, 1 - {{\left( {2\delta - 1} \right)}^3}} \right). $ | (19) |
其中δ为一个评价量,用于调节阻尼因子μ的大小,
$ \delta = \frac{{\left( {{{\left\| {F\left( \mathit{\boldsymbol{x}} \right)} \right\|}^2} - {{\left\| {\left( {\mathit{\boldsymbol{p}} - f\left( {{\mathit{\boldsymbol{x}}_{\rm{new}}}} \right)} \right)} \right\|}^2}} \right)}}{{{\mathit{\boldsymbol{h}}^{\rm{T}}}\left( {\mu \mathit{\boldsymbol{h}} + \mathit{\boldsymbol{g}}} \right)}}. $ | (20) |
其中:F(x)为误差向量,p为目标期望向量,g表示近似计算Hesse矩阵的更新,h表示向量的更新。
$ F\left( \mathit{\boldsymbol{x}} \right) = \mathit{\boldsymbol{p}} - f\left( \mathit{\boldsymbol{x}} \right), $ | (21) |
$ \mathit{\boldsymbol{g}} = \mathit{\boldsymbol{J}}{\left( \mathit{\boldsymbol{x}} \right)^{\rm{T}}}F\left( \mathit{\boldsymbol{x}} \right). $ | (22) |
h可通过式(23)求解得到,
$ \left( {\mathit{\boldsymbol{V}} + \mu \mathit{\boldsymbol{I}}} \right)\mathit{\boldsymbol{h}} = \mathit{\boldsymbol{g}}. $ | (23) |
在进行参数优化时,根据函数梯度下降速度和μ值大小来决定采用何种优化方式。若函数梯度下降速度太慢,则μ值增大,此时通过GD算法寻找全局最优值,
$ \mathit{\boldsymbol{x}}_{k + 1}^* = {\mathit{\boldsymbol{x}}_k} - {\left( {\mathit{\boldsymbol{H}} + \mu \mathit{\boldsymbol{I}}} \right)^{ - 1}}f'\left( {{\mathit{\boldsymbol{x}}_k}} \right). $ | (24) |
若函数梯度下降速度太快,则μ值减小,此时通过GN算法进行参数调优。
$ \mathit{\boldsymbol{x}}_{k + 1}^* = {\mathit{\boldsymbol{x}}_k} - {\left( {\mathit{\boldsymbol{V}} + \mu \mathit{\boldsymbol{I}}} \right)^{ - 1}}{\mathit{\boldsymbol{J}}^{\rm{T}}}f\left( {{\mathit{\boldsymbol{x}}_k}} \right). $ | (25) |
由图 5可知,输出层网络L2的输入项来自L1中每个相应子网络训练输出的归一化在[0, 1]区间内的重构误差值。L1和L2输出的重构误差值通过均方根误差(root mean square error,RMSE)函数计算得到,
$ {\rm{RMSE}}\left( {\mathit{\boldsymbol{x}}, \mathit{\boldsymbol{y}}} \right) = \sqrt {\frac{1}{n}\sum\limits_{i = 1}^n {{{\left( {{x_i} - {y_i}} \right)}^2}} } . $ | (26) |
其中:x和y分别表示输入样本向量和生成样本向量,n为输入向量的维数。
由L1输出的训练误差集合e*可表示为
$ {e^*} = \left\{ {{e_1}, {e_2}, \cdots , {e_m}} \right\}. $ | (27) |
在进行误差训练时,e*将作为输入项被输入L2中,最终通过RMSE函数计算训练异常阈值η。
3.1.4 威胁测试在完成VAE-GAN网络集合层的训练和输出层重构误差训练后,使用包含异常网络流量数据的测试数据集进行威胁测试。
随机从测试数据集X(2)中选取m组相同数量的测试样本集合v,将其作为L1的输入数据,
$ \upsilon = \left\{ {{\mathit{\boldsymbol{v}}_1}, {\mathit{\boldsymbol{v}}_2}, \cdots , {\mathit{\boldsymbol{v}}_k}} \right\}. $ | (28) |
每次测试由L1输出的测试误差ω可表示为
$ \omega = \left\{ {{\omega _1}, {\omega _2}, \cdots , {\omega _m}} \right\}. $ | (29) |
根据威胁测试结果,将每次测试时获取的测试误差值ω作为威胁发生概率(threat probability,TP),可表示为
$ {\rm{T}}{{\rm{P}}_i} = {\omega _i}. $ | (30) |
根据每次威胁测试获取的威胁发生概率,对照表 2可确定威胁严重度。
威胁影响度(threat impact,TI)的定义为
$ {\rm{TI = lo}}{{\rm{g}}_2}\left( {\frac{{{\psi _1}{2^C} + {\psi _2}{2^I} + {\psi _3}{2^A}}}{3}} \right). $ | (31) |
其中:C、I和A分别表示机密性、完整性和可用性3个威胁影响度指标;ψ1、ψ2和ψ3分别表示3个影响度指标在威胁影响度量化值中所占的权重比例,根据归一化原则,其计算公式如下:
$ \left\{ \begin{array}{l} {\psi _1} = \frac{C}{{C + I + A}}, \\ {\psi _2} = \frac{I}{{C + I + A}}, \\ {\psi _3} = \frac{A}{{C + I + A}}. \end{array} \right. $ | (32) |
威胁态势值(threat situation value,TSV,记为T)由威胁发生概率和威胁影响度2个威胁因素决定,
$ T = \frac{1}{n}\sum\limits_{i = 1}^n {{\rm{T}}{{\rm{P}}_i}} \cdot {\rm{T}}{{\rm{I}}_i}. $ | (33) |
其中TIi为进行第i次威胁测试时得到的威胁影响度。
本文的网络威胁态势量化评估过程主要包括5个步骤:威胁测试、计算威胁发生概率、确定威胁严重度、威胁影响度量化、计算威胁态势值和威胁态势评估分析。详细步骤如下:
步骤1 威胁测试。执行3.1.4节的威胁测试过程;将每次威胁测试时由输出层统计的测试误差值ω与异常阈值η进行比较。如果ω>η,则说明网络受到了威胁,否则继续进行威胁测试。
步骤2 计算威胁发生概率。若网络受到威胁,将归一化后的测试误差值ω作为威胁发生概率。
步骤3 确定威胁严重度。根据步骤2的威胁发生概率,对照表 2确定威胁严重度。
步骤4 威胁影响度量化。根据步骤2的威胁发生概率,通过表 3确定威胁影响度的3个指标值,然后利用式(31)计算威胁影响度。
步骤5 计算威胁态势值。根据威胁发生概率和威胁影响度的量化结果,通过式(33)计算网络威胁态势值。
步骤6 威胁态势评估分析。根据威胁严重度和威胁态势值对网络安全的整体态势进行分析评估。
网络安全威胁态势量化评估流程如图 6所示。
![]() |
图 6 网络安全威胁态势量化评估流程图 |
4 实验与结果 4.1 实验环境
本文基于VAE-GAN网络的训练和测试过程均在Ubuntu系统上进行,利用Python语言编写算法。实验的硬件环境为:Intel Core i7-7700 HQ处理器,8 GB内存;显卡为GTX1050,内存16 GB。
此外,为验证本文网络威胁评估方法的有效性,在PC服务器上部署Snort3.0入侵检测工具,以便在进行网络威胁测试时能够记录威胁信息,确定威胁类型。
4.2 无监督网络模型威胁测试结果对比分析为了证明本文模型的有效性,在模型训练阶段,利用AE、VAE、GAN和VAE-GAN 4种模型分别组成网络集合进行模型训练。在同一样本训练集下,随着网络集合层数的增加,4种模型的数据处理速率的对比情况如图 7所示。
![]() |
图 7 网络集合层数与数据处理速率的关系 |
由图 7可知,在同一样本训练集下,当网络集合层数为15层、模型训练达到Nash平衡时,由VAE-GAN组成的网络集合的数据处理速率达到2 300条/s左右;而当网络集合层数为20层时,基于AE的网络集合的数据处理速率达到近3 300条/s。虽然后者的数据处理速率高于前者,但AE对原始数据的重构能力弱于VAE-GAN网络,这一结论可通过以下对比实验进行验证。
使用AE、VAE、GAN和VAE-GAN 4种网络组成不同的无监督威胁测试模型,在网络集合层数为5、10、15、20和30层时分别进行模型训练。为了保证实验结果具有可比性,4种模型均使用相同的网络训练参数,所用训练数据均为同一组正常网络流量数据。在不同网络集合层数下,4种威胁测试模型在模型训练阶段输出的训练异常阈值η如图 8所示。
![]() |
图 8 4种模型的训练异常阈值η |
由图 8可知,与其他3种模型相比,当网络集合层数为15层时,由VAE-GAN模型在训练阶段取得的异常阈值η最小,这说明VAE-GAN对原始数据的重构能力优于其他3类模型。
在模型训练过程中,使用GD、NM、GN和LM 4种优化算法分别对VAE-GAN的模型参数进行优化,4种算法优化过程的收敛情况如表 4所示。
优化算法 | 迭代次数 | 时间/s | RMSE |
GD | 220 | 348 | 0.35 |
NM | 210 | 366 | 0.37 |
GN | 200 | 323 | 0.32 |
LM | 240 | 341 | 0.08 |
由表 4可知,在模型达到收敛状态时,与其他3种算法相比,LM算法的迭代次数较多,耗时较长,但所得均方根误差值最小,说明该算法使模型达到了更好的收敛效果,这对提升威胁测试的准确度更有帮助。
在威胁测试阶段,本文进行了200组的威胁测试实验,每组测试均随机从测试数据集中选取相同数量的测试样本进行测试。利用AE、VAE、GAN、VAE-GAN 4种模型分别进行威胁测试,网络集合层数均为15层。其中10组威胁测试实验取得的归一化测试误差值ω如图 9所示。
![]() |
图 9 (网络版彩图) 4种模型的威胁测试结果 |
由图 9可见,使用同一样本测试集,当网络集合层数达到15层时,基于VAE-GAN的网络威胁测试模型相比于其他3种模型,输出的测试误差值ω最大,这说明它对网络威胁的检测能力更突出。
4.3 网络安全威胁态势量化评估结果分析为了评估网络威胁的总体态势,需要对决定网络安全态势2个威胁因素进行量化评估。首先,通过威胁测试过程获取每组测试的误差值ω,将其归一化在[0, 1]区间,然后对照表 2和3确定威胁严重度和威胁影响度等级。
10组网络安全态势的威胁严重度和威胁影响度评估结果如表 5所示。
编号 | 威胁发生概率 | 威胁严重度 | 威胁影响度 |
1 | 0.187 | 安全 | 无影响 |
2 | 0.275 | 低危 | 无影响 |
3 | 0.238 | 低危 | 无影响 |
4 | 0.426 | 中危 | 低影响 |
5 | 0.557 | 中危 | 低影响 |
6 | 0.262 | 低危 | 无影响 |
7 | 0.358 | 低危 | 无影响 |
8 | 0.685 | 高危 | 高影响 |
9 | 0.504 | 中危 | 低影响 |
10 | 0.281 | 低危 | 无影响 |
为了增加评估结果的客观性和真实性,首先根据测试阶段获得的威胁发生概率和威胁影响度评估结果计算威胁态势值,然后使用BP[14]、RBF[15]2种方法分别计算威胁态势值,并与本文方法的威胁态势值计算结果进行比较。某一时间段内3种方法的威胁态势值计算结果如图 10所示。
![]() |
图 10 3种方法获取的威胁态势值比较 |
由图 10可见,在时间刻度分别为9、22、47、89、108和153 min,威胁态势值变化幅度较大,表明在这几个时刻网络遭受威胁的严重程度较高,网络可能遭受多种类型攻击。通过数据分析发现,在网络遭受威胁的6个时刻,与其他2个方法相比,本文方法对网络威胁的表征能力更强。例如,在第9 min时,图 10a中的威胁态势值从4.72变为5.39,图 10b中的威胁态势值由4.75变为6.30,而图 10c中的威胁态势值则由3.68变为5.94,相比之下,本文方法威胁态势值的变化幅度更大,这说明本文方法对网络威胁态势的量化评估效果更直观。
5 结论为克服传统的基于监督式网络的网络安全威胁态势评估方法需依赖数据标签进行建模的局限性,本文提出一种基于无监督生成推理的网络安全威胁态势评估方法,将基于VAE-GAN的无监督网络模型应用于网络威胁测试任务中,通过量化网络安全威胁态势影响因素来计算威胁态势值,从而完成对网络安全威胁态势的实时评估。仿真实验结果表明,本文方法对网络威胁的表征能力较强,同时拥有更高效和直观的网络威胁态势评估效果。
[1] |
WANG H, CHEN Z F, FENG X, et al. Research on network security situation assessment and quantification method based on analytic hierarchy process[J]. Wireless Personal Communications, 2018, 102(2): 1401-1420. DOI:10.1007/s11277-017-5202-3 |
[2] |
ZHOU C, PAN P, MAO X Y, et al. Risk analysis of information system security based on distance of information-state transition[J]. Wuhan University Journal of Natural Sciences, 2018, 23(3): 210-218. DOI:10.1007/s11859-018-1312-3 |
[3] |
文志诚, 陈志刚, 唐军. 基于信息融合的网络安全态势量化评估方法[J]. 北京航空航天大学学报, 2016, 42(8): 1593-1602. WEN Z C, CHEN Z G, TANG J. Assessing network security situation quantitatively based on information fusion[J]. Journal of Beijing University of Aeronautics and Astronautics, 2016, 42(8): 1593-1602. (in Chinese) |
[4] |
YU J J, HU M, WANG P. Evaluation and reliability analysis of network security risk factors based on D-S evidence theory[J]. Journal of Intelligent & Fuzzy Systems, 2018, 34(2): 861-869. |
[5] |
朱闻亚. 卡尔曼熵值模型的网络安全态势估计[J]. 华侨大学学报(自然科学版), 2017, 38(1): 101-104. ZHU W Y. Network security situation assessment based on Kalman entropy model[J]. Journal of Huaqiao University (Natural Science), 2017, 38(1): 101-104. (in Chinese) |
[6] |
HU G Y, ZHOU Z J, ZHANG B C, et al. A method for predicting the network security situation based on hidden BRB model and revised CMA-ES algorithm[J]. Applied Soft Computing, 2016, 48: 404-418. DOI:10.1016/j.asoc.2016.05.046 |
[7] |
谢丽霞, 王亚超, 于巾博. 基于神经网络的网络安全态势感知[J]. 清华大学学报(自然科学版), 2013, 53(12): 1750-1760. XIE L X, WANG Y C, YU J B. Network security situation awareness based on neural networks[J]. Journal of Tsinghua University (Science & Technology), 2013, 53(12): 1750-1760. (in Chinese) |
[8] |
DOERSCH C. Tutorial on variational autoencoders[Z]. arXiv preprint: 1606.05908, 2016.
|
[9] |
AN J, CHO S. Variational autoencoder based anomaly detection using reconstruction probability[R]. Seoul, South Korea: SNU Data Mining Center, 2015.
|
[10] |
GOODFELLOW I J, POUGET-ABADIE J, MIRZA M, et al. Generative adversarial nets[C]//Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal, Canada: MIT Press, 2014: 1-9.
|
[11] |
中华人民共和国国务院.国家突发公共事件总体应急预案[M].北京: 中国法制出版社, 2006. State Council of the People's Republic of China. Overall emergency plans for national sudden public incidents[M]. Beijing: China Legal Press, 2006. (in Chinese) |
[12] |
MELL P, SCARFONE K, ROMANOSKY S. Common vulnerability scoring system[J]. IEEE Security & Privacy, 2006, 4(6): 85-89. |
[13] |
FIRST. Common vulnerability scoring system v3.1: Specification document[S/OL].[2019-05-20]. https://www.first.org/cvss/specification-document.
|
[14] |
唐成华, 余顺争. 一种基于似然BP的网络安全态势预测方法[J]. 计算机科学, 2009, 36(11): 97-100, 168. TANG C H, YU S Z. Method of network security situation prediction based on likelihood BP[J]. Computer Science, 2009, 36(11): 97-100, 168. DOI:10.3969/j.issn.1002-137X.2009.11.023 (in Chinese) |
[15] |
赖智全.基于混合优化RBF神经网络的网络安全态势预测模型[D].兰州: 兰州大学, 2017. LAI Z Q. Prediction model of network security situation based on hybrid optimization RBF neural network[D]. Lanzhou: Lanzhou University, 2017. (in Chinese) |