改进天牛须搜索算法的工控系统入侵检测
2021-08-23汪祖民田纪宇王宝凤
汪祖民,田纪宇,王宝凤
(1.大连大学 信息工程学院,辽宁 大连 116622;2.周口师范学院 网络工程学院,河南 周口 466001)
0 引 言
工业控制系统(industrial control system,ICS)入侵检测有着不同于一般网络入侵检测的要求。首先,ICS自身的计算资源有限,对样本的检测需要尽可能节约计算资源以不影响工控系统本身运行的稳定性[1]。其次,工控系统对入侵检测时间更加敏感[2]。张玲等[3]提出了一种将人工免疫算法和随机森林相结合的自适应入侵检测模型。陈冬青等[4]提出使用一种改进的多新息Kalman粒子群算法对支持向量机进行参数寻优后用于工控入侵检测。然而,支持向量机算法在处理大规模样本时需要耗费大量计算资源且检测时间冗长[5]。LightGBM[6]、CatBoost[7]等改进的提升算法近年来被提出,并凭借其轻量化的特点被应用在入侵检测领域。
针对工控系统入侵检测的特点,受分布式学习[8]的启发,本文提出了将分类算法预测模型的训练与检测分离的迁移训练方法。该方法将预测模型的训练任务迁移到工控系统之外的计算设备上,并将训练好的预测模型通过高速网络实时更新到工控系统,工控系统仅承担检测任务。因此,分类算法的选择需要在保证检测精度的前提下,充分考虑检测的实时性。XGBoost算法对样本的检测有着高速准确的特点,但其参数难以整定。文中提出了一种随机属性约束策略(random property constraints,RPC)对天牛须算法(beetle antennae search,BAS)进行改进,并使用改进后的天牛须算法对XGBoost算法进行参数寻优,提升分类算法在模型训练时的自适应能力。仿真结果表明,相比LightGBM、CatBoost、随机森林(random forest,RF)、K近邻(K-nearest neighbor,KNN)等算法,RPCBAS-XGboost工控系统入侵检测模型在精度和实时性上更优。
1 迁移训练方法
工控系统有限的计算资源难以满足分类算法模型训练的要求,因此可将模型训练任务迁移到工控系统之外的云或边缘计算设备,工控系统仅承担检测任务。文献[3]提出的人工免疫算法表明,静态的分类模型无法更好解决未知的攻击,需要在检测中对原始数据集中的样本进行更新并收集数量较少的样本来平衡数据集以提高模型的自适应能力。因此,工控系统将检测到的具有训练价值的样本保留并通过高速、低时延网络上传,添加至数据集以供下一次模型训练。计算设备动态的训练模型并将训练好的模型实时更新到工控系统。迁移训练方法为工控系统与机器学习耗费大量计算资源不相容的问题提供了解决方法,模型训练任务迁出节省的计算资源在保持工控系统自身稳定运行的同时也提升了检测速度。其方法架构如图1所示。
图1 工控系统入侵检测迁移训练方法架构
2 改进天牛须算法
2.1 基本的天牛须搜索算法
天牛须搜索算法(beetle antennae search,BAS)是于2017年由Jiang.X等[9]提出的一种新型的生物启发式优化算法。相较粒子群算法、灰狼优化算法等群搜索算法,天牛须算法使用单个个体进行搜索,寻优的速度快,精度高,对计算资源的需求低。天牛须算法受天牛的觅食行为启发而提出。天牛觅食时由两根天牛须依据食物气味的强弱来判断下一步的行进方向。若左边的天牛须收到的气味强度大于右边,则天牛的下一步前往左边飞行搜索食物,反之则朝向右边。天牛左右的两须分别位于质心的两边,天牛须的搜索步长与天牛两须之间的距离有固定的比值且天牛头部的下一步朝向任意。其简化模型如图2所示。
图2 天牛须简化模型
(1)
(2)求解天牛左右须位置坐标xleft、xright
(2)
(3)
(3)根据适应度函数f(x)计算左右两须的适应度值Fleft、Fright
Fleft=f(xleft)
(4)
Fright=f(xright)
(5)
若Fleft (6) 若Fleft>Fright,则下一步的移动位置为 (7) 考虑到天牛须算法在寻优过程出现的折点过多,振幅过大造成的难以快速收敛问题,提出一种随机属性约束策略(random property constraints,RPC)对其优化。对于一个算法,将其具有随机性的属性称为随机属性,其固定不变的属性称为基本属性。该策略选取算法自身的一种或数种随机属性进行约束,并将此约束从寻优开始一直持续至结束。以天牛须算法为例,天牛质心坐标的初始位置、下一步头部方向、左右两须之间的初始距离等算法的属性在一定范围取值随机,称为随机属性。以算法的每个随机属性a1,>a2,>a3…an作为元素组成的有限集合称为随机属性集合,记作Sr Sr={a1,a2,a3…an} (8) 在算法开始前,从随机属性集合Sr中选择想要约束的随机属性元素ai。在每一次迭代前,天牛分裂出m只天牛,每只天牛在随机属性ai上对应一种不同的随机值。在每一次迭代后,保留寻优结果最好的天牛。因此,在收敛过程中,天牛在随机属性ai上的分裂与保留使每次迭代获得更优结果的概率增加,即自信息量[10]减小,对随机属性ai完成约束。 改进的天牛须搜索算法(RPCBAS)将基本的天牛须算法融合了随机属性约束策略。天牛须算法中,天牛下一步的头部方向这一随机属性在寻优过程中可以使其获得更好的全局寻优能力,但也是造成其寻优路径无序振荡和不稳定性的重要因素。因此,选择天牛头部的下一步方向这一随机属性进行约束。算法改进具体流程如下: (1)确立天牛头部下一步的随机方向为受约束的随机属性ai,由式(8)得ai∈Sr。 (2)设分裂值m=1,即天牛A每一次迭代前分裂出一只天牛B对随机属性ai进行约束,天牛A、B在随机属性ai上具有不同的随机值即不同的头部随机方向。 (3)由式(1)得出在n维空间里仅头部随机方向不同的两只天牛。 (4)由式(2)、式(3)分别计算出天牛A、B左右天牛须的位置,并根据式(4)、式(5)计算出两只天牛左右天牛须对应的适应度值。 (5)由式(6)、式(7)分别确定天牛A、B下一步的移动位置。 (6)由式(4)、式(5)得出天牛A、B下一步的移动位置所对应的适应度值并进行比较,保留寻优效果好的一只天牛进行下一步迭代。 若FA>FB, 保留天牛A 若FA 为验证RPCBAS算法的优化性能,选择了Sphere函数、Step函数、Griewank函数等3个具有代表性的单多峰值函数进行比较[11]。Sphere函数具有连续、单峰的特点,适合检验函数的收敛速度。Step函数具有阶跃性,寻优难度较大的特点,适合检验函数的寻优能力。Griewank函数有许多局部极小值且规则分布,可以检验函数跳出局部最优的能力。测试函数见表1。 表1 测试函数、算法参数 将改进的RPCBAS与BAS算法进行比较,将RPCBAS要约束的随机属性设定为头部下一步的随机方向,分裂值m=1。按照表1中参数,两种算法互相不干扰迭代500次以上。函数迭代结果如图3到图5所示,改进后的算法相较原算法能够更快收敛且跳出局部最优。 图3 Sphere函数 图4 Step函数 图5 Griewank函数 XGBoost算法是提升算法的一种,由陈天奇等[12]提出。XGBoost的设计高效且灵活,它是将多组基于树的弱分类器通过迭代计算提升成具有准确分类效果的强分类器。它的核心思想就是通过分裂特征产生一棵新的树来拟合上一次预测的残差,模型的预测值yi为 (9) 模型的目标函数通过损失函数、正则项来控制着模型的预测精度和复杂程度,防止过拟合的产生,提高模型的泛化能力。模型的目标函数如下 (10) (11) 其中,T表示叶子节点的总个数,γ、θ是正则化参数,ωj表示第j个叶子节点的输出值。正则项可以通过控制模型的复杂程度来增强模型的泛化能力,防止过拟合。将式(10)通过泰勒展开式展开得 (12) (13) (14) XGBoost算法中具有大量参数难以整定,算法作者将参数分为3类:通用参数、Booster参数、任务参数。工控系统的入侵检测属于多分类问题,本文主要利用RPCBAS算法对选取的部分Booster参数和任务参数进行寻优,需要寻优的参数见表2。 表2 XGBoost参数 利用RPCBAS算法对XGBoost参数寻优的具体流程如下: 步骤1将入侵检测的数据集进行归一化处理,并将处理好的数据集划分成训练集和测试集。 步骤2将XGBoost的参数作为被优化的对象带入到RPCBAS算法中,初始化参数值带入XGBoost分类器中,使用训练集训练出预测模型。 步骤3将训练集交叉验证来检验预测模型的检测率,并将检测率作为RPCBAS算法的适应度值返回,逐步迭代得到最优参数建立预测模型。 步骤4 将测试集带入训练好的最优预测模型进行验证,输出检测结果来判断检测精度,并记录检测时间来判断算法在工控系统中的实时性表现。 RPCBAS-XGBoost工控入侵检测算法模型如图6所示。 图6 RPCBAS-XGBoost工控入侵检测算法模型 本文采用了密西西比州立大学基础设施保护中心于2014年提出的工控入侵检测标准数据集[13]。数据集包含正常行为(Normal)和4种攻击类别,分别是指令注入攻击、响应注入攻击、侦察攻击(RECO)和拒绝服务攻击(DDOS),指令注入攻击又分为MSCI、MPCI、MFCI这3种攻击形式,响应注入攻击分为NMRI、CMRI两种攻击形式。数据集中的每条样本具有26个特征和1个标签。本文从原始数据中随机均匀抽取5000条样本用于实验,并将其中4000条划分为训练集,1000条划分为测试集。 本实验在Python 3.6.1,CPU为Intel i7-6700H 2.59 GHz,16 G内存,Win10 64位操作系统的仿真环境下进行实验。 4.2.1 RPCBAS优化XGBoost效果分析 为测试RPCBAS-XGBoost算法在参数寻优上的优越性,将其与BAS-XGBoost算法进行比较。设置RPCBAS算法参数步长nstep=0.6,维数n=6,常数c=3,变步长系数eta=0.95,随机属性ai为头部随机方向,分裂值m=1,迭代次数为50。被优化的算法XGBoost的初始化参数为表2中取值范围内靠近下限的随机值。两种算法优化效果在适应度和在各攻击形式下的检测率分别如图7到图8所示。 图7 适应度曲线 图8 各攻击形式分类检测率 如图7到图8所示,RPCBAS-XGBoost模型在收敛速度上和适应度上均优于BAS-XGBoost模型且具有跳出局部最优的能力,对各种攻击形式的分类上具有更好的精度。经测试集验证,RPCBAS-XGBoost算法的最优检测率达到97.76%,具有良好的分类效果。 4.2.2 RPCBAS-XGBoost入侵检测模型性能分析 为进一步检验RPCBAS-XGBoost入侵检测模型对入侵行为的检测能力,将LightGBM、CatBoost、RF、KNN等4个分类算法建立入侵检测模型与其进行比较,在测试集上的检测效果如图9所示。 图9 各入侵检测模型检测效果 如图9所示,相比较其它检测模型,各种攻击形式下RPCBAS-XGBoost模型具有优于其它模型的检测精度。为对各模型进行总体直观的评价,引入检测率、误报率和漏报率等3项评价标准[12],检测结果见表3。 表3 各模型检测精度 通过表3实验数据可以看出,在检测的精度上,RPCBAS-XGBoost有较高的检测率和较低的误报率,CatBoost同为提升算法,但是在检测精度上略低于RPCBAS-XGBoost,KNN算法的检测效果最差。 4.2.3 入侵检测模型在工控环境下的实时性分析 工控系统对入侵检测时间敏感,实时性要求高。因此预测模型对样本的检测时间应尽可能的短。将每个预测模型对测试集分别进行30次的检测实验,各模型对1000条测试集样本检测时间如图10所示。 图10 各模型检测时间 由图10及表4的实验数据可知,RPCBAS-XGBoost模型在检测时间上表现更优。在不重复的30次实验下,其对测试集的平均检测时间为0.246 ms,远低于其它4种模型。因此,RPCBAS-XGBoost在工控系统入侵检测的实时性具有很好的表现。 表4 各模型平均检测时间 针对工控系统对入侵检测的高实时性、低计算资源占用和高检测率的要求,本文提出了一种将模型训练与入侵检测分离的迁移训练方法来解决工控系统自身计算资源有限的问题。并提出RPC策略通过对BAS算法的随机属性进行约束,减少BAS算法在寻优过程的振荡幅度,提高收敛速度。通过使用改进后的BAS算法对XGBoost算法的参数进行优化,训练出具有实时检测能力的入侵检测模型。实验结果表明,RPCBAS-XGBoost在保证了检测精度的同时,在检测实时性上的表现也优于其它检测模型,适合工控系统入侵检测。2.2 随机属性约束策略
2.3 改进的天牛须搜索算法(RPCBAS)
2.4 改进算法性能测试
3 融合RPCBAS算法的XGBoost工控入侵检测算法
3.1 基本的XGBoost算法
3.2 RPCBAS-XGBoost工控入侵检测算法
4 仿真实验
4.1 实验数据及环境
4.2 实验结果分析
5 结束语