基于麻雀搜索算法和改进粒子群优化算法的网络入侵检测算法

2022-05-07 07:07邹启杰汪祖民
计算机应用 2022年4期

高 兵,郑 雅,秦 静,邹启杰,汪祖民*

(1.大连大学信息工程学院,辽宁大连 116622;2.大连大学软件工程学院,辽宁大连 116622)

0 引言

近年来,随着网络安全意识的不断提高,网络入侵检测也受到了前所未有的重视。网络入侵检测通过对网络流量进行识别分类,及时发现异常流量并迅速作出决策。目前存在的两大难题分别为识别分类中对异常流量检测精度和检测效率的问题。基于机器学习的网络流量分类技术是通过网络流量的统计特征对其进行分类,而不是利用端口号和特征码,从而具有较高的检测精度和效率,因此有广阔的应用前景。

基于机器学习的网络流量分类根据不同的应用场景可以分为有监督分类和无监督分类。有监督分类是通过学习样本类别已知的数据集来构建分类模型,可以实现对已知的流量类型的高准确率检测。有监督分类的代表性方法有分类特征和梯度提升(Categorical features+gradient Boosting,CatBoost)算法、支持向量机(Support Vector Machine,SVM)、

K

-近邻(

K

-Nearest Neighbor,

K

NN)、决策树等。

本文提出基于麻雀搜索算法(Sparrow Search Algorithm,SSA)和改进粒子群优化(Sparrow Search Algorithm-Particle Swarm Optimization,SSAPSO)的网络入侵检测算法,对已证明的轻量级梯度提升机(Light Gradient Boosting Machine,LightGBM)进行参数寻优建立网络入侵检测算法。

本文的主要工作为:

1)提出了融合麻雀搜索算法的改进粒子群优化算法(SSAPSO),在大范围搜索过程中保证寻优精度的同时提高收敛速度;

2)设计了基于轻量级分类算法LightGBM 的网络入侵检测算法,利用SSAPSO 对LightGBM 算法进行参数寻优,达到了更高的检测精度。

1 相关工作

智能优化算法在参数寻优等领域取得了良好的效果。文献[3]将遗传算法和粒子群优化(Particle Swarm Optimization,PSO)算法相结合,在属性特征权重中更好地对数据集中案例的相似度寻优,但对于动态数据集的寻优精度还未证实;文献[4]提出一种改进的果蝇算法优化加权极限学习机入侵检测算法,利用果蝇算法迭代步长自适应来优化加权极限学习机隐含层输入权值和偏置,以避免算法陷入局部最优;文献[5]使用基本的PSO 算法优化极限学习机的输入权重与隐含层偏置参数并建立分类模型,提高了入侵检测的准确率,但没有考虑实时性问题;文献[6]使用堆叠稀疏自编码器对数据集进行特征降维,将降维后的数据使用LightGBM 算法进行训练,在提高了分类的精度的同时提高了检测效率;文献[7]中使用混沌映射和细菌觅食算法对引力搜索算法进行改进,再用改进后的引力搜索算法对SVM分类器的参数进行寻优;文献[8]提出一种融合PSO 算法的二进制飞蛾扑火优化算法,在增强局部搜索能力的同时避免陷入局部最优;文献[9]利用自适应PSO 算法优化SVM 参数,提高SVM 的分类性能;文献[10]将SVM 分类器的输出输入到另一个SVM 中训练最终的检测模型,得到一个双层的SVM 集成入侵检测模型。然而,SVM 等算法难以对入侵行为作出快速反应。其次,监督学习算法网络有大量参数难以整定,影响模型的检测精度;文献[11]将极端梯度提升(eXtreme Gradient Boosting,XGBoost)算法与改进PSO 算法相结合进行参数寻优,解决连续多变量优化问题;文献[12]采用PSO 算法优化XGBoost 对新冠肺炎的图像进行分类,准确率有所提升。但是,当数据量较大时,XGBoost 的复杂度较高,在空间和时间上的开销都比较大。

