物联网环境下基于多层极限学习机的分布式入侵检测方法转让专利

申请号 : CN202011503520.6

文献号 : CN112653751B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 付兴兵吴炳金焦利彬索宏泽章坚武唐向宏

申请人 : 杭州电子科技大学中国电子科技集团公司第五十四研究所

摘要 :

本发明公开了一种物联网环境下基于多层极限学习机的分布式入侵检测方法,由于相关设备的资源受约束的特性,用于实现自动攻击检测的这类计算较重的任务,都要移到边界设备上,以便让处理功能靠近数据源。这些边界设备能运行预置的分类模型。但当面对大量的训练数据时,却没有足够的存储和处理能力来构造和升级这类模型。为解决这一问题,本发明将计算密集和存储量大的训练运算移到云服务器中进行,构建并在云服务器中训练单隐藏层极限学习机和多隐藏层极限学习机模型,以让边界设备基于云服务器中预置的深度学习模型来执行流量分类,从而分类出是正常流量还是网络攻击,并通过实验分析得出多隐藏层极限学习机拥有更好的性能。

权利要求 :

1.物联网环境下基于多层极限学习机的分布式入侵检测方法,其特征在于,包括如下步骤:

步骤1:对网络流量数据进行预处理;

步骤2:搭建单隐藏层极限学习机分类模型;

步骤2.1,单隐藏层极限学习机一共有三层,第一层是输入层,第二层是隐藏层,第三层是输出层;其中输入层和隐藏层的连接权值w和偏置b是随机设定的,特征列数量为隐藏层隐藏节点数;偏置b通过给输入特征矩阵加入一列全1的值实现;

步骤2.2,对于任意的输入样本,首先经过任意的权重w和偏置b进行线性运算得到特征矩阵,再利用Sigmoid激活函数对特征矩阵进行非线性运算,得到非线性特征矩阵H;其中,Sigmoid激活函数将特征值映射到[0,1],其公式如下:非线性特征矩阵H公式为Hij=S(wi·Xj+bi);其中X是输入样本数据,wi表示第i个隐藏节点的权重,bi表示第i个隐藏节点的偏置,和Xj表示第j列输入数据的特征列;

步骤2.3,在步骤2.2基础上,对于一个有L个隐藏节点的单隐藏层神经网络表示为:其中,S为Sigmoid激活函数,N为输入特征数据矩阵的列数,bi为隐藏层第i个的偏置,βi为第i个隐藏节点的输出权重,oj为极限学习机的第j列特征值输出;

步骤2.4,让单隐藏层神经网络的输出与目标值相差最小,因此表示为其中tj为目标值,因此存在βi,wi和bi,使得即Hβ=T,其中,H是隐藏节点的输出,β为输出权重,T为期望输出;

步骤2.5,训练单隐藏层极限学习机模型,等价于得到 使得即最小化损失函数为

步骤2.6,一旦随机确定输入权值w和隐藏层偏置b,那么输出矩阵H也将会被唯一确定;

因此求解单隐藏层神经网络即为Hβ=T;输出权重可以被确认为:其中 是Moore‑Penrose广义逆,步骤3:搭建多隐藏层极限学习机分类模型;

步骤3.1,多隐藏层极限学习机含有多个隐藏层,具体层数由用户给定的隐藏节点数量列表L的长度n决定;

步骤3.2,假设列表L=[a1,a2,a3,...an],ai对应了第i个隐藏层的隐藏节点数量;

步骤3.3,对于a1,其求解输出权重β1的步骤与步骤2中的单隐藏层模型求解步骤一致,将其输出β1存入输出权重列表M;

步骤3.4,对于a2,...,an‑1,每层隐藏层的输入特征矩阵是该层前面隐藏层的输出权重依次与原始输入特征矩阵做内积的结果,公式表示如下:X2=β1·X

X3=β2·(β1·X)=β2·X2……

Xn‑1=βn‑2·Xn‑2

步骤3.5,对于an,即最后一层隐藏层,其输入矩阵为Xn=βn‑1·Xn‑1

