一种基于自发流量的物联网设备识别方法与流程

文档序号:20780463发布日期:2020-05-19 21:11阅读:265来源:国知局

本发明属于物联网设备识别技术领域,特别涉及一种基于自发流量的物联网设备识别方法。



背景技术:

目前,物联网技术由于设备数量众多、种类繁杂、安全功能受限而面临软硬件故障、物理攻击、信息泄露或篡改、非授权访问或恶意控制等安全风险。物联网设备的安全性将影响人们的物联生活,因此,必须妥善处理物联网技术中存在的安全问题。

为解决物联网设备的安全问题,目前常见的解决方案可以分为以下两种:

设立入侵检测系统与升级物联网设备。这两种解决方案在检测实时更新的攻击时效率较低,同时,这对供应商的系统更新要求很高,耗时耗力,无法应对当前飞速发展的物联网市场。除此之外,恶意入侵者也很容易根据物联网市场的当前漏洞开发一些恶意软件,导致物联网系统遭受攻击从而造成安全损失。



技术实现要素:

本发明的目的在于提供一种基于自发流量的物联网设备识别方法,以解决上述问题。

为实现上述目的,本发明采用以下技术方案:

一种基于自发流量的物联网设备识别方法,包括以下步骤:

步骤1:对于目标物联网设备,给定其流量指纹特征向量集合,表示为{f1,f2,…,fm},其中fi,i=1,2,…,m为目标物联网设备的第i个流量指纹特征向量;

步骤2:针对目标物联网设备,联网后不对其进行任何用户操作行为,收集目标物联网设备所产生的自发流量数据包序列;

步骤3:对步骤1的m个流量指纹特征向量,对每一个流量指纹特征向量,将其和目标物联网设备所产生的自发流量数据包序列进行匹配,得到一个时间序列,该时间序列由z个元素构成,对应z个时间窗口;

步骤4:将m个流量指纹特征向量在z个时间窗口内的匹配结果构造为z行m列的矩阵;

步骤5:将步骤4所得z行m列矩阵同时输入到两个卷积神经网络a和b进行训练,分别实现两种功能:卷积神经网络a用于判断目标物联网设备是否存在;在卷积神经网络a判断目标物联网设备存在的情况下,卷积神经网络b输出目标物联网设备数目。

进一步的,收集目标物联网设备所产生的自发流量数据包序列具体包括:

收集设备流量和背景流量,设备流量用te表示,背景流量用tb表示;通过让设备连接网关,在网关获取目标物联网设备产生的流量,构成te;捕获用户正常上网、其他目标物联网设备产生的流量,构成tb。

进一步的,步骤3具体包括:

流量数据包序列表示为<(t1,p1),(t2,p2),…,(tn,pn)>;其中,(tj,pj),j=1,2,…,n,表示tj时刻目标物联网设备产生的数据包为pj;每一个fi与<(t1,p1),(t2,p2),…,(tn,pn)>的匹配,得到一个时间序列,表示为<(w1,c1)i,(w2,c2)i,…,(wz,cz)i>;其中,(wk,ck)i表示在<(t1,p1),(t2,p2),…,(tn,pn)>的第k个时间窗口wk内(k=1,2,3,…,z),fi与<(t1,p1),(t2,p2),…,(tn,pn)>的成功匹配次数为ck;每个时间窗口的大小设定为δt,第k个时间窗口wk的时间区间范围wk=[t1+(k-1)δt,t1+kδt)。

进一步的,流量指纹特征向量与流量数据包序列的匹配过程具体包括:

步骤1:流量特征相似度为两特征之间的距离,用d表示;定义特征相似度阈值d,如果d<d,则称两个数据包相似;定义时间阈值t,如果两个数据包到达时间之间的间隔小于t,则称这两个数据包之间时间邻近;

步骤2:流量指纹特征向量fi(i=1,2,…,m)用描述,其中(r=1,2,3,…,v)表示fi的第r维特征;

步骤3:对<(t1,p1),(t2,p2),…,(tn,pn)>中的每一个数据包使用进行匹配;如果数据包pj和之间的相似度d<d,则匹配成功;对于匹配成功的数据包,按照时间顺序输出,形成与匹配成功的数据包子序列;随着r=1,2,3,…,v的改变,形成v个匹配成功的数据包子序列,这v个匹配成功的数据包子序列的的长度分别记为y1,y2,y3,…,yv;

步骤4:从与匹配成功的v个数据包子序列中,分别每次选取一个数据包进行排列,排列后最终形成y1×y2×y3×…×yv个由v个数据包构成的全匹配数据包序列,所有的全匹配数据包序列构成一个全匹配数据包序列集合;将第u个全匹配数据包序列记作若某个全匹配数据包序列的数据包达到时刻不是按照时间顺序由小到大或者不满足时间邻近,则从全匹配数据包序列集合中删除该全匹配数据包序列;

