一种基于模糊度和集成学习的网络入侵检测方法与流程

文档序号:16887776发布日期:2019-02-15 22:47阅读:257来源:国知局
一种基于模糊度和集成学习的网络入侵检测方法与流程

本发明属于网络入侵检测技术领域,具体涉及一种基于模糊度和集成学习的网络入侵检测方法。



背景技术:

互联网作为当代科技的代表产物,它的出现开启了人类社会的新时代。互联网的普及和应用也促进了人类生活各个方面的发展,比如金融,教育、医疗等等。随着互联网用户的日益增多,网络安全问题受到越来越多的关注,尤其是近年来各种网络攻击的频繁,使得建立一个安全可靠的网络环境显得尤为重要。

为了有效地检测和防御网络攻击,人们提出了入侵检测系统(ids)的概念。入侵检测系统通过实时地监视和分析网络中的相关信息,来检测是否存在异常的或者恶意的行为,从而提供主动预警和防护的功能。根据检测原理的不同,目前的网络入侵检测方法大体上分为两类:基于误用(misuse)的网络入侵检测和基于异常(anomaly)的网络入侵检测。基于误用的网络入侵检测通过收集已知攻击和异常行为的特征,建立相应的特征库,当网络中采集的数据与特征库中的数据匹配的时候,就将该行为判定为入侵。这种方法可以准确地识别已知攻击类型,但无法检测到新类型的攻击行为,缺乏良好的泛化能力。基于异常的网络入侵检测则是总结正常行为的特征,当检测到的网络行为与正常行为存在较大偏差的时候,就认为发生了入侵。尽管该方法在一定程度上能够检测到新类型的攻击,但误检率却比较高,且无法描述入侵行为的类别。

随着人工智能的兴起,机器学习技术也逐渐应用到了入侵检测系统中。就模型的训练方式而言,使用较多的主要有监督学习(supervisedlearning)和无监督学习(unsupervisedlearning)两种。监督学习使用的训练样本全部是已标记样本,即输入与输出的关系是已知的,根据这种已知关系从而训练一个最优模型。无监督学习则恰好相反,它使用的训练样本均为未标记样本,由模型自身去挖掘数据中的关系。这两种学习方式都存在一定的缺陷:采用监督学习训练的模型无法很好的适应新类型的任务,且对样本进行标记需要耗费大量的精力;无监督学习对训练数据的分布要求比较苛刻,如果分布不平衡,所学习到的模型性能就会特别的差。为了克服上述学习方式的不足,半监督学习(semi-supervisedlearning)应运而生。顾名思义,半监督学习介于监督学习与无监督学习之间,它通过少量的标记样本和大量的未标记样本进行模型的训练,使用半监督学习既减少了标记样本的开销,也能带来比较高的准确性。

在现有技术中,针对使用单个分类器进行入侵检测存在局限性的问题,已有相关研究利用集成学习(ensemblelearning)来提高入侵检测系统的精度。常用的集成学习算法包括boosting和bagging,其中boosting先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此重复进行,直至基学习器数目达到预定义的值,最终将所有的基学习器进行加权结合;而bagging则是通过对训练集进行多次采样生成多个不同的训练子集,然后由不同的子集训练生成不同的基学习器,最后使用诸如投票的策略对基学习器进行结合。

上述现有技术的缺点在于,(1)利用boosting构建的模型准确度一般都比较高,但是容易发生过拟合问题;而且由于基分类器是串行生成的,所以boosting的时间复杂度通常会比较大,这与入侵检测系统所要求的高实时性和快速更新的原则不符。

(2)对于bagging构建的网络入侵检测系统,在基分类器结果的组合策略上使用较多的是多数投票(相对多数投票和绝对多数投票)和加权投票,这两种策略对基分类器的要求比较高,如果基分类器本身的性能就不好且基分类器之间的差异性不够大,那么就无法实现由弱分类器构建强分类器的集成效果。在实际应用中,获取高性能基学习器的成本较高,无法适用于大规模入侵检测系统的构建。



技术实现要素:

针对现有技术中的上述不足,本发明提供的基于模糊度和集成学习的网络入侵检测方法解决了现有技术中构建模型的训练时间过长和无法很好的适应新类型的攻击检测的问题。

