1.一种软件定义物联网自学习防御方法,其特征在于,包括以下步骤:
(1)嗅探获取软件定义物联网节点发送的包含于介质访问控制层和网络层之间的所有数据包,获得数据包集合: 其中, 表示第i个数据包;
(2)对步骤(1)中获取的数据包集合 中的每个数据包进行网络安全特征提取,并采用稀疏自编码器进行编码,获得所有数据包的各个网络安全特征值对应的编码;
(3)对于步骤(2)中获取的数据包的各个网络安全特征值的编码进行聚类,获得编码类别集合Cluster={cs1,cs2,…,csm},其中csi表示聚类集合Cluster中的第i个聚类,m表示聚类集合Cluster中的聚类个数;
(4)将步骤(3)中获得的编码类别集合Cluster中的每一类别csi与已知安全网络安全特征编码集合Nom、以及已知风险网络安全特征值编码集合Mal中的元素进行比对,自动判定所述分析模块提交的编码为安全网络安全特征编码、风险网络安全特征值编码、或未知网络安全特征编码,并将安全网络安全特征编码和风险网络安全特征编码分别追加到已知安全网络安全特征编码集合Nom、以及已知风险网络安全特征值编码集合Mal中,对于风险网络安全特征值编码执行预设的防御动作,收集未知网络安全特征编码形成未知网络安全特征编码集合Diff;
(5)对于步骤(4)中获得的未知网络安全特征编码集合Diff,由网络安全专家组成员鉴定其中的每一个元素是否为安全的软件定义物联网网络行为,若鉴定为安全,则将该元素追加到已知安全网络安全特征值编码集合Nom中,否则将该元素追加到已知风险数据包编码集合Mal中并设定其预设的防御动作。
2.如权利要求1所述的软件定义物联网自学习防御方法,其特征在于,步骤(2)包括:
(2-1)对于数据包 采用网络安全监控工具抽取其中网络安全特征,例如采用
公开源代码的Zeek网络安全监控工具抽取,并根据网络安全特征与整数的映射关系,将的网络安全特征值映射为整数,组成数据包网络安全特征值集合 即:其中 为第i个实际嗅探到的数据
包 的网络安全特征向量, 其中 为第i个实际
嗅探到的数据包 的第j个网络安全特征,n表示第i个实际的数据包 的网络
安全特征向量 所具有的网络安全特征个数; 为网络安全特征 对应的网络安
全特征值, 为整数。
(2-2)对于步骤(2-1)中获取的数据包网络安全特征值集合 采用稀疏自编码器进行编码,获得数据包网络安全特征值集合 中每一个数据包网络安全特征值对应的编码,组成数据包编码集合
3.如权利要求2所述的软件定义物联网自学习防御方法,其特征在于,步骤(2-2)具体为:
(2-2-1)对于步骤(2-1)中获取的数据包网络安全特征值集合 中的每一元素 进行归一化处理获得归一化后的网络安全特征值 其中,表示 的最大值;
(2-2-2)对于步骤(2-2-1)获得归一化后的网络安全特征值 采用稀疏自编码器编码,获得每一个数据包网络安全特征值对应的编码,所有数据包网络安全特征值对应的编码组成数据包编码集合
4.如权利要求3所述的软件定义物联网自学习防御方法,其特征在于,所述稀疏自编码器优选稀疏自编码神经网络,按照如下方法训练获取:学习样本收集:仿真建立的安全软件定义物联网环境,与步骤(1)相同的嗅探获取的节点发送的包含于介质访问控制层和网络层之间的所有数据包,获得仿真数据包集合:Δ={Packet1,Packet2,Packet3,…},其中,Packeti表示第i个仿真数据包;与步骤(2-1)相同的获取仿真数据包Packeti的网络安全特征,组成仿真的数据包网络安全特征值集合Θ;即Θ={Feature1,Feature2,Feature3,…},Featurei为第i个嗅探到的仿真数据包Packeti的网络安全特征向量,Featurei={fi1,fi2,fi3,…,fin},其中fij为第i个嗅探到的仿真数据包Packeti的第j个网络安全特征,n表示第i个仿真数据包Packeti的网络安全特征向量Featurei所具有的网络安全特征个数;zij为网络安全特征fij对应的网络安全特征值,zij为整数;与步骤(2-2-1)相同的获取数据包网络安全特征值集合Θ中的每一元素zij,进行归一化处理获得归一化后的网络安全特征值 其中, 表示zij的最大值;
稀疏自编码神经网络模型:包括输入层、隐含层和输出层;其输入层具有与数据包网络安全特征向量具有的网络安全特征值的个数相同的输入神经元,即具有数量为n的输入神经元,第k个输入神经元的值为相应归一化后的仿真数据包的网络安全特征值,即对于输入神经元集合in={α1,α2,α3,…,αk,…αn},k=1,2,...n,其中αk为稀疏自编码神经网络输入层中第k个输入神经元的值,有:αk=gik;对于隐含层中第l个神经元,其值hl为:hl=Σnαkqkl+bkl,其中qkl表示权值分量,bkl表示偏置分量;具有与数据包网络安全特征向量具有的网络安全特征值的个数相同的输出神经元,即具有数量为n的输出神经元,对于输出神经元集合out={β1,β2,β3,…,βk,…βn},k=1,2,...n,其中βk为稀疏自编码神经网络输出层中第k个输出神经元的值,βk=Σlhlqkl+bkl。
稀疏自编码神经网络模型的训练:采用无监督学习,将损失函数最小时的稀疏自编码神经 网 络 模型 作 为 稀疏 自 编 码器 ;所 述 损失 函数 L ( IN ,O UT ) 为 :其中IN为仿真数据包集合所有元素输入稀疏自编码神经网
络模型的网络安全特征值集合,OUT为仿真数据包集合所有元素由稀疏自编码神经网络模型的输出的编码集合,|OUT|表示集合OUT中所有元素的个数,即|OUT|为仿真数据包个数与n的乘积;当损失函数L(IN,OUT)取最小值时,所述神经网络模型的权值分量和偏置分量分别构成权值向量Q和偏置向量B,即:Q=[q11 q12 q13…q1l…q21 q22 q23…q2l…],
B=[b11 b12 b13…b1l…b21 b22 b23…b2l…]。
5.如权利要求1所述的软件定义物联网自学习防御方法,其特征在于,步骤(3)采用凝聚层次聚类算法进行聚类。
6.如权利要求1所述的软件定义物联网自学习防御方法,其特征在于,步骤(4)具体为:
对于步骤(3)中获得的编码类别集合Cluster中的每一类别csi,获取其中心值,与所有已知安全网络安全特征值编码集合Nom中的所有元素值进行比对,如果所述已知安全网络安全特征值编码集合Nom中存在至少一个元素与该类别网络安全特征值编码的中心值相同,则将该类别所有的网络安全特征值编码{e1,e2,e3,…}追加到已知安全网络安全特征值编码集合Nom中;否则,将该类别中的所有元素{e1,e2,e3,…}与已知风险网络安全特征值编码集合Mal中的所有元素进行比对:对于该类别中每一元素,如果已知风险网络安全特征值编码集合Mal中存在至少一个元素与该元素的值相同,则将该元素追加到已知风险网络安全特征值编码集合中并执行预先设定的防御动作,否则将该网络安全特征值编码加入到未知网络安全特征值编码集合Diff中。
7.如权利要求1所述的软件定义物联网自学习防御方法,其特征在于,所述已知安全网络安全特征值编码集合Nom优选初始化方法如下:将稀疏自编码器的学习样本采用稀疏自编码器的编码组成的集合OUT作为初始已知安全网络安全特征值编码集合Nom。
8.一种软件定义物联网自学习安全防御系统,其特征在于,包括:嗅探模块、分析模块、检测防御模块、以及知识库;
所述嗅探模块,与软件定义物联网相连,用于嗅探获取软件定义物联网节点发送的包含于介质访问控制层和网络层之间的所有数据包,并将所述数据包提交给分析模块;
所述分析模块,用于提取所述数据包的网络安全特征,并采用稀疏自编码器进行编码,获得每个数据包的各个网络安全特征值对应的编码并提交给检测防御模块;
所述检测防御模块,用于将所述分析模块提交的编码进行聚类分析,并与已知安全网络安全特征编码集合Nom中的元素、以及已知风险网络安全特征值编码集合Mal中的元素进行比对,自动判定所述分析模块提交的编码是否为安全网络安全特征编码、风险网络安全特征值编码、或未知网络安全特征编码,并将安全网络安全特征编码和风险网络安全特征编码提交给知识库,对于风险网络安全特征值编码执行预设的防御动作,收集未知网络安全特征编码形成未知网络安全特征编码集合Diff提交给专家处理模块;
所述专家处理模块,用于对未知网络安全特征编码集合Diff每一个元素进行人工鉴定,手动判定所述分析模块提交的编码是否为安全网络安全特征编码、风险网络安全特征值编码,并将安全网络安全特征编码和风险网络安全特征编码提交给知识库,对于风险网络安全特征值编码设置防御动作执行并提交给知识库;
所述知识库,用于存储已知安全网络安全特征编码集合Nom、以及已知风险网络安全特征值编码集合Mal,并用于收集所述检测防御模块和专家处理模块提交的安全网络安全特征编码、以及风险网络安全特征值编码,并将其分别追加到已知安全网络安全特征编码集合Nom、以及已知风险网络安全特征值编码集合Mal中,对于专家处理模块提交的风险网络安全特征值编码,将专家处理模块设置的其相应防御动作,作为该已知风险网络安全特征值的预设的防御动作。
9.如权利要求8所述的软件定义物联网自学习安全防御系统,其特征在于,所述分析模块内置:
Zeek网络安全监控工具,用于提取所述数据包的网络安全特征;
映射表,用于将Zeek网络安全监控工具提取的网络安全特征映射为整数的数据包网络安全特征值 按照如下方法生成:对于Zeek网络安全监控工具提取的网络安全特征的所有可能值进行排列,使得其相应的数据包网络安全特征值从整数1开始顺序赋值,即:zeek1=1,zeek2=2,zeek3=3,…
其中zeeki为Zeek网络安全监控工具提取的网络安全特征第i个可能的值。
归一化工具,用于将数据包网络安全特征值zij进行归一化处理获得归一化后的网络安全特征值
稀疏自编码器,即稀疏自编码神经网络,其具有数量为n的输入神经元,第k个输入神经元的值为相应归一化后的仿真数据包的网络安全特征值,即对于输入神经元集合in={α1,α2,α3,…,αk,…αn},k=1,2,...n,其中αk为稀疏自编码神经网络输入层中第k个输入神经元的值,有: 对于隐含层中第l个神经元,其值hl为:hl=∑nαkqkl+bkl,其中qkl表示权值分量,bkl表示偏置分量;具有与数据包网络安全特征向量具有的网络安全特征值的个数相同的输出神经元,即具有数量为n的输出神经元,对于输出神经元集合out={β1,β2,β3,…,βk,…βn},k=1,2,...n,其中βk为稀疏自编码神经网络输出层中第k个输出神经元的值,βk=∑lhlqkl+bkl;权值分量和偏置分量分别构成权值向量Q和偏置向量B,即:Q=[q11 q12 q13…q1l…q21 q22 q23…q2l…],
B=[b11 b12 b13…b1l…b21 b22 b23…b2l…]。
10.如权利要求8所述的软件定义物联网自学习安全防御系统,其特征在于,所述检测防御模块,用于将所述分析模块提交的编码采用凝聚层次聚类算法进行聚类分析。