APP下载

基于高斯朴素贝叶斯的网络安全态势感知技术研究与应用

2021-10-24谷洪彬杨希魏孔鹏

计算机时代 2021年10期
关键词:网络安全

谷洪彬 杨希 魏孔鹏

摘要: 网络安全态势感知技术是一种基于环境的、动态的、整体的数据融合方法,可以从宏观角度把数据融合起来,是网络安全强有力的监控技术和保障技术。通过机器学习算法发现数据之间的相关性,可以发现数据之间潜在的联系。高斯朴素贝叶斯是机器学习中较为通用的一种算法,通过对KDD CUP99数据集的训练和测试,得到的模型有效地对网络安全测试数据进行了预测。

关键词: 高斯朴素贝叶斯; 网络安全; 态势感知; KDD CUP99数据集

中图分类号:T9391.4          文献标识码:A     文章编号:1006-8228(2021)10-64-04

Research and application of key technologies for network security situation

awareness based on Gaussian Naive Bayes

Gu Hongbin, Yang Xi, Wei Kongpeng

(Panjin Vocational & Technical College, Panjin, Liaoning 124000, China)

Abstract: Network security situation awareness technology is an environment-based, dynamic, overall data integration method, which can integrate data from a macro perspective, and is a powerful monitoring technology and guarantee technology of network security. Potential associations between data can be found by machine learning algorithms. Gaussian Naive Bayes is a general algorithm in machine learning, by training and testing on the KDD CUP99 dataset, the obtained model effectively predicts the testing data of network security.

Key words: Gaussian Naive Bayes; network security; situation awareness; KDD CUP99 dataset

0 引言

態势感知技术是网络安全强有力的监控技术和保障技术,面对传统网络安全技术无法较好地检测网络状态和探究其变化规律等问题,本文结合机器学习和大数据在分析、预测方面的优势,通过数据融合的方式将入侵检测系统、日志文件、防火墙、网络设备等数据进行归一化操作,然后基于这些统一的数据进行进一步的态势评估和预测。并对不同机器学习算法在网络安全态势感知评估与预测效果以及数据训练耗时方面进行了对比。

1 网络安全态势感知的相关概念

状态是指一个物质系统中各个对象所处的状况,由一组测度来表征,态势是系统中各个对象状态的综合,是一个整体和全局的概念。任何单一的状态均不能成为态势,它强调系统及系统中对象之间的关系[1]。态势感知是指获取一个系统中各对象要素的数据,以及对这些数据表征的系统的理解和预测。

文献[2]探讨了网络安全态势感知的概念,认为它是“在大规模网络环境中,对能够引起网络态势发生变化的安全要素进行获取、理解、显示以及预测未来的发展趋势”。

国外对网络安全态势感知的研究开始得较早且相对系统化,最早是1988年Endsley定义网络安全态势感知分为三步,即“在网络的特定时空环境下,对网络要素的获取、态势理解、对未来的预测”,如图1所示。

2 网络安全态势感知的关键技术

文献[3]对网络安全态势评估的算法有较大篇幅的论述,该文把网络安全态势评估的算法分为以下几类:基于逻辑关系的融合方法、基于数学模型的融合方法、基于概率统计的融合方法、基于规则推理的融合方法。在网络安全态势预测方面,一般采用神经网络、时间序列预测法和支持向量机等方法。

文献[4]对网络安全态势评估的算法分为以下三类:知识推理方法、统计方法、灰度理论方法。

文献[5]对网络安全态势感知的关键技术分为基于层次化分析、机器学习、免疫系统、博弈论的态势感知方法。

从以上三篇综述文章可以看出,在网络安全态势感知研究的早期,属于机器学习的神经网络、时间序列预测法和支持向量机等方法,仅用于网络安全态势预测方面。如今,机器学习正逐渐成为网络安全态势感知技术中一个单独的分类。以“机器学习”和“网络安全态势”为关键字检索到七篇论文[6-12]均为2015年之后发表的硕士和博士论文,说明应用机器学习技术进行网络安全态势感知的研究,所涵盖的知识深度和内容足够广泛。

3 基于朴素贝叶斯的网络安全态势感知技术研究

3.1 朴素贝叶斯