针对网络入侵检测的数据量大因而计算开销大且检测精度不高的问题,本文基于轻量级分类算法LightGBM 建立网络入侵检测模型。为了快速整定参数,使模型具备自适应训练的能力并获得更好的检测效果,本文将SSA 的大范围快速收敛特征与PSO 算法结合,使粒子群中的个体粒子向最优方向加快搜索,利用SSAPSO 对LightGBM 算法的参数寻优,得到最优网络入侵检测算法。

2 融合SSA的PSO算法

2.1 基本粒子群优化算法

PSO 算法是受鸟群觅食行为启发,具备全局迭代寻优能力的一种群智能优化算法。PSO 算法具有结构简单、鲁棒性好的优点,常被用于求解最优解的问题。

在一个多维空间中,PSO算法赋予种群

S

内每粒子

x

在每一维度上一个值,每个粒子都具有速度属性使其自身在不同维度上的值朝着更优方向进行更新。在迭代过程中,算法记录个体和群体的最优值作为每个个体的更新方向,算法流程如下:

步骤1 初始化粒子种群的各参数,将位置属性和速度属性赋予种群内的每一个粒子。

步骤2 通过适应度函数

F

获得每个粒子的适应度值,并通过比较适应度值大小获得全局最优值和个体最优值。

步骤3 通过全局最优值更新种群内各个粒子的速度和位置,分别用式(1)~(2)表示:

其中:

ω

为惯性权重,用来调节算法的局部搜索能力和全局搜索能力;

v

为粒子

i

d

维上的速度;

x

为粒子

i

d

维上的位置;

c

c

为加速因子,取值通常为2;

r

r

为[0,1]的随机数;

p

p

分别表示第

i

个变量在

d

维的个体最优值和全局最优值;

v

为粒子

i

d

+1维由以上变量更新后的速度;

x

为粒子

i

d

+1维由历史位置

x

和速度

v

更新位置。

2.2 基本SSA

SSA 是由Xue 等通过麻雀的觅食行为提出的一种启发式群优化算法,与传统的优化算法相比可以更快地收敛。麻雀在觅食的过程中,作为探索者的麻雀为种群提供搜索方向和区域,作为追随者的麻雀通过探索者的指引进行搜索,警戒者麻雀依靠反捕食策略避免种群陷入局部最优。

在迭代搜索的过程中,探索者的位置更新表达式如式(3)所示:

当预警值

r

小于安全值

ST

时,搜索者进行大范围跳跃式搜索;当预警值

r

大于等于安全值

ST

时,搜索者移动到其他位置进行搜索。

追随者的位置更新公式如式(4)所示:

2.3 SSAPSO

针对PSO 算法中大范围搜索过程中局部搜索能力和搜索精度不够高的问题,引入基本SSA。因为探索者麻雀相较其他算法搜索范围更大,并且可以快速更新其位置,可以将发现者的能力赋予部分粒子群优化算法以引导整个种群,达到快速收敛的目标。算法改进的具体流程如下。

步骤1 根据比例系数

a

确定种群内获得具有探索者麻雀能力的粒子比例。

其中:|

X

|为种群中位置最好的

PN

只麻雀,作为探索者粒子;|

X

|为种群中位置较差的

N-PN

只麻雀,作为跟随者粒子。步骤2 大范围搜索的环境下,设成为探索者的粒子的预警值

r

恒小于安全值

ST

,此时探索者粒子进行大范围跳跃式搜索,根据式(6)来更新探索者粒子的能力。

步骤3 其他粒子作为跟随者仍按照正常的速度由探索者粒子引导。根据探索者粒子能力的变化,生成影响因子

rr

,如式(7)所示,改变粒子过去位置和速度对现在的影响。

由式(8)~(9)更新跟随者粒子的速度和位置。

通过在PSO 算法中引入SSA,解决基本PSO 算法容易陷入局部最优、后期寻优的收敛速度慢和精度低等问题,SSAPSO 利用麻雀大范围快速搜索能力,提升粒子群收敛速度,提高算法的性能。

