一种基于神经网络的无线传感器网络入侵检测算法

文档序号:7780175阅读:1010来源:国知局
一种基于神经网络的无线传感器网络入侵检测算法
【专利摘要】本发明结合现有的网络入侵检测技术,针对基于簇的无线传感器网络(Cluster-based?Wireless?Sensor?Network,简称CWSN)的簇头节点(Cluster?Head,简称CH)简单设计一种入侵检测模型。充分考虑CH运算速度慢,能量有限的特点,所设计的模型结构简单,由三大模块构成:误用检测模块、异常检测模块、和决策模块,其中误用检测模块使用神经网络作为核心。由于现有神经网络种类繁多,各类神经网络都有其优点和缺点,为了得出哪种神经网络更适合针对WSN的IDS,本发明分别选取了BP神经网络、广义回归神经网络及基于遗传算法优化的BP神经网络进行了实验,实验采用KDDCUP1999数据集,使用MATLAB进行了仿真实验。
【专利说明】—种基于神经网络的无线传感器网络入侵检测算法【技术领域】
[0001]本发明涉及一种无线传感器网络的入侵检测算法,特别地,基于一种神经网络的无线传感器网络入侵检测算法。
【背景技术】
[0002]入侵检测研究最早可追溯到1980年,James P.Anderson首先提出了入侵检测的概念。1987年Dorothy Elizabeth Denning提出了入侵检测系统的抽象模型,首先将入侵检测的概念作为一种计算机系统安全防御的策略提出。与传统加密和访问控制的方法相t匕,入侵检测系统是全新的计算机安全策略。目前,国内外入侵检测技术主要有三种发展趋势:分布式入侵检测、智能化入侵检测以及与网络安全技术相结合的趋势。但是将入侵检测技术应用于无线传感器网络的研究在最近几年才兴起。但是由于无线传感器网络属于新兴领域,研究还处于起步阶段,无线网络安全方面的研究成果比较少,并且大多数都是基于AdHoc网络,针对无线传感器网络的安全防御研究更少。已有的一些针对无线传感器网络的入侵检测技术,大多也只是针对某种特定类型的入侵,比如针对耗尽攻击,或针对黑洞攻击的入侵检测技术等;或者是针对某个具体操作的检测,比如针对路由和节点定位等操作的入侵检测等。

【发明内容】

[0003]本发明要解决的问题是,针对目前无线传感器网络入侵检测技术仍然缺少成熟的研究成果,不能很好地满足无线传感器网络这种特殊网络的特殊网络的要求,提出适合无线传感器网络结构的入侵检测算法。
【专利附图】

