本发明涉物联网设备检测领域,特别是一种物联网设备检测方法、终端设备及存储介质。
背景技术:
1、近年来,物联网设备数量的规模急剧膨胀,正在深刻影响人们生产和生活的方方面面,给人们带来了很多的便利。然而在物联网给人们带来便利的同时也存在着许多物联网设备安全问题,从而带来了许多挑战。物联网设备检测是指识别特定类型的物联网设备,目的主要是为了准确的检测出物联网设备类型,这是网络管理、服务质量(qos)和异常检测等安全问题的基本技术。在物联网设备检测技术的基础上,能够及时发现潜在的对物联网设备的威胁和异常,并提供细致化的运维指导,因此对保障物联网设备安全也具有重要意义。
2、物联网设备检测可以看作是对物联网设备流进行识别的问题,而解决这个问题的关键是如何利用少量的数据包信息对物联网设备类型进行有效的识别。目前关于物联网设备检测的研究,主要包括传统的基于规则和基于机器学习的物联网设备检测方法。其中前者是根据特征生成规则库对设备类型进行检测;后者具有很强的学习能力,能够充分地挖掘数据中的重要特征。
3、基于规则的方法是要根据现有的设备的流量特征生成规则库,然后利用这些规则来识别同一类型物联网设备,这种方法简单快速,但是只能利用特征生成库的已有特征进行检测,检测准确度低。
4、基于机器学习的检测方法分为经典机器学习算法和基于深度学习的算法。经典机器学习算法如支持向量机,决策树,随机森林等等都是在物联网设备检测领域的应用,并且这些算法的性能都比上述基于规则的方法有所提高,但这依赖于特征工程所提取特征的准确度,并且这不仅需要具有该领域专业知识的研究人员,而且还需要大量的时间。最后,这些方法并没有解决对新增的物联网设备类型的持续学习的问题。
5、基于深度学习的算法对物联网设备检测的研究少之又少,基本上都是基于经典的机器学习算法。最开始,简单的深度学习模型被用于物联网设备检测问题,尤其是卷积神经网络(cnn)。但这些简单的深度学习模型往往只考虑了物联网流量数据在空间上的特征。
6、随着网络流量模式越发复杂,为了满足实际网络流量预测的需求,混合模型和改进模型被提出,研究人员同时考虑流量数据的时间特征和空间特征,其中lopez-matrin等人使用深度学习来对不同类型的物联网流量进行分类。他们使用一个混合的深度神经网络,结合卷积神经网络和递归神经网络来学习适当的特征,使分类精度最大化。虽然这个模型的检测性有很大的提升,然而,这个模型需要很长时间的训练才能识别物联网设备的类型,这增加了很多计算开销。因此,它不是一个很好的物联网设备检测的解决方案。
7、近年来,由于图神经网络在处理实体间的空间相关性方面取得了巨大的成功,它已被广泛应用于自然语言处理,计算机视觉等领域中,基于空间的图神经网络最近取得了突破性的进展,而基于空间的图神经网络主要依赖的是消息传递网络(message passingneural network,mpnn),这种消息传递机制是由google科学家提出的一种模型。从专业的角度上来说,mpnn不是某一种具体的模型,实际上它是一种空间卷积的形式化通用的框架,这也是本发明进行物联网设备检测任务的最佳选择,但是现有的图神经网络无法区分k-正则图(k-正则图是指图中每个顶点度均为k),主要原因是每个顶点的邻居顶点和顶点属性是相同的,而且现有的图神经网络只考虑了顶点的属性,没有考虑边属性和子图结构,因此有些图不能被准确的区分。
8、综上,现有研究存在如下不足:
9、(1)经典的机器学习方法依赖于特征工程,这是一个困难和繁琐的工作,需要进行特征分析和选择,可能会选择数百个特征,这不仅需要具有该领域专业知识的研究人员,而且还需要大量的时间。
10、(2)现有的研究主要使用递归神经网络(rnn)或卷积神经网络(cnn)来对物联网设备进行检测。基于rnn和基于cnn的方法无法通过并行化来加速,因此迭代计算过程非常耗时,需要很长的训练时间来识别物联网设备的类型,这消耗了很多计算资源。
11、(3)传统的物联网检测技术只能识别固定数量的物联网设备类型,即在物联网设备检测之前就要确定物联网设备类型的数量。但是,在现实生活中,物联网设备类型每天都在增加,当我们从网络中收集新的物联网设备类型来支持新的物联网设备类型的检测时,多设备分类器需要进行完全的再训练,但是,它通常需要相当多的时间和计算资源,并且工作负载随着设备类型的增加而增加。这是物联网设备检测领域的另一个关键问题。
技术实现思路
1、本发明所要解决的技术问题是,针对现有技术不足,提供一种物联网设备检测方法、终端设备及存储介质,解决物联网设备检测准确度低,以及对新增的物联网设备类型不能检测的问题。
2、为解决上述技术问题,本发明所采用的技术方案是:一种物联网设备检测方法,包括以下步骤:
3、s1、提取物联网设备与网关交互的数据包方向、长度以及时间戳,并将所述数据包方向、长度以及时间戳转化为物联网设备流;
4、s2、将所述物联网设备流转化为设备流图,将数据包长度作为所述设备流图的顶点特征,数据包之间的时间间隔作为所述设备流图的边特征,并提取设备流图的每个顶点的邻居顶点,形成邻域子图,从所述邻域子图中提取共同子图;
5、s3、利用图神经网络nesgnn聚合所述设备流图的顶点特征、边特征及设备流图的共同子图的结构,为每个顶点v学习一个表示向量hv,进而为整个设备流图学习一个表示向量hiot-dtgr;
6、s4、将n维表示向量hiot-dtgr转化d维表示向量hiot-dtgr,利用hiot-dtgr获得预测的概率向量即就是物联网设备检测结果。
7、本发明将物联网设备与网关交互的数据包信息转化成设备流,将设备流按照特定规则构成图的形式(iot-dtgr),将数据包长度和数据包之间的时间间隔分别作为图的顶点和边特征,利用图和子图的特征对物联网设备进行有效的识别,降低了特征工程的复杂性和工作量。本发明考虑了图中的顶点和边属性及其共同子图结构,将不同物联网设备流的iot-dtgrs映射到嵌入空间中的不同表示,并且不需要手工制作的特征,以更有效和准确的方式对设备类型进行识别,解决了物联网设备检测准确度低的问题。
8、优选地,本发明的方法还包括:
9、s5、共享图神经网络nesgnn部分网络层的参数,将已知类型的少量设备样本与新设备类型的样本作为图神经网络nesgnn的输入,训练所述图神经网络nesgnn,得到检测模型。
10、本发明对新增的物联网设备类型进行可持续学习,这使得检测系统能够同时检测已经学过的和新的物联网设备类型,而无需从头开始重新训练模型,解决了现有技术对新增的物联网设备类型不能检测的问题。
11、步骤s1的具体实现过程包括:
12、测量物联网设备与网关的数据包的方向、长度、时间戳,即基本测量单位为xi=[di,li,ti],其中di为数据包的方向,li为数据包的长度,ti表示数据包的时间戳;i=1,2,……,count,count为物联网设备与网关交互的连续的数据包个数;
13、将连续的count个物联网设备与网关交互的数据包转化为流的形式,iotd={x1,x2,...,xcount},其中iotd表示一条物联网设备流。
14、本发明对物联网设备与网关交互的数据包进行了信息处理以及变成流的形式,减小了后续深度学习模型的计算成本。
15、步骤s2中,将所述物联网设备流转化为图的形式的具体实现过程包括:
16、以物联网设备流的每个数据包为一个顶点,顶点的不同的颜色代表数据包的方向,即上行和下行数据包,数据包的编号代表数据包到来的顺序,数据包的特征是数据包的长度,数据包长度的符号代表数据包的方向,即正值表示上行数据包,负值代表下行数据包;
17、按照数据包到来的顺序连接设备流图同一层的顶点,得到层内的边;对应连接不同层的顶点,得到层间的边;
18、以两个相连顶点之间的时间间隔作为边的权重。
19、在本发明中,对物联网设备流进行建模设备流图的形式,其优点是保留了物联网设备流的上下文信息,更符合现实世界中物联网设备流的产生机制。
20、所述共同子图的结构系数avu表示为:avu=ωvu,ω是量化函数,|evu|=∑evu是共同子图svu中边属性的和,|vvu|是共同子图svu中顶点数量的和。
21、本发明中,将物联网设备流转化为设备流图的形式,以便在后续的图神经网络nesgnn中利用设备流图的顶点和边特征以及子图结构进行有效的学习,这样能够保证即使在类型相似但不同的设备流图进入到图神经网络中能够进行区分,保证检测的准确性。
22、步骤s3中,表示向量hiot-dtgr的获取过程包括:
23、通过下式得到的设备流图第k层顶点v的表示向量表示为:是顶点v在第k-1次迭代或设备流图第k-1层的表示;evu是顶点u和顶点v之间的边的特征;是顶点v的邻居顶点;∈是一个可学习的参数;是共同子图的结构系数avu的归一化值,mlp是多层感知机;
24、给定单个顶点的表示向量,产生整个图的表示向量hiot-dtgr,hiot-dtgr的计算公式为即iot-dtgr表示一个设备流图,n表示迭代的次数;其中,xv是设备流图的顶点v的特征,在第1次迭代后产生的表示向量用进行表示,即经过nesgnn第一层的顶点v产生的表示向量,表示第二次迭代后的表示向量,以此类推,获得每一层的表示向量,串联所有层的的表示向量,即得到整个图的表示向量hiot-dtgr。
25、本发明中,图神经网络主要是对设备流图的顶点、边特征及设备流图的子图结构进行学习,即使在设备流图的类型相似的情况下,也能对其进行准确的检测。
26、步骤s3中,将n维表示向量hiot-dtgr转化d维表示向量hiot-dtgr,其中n是特征的个数,d是设备类型的数量,然后使用概率向量
27、所述图神经网络nesgnn每一层均包括依次连接的linear函数、batchnorm函数、dropout函数、relu函数。
28、本发明中,nesgnn中包含3层,以此对图以及子图的特征由浅层次到深层次进行学习。图级读出的一个重要方面是相对应的节点表示会随着迭代次数的增加而变得更加精细,因此足够多的迭代次数是具有良好识别能力的关键。
29、本发明的方法还包括:
30、s6、将测试样本输入至检测模型中,得到检测结果;其中,所述测试样本为所有类型的设备流图中的设定比例的样本。
31、作为一个发明构思,本发明还提供了一种终端设备,其包括:
32、一个或多个处理器;
33、存储器,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明上述方法的步骤。
34、作为一个发明构思,本发明还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现本发明上述方法的步骤。
35、与现有技术相比,本发明所具有的有益效果为:
36、(1)本发明将物联网设备与网关交互的数据包信息转化成设备流,将设备流按照特定规则构成图的形式(iot-dtgr),将数据包长度和数据包之间的时间间隔分别作为图的顶点和边特征,利用图和子图的特征对物联网设备进行有效的识别,降低了特征工程的复杂性和工作量。
37、(2)本发明设计了图神经网络模型(graphiot)(基于gnn的分类器),考虑了图与的顶点和边属性及其子图结构,将不同物联网设备流的iot-dtgrs映射到嵌入空间中的不同表示,并且不需要手工制作的特征,以更有效和准确的方式对设备类型进行识别。
38、(3)本发明设计了一个参数共享和样本回放相结合的框架(cl-graphiot),用于在对已经学过的物联网设备类型不会受到灾难性遗忘的情况下,对新增的物联网设备类型进行可持续学习,这使得检测系统能够同时检测已经学过的和新的物联网设备类型,而无需从头开始重新训练模型。