为了达到上述发明目的,本发明采用的技术方案为:一种基于模糊度和集成学习的网络入侵检测方法,包括以下步骤;

s1、从原始流量数据中提取出能够反映流量特性的基本特征数据;

s2、对提取的基本特征数据进行预处理;

s3、将预处理后的基本特征数据作为训练样本集,并通过多次随机划分训练样本集,得到若干个训练样本子集;

s4、根据每个训练样本子集中的数据,采用基于模糊度的半监督elm算法构建并训练若干个基分类器;

s5、采用集成算法对所有训练好的基分类器进行结合,得到最终的入侵检测模型,进行网络入侵检测。

进一步地,所述步骤s1中的基本特征数据包括tcp连接的基本特征数据、tcp连接的内容特征数据、基于时间的网络流量统计特征数据和基于主机的网络流量统计特征数据。

进一步地,所述步骤s2中,提取的基本特征数据的特征类型包括连续数值型特征数据、离散数值型特征数据和符号型特征数据;

所述tcp连接的基本特征数据、tcp连接的内容特征数据、基于时间的网络流量统计特征数据和基于主机的网络流量统计特征数据中的数据至少对应一种特征类型。

其中,进行预处理包括特征数据类型转换和归一化处理。

进一步地,所述步骤s3中通过设定多个不同的随机数种子,对训练样本集进行多次重复次划分,且每次划分后的训练样本子集中均包括10%的标记数据和90%的未标记数据。

进一步地,所述步骤s4中半监督elm算法实现的过程具体为:

s41、随机生成隐藏层神经元的输入权重wi和偏置bi;

其中,i=1,2,…,l,l为隐层神经元的个数;

s42、使用激活函数计算隐层神经元的输出矩阵h;

s43、根据隐层神经元的输出矩阵h和期望输出矩阵o,确定输出权重矩阵β。

进一步地,所述步骤s43中,确定输出权重矩阵β的公式为:

β=(hth)-1hto

其中,上标t为转置操作运算符;

o为期望输出矩阵。

进一步地,所述步骤s4中训练一个基分类器的方法具体为:

a1、利用半监督elm算法和标记数据训练一个初始分类模型;

a2、将训练样本子集中的未标记数据输入到初始分类模型中,得到未标记数据的隶属度向量及其分类结果;

a3、根据未标记数据的隶属度向量,确定未标记数据的模糊度;

a4、设定一个模糊度阈值,并将模糊度大于模糊度阈值所对应的未标记数据及其对应的分类结果入加入到10%的标记数据中,形成该训练子集对应的新的训练集;将未标记数据的模糊度小于模糊度阈值未标记数据删除;

a5、利用新的训练集对初始分类模型进行再训练,得到一个训练好的基分类器。

进一步地,所述步骤s5中在对网络入侵进行检测时,入侵检测模型中只要有一个基分类器的判定结果为异常,则最终的判定结果就为异常。

本发明的有益效果为:

(1)基分类器采用elm算法构建,elm与传统的神经网络相比,尤其是单隐层前馈神经网络,在保证学习精度的前提下比传统的算法学习速度更快,这使得本发明所提出的网络入侵检测模型可以大大缩短训练时间。

(2)本发明采用了基于模糊度的半监督学习方式,弥补了监督学习标记样本开销过大和无监督学习精度较低的不足,同时模糊度概念的引入增强了分类器的泛化性能,能有效检测出新类型的攻击。

(3)与现有的集成算法所采用的组合策略(多数投票,加权投票等)不同,本发明使用了“一票否决”的投票机制,一方面大幅度提高了分类器的查全率,另一方面降低了算法的复杂度,使得本发明在实际应用中具有高度的可行性和合理性。

附图说明

图1为本发明提供的实施例中基于模糊度和集成学习的网络入侵检测方法实现流程图。

图2为本发明提供的实施例中训练一个基分类器方法实现流程图。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

如图1所示,一种基于模糊度和集成学习的网络入侵检测方法,包括以下步骤;

s1、从原始流量数据中提取出能够反映流量特性的基本特征数据;

s2、对提取的基本特征数据进行预处理;

s3、将预处理后的基本特征数据作为训练样本集,并通过多次随机划分训练样本集,得到若干个训练样本子集;

s4、根据每个训练样本子集中的数据,采用基于模糊度的半监督elm算法构建并训练若干个基分类器;

