APP下载

基于XGBoost的网络安全风险评估模型研究

2019-12-10蔡元凯姚善化郑晓亮

关键词:分类器网络安全样本

蔡元凯,姚善化,郑晓亮

(安徽理工大学电气与信息工程学院,安徽 淮南 232001)

移动互联网、物联网等技术的发展带来了海量的数据,其中蕴含了许多重要的信息,因此网络安全愈发重要。网络安全主要包括通信网络系统等在内的所有系统相关的设备、数据、行为以及内容安全[1]。网络安全不仅关系到个人生活,还关系到社会稳定以及国家的正常运转,例如2018年平昌冬奥会开幕式当天,通信网络系统受到恶意攻击,导致通信中断,奥运会官网均陷入瘫痪。因此,人们对网络安全愈发重视。

网络安全风险评估能科学地分析网络风险,运用专业的工具及时发现网络中的脆弱点,并采取相应的措施消除脆弱点减少风险[2]。文献[3]利用贝叶斯网络通过概率推理来对网络安全状况进行预测;文献[4]则通过改进BP神经网络来进行风险评估;文献[5]利用隐马尔科夫方法来建立网络安全评价模型,此外还有采用层次分析法[6],灰度理论[7],支持向量机[8],模糊推理[9]等来对风险进行预测。由于通信技术的迅速发展,数据量剧增,以上方法存在对海量数据处理效率低,计算速度慢,准确率差,而且过于依赖先验知识,主观性强,以及可解释性不强、建模时间长等问题。

集成学习是将样本经过若干个基学习器进行分析,然后将所有基学习器分析的结果集合起来作为最后的结果。比较典型的方法有随机森林和梯度提升树GBDT。随机森林由许多相互独立的随机决策树并行生成,因此对于高维数据具有良好的处理能力,并且能够输出特征的重要程度,但是当数据噪声比较大时,易出现过拟合现象。GBDT是由基学习器串行生成,它能灵活处理各种非线性数据且具有较高的准确度,但由于难以并行训练数据,因此在面对一些高维稀疏的数据时,计算复杂度高且比较耗时。这两种方法现已广泛的用于流量预测[10]以及入侵检测[11]等领域。

1 XGBoost模型及应用

XGBoost作为集成学习的一个方法,它的基本功能是用若干个弱分类器经过迭代后预测一个新的分类隶属度,样本分类错误的分类器在下一步将获得更高的权重,最后组成一个强分类器[12]。这些分类器的学习是以定义一个目标函数为基础的,这个函数表示训练损失和正则化,前者描述了模型预测的准确率,后者描述了模型的复杂度[13]。XGBoost的基学习器是分类和回归树,其核心原理就是不断地对特征进行分裂,然后通过不断添加树的方式更新函数去拟合之前预测残存的误差,集成树模型为

(1)

F={f(x)=wq(x)}(q∶Rm→T,w∈RT)

(2)

式中:wq(x)为叶子节点q的得分,F对应了所有K棵树的集合,而f(x)为其中一棵树。当训练结束生成k棵树后,对样本分数的预测就是按照特征将每棵树分数相加。定义目标函数为

(3)

(4)

γ对叶子节点的数目进行控制,T表示叶节点的数目,w表示叶节点的得分。为了防止过拟合,需要较小的预测误差以及较少的叶子节点,并且节点分数要合适。这时目标函数变为

(5)

式中:Ij为每个叶子节点j上样本下标的集合。由于添加了两个正则项,因此这里g是一阶导数,h是二阶导数,且

Gj=∑i∈Ijgi,Hj=∑i∈Ijhi

(6)

最终公式(5)可化简为

(7)

使wj导数为0求得最优解代入(7)得

(8)

(9)

其中第一项表示向左分枝得到的增益,第二项为向右分枝得到的增益,第三项表示当前节点不分裂时得到的增益,γ为代价值。XGBoost使用贪心算法遍历所有特征的分割点,同时通过设置阈值来避免树生长过深。传统的梯度提升树模型缺乏正则化因子,使得容易发生过拟合,而XGBoost通过提供一个正则化项来限制过拟合,从而克服了这个缺点,同时XGBoost为了达到较高的训练速度而采用了并行化处理,因此,现已广泛用于金融风控[14]、用户行为预测[15]等领域。

