目前网络入侵检测方法研究的主要方向是通过融合若干传统的算法及优化特征子集和参数的选择, 以提高检测正确率和降低误检率.文献[1]融合了KNN和SVM算法, KNN和SVM算法采用不同的参数, 以构造出不同的分类器, 然后采用PSO算法寻找分类器之间的最优权值.文献[2]提出基于模糊熵和蚁群算法的最小特征子集方法, 消除冗余特征项, 适用于实时入侵检测系统.
神经网络算法具有自适应、自学习、自组织、泛化能力强以及能够进行大规模并行计算等优点, 适合当前复杂多变的入侵检测环境[3], BP神经网络是目前应用最广泛的神经网络模型之一.但由于BP神经网络的初始运行参数是随机选择的, 存在易陷入局部最小值、收敛速度过慢和接近最优解时可能会震荡等问题, 导致在网络入侵检测中准确率较低、误报率较高.针对这个问题, 许多学者提出利用智能仿生算法来优化, 如粒子群算法、遗传算法、人工蜂群算法等, 以获得较优的BP神经网络检测模型.文献[4-5]提出利用遗传算法来优化BP神经网络的权值和阈值, 提高了BP神经网络的训练速度和检测准确率.文献[6-8]分别将蝙蝠算法、粒子群算法和人工蜂群算法应用在BP神经网络的运行参数优化中.但这些算法都存在着各自的不足, 如遗传算法有时可能出现过早收敛和停滞现象, 选择有效的控制遗传因子和控制参数也较为困难.蚁群算法和粒子群算法在搜索后期容易出现陷入局部最优和早熟现象.
墨鱼算法(cuttlefish algorithm, CFA)是文献[9]提出的一种新的智能元启发式仿生算法, 其在组合优化问题和连续优化问题上具有快速收敛的特点[10].在文献[9]的研究中, 作者利用Rosenbrock和Griewank等基准函数进行收敛能力的测试比较, 结果表明, CFA比遗传算法和粒子群算法收敛时间更短.文献[11-12]提出CFA与ID3决策树和SVM相融合的入侵检测方法, 其中CFA用于寻找最优子集, ID3和SVM作为分类器, 检测准确率作为CFA的适应值, 实验结果表明, 通过CFA选取的特征子集比粒子群算法选取的特征子集具有更高的检测准确率.特征子集的选择和BP神经网络的运行参数选择类似, 其实质都是在一个大规模空间搜索的组合优化问题.
本文提出一种融合CFA和BP神经网络的入侵检测方法CFA-BPIDS, 将BP神经网络的权值和阈值作为CFA的优化目标, 误差函数作为CFA的适应值函数, 当达到最大迭代次数或满足误差要求时, 选择适应值最优的一组参数作为BP神经网络的权值和阈值进行训练学习;并将优化的BP神经网络应用于网络入侵检测, 采用KDDCUP99数据集进行了仿真测试, 实验结果表明, 该方法有效地提高了BP神经网络的训练速度和平均检测准确率.
1 CFA与BP神经网络 1.1 CFA仿生原理墨鱼可以通过皮肤层堆积的色素细胞、虹彩细胞和白细胞3层细胞改变自身皮肤颜色, 使得与外界颜色一致而达到隐藏自己的目的.其中色素细胞通过肌肉的收缩与放松使得色素囊的面积增大或缩小来改变细胞颜色;虹彩细胞与白细胞是类似镜面的反射细胞, 可反射或散射进入细胞的光线.
CFA模拟了图 1的6种3层细胞变色的情形, 基本原理是考虑了墨鱼皮肤细胞变色的两个主要过程:反射和呈现.反射过程模拟了色素细胞收缩与放松的机制, 呈现过程模拟了反射细胞的反射和散射的机制, 色素细胞收缩放松程度与反射细胞的呈现程度分别由R和V表示.CFA将两个过程作为全局寻优的搜索策略, 细胞颜色的变化即寻找新解newP的公式为
![]() |
图 1 6种变色情形 Figure 1 Record of the six cases |
$ newP = reflection + visibility, $ | (1) |
$ reflection = R \cdot G\left[ i \right].Point, $ | (2) |
$ visibility = V \cdot \left( {Best.Point - G\left[ i \right].Point} \right), $ | (3) |
$ reflection = R \cdot Best.Point, $ | (4) |
$ visibility = V \cdot (Best.Point - A{V_{Best}}), $ | (5) |
$ R = {\rm{random}}() \cdot ({r_1} - {r_2}) + {r_2}, $ | (6) |
$ V = {\rm{random}}() \cdot ({v_1} - {v_2}) + {v_2}. $ | (7) |
其中:i为第i个细胞;Best.Point代表了最优解的细胞;r1和r2为描述色素细胞收缩和放松程度的两个常数;v1和v2为描述反射细胞呈现程度的两个常数;random()是产生(0, 1)随机数的函数.情形1和情形2的reflection和visibility由式(2)和(3)描述, 情形3和情形4的reflection和visibility由式(4)和(3)描述, 情形5的reflection和visibility由式(4)和(5)描述, R和V由式(6)和(7)计算得到.
1.2 BP神经网络BP神经网络是一种模拟神经系统的结构和生物神经网络信息传递的智能算法, 其典型结构由输入层、输出层和一个或多个隐含层组成, 每1层由多个节点组成, 如图 2所示.
![]() |
图 2 BP神经网络结构 Figure 2 BP neural network structure |
设输入层有n个神经元, 隐含层有q个神经元, 输出层有m个神经元, 样本总数为P, xpi表示第p个样本的第i个输入, vki表示输入层第i个节点到隐含层第k个节点的权值, wjk表示隐含层第k个节点到输出层第j个节点的权值, 则
1) 隐含层各节点的输出公式为
2) 输出层各节点的输出公式为
3) 全局误差函数
4) 输出层节点权值的调整公式为
5) 隐含层权值的调整公式为
BP神经网络是基于梯度下降的一种迭代学习算法, 不同的初始权重和阈值等参数会引起不同的结果.若取值不当, 就很可能引起网络震荡而不能收敛或训练时间过长, 陷入局部极值.这些因素都会影响BP神经网络在入侵检测时的检测准确率和训练时间.为此, 结合CFA全局搜索和收敛快的特点, 将CFA引入到BP神经网络的参数优化中.
2 入侵检测方法CFA-BPIDS本文提出的入侵检测方法CFA-BPIDS的主要原理是:利用CFA优化BP神经网络中的权值和阈值, 获得最优的运行参数, 以加速收敛、避免陷入局部最优及提高BP神经网络的入侵检测准确率;其中CFA优化BP神经网络原理是将细胞群数量为N的细胞个体编码为w维问题空间中的N个可行解, w维看作是BP神经网络里阈值和权值的总个数, 每个可行解唯一确定1个网络, 细胞颜色更新的反射和呈现两个过程对应神经网络的权值和阈值的更新, 通过图 1中6种变色情形寻找最优初始权值和阈值;最后对BP神经网络进行训练, 并应用在网络入侵的检测模块中, 建立网络入侵模型.
2.1 细胞编码设计设BP神经网络包含输入层、隐含层、输出层, 分别有n个、p个、m个神经元, 则CFA中每个细胞包含的维度w为w=n·p+p·m+p+m.
2.2 基于CFA-BPIDS的入侵检测步骤基于CFA-BPIDS的入侵检测步骤主要包含训练数据收集、数据预处理和类别标记、BP神经网络优化和训练、入侵检测等步骤, 具体过程如图 3, 详细描述如下:
![]() |
图 3 CFA-BPIDS入侵检测 Figure 3 CFA-BPIDS intrusion detection |
Step1 将收集的流量数据Dk和已知的类别Ck通过映射集合Udc=(∃ Dk, Ck|∀ Dk∈Ck)(1≤k≤n)进行结合并标记, 作为训练集.
Step2 对训练集进行离散化和归一化, 提取主要特征项和去除冗余特征, 依据特征项个数和类别个数确定BP神经网络的输入层和输出层神经元个数, 构建神经网络模型.
Step3 为使BP神经网络获得更好的检测性能, 采用CFA优化BP神经网络以获得最优的初始权值和阈值, 优化过程具体描述如下.
1) 初始化CFA, 设定r1、r2、v1和v2及最大迭代次数MCN和目标误差ε等参数, 根据BP神经网络的权值和阈值个数对细胞编码, 随机初始化细胞种群N的公式为
$ P\left[ i \right].Point\left[ j \right] = {\rm{random}}() \cdot \left( {upperLimit - lowLimit} \right) + lowLimit, $ | (8) |
其中:j为细胞的第j维;upperLimit和lowLimit为每个维度上值的上、下限.
2) 计算每个细胞的适应值, 将适应值最优的细胞保存到Best细胞中, 若Best细胞的适应值满足误差要求, 则转到Step4, 否则将细胞群分成G1、G2、G3三组.
3) G1组中每个细胞由式(2)和式(3)生成reflection和visibility, 式(1)更新细胞并计算其适应值, 若适应值更优则更新Best以及AVBest, AVBest为Best细胞各维度上的均值.
4) G2组中每个细胞由式(4)和式(3)生成reflection和visibility, 式(1)更新细胞并计算其适应值, 若适应值更优则更新Best以及AVBest.
5) G3组中每个细胞由式(4)和式(5)生成reflection和visibility, 式(1)更新细胞并计算其适应值, 若适应值更优则更新Best以及AVBest.
6) 为防止陷入局部最优, 使用式(8)产生一组新的细胞, reflection为一随机数值, visibility为0, 式(1)更新细胞并计算其适应值, 若适应值更优则更新Best以及AVBest.
7) 重复3)~6)的过程, 直到满足终止的迭代次数或满足误差要求.
Step4 输出Best细胞中的值作为BP神经网络初始的权值和阈值, 并开始训练.
Step5 把训练好的BP神经网络应用在网络入侵检测中的检测模块, 建立入侵检测模型, 把预处理和特征选择后的未知流量作为检测模块的输入, 输出则为入侵检测的结果.
3 实验结果分析首先通过两个基准测试函数对CFA、遗传算法和粒子群算法的收敛性能进行比较分析;然后分别将CFA、遗传算法和粒子群算法优化后的BP神经网络建立入侵检测模型, 并从BP神经网络的收敛速度以及在入侵检测中准确率、误报率两方面进行仿真分析.实验环境为window7操作系统, 处理器为I5, 安装内存8.00 GB, 仿真软件为Matlab R2014a, 选择KDDCUP99作为仿真的数据源.
3.1 CFA的收敛性能比较为验证CFA的收敛性能, 选用两个基准函数对CFA的收敛性能进行分析, 遗传算法(GA)和粒子群算法(PSO)作为比较对象, 基准函数为De Jong函数
3种算法的收敛速度对比如图 4和图 5所示, 从图中可以看出, CFA的收敛速度明显优于遗传算法和粒子群算法, 这表明CFA的全局搜索能力和收敛速度均优于遗传算法和粒子群算法.
![]() |
图 4 在De Jong函数收敛对比 Figure 4 Comparison of the convergence in De Jong function |
![]() |
图 5 在Rosenbrock valley函数收敛对比 Figure 5 Comparison of the convergence in Rosenbrock valley function |
KDDCUP99数据集是美国麻省理工学院林肯实验室提供的一种应用于入侵检测研究领域的标准数据集.实验数据是在KDDCUP99提供的10%的数据集基础上随机抽取的样本, 包括41维特征.数据集包含4种入侵类型:DoS、Probe、U2R、R2L, 同时含有正常样本Normal, 各类攻击样本分布具体如表 1所示.
![]() |
表 1 训练集攻击类型分布 Table 1 Training set distribution of attack type |
根据文献[13]的研究, 去除28个冗余的属性, 获得包含13个特征属性的约简样本.
1) 离散特征预处理
在抽取的样本中包含label、protocol、service、flag 4个离散特征属性, 通过独热编码(one-hot)将其转换成哑变量.
2) Z-Score中心化处理
对连续特征进行Z-Score中心化处理, 处理方式为newValue=(oldValue-mean)/varience, 其中:newValue是Z-Score中心化后的值;oldValue是原值;mean是对应特征的均值;varience是对应特征的标准差.
3.3 收敛速度对比实验中采用的BP神经网络为3层网络结构, 输入层、隐含层、输出层神经元个数分别为13、10、5, 转移函数采用Sigmoid函数.设定的CFA参数为:初始细胞群大小为50, r1、r2、v1、v2的值分别为1、-0.5、2、-2, 实验结果如图 6所示.从图 6中可以看出, CFA优化的BP神经网络在训练不到70次达到目标误差, 而遗传算法和粒子群优化的BP神经网络则在迭代150次后还未满足误差要求, 说明通过CFA优化的BP神经网络可以找到更优的权值和阈值, 使得BP神经网络收敛更快, 学习时间明显缩短.
![]() |
图 6 收敛速度对比 Figure 6 Comparison of the convergence speed |
将训练好的BP神经网络对测试数据集进行检测, 并使用各攻击类型(包括正常类型)的检测正确率和误检率作为性能评估指标, 比较对象是基于遗传算法、粒子群算法优化的BP神经网络, 具体检测结果如表 2和表 3所示, 检测正确率(Acc)和误检率(FPR)的计算采用文献[14]的计算公式, 具体如下:
![]() |
表 2 检测准确率对比 Table 2 Comparison of detection accuracy |
![]() |
表 3 误检率对比 Table 3 Comparison of false positives |
$ Acc = \frac{{{\sum _i}(T{P_i} + T{N_i})}}{{{\sum _i}(T{P_i} + F{P_i} + T{N_i} + F{N_i})}} \times 100\% , FPR = \frac{{FP}}{{FP + TN}} \times 100\% , $ |
其中:TP为预测为正的正样本;FP为预测为负的负样本;TN为预测为正的负样本;FN为预测为负的负样本.
由表 2和表 3的平均值来看, 基于CFA-BPIDS的检测方法相比基于GA-BPIDS及PSO-BPIDS的检测方法, 在检测准确率上分别提高了2.35%和3.15%, 在误检率上分别降低了0.19%和0.35%.具体分析来看, 3种检测方法对Normal、DoS、Probe 3种类型的检测准确率较高, 而对U2R和R2L两种类型的检测准确率较低, 这是因为在所抽取的数据样本中, 这两类攻击样本较少.综合分析, CFA-BPIDS检测方法相比其他两种检测方法表现出了更好的检测性能, 这是由于CFA扩大了BP神经网络参数的搜索空间, CFA能够使BP神经网络获得较优的权值和阈值, 在所设定的最大迭代次数范围内能够收敛并达到目标误差, 从而提高了BP神经网络的检测性能.仿真实验结果表明, CFA-BPIDS方法和基于遗传算法及粒子群优化BP神经网络的方法相比, 具有迭代次数更少、训练时间更短的优点, 可有效地提高入侵检测的准确率.
[1] |
ABUROMMAN A A, REAZ M B I. A novel SVM-kNN-PSO ensemble method for intrusion detection system[J]. Applied soft computing, 2016, 38: 360-372. DOI:10.1016/j.asoc.2015.10.011 ( ![]() |
[2] |
VARMA P R K, KUMARI V V, KUMAR S S. Feature selection using relative fuzzy entropy and ant colony optimization applied to real-time intrusion detection system[J]. Procedia computer science, 2016, 85: 503-510. DOI:10.1016/j.procs.2016.05.203 ( ![]() |
[3] |
杨雅辉, 黄海珍, 沈晴霓, 等. 基于增量式GHSOM神经网络模型的入侵检测研究[J]. 计算机学报, 2014, 37(5): 1216-1224. ( ![]() |
[4] |
屈洪春, 王帅. 一种基于进化神经网络的混合入侵检测模型[J]. 计算机科学, 2016, 43(S1): 335-338. ( ![]() |
[5] |
YANG Y, WANG G, YANG Y. Parameters optimization of polygonal fuzzy neural networks based on GA-BP hybrid algorithm[J]. International journal of machine learning and cybernetics, 2014, 5(5): 815-822. DOI:10.1007/s13042-013-0224-y ( ![]() |
[6] |
刘羿. 蝙蝠算法优化神经网络的网络入侵检测[J]. 计算机仿真, 2015, 32(2): 311-314. ( ![]() |
[7] |
REN C, AN N, WANG J, et al. Optimal parameters selection for BP neural network based on particle swarm optimization: a case study of wind speed forecasting[J]. Knowledge-based systems, 2014, 56: 226-239. DOI:10.1016/j.knosys.2013.11.015 ( ![]() |
[8] |
沈夏炯, 王龙, 韩道军. 人工蜂群优化的BP神经网络在入侵检测中的应用[J]. 计算机工程, 2016, 42(2): 190-194. ( ![]() |
[9] |
EESA A S, ABDULAZEEZ A M, ONMAN Z. Cuttlefish algorithm:a novel bio-inspired optimization algorithm[J]. International journal of scientific and engineering research, 2013, 4(9): 1978-1986. ( ![]() |
[10] |
RIFFI M E, BOUZIDI M. Discrete cuttlefish optimization algorithm to solve the travelling salesman problem[C]//Complex Systems (WCCS) Third World Conference. Marrakech, 2015: 1-6. http://ieeexplore.ieee.org/document/7483231/
( ![]() |
[11] |
EESA A S, ONMAN Z, BRIFCANI A M A. A novel feature-selection approach based on the cuttlefish optimization algorithm for intrusion detection systems[J]. Expert systems with applications, 2015, 42(5): 2670-2679. DOI:10.1016/j.eswa.2014.11.009 ( ![]() |
[12] |
KAUR R, SACHDEVA M, KUMAR G. Nature inspired feature selection approach for effective intrusion detection[J]. Indian journal of science and technology, 2016, 9(42): 1209-1218. ( ![]() |
[13] |
武小年, 彭小金, 杨宇洋, 等. 入侵检测中基于SVM的两级特征选择方法[J]. 通信学报, 2015, 36(4): 23-30. ( ![]() |
[14] |
梁鸿, 葛宇飞, 陈林, 等. 基于树突细胞算法与对支持向量机的入侵检测[J]. 计算机应用, 2015, 35(11): 3087-3091. DOI:10.11772/j.issn.1001-9081.2015.11.3087 ( ![]() |