s5、采用集成算法对所有训练好的基分类器进行结合,得到最终的入侵检测模型,进行网络入侵检测。

上述所述步骤s1中采用nsl-kdd数据集格式,从原始流量中提取四大类特征,包括tcp连接的基本特征数据、tcp连接的内容特征数据、基于时间的网络流量统计特征数据和基于主机的网络流量统计特征数据;

其中,tcp连接的基本特征数据包含了一些连接的基本属性,如连续时间,协议类型,传送的字节数等;

tcp连接的内容特征数据包含了可能反映入侵行为的数据内容,如登录失败的次数等;

基于时间的网络流量统计特征数据则反映的是当前连接记录与之前一段时间内的连接记录之间存在的某些联系,包括相同目标主机的连接和相同服务的连接;

基于主机的网络流量统计特征数据以则表明的是当前连接之前若干个连接记录中与当前连接具有相同目标主机的统计信息。

表1中,详细描述了这些特征数据的具体内容;

表1:四大类特征数据具体内容

(注:类型c表示连续数值型,d表示离散数值型,s表示符号型)

在上述步骤s2中,提取的基本特征数据的类型包括连续数值型特征数据、离散数值型特征数据和符号型特征数据;由表1中的数据可知,tcp连接的基本特征数据、tcp连接的内容特征数据、基于时间的网络流量统计特征数据和基于主机的网络流量统计特征数据中的数据至少对应一种特征类型。

其中,进行预处理包括特征数据类型转换和归一化处理。

对于数值型特征,神经网络可以直接处理,但符号型特征必须经过一定的转换才能作为神经网络标准的输入。本发明采用了one-hot编码的方式对protocol_type、service、flag这三个符号型特征进行了处理。

one-hot编码,又称为一位有效编码,主要是采用n位状态寄存器来对n个状态进行编码,每个状态都有独立的寄存器位,并且在任意时候只有一位有效。以protocol_type为例,它有三种取值,分别是tcp、udp、icmp,经过编码之后则是(1,0,0)、(0,1,0)、(0,0,1)。

例如,在nsl-kdd数据集中任取一条样本特征记录如下:

0,tcp,ftp_data,sf,491,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,1,0,0,150,25,0.17,0.03,0.17,0,0,0,0.05,0

经过one-hot编码处理之后,转换为如下形式:

0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,491,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,1,0,0,150,25,0.17,0.03,0.17,0,0,0,0.05,0

另外,为了解决不同特征之间存在量纲差异的问题,对编码之后的数据进一步执行归一化处理,使得所有数据都位于[0,1]之间。

归一化公式为:

其中,xi和分别表示第i个特征归一化前后的值;

max(x)和min(x)分别表示该特征中的最大值和最小值。

经过归一化处理之后,上述样本的特征最终表示为:

0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0.000001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001961,0.001961,0,0,0,0,1,0,0,0.588235,0.098039,0.17,0.03,0.17,0,0,0,0.05,0

上述步骤s3中,为了保证后续步骤s4中训练出来的基分类器的多样性,所以需要对训练样本集进行多次重复划分;因此上述步骤s3中通过设定多个不同的随机数种子,对训练样本集进行若干次划分,且每个划分后的训练样本子集中均包括10%的标记数据和90%的未标记数据;

上述步骤s4中,在构建基分类器时,主要包括模糊度和elm两个理论知识:

(一)模糊度

在模糊性数学中,具有某个模糊概念所描述的属性的对象全体称为模糊集,模糊度则反映了一个模糊集的模糊程度。对于一个给定的模糊集u={u1,u2,…,un},其模糊度的计算公式为:

理论上,模糊度越大,该模糊集的不确定性就越大。在分类任务中,许多分类器的输出都类似于一个模糊向量,向量中的每个元素代表了相应类的隶属程度。因此,可以利用模糊度的概念来描述分类器输出的模糊性。

假设有n个样本的数据集,类别个数为c,则分类器对每个样本都会产生一个输出向量μi={μi1,μi2,…,μic},其模糊度可计算为:

其中μij表示的是第i个样本对应第j类的隶属度。

(二)elm(极限学习机)

elm是一种新型的快速学习算法,相对于传统的前馈神经网络训练速度慢、容易陷入局部极小值点、学习率选择敏感等缺点,

