曾宏志, 史洪松
(江西工程学院 智能制造工程学院, 江西 新余 338000)
目前, 网络已成为人们进行信息交流和共享的一种重要方法[1]. 但由于网络的开放性和人们网络安全意识的薄弱, 导致网络入侵频率不断增加, 从而严重影响了用户的信息和隐私安全[2]. 网络安全防范技术主要分为两种: 一种是被动的防范技术, 如数据加密、 身份认证、 软硬相结合的防火墙等, 其主要对外来入侵行为进行拦截, 但不能检测到内部一些网络的攻击行为, 因此无法有效保证网络数据传输的安全性; 另一种为主动的防范技术, 主要是入侵行为检测, 其可发现一些网络异常行为. 因此, 网络入侵检测已成为网络安全领域的重要问题[3-4].
针对网络入侵检测问题目前已有许多有效的网络入侵检测技术[5-6]. 网络入侵检测方法主要分为两种: 一种是基于误用技术的检测方法, 该类方法需要网络入侵行为的大量历史数据, 从历史数据分析网络入侵的变化特点, 网络入侵检测正确率较高, 但其无法对一些变异的网络入侵行为或新的网络入侵行为进行有效检测, 网络入侵检测的通用性较差, 因此该类方法目前已不能满足网络入侵检测的需求[7-9]; 另一种为基于异常技术的检测方法, 该类方法可发现和检测变异的、 新的网络入侵行为, 是当前网络入侵检测的主要方法[10-12], 目前主要有: 基于最近邻算法的网络入侵检测方法、 基于各种神经网络的网络入侵检测方法、 基于聚类分析算法的网络入侵检测方法、 基于Bayes网络的网络入侵检测方法以及基于支持向量机的网络入侵检测方法等, 这些方法在实际应用中各有优势, 同时也存在一定的缺陷, 如基于聚类分析算法、 最近邻算法的网络入侵检测效率高, 但网络入侵的误检率较高; 基于Bayes网络、 神经网络的网络入侵检测要求样本数量大, 且易获得过拟合的网络入侵检测结果; 基于支持向量机的网络检测正确率高, 但网络入侵检测耗时较长, 网络入侵检测的实时性较差[12-15].
为获得更理想的网络入侵检测结果, 减少网络入侵检测的误检率, 缩短网络入侵检测时间, 本文提出一种基于半监督技术和主动学习相结合的网络入侵检测方法, 并在相同仿真实验条件下, 采用标准数据集与当前经典方法进行对比, 对比结果验证了本文网络入侵检测方法的优越性.
聚类分析算法是一种半监督技术, 其以聚类中心为基础, 将不同数据划分为相应的类别. 设一个数据聚类问题可描述一个非线性优化目标问题, 表示为
(1)
建立一个Lagrange函数:
(2)
(3)
(4)
(5)
综合式(3)和式(5)可得
(6)
不断对聚类中心位置进行调整, 最终可实现对所有数据的合理分类.
BP神经网络是一种主动学习算法, 其由许多人工神经元构成, 这些人工神经元组成一个拓扑结构, 通常采用分层结构, 属于前馈型神经网络, 具有误差反向传播功能, 其拓扑结构如图1所示.
图1 BP神经网络的拓扑结构Fig.1 Topological structure of BP neural network
BP神经网络工作步骤如下:
1) 设Iij和Oij分别表示第i层、 第j个神经元的输入和输出, 则
(7)
Oij=f(Iij),
(8)
其中W(i-1)jk为不同层神经元之间的权值;
2) 设第j个样本的期望输出和实际输出分别为dj和yj, 则输出误差为
(9)
3) 梯度方向的误差曲面下降最快, 根据误差对梯度方向的权值进行修正[12], 表示为
(10)
(11)
(12)
(13)
(14)
6) 当O(i+1)k为输出层的神经元节点时, 则有
(15)
δik=(dk-yk)yk(1-yk);
(16)
7) 当O(i+1)k为隐含层的神经元节点时, 则有
(17)
(18)
8) 神经网络的权值调整公式为
(19)
9) 根据相同原理得到神经网络的阈值调整公式为
(20)
10) 通过不断调整权值和阈值进行误差反馈, 直到误差满足实际要求为止.
蚁群算法具有参数少、 寻优效率高等优点, 且易与其他算法结合, 其工作步骤如下:
1) 初始化蚁群算法的相关参数;
2) 蚂蚁节点i到j的状态转移概率计算公式为
(21)
其中τij表示节点i到j之间路径上的信息素,τij表示节点i到j的期望程度, allowedk表示允许访问该节点的集合;
3) 信息素更新规则为
τij(t+1)=(1-ρ)τij(t)+Δτij(1);
(22)
4) 当迭代次数到达最大迭代次数时, 终止运行, 否则返回步骤2)继续执行.
为克服单一技术的不足, 利用半监督技术和主动学习算法的优点, 本文提出一种将二者相结合的网络入侵检测方法, 工作步骤如下:
1) 采用网络行为探测器采集网络一段时间内的数据, 并对这些数据进行预处理, 如格式标准化、 去掉一些无用数据等.
2) 从预处理后的网络数据中提取可描述各种网络入侵行为的特征, 并用
(23)
对特征值进行缩放处理, 使其位于[0,1]内, 以便后续网络入侵检测建模.其中fi表示第i个网络入侵检测特征的原始值,fmax和fmin分别表示网络入侵检测特征的最大值和最小值.
3) 对于待检测的网络入侵检测样本集合, 采用半监督技术根据特征对网络样本数据进行聚类分析, 建立网络入侵检测的训练样本集合.
4) 采用最小二乘支持向量机对网络入侵检测的训练样本集合进行学习, 并引入蚁群算法搜索最优的最小二乘支持向量机参数值, 根据最优参数值建立网络入侵检测分类器.
5) 根据网络入侵检测分类器对待检测网络入侵检测样本进行检测, 输出网络入侵检测结果.
为分析半监督技术和主动学习算法相结合的网络入侵检测效果, 选择网络入侵检测标准数据集----KDD CUP99数据集进行仿真测试实验. KDD CUP99数据集共包含500万个样本, 样本以连接记录表示, 每条记录的最后一个标签信息表示网络入侵类型, 共包含4种入侵行为, 分别为Probing,DoS,U2R和R2L. 由于KDD CUP99数据集样本规模较大, 为方便操作, 随机选择部分样本进行仿真测试实验, 样本数量分布列于表1.
表1 实验选择4种入侵行为的样本数量分布
为验证半监督技术和主动学习算法相结合的网络入侵检测方法的优越性, 选择文献[11]和文献[12]的网络入侵检测方法进行对比测试. 两种方法测试环境相同: CPU为4核2.80 GHz, 内存为32 GB, 硬盘为800 GB, 操作系统为Windows 7, 仿真工具为MATLAB 2019.
当前网络入侵检测结果的评价指标较多, 本文选择网络入侵检测的正确率、 漏检率和误检率作为评价指标, 分别定义为
(24)
(25)
(26)
其中TN,TP,FP,FN定义见表2.
表2 混淆矩阵
文献[11]、 文献[12]的网络入侵检测方法与半监督技术和主动学习相结合的网络入侵检测方法性能对比实验结果如图2~图4所示. 由图2~图4可见:
图2 不同方法的网络入侵检测正确率Fig.2 Detection accuracy of network intrusion by different methods
图3 不同方法的网络入侵检测误检率Fig.3 Missed detection rate of network intrusion detection by different methods
图4 不同方法的网络入侵检测漏检率Fig.4 False detection rate of network intrusion detection by different methods
1) 文献[11]、 文献[12]的网络入侵检测均低于90%, 无法满足网络安全保障的实际正确率要求, 这是因为网络入侵十分复杂, 对比方法难以准确刻画网络入侵的变化特点, 使网络入侵检测的漏检率、 误检率较高;
2) 半监督技术和主动学习相结合方法的网络入侵检测高于95%, 可以满足网络安全保障的实际正确率要求, 这是因为本文方法结合了半监督技术和主动学习的优点, 可以很好地区别各种网络入侵行为, 减少了网络入侵检测的漏检率、 误检率, 具有明显优势.
文献[11]、 文献[12]的网络入侵检测方法与半监督技术和主动学习相结合的网络入侵检测方法的运行时间如图5所示. 由图5可见, 相对于文献[11]和文献[12]的网络入侵检测方法, 半监督技术和主动学习相结合的网络入侵检测方法的运行时间较短. 这是因为该方法采用半监督技术对网络入侵检测样本进行了预处理, 缩小了网络入侵检测的训练样本规模, 使训练时间明显缩短, 从而大幅度缩短了网络入侵检测时间, 可满足网络入侵检测的实时性和在线检测要求, 实际应用范围更广.
图5 不同方法的网络入侵检测时间Fig.5 Detection time of network intrusion by different methods
综上所述, 为减少网络入侵带来的网络通信和数据传输风险, 本文首先针对网络入侵检测过程中存在的问题, 提出了一种基于主动学习与半监督技术相结合的网络入侵检测方法, 该方法充分利用了半监督技术和主动学习的优势. 其次, 采用KDDCUP99数据集对网络入侵检测效果进行了测试, 测试结果表明, 本文方法不仅获得了较高的网络入侵检测正确率, 同时网络入侵检测效率也较高, 应用前景广阔.