3 基于SSAPSO的LightGBM入侵检测算法

3.1 基本LightGBM算法

LightGBM 是在梯度提升决策树(Gradient Boosting Decision Tree,GBDT)算法框架下的一种改进实现,是一种基于Histogram 决策树算法的快速、分布式、高性能的GBDT框架。在2016 年由微软提出,凭借更快的训练速度和更低的计算资源消耗的优点被广泛应用。同其他提升算法一样,该算法将多个弱分类器提升为具有强分类效果的强分类器,可用于网络入侵检测中的异常流量检测。

目标函数

h

x

)如式(10)所示:

其中:

L

为损失函数,Ω 为正则项,

y

为预测值。模型通过损失函数和正则项来控制模型的精度和复杂度。模型通过负梯度来拟合损失,目标函数通过泰勒展开式可以获得,如式(11)所示:

其中

C

为常数项。将目标函数简化后可以获得式(12):

传统的教学注重知识的灌输,教学形式单一,教学内容枯燥乏味,学生在学习中极易形成疲劳和厌烦感,不利于学生学习成绩的提高。小学数学教师可以把多媒体教学引入数学课堂上,利用其鲜明的色彩即视感以及生动形象的视听效果,使数学课堂充满新鲜感和趣味性,这样,可以有效地激发学生的学习兴趣,使得学生兴致十足地投入到数学学习中去,从而提高小学数学的教学效果。

3.2 SSAPSO-LightGBM入侵检测算法

在网络入侵检测模型训练过程中,LightGBM 算法相较于GBDT 算法有着较快的训练速度并且寻优精度更高,以及高效的并行计算速度。然而,由于计算复杂度过高等问题,会出现决策树加深现象,从而产生过拟合。

另外,由于LightGBM 算法最优切分变量,在模型参数寻找最优解的过程中,无法适应大范围快速参数寻优场景。针对以上问题提出SSAPSO-LightGBM 算法。SSAPSOLightGBM 算法首先对网络入侵数据集进行预处理,将源文件转换成数字标识的函数。用预处理后的测试集检测SSAPSO,将该数据集上的检测精度作为适应度值返回。模型流程如图1 所示。

图1 SSAPSO-LightGBM算法模型Fig.1 SSAPSO-LightTGBM algorithm model

然后利用SSAPSO 大范围快速搜索能力,对LightGBM 中难以整定的参数进行快速寻优,使PSO 算法在保证寻优精度的同时快速收敛,并得到最优的网络入侵检测算法。最后,通过测试集对得到的最优网络入侵检测算法进行测试。

LightGBM 算法中包含很多参数,参数的不同取值对分类的结果都会造成一定的影响。使用SSAPSO 对LightGBM的参数进行寻优,以获得更好的检测精度和检测速度。设定需要被寻优的参数如表1 所示。

表1 LightGBM寻优参数Tab 1 LightGBM optimization parameter

其中:max_depth 参数用来限制树的深度,min_data_in_leaf 参数用来处理leaf_wise 树的过拟合问题,通过设置feature_fraction 参数来使用特征采样加快训练速度。

SSAPSO-LightGBM 算法主要分为四个步骤:

步骤1 数据预处理。

将入侵检测数据集进行归一化等数据预处理,划分为训练数据集、适应度测试数据集以及测试数据集。训练集包括了22 种类型的入侵攻击,测试集中则出现了17 种训练集中没有的入侵攻击。

2)标准化处理。计算公式如式(13)所示:

其中:

x

表示特征值;

μ

为所有样本数据的均值;

λ

为所有样本数据的标准差;

x

表示每个数据样本该维特征标准化后的结果。

3)归一化处理。计算公式如式(14)所示:

步骤2 将训练集代入LightGBM 算法中,初始化算法参数建立入侵检测模型。令

c

=

c

=2,

ω

=0.9,空间维度

dim