朴素贝叶斯方法是基于贝叶斯定理的一组有监督学习算法,即“朴素”地假设:每对特征之间相互独立。给定一个类别y和一个从x1到xn的相关的特征向量,贝叶斯定理阐述了以下关系:

[Py|x1,…,xn= PyP(x1,…,xn|y)P(x1,…,xn)]  ⑴

使用朴素(naive)的假设-每对特征之间都相互独立:

[P(xi|y,x1,…,xi-1,xi+1,…xn) =P(xi|y)]    ⑵

对于所有的i都成立,这个关系式可以简化为

[Py|x1,…,xn= P(y)i=1nP(xi|y)P(x1,…,xn)]  ⑶

由于在给定的输入中P(x1,…,xn)是一个常量,我们使用下面的分类规则:

[Py|x1,…,xn∝P(y)inP(xi|y)]   ⑷

[y= argmaxyP(y)i=1nP(xi|y)]  ⑸

我们可以使用最大后验概率(Maximum A Posteriori, MAP) 来估计P (y) 和P (xi|y); 前者是训练集中类别y的相对频率。

各种各样的朴素贝叶斯分类器的差异,大部分来自于处理P (xi|y)分布时的所做的假设不同。

尽管其假设过于简单,在很多实际情况下,朴素贝叶斯工作得很好,特别是文档分类和垃圾邮件过滤。这些工作都要求一个小的训练集来估计必需参数。

相比于其他更复杂的方法,朴素贝叶斯学习器和分类器非常快速。分类条件分布的解耦意味着可以独立单独地把每个特征视为一维分布来估计。这样反过来有助于缓解维度灾难带来的问题。

另一方面,尽管朴素贝叶斯被认为是一种相当不错的分类器,但却不是好的估计器(estimator),所以,不能太过于重视从predict_proba输出的概率。

朴素贝叶斯是一类比较简单的算法,scikit-learn中朴素贝叶斯类库的使用也比较简单。相对于决策树,KNN之类的算法,朴素贝叶斯需要关注的参数是比较少的,这样也比较容易掌握。在scikit-learn中,一共有四个朴素贝叶斯的分类算法类。分别是GaussianNB,ComplementNB,MultinomialNB和BernoulliNB。其中GaussianNB就是先验为高斯分布的朴素贝叶斯,MultinomialNB就是先验为多项式分布的朴素贝叶斯,而BernoulliNB就是先验为伯努利分布的朴素贝叶斯。

这三个类适用的分类场景各不相同,一般来说,如果样本特征的分布大部分是连续值,使用GaussianNB会比较好。如果样本特征的分大部分是多元离散值,使用MultinomialNB比较合适。而如果样本特征是二元离散值或者很稀疏的多元离散值,应该使用BernoulliNB。ComplementNB实现了补充朴素贝叶斯(CNB)算法。CNB是标准多项式朴素贝叶斯(MNB)算法的一种改进,特别适用于不平衡数据集。具体来说,CNB使用来自每个类的补数的统计数据来计算模型的权重。CNB的发明者的研究表明,CNB的参数估计比MNB的参数估计更稳定。此外,CNB在文本分类任务上通常比MNB表现得更好(通常有相当大的优势)。

根据要处理的数据的特征,高斯朴素贝叶斯算法更适合要处理的数据,其原理如下:

GaussianNB实现了运用于分类的高斯朴素贝叶斯算法。特征的可能性(即概率)假设为高斯分布:

[Pxi|y= 12πδ2exp (-(xi-μy)22σ2y)]   ⑹

参数[σy]和[μy]使用最大似然法估计。

3.2 网络安全态势感知数据集

利用机器学习对网络安全态势感知进行研究,需要足够数据的数据集。数据集可以采用私有数据集,也可以采用公开的数据集。采用公开的数据集的好处是很多已公开发布的研究成果采用的是公开的数据集,不同研究成果算法之间可以在同一基础上进行比较和借鉴。公开的可以获得的网络安全数据集包括:KDD CUP99数据集、CICIDS2017数据集、HoneyNet-data数据集等。

本文采用的数据集是KDD CUP99数据集。该数据集是从一个模拟的美国空军局域网上采集来的9个星期的网络连接数据,分成具有标识的训练数据和未加标识的测试数据。测试数据和训练数据有着不同的概率分布,测试数据包含了一些未出现在训练数据中的攻击类型,这使得入侵检测更具有现实性。在训练数据集中包含了一种正常的标识类型normal和22种训练攻击类型,如表1所示。