步骤5:对全匹配数据包序列集合中的第h个全匹配数据包序列h(h=1,2,3,…,g),计算第一个数据包到达时刻所属时间窗口;若属于时间窗口wk,同时,给时间窗口wk进行ck=ck+1操作;

步骤6:对所有的全匹配数据包序列集合中的每个全匹配数据包序列进行步骤5操作,得到<(w1,c1)i,(w2,c2)i,(w3,c3)i,…,(wz,cz)i>。

进一步的,步骤5中,卷积神经网络训练方法包括:

(1)在训练过程中,将设备流量te和背景流量tb混合之后作为正样本,背景流量作为负样本;

(2)输入为权利要求1步骤4中的z行m列矩阵作;训练过程中根据本地网络中物联网设备的数量使用不同的函数:卷积神经网络a使用softmax和交叉熵损失函数,输出目标物联网设备是否存在;卷积神经网络b使用mse损失函数,在目标物联网设备存在的情况下,输出目标物联网设备的数量。

与现有技术相比,本发明有以下技术效果:

本发明是站在网络运营商(internetserviceprovider,isp)的角度进行物联网设备的外网被动探测,即考虑nat的情况下。一个网络服务提供商为多个子网提供网络服务,在每个子网中,有不同设备的流量,如智能手机和计算机。我们的目标是判断一个子网是否有某个特定的物联网设备,以及有多少设备。如果能在网络管理中能够精确的判别接入设备的种类和个数,就有可能对拥有漏洞的设备“发出警告”。更为珍贵的是,这为检测和减轻网络安全攻击铺平了道路,对网络的安全有着十分重大的意义。本发明站在物联网设备监管的角度,提出了一种给基于自发流量的设备识别方法,能够精确识别设备数量,对于防范网络攻击有重大意义。

本发明能够在网络管理中精确的判别接入设备的种类和个数,物联网设备管理者可以清晰观察和意识到物联网设备的存在状态以及个数,从设备监管角度为防范网络攻击提供设备信息,对网络空间安全有重大意义。同时,相较于其它物联网设备识别解决方案,本发明具有精度高、误报少、算法时间复杂度小,适合于大规模探测等优势。

具体实施方式

以下对本发明进一步说明:

一种基于自发流量的物联网设备识别方法,包括以下步骤:

步骤1:对于目标物联网设备,给定其流量指纹特征向量集合,表示为{f1,f2,…,fm},其中fi,i=1,2,…,m为目标物联网设备的第i个流量指纹特征向量;

步骤2:针对目标物联网设备,联网后不对其进行任何用户操作行为,收集目标物联网设备所产生的自发流量数据包序列;

步骤3:对步骤1的m个流量指纹特征向量,对每一个流量指纹特征向量,将其和目标物联网设备所产生的自发流量数据包序列进行匹配,得到一个时间序列,该时间序列由z个元素构成,对应z个时间窗口;

步骤4:将m个流量指纹特征向量在z个时间窗口内的匹配结果构造为z行m列的矩阵;

步骤5:将步骤4所得z行m列矩阵同时输入到两个卷积神经网络a和b进行训练,分别实现两种功能:卷积神经网络a用于判断目标物联网设备是否存在;在卷积神经网络a判断目标物联网设备存在的情况下,卷积神经网络b输出目标物联网设备数目。

收集目标物联网设备所产生的自发流量数据包序列具体包括:

收集设备流量和背景流量,设备流量用te表示,背景流量用tb表示;通过让设备连接网关,在网关获取目标物联网设备产生的流量,构成te;捕获用户正常上网、其他目标物联网设备产生的流量,构成tb。

步骤3具体包括:

流量数据包序列表示为<(t1,p1),(t2,p2),…,(tn,pn)>;其中,(tj,pj),j=1,2,…,n,表示tj时刻目标物联网设备产生的数据包为pj;每一个fi与<(t1,p1),(t2,p2),…,(tn,pn)>的匹配,得到一个时间序列,表示为<(w1,c1)i,(w2,c2)i,…,(wz,cz)i>;其中,(wk,ck)i表示在<(t1,p1),(t2,p2),…,(tn,pn)>的第k个时间窗口wk内(k=1,2,3,…,z),fi与<(t1,p1),(t2,p2),…,(tn,pn)>的成功匹配次数为ck;每个时间窗口的大小设定为δt,第k个时间窗口wk的时间区间范围wk=[t1+(k-1)δt,t1+kδt)。

流量指纹特征向量与流量数据包序列的匹配过程具体包括:

步骤1:流量特征相似度为两特征之间的距离,用d表示;定义特征相似度阈值d,如果d<d,则称两个数据包相似;定义时间阈值t,如果两个数据包到达时间之间的间隔小于t,则称这两个数据包之间时间邻近;

步骤2:流量指纹特征向量fi(i=1,2,…,m)用描述,其中(r=1,2,3,…,v)表示fi的第r维特征;