【附图说明】
[0004]图1遗传算法过程
[0005]图2神经网络构建过程
[0006]图3训练过程
[0007]图4广义神经网络算法过程
[0008]图5改进神经网络算法过程
【具体实施方式】
[0009](I) 一种基于神经网络的无线传感器网络入侵检测算法包括以下步骤:
[0010]对数据进行预处理;
[0011]对BP神经网络进行训练;
[0012]对广义神经网络进行训练;
[0013]对BP神经网络进行改进并进行训练。
[0014](2)如⑴所述中对数据进行预处理,其中主要步骤为以下几步:[0015]步骤1:数据映射。该数据集每一行就是由TCPdump采集并处理的一条记录,包含了 41个特征值和I个攻击类型说明,每一个特征之间用逗号分隔,最后用逗号分隔攻击类型。是一个标准CSV文件。由于数据的类型比较复杂,有离散类型(比如协议类型TCP,UDP-)和连续类型(持续时间,发送包数量等),要分开处理。首先进行数据映射,将符号型的数据映射到数值型数据。如特征值中第二维TCP设为1,UDP设为2等。类型值如Normal设为1,U2R设为4等。
[0016]步骤2:选择数据。
[0017]步骤3:数据归一化。数据归一化主要有两种方法:最大最小化法和平均数方差发。本发明中对数据的归一化处理使用了第一种方法:最大最小化法。因为本发明归一化处理是在MATLAB中进行,所以利用其自带的mapminmaxO函数即可,使用方法如下式所示:
[0018][inputn, inputps] =mapminmax (input_train)
[0019]其中input_train是训练样本输入,inputn是归一化后的数据,inputps是数据归一化后得到的结构体,里面包含数据最大值、最小值和平均值等信息。默认情况下,数据归一化范围为[_1,1]。
[0020](3)如(I)所述中对BP神经网络进行训练,其中主要步骤为以下几步:
[0021]步骤1:模型建立
[0022]基于BP神经网络的入侵检测分类算法建模包括BP神经网络构建、BP神经网络训练和BP神经网络分类入侵类别三步,算法流程如图2所示。
[0023]BP神经网络构建根据系统输入输出数据特点确定BP神经网络的结构。训练样本和测试样本中每行数据都有41维的特征值和I维类型值,但是并不是所有的特征值都对网络分类有效果,所以选择前24维作为输入特征值,所以输入层神经元个数为24。本发明使用误用检测方法,因此需要所设计的分类器得出准确入侵类型,而数据集中总共有大的五类类型,包括四种异常类型和一种正常类型,所以输出层神经元个数为5。隐层的节点数目设计是一个十分复杂的问题。目前没有成熟、科学的理论可遵循。因此需要根据经验和多次实验来确定,不存在理想的解析式来表示。隐含层单元的数目太多会导致学习时间过长、误差不一定最佳,也会导致容错性下降、不能识别以前没看到的样本,因此一定存在一个最佳的隐单元数。根据Kolmogorov定理,三层神经网络中,输入层节点数与隐含层节点数之间的近似关系为:k=2m+l
[0024]因此隐含层个数设为30。这样就设计好了一个24-30-5的BP神经网络。
[0025]步骤2:建立网络。其中输入层到隐含层所用激活函数为双曲正切S型曲线,隐含层到输出层的激活函数为对数S型曲线。训练算法为标准梯度下降算法。算法最大迭代15000此,误差目标精度为0.01,学习率为0.3。注意:在MATLAB中神经网络不能自己设定,只能由程序根据输入数据的特征维数自行设定。
[0026]步骤3:训练网络。训练过程如图3所示。
[0027]步骤4:测试网络。当网络训练结束后,开始测试网络,函数调用如下公式。
[0028]an=sim(net, inputn_test)
[0029](4)如(I)所述中对广义神经网络进行训练,其中主要步骤为以下几步:
[0030]步骤1:模型建立。算法流程如图4所示。
[0031]步骤2:主要程序代码[0032]本实验使用MATLAB自带函数newgrnn建立GRNN神经网络,其调用格式如下公式所示:
[0033]net=newgrnn (P, T, spread)
[0034](5)如(I)所述中对基于遗传算法改进神经网络进行训练,其中主要步骤为以下几步:
[0035]步骤1:种群初始化。个体编码使用二进制编码,每个个体均为一个二进制串,由输入层与隐含层连接权值、隐含层阈值、隐含层与输出层连接权值、输出层阈值四部分组成,每个权值和阈值使用M位的二进制编码,将所有权值和阈值的编码连接起来即为一个个体的编码。例如本发明BP网络的结构是24-30-5,
[0036]假定权值和阈值的编码均为10位二进制数,那么个体的二进制编码长度为9050。其中前7200位输入层与隐含层连接权值编码;7201?7500位为隐含层阈值编码;7501?9000位为隐含层与输出层连接权值编码;9000?9050位为输出层阈值编码。
[0037]步骤2:适应度函数
[0038]本发明是为了使BP网络在预测时,预测值与期望值的残差尽可能小,所以选择预测样本的预测值与期望值的误差矩阵的范数作为目标函数输出。适应度函数选择工具箱中采用排序的适应度分配函数:
[0039]FinV=ranking (obj)
[0040]其中obj为目标函数的输出。
[0041]步骤3:选择算子
[0042]选择算子采用随机遍历抽样(sus):
[0043]S elch=select (' sus1 , Chrom, FitnV, GGAP)
[0044]Chrom为种群编码,GGAP为自设定的代沟。
[0045]步骤4:交叉算子
[0046]交叉算子采用最简单的单点交叉算子。
[0047]步骤5:变异算子
[0048]变异以一定概率产生变异基数,用随机方法选出发生变异的基因。如果所选用的基因的编码为1,则变为0 ;反之,则变为1.[0049]程序结构如图5所示。
[0050]其中BPfun.m的部分代码如下所示,代码主要作用为建立BP神经网络并对权值和阈值手动赋值,其中使用的训练函数为trainlm(Levenberg-Marquardt算法)。训练迭代为5000次,误差精度为0.001,学习率为0.3。
【权利要求】
1.一种基于神经网络的无线传感器网络入侵检测算法,采用KDDCUP99作为原始数据集,所述算法包含以下步骤: (1)对数据进行预处理; (2)对BP神经网络进行训练; (3)对广义神经网络进行训练; (4)对BP神经网络进行改进并进行训练。
2.如权利要求1所述一种基于神经网络的无线传感器网络入侵检测算法,所述的步骤(1)对数据进行预处理包括以下步骤: (1)数据映射 该数据集每一行就是由TCPdump采集并处理的一条记录,包含了 41个特征值和I个攻击类型说明,每一个特征之间用逗号分隔,最后用逗号分隔攻击类型。是一个标准CSV文件。由于数据的类型比较复杂,有离散类型(比如协议类型TCP,UDP...)和连续类型(持续时间,发送包数量等),要分开处理。首先进行数据映射,将符号型的数据映射到数值型数据。 (2)选择数据 在实验中从kddcup.data_10_percent.gz中随机选出5000条数据作为训练数据,从corrected, gz中随机选出3000作为测试数据。 (3)数据归一化 归一化就是要把你需要处理的数据经过处理后限制在你需要的一定范围内。
3.如权利要求1所述一种基于神经网络的无线传感器网络入侵检测算法,所述的步骤(2)包括以下步骤: 步骤1:网络初始化。根据系统输入序列(X,Y)确定网络输入层节点数η、隐含层节点数1,输出层节点数m,初始化输入层、隐含层和输出层神经元之间的连接权值Wij,Wjk,初始化隐含层阈值a,输出层阈值b,给定学习速率和神经元激励函数; 步骤2:隐含层输出计算。根据输入向量X,输出层和隐含层间连接权值以及隐含层a,计算隐含层输出H;
4.如权利要求1所述一种基于神经网络的无线传感器网络入侵检测算法,所述的步骤⑶包括以下步骤: 步骤1:确定隐含层神经元径向基函数中心, 设训练集样本输入矩阵和P输出T举证分别为:
5.如权利要求1所述一种基于神经网络的无线传感器网络入侵检测算法,所述的步骤(4)包括以下步骤: 步骤1:选择初始生命种群。确定种群规模(群体大小)N,交叉概率P。,变异概率Pm和终止进化准则(遗传代数G等,通俗讲就是最大循环多少次);得到初始种群; 步骤2:评价种群中的个体适应度。计算评估种群中各个体的种群适应度; 步骤3:种群进化,具体如以下几步: (1)选择,从初始种群中选择M/2对母体,(M>=N); (2)交叉,对所选择的M/2对母体,以概率P。执行交叉,形成M个中间个体; (3)变异,对M个中间个体分别独立以概率Pni执行变异,形成M个候选个体; (4)选择(子代),从上述所形成的M个候选个体中依据适应度选择出N个体组成新一代种群; 步骤4:若以满足终止条件则终止,则最后一代中适应度最大的为最优解,否则,则转到步骤2继续向下执行; 改进算法流程为图1所示。
【文档编号】H04W84/18GK103619021SQ201310682813
【公开日】2014年3月5日 申请日期:2013年12月10日 优先权日:2013年12月10日
【发明者】孙学梅, 张一鸣, 闫博 申请人:天津工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1