之后代入单隐藏层极限学习机,得到最终的βn;

步骤4:分别将训练集输入单隐藏层极限学习机和多隐藏层极限学习机,得到输出权重β;

步骤5:利用训练好的多隐藏层极限学习机对测试集进行分类。

2.如权利要求1所述的物联网环境下基于多层极限学习机的分布式入侵检测方法,其特征在于:所述步骤1包括以下步骤:步骤1.1,将网络流量数据作为数据集,将数据集的字符特征数据转换成数值,再将该特征值进行one‑hot编码;

步骤1.2,分别对每个特征值进行归一化,公式如下:其中xmin为该特征的最小值,xmax为该特征的最大值;

步骤1.3,分割数据集,对整个数据集以8∶2的比例分成训练集和测试集;

步骤1.4,分别分割训练集和数据集中的Label字段,并进行判断,若值为0,则标注为‑

1,否则标注为1,即正常样本流量标注为‑1,攻击样本标注为1;

步骤1.5,得到训练数据Train_X,训练数据标签Train_Y;测试数据Test_X,测试数据标签Test_Y。

3.如权利要求1所述的物联网环境下基于多层极限学习机的分布式入侵检测方法,其特征在于:所述的步骤2.2中的连接权值w为[‑1,1]的均匀分布,其分布密度函数如下:其中m是w随机取值范围的最大值,n是w随机取值范围的最小值。

4.如权利要求1所述的物联网环境下基于多层极限学习机的分布式入侵检测方法,其特征在于:所述步骤5包括以下步骤:步骤5.1,在已知输出权重β,输入权重w和隐藏层偏置b的情况下,通过以下公式对输入的测试集进行分类,输出判别数组Predicts;

其中,βi为输出权重,X为测试数据,sign()是符号函数,其表达式如下:

5.如权利要求1所述的物联网环境下基于多层极限学习机的分布式入侵检测方法,其特征在于:还包括模型评价;具体包括以下步骤:步骤6.1,计算步骤5中得到的判别数组Predicts与测试数据真实标签Test_Y的差异;

步骤6.2,根据Predicts和Test_Y画出两个模型的ROC曲线;

步骤6.3,根据Predicts和Test_Y计算各项评价指标并记录训练和分类消耗时间。

说明书 :

物联网环境下基于多层极限学习机的分布式入侵检测方法

技术领域

[0001] 本发明属于入侵检测和深度学习领域,具体涉及物联网环境下基于多层极限学习机的分布式入侵检测方法。

背景技术

[0002] 飞速发展的物联网技术通过日益复杂的传感设备与基于互联网的远程控制设备相连接,正在迅速弥合传统信息服务和周边的物理环境之间的鸿沟。许多潜力巨大的物联
网应用服务应运而生,如环境监控、交通监控、健康医疗监视等等,这些应用极大提高了人
类与计算设备的交互性。日益增长的物联网应用和物理信息服务对网络安全的要求也日渐
增高,物联网下的入侵检测已成为当下物联网技术发展的一个主流趋势。
[0003] Anderson于1980年最早提出了入侵检测的概念,拉开了入侵检测研究的序幕。受益于基于深度学习的分类模型的优秀表现,基于深度学习的入侵检测得到了飞速的发展。
由于相关设备的资源受约束的特性,当下的一种流行解决方案是在靠近数据源的边界设备
上分配一定的存储和计算能力,也就是“边缘计算”,这可以将特定的应用程序和服务从集
中点转移到边缘。同时这些边界设备能够运行预置的分类模型,从而对于实现自动攻击检
测的这类计算较重的任务,其核心运算设备能够减少运算和处理的工作量。但是当面对大
量的数据时,却缺少足够的存储和运算处理能力来应对,同时受限于硬件性能约束,预置模
型也无法进行大幅度的升级。因此我们希望能够将计算密度和存储量大的训练运算分离出
去,尽可能让边界设备执行计算量小的工作,在保证准确率的前提下进一步提高效率。

发明内容

