system: [SYSTEM]

user: 3. 基于改进的循环神经网络 为了验证本模型的可行性和优势，我们使用东北大学的NEU-DET数据集进行实验。 3.1. 循环神经网络 在传统的神经网络模型中，是从输入层到隐含层最后到输出层，相邻层之间的节点完全连接，而同一层的节点没有任何联系，由于节点之间需要相互交互，导致这种类型的网络模型在处理时间序列预测问题上性能欠佳。循环神经网络 [ 6 ] 利用带自反馈的神经元，用于处理序列数据的神经网络。RNN中的隐藏单元可以接收到先前状态对当前状态的反馈。图2展示了一个基本的RNN架构。 图2. RNN架构图 在这种结构中，输入向量逐次送入RNN中，而不像传统神经网络一样采用固定数量的输入方式，同时能够根据实际情况确定RNN的深度。最终的输出结果不仅受当前输入值的影响，还受先前隐藏层输出结果的影响。以下用数学模型表示： t i = W h x x i + W h h x i − 1 + b h h i = σ ( t i ) s i = w o h h i + b y s i = w o h h i + b y (1) 公式中 x i 表示输入变量， W h x 、 W h h 和 W o h 为权重矩阵， b h 和 b y 是偏差向量， σ 和g为Sigmoid函数， t i 、 h i 和 s i 为临时变量， o ^ 为输出变量。损失函数如下： f = ∑ i ( ‖ o ^ i − o i ‖ / 2 ) (2) 其中 o i 表示真实输出。 t + 1 处的输出由 t + 1 处的输入和历史数据共同决定。由于梯度的问题，RNN模型的精度随时间的推移下降，最终导致输出误差较大。 但是随着时间的不断扩大会导致RNN的历史信息会逐渐递减，所以为了解决后面的时间节点对于前面时间节点感知力下降这个问题，引入了LSTM [ 7 ]。 3.2. LSTM模型 长短期记忆模型是RNN模型的一种变体，RNN因为梯度消失的原因导致只有短期记忆，而LSTM模型通过将隐藏层作为记忆单元，通过门控制能够解决短期和长期时间序列的相关性问题。图3给出记忆单元的结构图，存储单元位于整个记忆单元的核心处，用红色圆圈表示。输入为已知数据，而输出则是预测的结果。在记忆单元中存在三个门，分别为输入门、遗忘门、输出门，通过绿色圆圈在图中标识。每个单元的状态用表示，每个门的输入由预处理数据和先前状态组成。蓝色点代表汇聚点，虚线是前一状态函数。以记忆单元中信息的流动为基础，状态的更新和输出可以归纳为公式(3)： 图3. LSTM记忆单元设计 i t = σ ( W ( i ) X t + U ( i ) S t − 1 ) f t = σ ( W ( f ) X t + U ( f ) S t − 1 ) o t = σ ( W ( o ) X t + U ( o ) S t − 1 ) S ˜ t = tanh ( W ( c ) X t + U ( c ) S t − 1 ) S t = f t ∘ S t − 1 + i t ∘ S ˜ t O t = o t ∘ tanh ( S t ) (3) 公式中的 ∘ 表示Hadamard乘积， i t 、 f t 和 o t 表示三种不同的门， S ˜ t 为新状态的记忆单元， S t 为最终状态的记忆单元， O t 是最终输出的存储单元。 W ( i ) 、 W ( f ) 、 W ( o ) 、 W ( c ) 、 U ( i ) 、 U ( o ) 、 U ( o ) 和 U ( c ) 为系数矩阵。 经由不同功能门后，LSTM记忆单元可以捕获短期和长期时间序列中复杂的相关特性，相比RNN模型性能明显提高。 3.3. 基于改进的LSTM方法的NSSA模型 实该模型首先根据攻击影响提出一种态势指标评估因子，构建出网络安全态势评估指标体系，同时将改进的LSTM方法引入到网络安全态势评估之中，通过最终得到的影响指标对当前的网络安全态势进行态势评估，能够准确、高效地对网络当前状态进行评估。 3.3.1. 态势评估指标 对态势进行评估和预测的基础是构建科学合理的评估指标体系。在进行指标体系的构建要选择比较适中的指标因素，若选取的指标数量过大会使得评估模型结构复杂化，会降低整个评估过程的实时性和准确性；若选取的指标过少又反过来会加大评估结果的偶然性与随机性。本文根据以下原则来选取态势影响指标： 1) 层次性。层次性指的是所选取的指标能反应网络整体结构以及运行状况，各设备之间、传输数据信息所反映的信息有一定的差异性，要求尽可能地选取多层次、多方面的指标数据进行分析； 2) 系统性。系统性指的是所选取的指标能尽可能有一定的代表性与典型性等指标，网络安全的各个因素之间同时是相互关联、相互影响的，所以能够系统、全面的反应整个网络安全的整体状况； 3) 相似性。相似性指的是指标中会有功能近似并且相互之间会有影响的因素存在，会影响到网络安全的整体态势状态，这个因素也是在进行指标选取时候值得考虑的。 然后建立网络的层次性、系统性和相似性相结合的一级指标，并通过二级指标中的影响因素进行具体描述，具体的网络态势指标体系如下表1所示： Table 1 Classification of situation indexe 一级指标 二级指标 层次性 cpu占用率、网内流量变化率、带宽使用率、服务类型 系统性 主机操作系统、网络带宽、设备本身的版本、存储介质情况 相似性 网络漏洞等级、漏洞数目、攻击产生的后果 表1. 态势指标分类 3.3.2. 态势评估等级划分 在构建态势评估指标体系后，通过结合国标GB/T20984-2007以及国家突发公共事件总体应急预案，本文将整体网络态势定义为4个评估类别，即安全、轻度危险、中度危险、重度危险四个等级。为了直观分析网络安全态势评估的结果，在[0，1]范围内对安全态势值进行量化。 Table 2 Network security situation leve 安全系数 安全等级 网络运行状况 [0，0.2] 安全 正常 [0.2，0.5] 轻度危险 轻微影响 [0.5，0.8] 中度危险 较大影响 [0.8，1.0] 重度危险 严重事故 表2. 网络安全态势等级 本文所用到的改进的循环神经网络 [ 8 ] (C-LSTM)模型用于对网络安全态势值变化趋势的预测，C-LSTM是由卷积神经网络和循环神经网络以线性结构串联组成的。由于CNN在提取空间特征上具有优势，因而通过它构建的滤波器能够通过对输入数据进行逐层卷积和池化操作来提取数据之间隐藏的特征。 图4. 基于改进LSTM的态势感知框架 本文采用LSTM网络实现对态势值的预测，基于改进LSTM方法的网络安全态势感知模型构建的框架如图4所示。首先通过卷次神经网络来提取数据序列的特征，然后通过层次化安全态势评估量化方法进行量化计算得到安全态势值，并将其进行归一化，然后得到新的样本集当作LSTM网络的输入。在训练过程中，可以调节循环神经网络隐层节点的个数和时间序列的长度对模型的预测正确率进行调节，最后计算真实数据和预测数据的均方根误差判断模型的好坏。 Table 3 Identification types of KDD cup9 威胁等级 攻击类型 网络运行状况 低 DoS teardrop smurf pod. neptune land. back 较低 U2R perl， loadmodule， buffer overflow， rootkit 中等 R2L guess passwd， warezmaster， ftp write， imap， 较高 / phf， multihop， warezclient， spy 高 Probing Ipsweep， nmap， portsweep， satan 表3. KDD Cup99标识类型 构建准确合理的网络安全评估指标体系是对态势进行感知的基础，所以在进行安全态势感知之前需要对网络安全态势之进行一定的量化。虽然态势指标的确定是模糊并且是一个逐渐改变的进程，本文创新性的采用定性类别分析法来描述网络安全态势，赋予其有了可以具体量化的值，能够用于态势计算。根据网络的行为判断其受到的攻击类型以及所处的安全等级类别，在网络受到的攻击越大时，网络安全态势值相应就越高，因而通常情况网络威胁程度的判定是由主机权限以及网络攻击对通信性能的损害程度来决定的 [ 9 ]。KDD Cup99中的威胁等级及攻击类型如表3所示。 KDD Cup99数据集的网络攻击主要包括4类，并对攻击类型进行威胁定值，在检测到该类网络攻击时，则对网络的攻击赋予相应的量化值，如表4所示。 Table 4 Quantified value of attack even 攻击类型 威胁值 事件 Normal 0 无 Proble 0.2 端口监测、扫描 R2L 0.4 非法尝试登陆主机 DoS 0.6 进行拒绝服务攻击 U2L 0.8 非法获取主机或管理员权限 表4. 攻击事件量化值 在进行实验训练数据时，根据不同攻击类型确定网络威胁值，判断其存在于某个网络安全等级类别，则取表2中各类别的中间值作为网络安全态势值 [ 10 ]。在数据集中提取出100条网络入侵检测数据，以“天”作为态势预测的时间尺度，得到100个归一化后的原始安全态势值作为样本集，用此样本集考察模型在时序上态势值的走势情况。首先将数据样本分为训练集和测试集，将前74个数据点成为训练集，用于构建模型和方法训练；后26个称为测试集，用于将预测结果和实际结果作对比。 本文采用的预测模型预测结果与原始安全态势值相比，如下图5所示： 图5. 安全态势值对比 为了更加直观的表现本文算法的可行性，采用平均相对误差(MRE)和均方根误差(RMSE)对预测结果进行评价： MRE = 1 N ∑ i = 1 n ( | y ′ i − y i | y i × 100 % ) (4) RMSE = ∑ i = 1 N ( y ′ i − y i ) 2 N (5) 上式中，N表示样本个数， y i 表示预测态势值， y i 表示实际态势值。在对模型精确度进行评价时，误差越小，则表示模型的精确度越好。结果如下表5所示： Table 5 Error comparison of the prediction results of the two model 模型名称 平均相对误差 均方根误差 样本数 本文模型 0.3082 0.7074 26 LSTM 0.4924 0.7351 26 表5. 两种模型预测结果的误差对比