=30,解空间范围为[-10,10]。

步骤3 通过SSAPSO,使用适应度测试数据集来进行检测,将该数据集上的检测准确率作为适应度值返回。根据适应度值不断迭代最优个体和当前的全局最优解,判断是否达到终止条件:若达到,得到最优参数;否则对粒子的速度和位置进行更新,逐步迭代建立最优检测模型。

步骤4 利用训练集数据训练LightGBM分类器,将测试集数据在最优检测模型上进行测试,对模型分类效果进行验证,并调整分类器参数,以达到最优意义下的各项参数,输出测试结果。

4 实验与结果分析

4.1 入侵检测数据集及环境

4.1.1 入侵检测数据集

为验证模型的检测效果,本文选择经典的入侵检测数据集KDDCUP99进行实验,训练集和测试集信息如表2 所示。该数据集具有41 维特征,分为四种攻击类型及一种正常类型,分别为拒绝服务(Denial of Service,DoS)攻击、未授权远程访问(Remote-to-Login,R2L)攻击、未授权本地访问(User-to-Root,U2R)攻击及监听(Probeing,PROBE)攻击,以及一种正常流量(Normal)。攻击类型详细描述如下:

1)DoS 攻击:攻击者占用处理有效请求所需的计算资源或内存资源,使得系统无法应答正常的用户请求。

2)R2L 攻击:攻击者远程非授权接入系统,使用有效用户账户。

3)U2R 攻击:攻击者远程接入网络,并非法获得超级用户权限,使用有效用户账户。

4)PROBE 攻击:攻击者试图获得计算机网络相关信息。

表2 给出了KDDCUP99 数据集的详细信息。本文随机抽取了5 000 条数据进行实验,其中3 500 条为训练集,1 500 条为测试集。

表2 KDDCUP99的训练集和测试集信息Tab 2 Information in KDDCUP99 training and test dataset

4.1.2 实验环境

实验硬件环境采用Intel Core i7-7600 CPU+GeForce GTX 1060+16 GB 内存;软件环境使用Anaconda3-5.3.1+Python 3.6.1。

4.2 实验结果分析

4.2.1 SSAPSO的性能测试

为验证SSAPSO 的优化性能,本文使用Step 函数、Sphere函数、Schwefel2.22 函数和Rastrigin 函数等单多峰值函数测试SSAPSO 性能。其中Step 函数、Sphere 函数、Schwefel2.22函数为单峰值函数,适合检验改进算法在大范围搜索环境下的收敛速度;Rastrigin 函数作为多峰值函数,适合检验算法的寻优精度。表3 给出了4 个函数的函数表达式及其变量的取值范围、维数和最优值等变量。

表3 测试函数变量Tab 3 Test function variable

将SSAPSO 与基本的PSO 算法分别在Step 函数、Sphere函数、Schwefel2.22 函数、Rastrigin 函数等单多峰值函数上进行比较,通过互不干扰的500 次迭代,寻优结果如图2 所示。

如图2(a)、(b)所示,在Step函数、Sphere函数上,SSAPSO 的收敛速度明显优于基本的PSO 算法且都找到最优值;如图2(c)所示,在Schwefel2.22 函数上,SSAPSO 可以跳出局部最优,并能快速收敛,基础的PSO 算法在50 次左右收敛,但SSAPSO 的收敛速度明显更快;如图2(d)所示,在Rastrigin 函数上,SSAPSO 在500 次迭代中快速收敛,而PSO算法明显在500 次迭代中没有达到最优。因此SSAPSO 在收敛速度和精度上相较于基本PSO 算法的性能更优越。

图2 SSAPSO与PSO优化效果对比Fig.2 Comparison of optimization effect between SSAPSO and PSO

4.2.2 SSAPSO优化LightGBM效果展示

在对LightGBM 参数优化过程中,将基本PSO 算法和SSAPSO 作对比。通过50 次迭代,判断PSO 算法和SSAPSO优化LightGBM 算法的收敛速度和准确率,结果如图3 所示。