[0004] 为了解决现有技术中存在的物联网环境下分布式入侵检测的边界设备无法处理过大的训练数据问题,本发明提供了一种物联网环境下基于多层极限学习机的分布式入侵
检测方法。本方法基于多隐藏层极限学习机模型,将计算密度和存储量大的训练运算转移
到云服务器中进行,从而让边界设备能够基于云服务器中的预置模型来执行流量分类,分
类出是正常流量还是网络攻击。本发明要解决的技术问题通过以下技术方法实现:
[0005] 本发明提出一种物联网环境下基于多层极限学习机的分布式入侵检测方法,包括以下步骤:
[0006] 步骤1:对网络流量数据进行预处理;
[0007] 步骤2:搭建单隐藏层极限学习机分类模型;
[0008] 步骤2.1,单隐藏层极限学习机一共有三层,第一层是输入层,第二层是隐藏层,第三层是输出层;其中输入层和隐藏层的连接权值w和偏置b是随机设定的,特征列数量为隐
藏层隐藏节点数,偏置b通过给输入特征矩阵加入一列全1的值实现;
[0009] 步骤2.2,对于M个任意的输入样本,首先经过任意的权重w和偏置b进行线性运算得到特征矩阵,再利用Sigmoid激活函数对特征矩阵进行非线性运算,得到非线性特征矩阵
H;其中,Sigmoid激活函数将特征值映射到[0,1],其公式如下:
[0010]
[0011] 非线性特征矩阵H公式为Hij=S(wi·Xj+bi);其中X是输入样本数据,wi表示第i个隐藏节点的权重,bi表示第i个隐藏节点的偏置,Xj表示第j列输入数据的特征列;
[0012] 步骤2.3,在步骤2.2基础上,对于一个有L个隐藏节点的单隐藏层神经网络表示为:
[0013]
[0014] 其中,S为Sigmoid激活函数,N为输入特征数据矩阵的列数,bi为隐藏层第i个
[0015] 的偏置,βi为第i个隐藏节点的输出权重,oj为极限学习机的第j列特征值输出;
[0016] 步骤2.4,让单隐藏层神经网络的输出与目标值相差最小,因此表示为
[0017]
[0018] 其中tj为目标值,因此存在βi,wi和bi,使得
[0019]
[0020] 即Hβ=T,其中,H是隐藏节点的输出,β为输出权重,T为期望输出;
[0021] 步骤2.5,训练单隐藏层极限学习机模型,等价于得到 使得
[0022]
[0023] 即最小化损失函数为
[0024]
[0025] 步骤2.6,一旦随机确定输入权值w和隐藏层偏置b,那么输出矩阵H也将会被唯一确定;因此求解单隐藏层神经网络即为Hβ=T;输出权重可以被确认为:
[0026] 其中 是Moore‑Penrose广义逆,
[0027] 步骤3:搭建多隐藏层极限学习机分类模型;
[0028] 步骤3.1,多隐藏层极限学习机含有多个隐藏层,具体层数由用户给定的隐藏节点数量列表L的长度n决定;
[0029] 步骤3.2,假设列表L=[a1,a2,a3,…an],ai对应了第i个隐藏层的隐藏节点数量;
[0030] 步骤3.3,对于a1,其求解输出权重β1的步骤与步骤2中的单隐藏层模型求解步骤一致,将其输出β1存入输出权重列表M;
[0031] 步骤3.4,对于a2,…,an‑1,每层隐藏层的输入特征矩阵是该层前面隐藏层的输出权重依次与原始输入特征矩阵做内积的结果,公式表示如下:
[0032] X2=β1·X
[0033] X3=β2·(β1·X)=β2·X2
[0034] ……
[0035] Xn‑1=βn‑2·Xn‑2
[0036] 步骤3.5,对于an,即最后一层隐藏层,其输入矩阵为
[0037] Xn=βn‑1·Xn‑1
[0038] 之后代入单隐藏层极限学习机,得到最终的βn;
[0039] 步骤4:分别将训练集输入单隐藏层极限学习机和多隐藏层极限学习机,得到输出
[0040] 权重β;
[0041] 步骤5:利用训练好的模型对测试集进行分类。
[0042] 作为优选,所述步骤1包括以下步骤:
[0043] 步骤1.1,将网络流量数据作为数据集,将数据集的字符特征数据转换成数值,再将该特征进行one‑hot编码;
[0044] 步骤1.2,分别对每个特征数据进行归一化,公式如下:
[0045]
[0046] 其中xmin为该特征的最小值,xmax为该特征的最大值;
[0047] 步骤1.3,分割数据集,对整个数据集以8:2的比例分成训练集和测试集;
[0048] 步骤1.4,分别分割训练集和数据集中的Label字段,并进行判断,若值为0,则标注为‑1,否则标注为1,即正常样本流量标注为‑1,攻击样本标注为1;
[0049] 步骤1.5,得到训练数据Train_X,训练数据标签Train_Y;测试数据Test_X,测试数据标签Test_Y。
[0050] 作为优选,所述的步骤2.2中的连接权值w为[‑1,1]的均匀分布,其分布密度函数如下:
[0051]
[0052] 其中m是w随机取值范围的最大值,n是w随机取值范围的最小值。
[0053] 作为优选,所述步骤5包括以下步骤:
[0054] 步骤5.1,在已知输出权重β,输入权重w和隐藏层偏置b的情况下,通过以下公式对输入的测试集进行分类,输出判别数组Predicts;
[0055]
[0056] 其中,βi为输出权重,X为测试数据,sign()为符号函数,其表达式如下:
[0057]
[0058] 作为优选,还包括模型评价;具体包括以下步骤:
[0059] 步骤6.1,计算步骤5中得到的判别数组Predicts与测试数据真实标签Test_Y的差异;
[0060] 步骤6.2,根据Predicts和Test_Y画出两个模型的ROC曲线;
[0061] 步骤6.3,根据Predicts和Test_Y计算各项评价指标并记录训练和分类消耗时间。
[0062] 本发明相对于背景技术的优点在于:
[0063] ①利用多隐藏层极限学习机模型,其输入层和隐藏层的连接权值和隐藏层的偏置是随机取的,且取完后不再调整。与BP神经网络相比,不需要不断反向调整权值和偏置,因
此效率大大增高。
[0064] ②分类只需对输入数据进行矩阵运算,计算量较小,其计算密度大的训练过程放在云服务器上进行,提高效率的同时降低对边界设备的性能要求。
[0065] ③多隐藏层极限学习机通过构建多层隐藏层,相比较单隐藏层极限学习机,能够提取更深层次的数据特征联系,提高分类器的精度。
[0066] 以下将结合附图及实施例对本发明做进一步详细说明。