2 实验分析

(1) 实验数据描述

环境因素和人为因素对网络系统的安全运行影响巨大,其中环境因素主要包括自然灾害以及软硬件故障等,人为因素主要包括恶意攻击等行为和误操作等非恶意行为。以网络安全风险评估等级分类识别为背景,经过对数据作预处理后,最终选取了如网络攻击等具有代表性的影响因素作为输入特征,输出标签以极低、低、中、高、极高表示风险评估等级,并以1~5进行编号,取值越大,风险等级越高,具体数据描述见表1。

表1 网络安全风险评估数据描述

(2) 模型构建和参数调整

将数据集加载入XGBoost工具包进行建模,其中70%为训练集,剩下30%为测试集对模型进行训练。XGBoost的常用参数主要分为通用参数、学习目标参数与booster参数。由于对网络安全风险划分等级属于多分类问题,因此目标函数(objective)设置为‘multi:softmax’,类别数(num_class)设置为‘5’。

对于分类模型性能的评价,其评价指标主要有以下几种。

精确率(Precision):它反映的是模型预测到某个类别的样本实际中也属于那个样本所占的比率,定义如下

(10)

召回率(Recall):它反映的是样本中能被模型正确分到所属类别的比率,定义如下

(11)

F1值:是精确率和召回率的加权值,数值越大表明模型越准确,定义如下

(12)

式中:TP为将正样本预测也为正的样本数,FP将负样本预测为正的样本数,FN为为将正样本预测为负的样本数。

(13)

最大树深(max_depth)是用来避免陷入过拟合。在其他参数确定的情况下,不断调整学习率和最大树深,当学习率为0.04,最大树深为6时模型训练效果最好,实验结果如图1所示。

图1 不同学习率和最大深度下性能指标对比

(3) 实验结果和讨论

用训练完毕后的模型对测试样本进行预测并输出结果,即预测风险评估等级。得到表2的混淆矩阵,其中混淆矩阵对角线上的数字表示共有64个样本被正确分配到所属的类别,非对角线上的数字表示共有3个样本未能被正确分类,模型分类准确率为95.52%,分类效果良好。

表2 模型混淆矩阵

图2 特征重要度直方图

同时输出特征重要性直方图,由图2可知,软硬件故障、网络攻击以及物理环境对网络系统的安全运行有很大影响,在日常的评估及维护工作中需要重点关注。

为了比较不同模型之间的性能差异,采用随机森林和梯度提升树(GBDT)两种模型作为对比。随机森林的学习器只对部分特征进行随机优化,而且对于样本的抽样属于有放回的,且训练方式为并行,因为他们之间没有关联关系;而梯度提升树的学习器之间存在关联关系,所以其训练方式只能是串行,集成方式为加权和,三种模型的性能比较结果如表3所示。

表3 三种模型性能比较

可以看出,XGBoost相比于GBDT,其运用二阶导数对函数的近似残值进行梯度下降,而GBDT只用了一阶,所以精度更高。并且XGBoost可根据特征粒度进行并行计算,提高了计算速度,在实际工业界的应用中也进行了大量的优化,因此拥有良好的泛化性和扩展性。

3 总结

传统的风险评估方法面对当前复杂的网络及海量数据存在主观性强、效率低等问题,本文利用XGBoost准确度高、速度快、泛化性强等特点,以影响网络安全运行相关因素为输入构建风险评估模型,实验表明该模型能够快速准确地对网络运行状况划分等级,且比其他机器学习模型有更高的准确度,可以保障和支持网络的平稳运行。

猜你喜欢

分类器网络安全样本
用样本估计总体复习点拨
网络安全
网络安全人才培养应“实战化”
推动医改的“直销样本”
上网时如何注意网络安全?
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
随机微分方程的样本Lyapunov二次型估计
村企共赢的样本
我国拟制定网络安全法