步骤3:对<(t1,p1),(t2,p2),…,(tn,pn)>中的每一个数据包使用进行匹配;如果数据包pj和之间的相似度d<d,则匹配成功;对于匹配成功的数据包,按照时间顺序输出,形成与匹配成功的数据包子序列;随着r=1,2,3,…,v的改变,形成v个匹配成功的数据包子序列,这v个匹配成功的数据包子序列的的长度分别记为y1,y2,y3,…,yv;

步骤4:从与匹配成功的v个数据包子序列中,分别每次选取一个数据包进行排列,排列后最终形成y1×y2×y3×…×yv个由v个数据包构成的全匹配数据包序列,所有的全匹配数据包序列构成一个全匹配数据包序列集合;将第u个全匹配数据包序列记作若某个全匹配数据包序列的数据包达到时刻不是按照时间顺序由小到大或者不满足时间邻近,则从全匹配数据包序列集合中删除该全匹配数据包序列;

步骤5:对全匹配数据包序列集合中的第h个全匹配数据包序列h(h=1,2,3,…,g),计算第一个数据包到达时刻所属时间窗口;若属于时间窗口wk,同时,给时间窗口wk进行ck=ck+1操作;

步骤6:对所有的全匹配数据包序列集合中的每个全匹配数据包序列进行步骤5操作,得到<(w1,c1)i,(w2,c2)i,(w3,c3)i,…,(wz,cz)i>。

步骤5中,卷积神经网络训练方法包括:

(1)在训练过程中,将设备流量te和背景流量tb混合之后作为正样本,背景流量作为负样本;

(2)输入为权利要求1步骤4中的z行m列矩阵作;训练过程中根据本地网络中物联网设备的数量使用不同的函数:卷积神经网络a使用softmax和交叉熵损失函数,输出目标物联网设备是否存在;卷积神经网络b使用mse损失函数,在目标物联网设备存在的情况下,输出目标物联网设备的数量。

实施例:

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

步骤1:对于目标物联网设备,给定其流量时间序列特征,表示为<f1,f2,f3,…>,其中fi(i=1,2,3,…)为目标物联网设备的数据包特征向量表示。

步骤2:针对目标物联网设备,联网后不对其进行任何用户操作行为,收集目标物联网设备所产生的自发流量数据包序列。

步骤3:将流量特征序列与数据包序列进行匹配,其具体流程为:

(1)合理评估数据特征相似度,规定序列相似度的取值范围,同时规定数据包时间差的范围。假设时间差和序列特征相似度的取值简化为常数,时间差范围为t≤3,序列特征相似度取值范围为d≤0;

(2)将步骤1中所述的流量特征序列和数据包序列的进行匹配。通过对时间差和特征相似度的判断进行特征序列的逐个对比判断,从数据包的子序列中找到序列特征的映射数据包包括若干时间信息和对应的序列信息。特征距离定义为相似度差距。假设序列特征p1,p2,p3的值为常数,取值为{3,7,2},同时假设数据包为<(0,1),(1,3),(2,3),(3,7),(4,1),(5,2),(6,1),(7,7)>。与特征p1匹配成功的数据包子序列为<(1,3),(2,3)>,与特征p2匹配成功的数据包子序列为<(3,7),(7,7)>,与特征p3匹配的数据包子序列为<(5,2)>,对这三个数据包子序列进行排列得到4个全匹配数据包序列:

<(1,3),(3,7),(5,2)>,<(1,3),(7,7),(5,2)>,<(2,3),(3,7),(5,2)>,<(2,3),(7,7),(5,2)>,遍历上述四个全匹配数据包序列发现全匹配数据包序列<(1,3),(7,7),(5,2)>和<(2,3),(7,7),(5,2)>的数据包的到达时间没有按照时间顺序由小到大,删除<(1,3),(7,7),(5,2)>和<(2,3),(7,7),(5,2)>,剩余两个全匹配数据包序列满足在时间邻近,则最终得到的全匹配数据包序列为<(1,3),(3,7),(5,2)>和<(2,3),(3,7),(5,2)>,将两条全匹配数据包序列的第一个数据包到达的时间1,2映射到时间轴上,最终得到的一维时间序列为<0,1,1,0,0,0,0,0>。重复上述过程,直至每个流量指纹特征向量被匹配。

步骤4:将序列匹配结果构造为矩阵;

步骤5:将步骤4中的矩阵输入到卷积神经网络中。如果流量中有多个物联网设备,那么模型的输出为目标物联网设备的数量,若不存在目标物联网设备,则输出为0。然后利用relu和mseloss函数进行计算。假设模型的输入是一个7乘以10的数组,表示了10个特征序列在7秒内的时间分布。假设目标物联网设备为mijiaplug,若输出为0,则表示不存在mijiaplug,若输出为5,则表示该局域网中mijiaplug的数量为5。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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