附图说明

[0067] 图1是本发明的整体架构;
[0068] 图2是本发明的实验流程;
[0069] 图3是本发明中单隐藏层极限学习机网络结构;
[0070] 图4是本发明中多隐藏层极限学习机网络结构;
[0071] 图5是本发明中的ROC曲线图。

具体实施方式

[0072] 下面结合实施例来对本发明做进一步的描述,详细说明如下:
[0073] 本发明的入侵检测整体架构如附图图1所示,该架构分为两部分,边界设备与云服务器。边界设备预置了云服务器训练好的模型,其功能为对原始网络数据进行预处理以及
分类,若分类结果出现异常,则通知管理员;云服务器接受边界设备传输来的网络数据,利
用数据进行模型训练,再将新训练的模型分发给边界设备,更新模型。接下去是实验部分的
详细说明,实验流程图可参考附图图2。
[0074] 步骤1,对网络流量数据进行预处理。
[0075] 本发明步骤1包含以下步骤:
[0076] 步骤1.1,将数据集的字符特征数据转换成数值,再将该特征进行one‑hot编码。
[0077] 本方法实验使用通信安全机构和加拿大网络安全研究所合作项目收集的网络入侵数据集(CSE‑CIC‑IDS2017),将其中的Protocol字段下的字符值按照类别映射到数值,再
进行one‑hot编码。
[0078] 步骤1.2,分别对每个字段特征数据进行归一化,公式如下:
[0079]
[0080] 其中xmin为该字段的最小值,xmax为该字段的最大值。例如某列特征数据的xmax=10,xmin=0,则该列的某特征值归一化后为0.6,处于[0,1]。
[0081] 步骤1.3,分割数据集,对整个数据集以8:2的比例分成训练集和测试集。
[0082] 在原始数据集中选择100,000条样本数据,标记为Dataset,分割数据集,其中训练集80,000条,测试集20,000条。
[0083] 步骤1.4,分别分割训练集和数据集中的Label字段,并进行判断,若值为0,则标注为‑1,否则标注为1,即正常样本流量标注为‑1,攻击样本标注为1。
[0084] 将Label字段下为BENIGN的数据改成‑1,为正常网络流量;非BENIGN的数据改成1,为网络攻击流量。
[0085] 步骤1.5,得到训练数据Train_X,训练数据标签Train_Y;测试数据Test_X,测试数据标签Test_Y。
[0086] Train_X数据集形状为[80000,74],Train_Y数据集形状为[80000];Test_X数据集形状为[20000,74],Test_Y数据集形状为[20000]。
[0087] 步骤2,搭建单隐藏层极限学习机分类模型(ELM)。(单隐藏层极限学习机网络结构参考附图图3)。
[0088] 本发明步骤2包含以下步骤:
[0089] 步骤2.1,单隐藏层极限学习机一共有三层,第一层是输入层,第二层是隐藏层,第三层是输出层。其中输入层和隐藏层的连接权值w和偏置b是随机设定的,在本方法中,连接
权值w为[‑1,1]的均匀分布,其特征列数量为隐藏层隐藏节点数,该分布密度函数如下:
[0090]
[0091] 其中m是w随机取值范围的最大值,n是w随机取值范围的最小值;偏置b通过给输入特征矩阵加入一列全1的值实现;
[0092] 该实验中输入层的特征数据矩阵形状为[80000,74],隐藏节点数为50,特征数据列数为74,因此权值w的形状为[50,74],添加偏置b之后的特征数据矩阵形状为[80000,
74]。
[0093] 步骤2.2,对于M个任意的输入样本,首先经过任意的权重w和偏置b进行线性运算得到特征矩阵,再利用Sigmoid激活函数对特征矩阵进行非线性运算,得到非线性特征矩阵
H。其中,Sigmoid激活函数将特征值映射到[0,1],其公式如下:
[0094]
[0095] 非线性特征矩阵H公式为Hij=S(wi·Xj+bi)。
[0096] 经过激活函数后,特征数据矩阵的元素大小处于[‑1,1]。
[0097] 步骤2.3,在步骤2.2基础上,对于一个有L个隐藏节点的单隐藏层神经网络可以表示为
[0098]
[0099] 其中,S为Sigmoid激活函数,N为输入特征数据矩阵的列数,bi为隐藏层第i个的偏置,βi为第i个隐藏节点的输出权重,oj为极限学习机的第j列特征值输出。
[0100] 步骤2.4,让单隐藏层神经网络的输出与目标值相差最小,因此可以表示为
[0101]
[0102] 其中tj为目标值,因此存在βi,wi和bi,使得
[0103]
[0104] 即Hβ=T,其中,H是隐藏节点的输出,β为输出权重,T为期望输出。
[0105] 输出权值β的形状为[50],隐藏节点输出H的形状是[80000,50],期望输出T的形状为[80000]。
[0106] 步骤2.5,训练单隐藏层极限学习机模型,等价于得到 使得
[0107]
[0108] 即最小化损失函数为
[0109]
[0110] 步骤2.6,一旦随机确定输入权值w和隐藏层偏置b,那么输出矩阵H也将会被唯一确定。因此求解单隐藏层神经网络即为Hβ=T。输出权重可以被确认为:
[0111] 其中 是Moore‑Penrose(MP)广义逆,
[0112] 步骤3,搭建多隐藏层极限学习机分类模型(MLELM)。(多隐藏层极限学习机网络结构参考附图图4)。
[0113] 本发明步骤3包含以下步骤:
[0114] 步骤3.1,多隐藏层极限学习机含有多个隐藏层,具体层数由用户给定的隐藏节点数量列表L的长度n决定。
[0115] 步骤3.2,假设列表L=[a1,a2,a3,…an],ai对应了第i个隐藏层的隐藏节点数量。
[0116] 本实验列表L=[50,100,150]。
[0117] 步骤3.3,对于α1,其求解输出权重β1的步骤与步骤2中的单隐藏层模型求解步骤一致,将其输出β1存入输出权重列表M。
[0118] 因此β1的形状为[50]。
[0119] 步骤3.4,对于a2,…,an‑1,每层隐藏层的输入特征矩阵是该层前面隐藏层的输出权重依次与原始输入特征矩阵做内积的结果,公式表示如下:
[0120] X2=β1·X
[0121] X3=β2·(β1·X)=β2·X2
[0122] ……
[0123] Xn‑1=βn‑2·Xn‑2
[0124] β2的形状为[100]。
[0125] 步骤3.5,对于an,即最后一层隐藏层,其输入矩阵为
[0126] Xn=βn‑1·Xn‑1
[0127] 之后代入单隐藏层极限学习机,得到最终的βn。
[0128] β3的形状为[150]。
[0129] 步骤4,训练模型,求出输出权重。
[0130] 本发明步骤4包含以下步骤:
[0131] 步骤4.1,分别将训练集输入单隐藏层极限学习机和多隐藏层极限学习机,得到输出权重β。
[0132] 本实验中单隐藏层极限学习机模型输出权重β为[50],多隐藏层极限学习机模型输出权重β为[150]。
[0133] 步骤5,利用训练好的模型对测试集进行分类。
[0134] 本发明步骤5包含以下步骤:
[0135] 步骤5.1,在已知输出权重β,输入权重w和隐藏层偏置b的情况下,通过以下公式对输入的测试集进行分类,输出判别数组Predicts。
[0136]
[0137] 其中,βi为输出权重,X为测试数据,sign()是符号函数,其表达式如下:
[0138]
[0139] 输入数据形状为[20000,74],输出判别数组Predicts形状为[20000],其值为[‑1,1,‑1,‑1,…,1,1,‑1]。
[0140] 步骤6,模型评价。
[0141] 本发明步骤6包含以下步骤:
[0142] 步骤6.1,计算步骤5中得到的判别数组Predicts与测试数据真实标签Test_Y的差异。
[0143] 步骤6.2,根据Predicts和Test_Y画出两个模型的ROC曲线。
[0144] 步骤6.3,根据Predicts和Test_Y计算各项评价指标,例如准确率(ACC)、误报率(FAR)和检测率(DR),精准率(Precision)、召回率(Recall)和F1‑Measure,并记录训练和分
类消耗时间。
[0145] 该方法为二元分类检测,即正常或异常,因此预测有四种结局,即真阳性(TP):检测为异常,实际上也为异常;伪阳性(FP):检测为异常,实际上正常;真阴性(TN):检测为正
常,实际上也正常;假阴性(FN):检测为正常,实际上异常。按照该标准来计算模型预测结果
的准确率(ACC)、误报率(FAR)和检测率(DR),精准率(Precision)、召回率(Recall)和F1‑
Measure。
[0146]
[0147]
[0148]
[0149]
[0150]
[0151]
[0152] ROC曲线适用于评估分类器的整体性能且不会随着样本中的正负样本比例变化而产生明显变化。本方法提到的两个模型评估指标如下表1所示。
[0153]
[0154]
[0155] 表1
[0156] MLELM模型在ACC、FAR和DR,Precision、Recall和F1‑Measure六项指标上均优于ELM,但是由于隐藏层的增多,其测试时间消耗大于ELM。
[0157] 两模型的ROC图见附图图5。分析实验结果可以得出MLELM模型的性能比ELM更加出色。