elm只需设置好隐层神经元个数并随机初始化输入权重和偏置,在训练过程中无需调整,即可获得相应的输出权重。因此elm具有泛化性能好、学习速度快等优点。

对于一个单隐层神经网络,假设有l个隐层神经元,输入为x,则该网络的输出可表示为:

其中,wi和bi分别为第i个隐层神经元的输入权重和偏置,g(·)为激活函数,βi为输出权重。

对于给定的数据集{(xi,ti)},i=1,2,…,n(xi和ti分别表示第i个样本的特征向量和输出向量),要使得单隐层神经网络的学习误差最小,则有:

写成矩阵的形式:hβ=t

其中,h是隐层神经元的输出矩阵,β为输出权重矩阵,o为期望输出矩阵。

传统的基于梯度下降的算法求解上述问题时需要在迭代过程中调整所有参数,但在elm算法中,一旦随机确定好隐层神经元的输入权重wi和偏置bi,输出权重β就被唯一确定:

β=(hth)-1hto(6)

因此,上述步骤s4中半监督elm算法实现的过程具体为:

s41、随机生成隐藏层神经元的输入权重wi和偏置bi;

其中,i=1,2,…,l,l为隐层神经元的个数;

s42、使用激活函数计算隐层神经元的输出矩阵h;

s43、根据隐层神经元的输出矩阵h和期望输出矩阵o,确定输出权重矩阵β。

其中,上述步骤s43中,确定输出权重矩阵β的公式为:

β=(hth)-1hto

其中,上标t为转置操作运算符;

o为期望输出矩阵。

其中,训练一个基分类器的方法具体为:

a1、利用半监督elm算法和标记数据训练一个初始分类模型;

a3、根据未标记数据的隶属度向量,确定未标记数据的模糊度;

a4、设定一个模糊度阈值,并将模糊度大于模糊度阈值所对应的未标记数据及其对应的分类结果入加入到10%的标记数据中,形成该训练子集对应的新的训练集;将未标记数据的模糊度小于模糊度阈值未标记数据删除;

a5、利用新的训练集对初始分类模型进行再训练,得到一个训练好的基分类器。

在进行入侵检测时,考虑到入侵检测系统的特殊要求,采用“一票否决”的投票机制,即只要有一个分类模型的判定结果为异常,则最终的判定结果就为异常,否则为正常。理论上,相对于多数投票和加权投票,“一票否决”在分类任务中的可靠性比较低,但由于本发明中使用了随机采样,并且半监督学习中标记数据过少,使得每个基分类器所学习到的仅为训练集的很小一部分,因此使用“一票否决”能在很大程度上提升整体分类模型的性能。

在本发明的一个实施例中,在实际应用本发明方法时,对应的网络入侵检测系统一般包括四个组成部分:事件产生器,事件分析器,响应单元和事件数据库。事件产生器从整个网络运行环境中获得事件,如系统、网络、数据及用户活动的状态和行为等,并向系统的其他部分提供此事件;事件分析器经过对捕获事件的分析处理,产生相关的分析结果;响应单元对分析结果做出对应的操作,包括报警、切断连接、过滤数据流等;事件数据库用于存放入侵行为数据以实现对入侵检测系统的更新和强化。

本发明技术可以部署在入侵检测系统的事件分析器上,对来自事件产生器捕获的流量数据进行检测分析,如果检测结果为异常,则将其告知给响应单元,启动响应单元的报警机制,并将相关数据存入事件数据库;如果检测结果为正常,则对该事件不做后续处理。

本发明的有益效果为:

(1)基分类器采用elm算法构建,elm与传统的神经网络相比,尤其是单隐层前馈神经网络,在保证学习精度的前提下比传统的算法学习速度更快,这使得本发明所提出的网络入侵检测模型可以大大缩短训练时间。

(2)本发明采用了基于模糊度的半监督学习方式,弥补了监督学习标记样本开销过大和无监督学习精度较低的不足,同时模糊度概念的引入增强了分类器的泛化性能,能有效检测出新类型的攻击。

(3)与现有的集成算法所采用的组合策略(多数投票,加权投票等)不同,本发明使用了“一票否决”的投票机制,一方面大幅度提高了分类器的查全率,另一方面降低了算法的复杂度,使得本发明在实际应用中具有高度的可行性和合理性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1