另外有14种攻击仅出现在测试数据集中。KDDCUP99训练数据集中每个连接记录包含了41个固定的特征属性和1个类标识,标识用来表示该条连接记录是正常的,或是某个具体的攻击类型。在41个固定的特征属性中,9个特征属性为离散(symbolic)型,其他均为连续(continuous)型。KDD CUP99数据集由500万条记录构成,特征属性采用41个特征属性中的duration、wrong_fragment、num_failed_logins、logged_in、root_shell、dst_host_same_src_port_rate、dst_host_

serror_rate、dst_host_rerror_rate这8个特征属性。

3.3 数据预处理

数据的预处理包括数据的归一化和数据的标准化、标签编码。

数据的归一化,是将训练集和测试集中某一列特征的值缩放到0和1之间。方法如下:

[Xnorm= X- XminXmax- Xmin]   ⑺

數据的标准化,是将训练集和测试集中某一列特征的值缩成均值为0,方差为1的状态。方法如下:

[z= x- μσ]   ⑻

3.4 基于scikitlearn类库的高斯朴素贝叶斯算法的实现和评估

机器学习类库scikitlearn包含了高斯朴素贝叶斯算法的实现,可以用以下几行代码实现:

# 高斯朴素贝叶斯

fromsklearn.naive_bayes import GaussianNB

gnb=GaussianNB()

gnb.fit(X_train, y_train)

y_pred=gnb.predict(X_test)

evaluation(y_test,y_pred,index_name=['gnb'])

對KDD CUP99数据集应用高斯朴素贝叶斯算法的效果如下:

平均绝对误差:0.1373

均方差:0.2736

训练时间:0.02454毫秒

4 结束语

机器学习技术经过几年的飞速发展日趋成熟,在应用机器学习算法到网络安全态势感知评估和预测方面,可以利用已有的第三方模块中的模型便捷地进行数据的训练和测试及预测。利用高斯朴素贝叶斯算法对所采用的数据集进行训练,可以达到较为良好的效果。本文只对特定的数据集中数据的部分特征进行了训练,需要进一步研究的是对所选数据集的全部特征训练需要缩短训练时间。也需要对其他数据集进行训练和模型构建,验证高斯朴素贝叶斯算法对其他数据集的有效性。

参考文献(References):

[1] Wang HQ, Lai JB, Zhu L, Liang Y. Survey of network situation awareness system.Journal of Computer Science(in Chinese with English abstract),2006.33(10):5?10

[2] Trusted Computing Group. TCG Specification architecture overview specification revision 1. 2[EB/OL.[2011-04-15]. http://www.trustedcomputinggroup.org/

[3] 席荣荣,云晓春,金舒原,张永铮.网络安全态势感知研究综述[J].计算机应用,2012.32(1):1-4,59

[4] 龚俭,臧小东,苏琪,胡晓艳,徐杰.网络安全态势感知综述[J].软件学报,2017.28(4):1010-1026

[5] 石乐义,刘佳,刘祎豪,朱红强,段鹏飞.网络安全态势感知研究综述[J].计算机工程与应用,2019,55(24):1-9.

[6] 程家根.基于机器学习的网络安全态势感知模型研究与实现[D].南京邮电大学,2020.

[7] 李营.基于机器学习的网络安全态势感知系统的研究与实现[D].北京邮电大学,2020.

[8] 金磊.网络认知下基于机器学习的智能化安全态势研究[D].北京邮电大学,2020.

[9] 蔡元凯.基于机器学习的网络安全态势评估方法研究[D].安徽理工大学,2020.

[10] 李欣涛.基于机器学习的网络安全态势感知系统设计与实现[D].北京邮电大学,2020.

[11] 钱国庆.基于机器学习的网络安全态势感知[D].电子科技大学,2019.

[12] 许建华.基于机器学习的网络安全态势预测方法的研究与实现[D].北京邮电大学,2016.

猜你喜欢

网络安全
网络安全知多少?
新形势下的特种设备网络安全防护探讨
新量子通信线路保障网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
网络安全与执法专业人才培养探索与思考
设立网络安全专项基金 促进人才培养
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月