图3 PSO和SSAPSO收敛速度和准确率对比Fig.3 Comparison of convergence speed and accuracy between PSO and SSAPSO

由图3 可知,在收敛速度上,SSAPSO 在20 次左右完成收敛,计算开销为0.525 s,相较于PSO 算法,SSAPSO 的收敛速度更快且寻优精度更高,准确率达到99.67%。因此,在对LightGBM 的参数寻优这一应用过程中,改进的SSAPSO 优于基本PSO 算法。

4.2.3 SSAPSO优化LightGBM检测准确率展示

在本文实验中,根据模型检测样本类别和样本实际类别进行计算,采用准确率(Accuracy,Acc)、召回率(Recall)、精确率(Precision,Pre)和F1 指数(F1_score)作为检测各类攻击效果的评价指标。各指标的计算公式分别如下:

其中:

TP、TN、FP、FN

中第一个字母表示分类器识别结果是否正确,正确用True 的首字母T 表示,错误用False 的首字母F 表示;第二个字母表示分类器的判定结果;P 表示分类器判定为正样本(Positive Sample),N 表示分类器判定为负样本(Negative Sample),在这里攻击类样本是正样本,正常样本为负样本。

TP

(True-Positive)表示分类器对攻击类样本识别正确的个数,

TN

(True-Negative)表示分类器对正常样本识别正确的个数,

FN

(False-Negative)表示分类器将攻击类样本检测为正常样本的个数,

FP

(False-Positive)表示分类器将正常样本检测为攻击类样本的个数。

表4 给出了多个分类算法使用KDDCUP99 数据集的运行结果。由表4 可知,SSAPSO-LightGBM 算法的准确率、召回率、精确率和F1 指数都高于其他三种分类算法。SSAPSOLightGBM 算法对比CatBoost 算法得出的准确率、召回率、精确率和F1 指数分别提升了15.12%、3.25%、21.26% 和12.25%,召回率高则漏报率低。由此可见,SSAPSOLightGBM 算法对于攻击样本具有更好的特征表达,能更准确地对特征进行分类,从而有利于对入侵检测更高效、更准确地进行判别。

表4 分类算法检测准确率 单位:%Tab 4 Classification algorithm detection accuracy unit:%

然后,对本文研究测试数据集中的5 类数据(一种正常,四种异常),采用SSAPSO-LightGBM 算法、基本LightGBM 算法、CatBoost 算法和

K

NN 算法进行网络入侵检测对比,检测结果如表5 所示。由表5 可知,SSAPSO-LightGBM 算法对Normal 检测准确率高达99.60%,对R2L 的准确率高达98.40%,对U2R 的准确率高达97.00%,对PROBE 的准确率高达96.00%。SSAPSO-LightGBM 算法对数据集中Normal、R2L、U2R、PROBE的检测准确率相较于LightGBM算法分别提升了0.61%、3.14%、4.24%、1.04%和5.03%。但在对DoS的检测中,SSAPSO-LightGBM算法的检测精度略低于CatBoost算法,但也高达98.4%。CatBoost在各类型准确率的表现上与LightGBM相近,但在实际的应用中,LightGBM算法的轻量化已经得到证明。因此,与其他算法相比,SSAPSO-LightGBM更加适合入侵检测。

表5 分类算法的网络入侵检测准确率对比 单位:%Tab 5 Comparison of network intrusion detection accuracy among classification algorithms unit:%

5 结语

针对网络入侵检测中LightGBM 算法训练模型难以快速整定参数的问题,本文使用SSA 中的大范围快速搜索能力对PSO 算法进行改进,并使用SSAPSO 对LightGBM 算法参数进行寻优,建立SSAPSO-LightGBM。通过对比,SSAPSOLightGBM 检测精度高于其他算法,且其轻量化的特点适合对入侵检测进行分类应用。未来的研究中,可以使用深度学习的相关算法进一步挖掘数据关系,建立更加智能化的模型。