本发明涉及工控数据采集技术,具体地涉及一种基于关键字块感知的iot设备感知方法及装置。
背景技术:
1、随着物联网设备在日常生活和工业生产中的广泛应用,“物联网”时代正在逐步到来。根据智能数据系统的研究报告,2025年将有640亿个物联网设备连接到互联网。由于不同的物联网设备具有不同的服务质量(quality of service,qos)要求,并且需要在不同的限制下保证设备之间的通信安全,因此物联网设备识别对于网络安全和管理策略非常重要。
2、物联网设备识别的行为来源多种多样,包括射频(radio frequency,rf)、时钟偏差和网络流量。基于rf和时钟偏差的方法虽然有效,但它们在应用场景中受到限制,例如,需要在近距离使用复杂的仪器来获取行为特征。考虑到流量的通用性和易于采集的特性,有必要基于设备与服务器之间的通信流量来实现物联网设备的识别。根据实现的协议,物联网设备流量可分为公共协议(如coap、mqtt、amqp、xmpp)流量和专有协议流量两种。专有协议(也称为封闭协议或未知协议)是指由企业、项目和个人根据功能简单、通信快速等特定需求开发的、缺乏公开文件的物联网通信协议。基于云的安全提供商zscaler(2020)的研究发现,83%的基于物联网的交易是通过纯文本通道进行的,包括大多数基于专有协议的通信。
3、现有的面向专有协议的物联网设备识别主要有以下几点不足:1、采用劳动密集型的人工方法对专有协议流量进行建模。2、大多数物联网设备的开放服务都没有足够的信息来进行设备类型识别。3、利用机器学习方法的识别需要很大的算力,降低了识别的效率。
技术实现思路
1、发明目的:本发明的目的是提供一种自动推断物联网设备指纹并有效识别混合流量中每个流对应的物联网设备类型的方法,解决目前现有的识别面向专有协议的物联网设备系统没有足够的开放服务信息进行识别物联网设备和识别需要很大算力效率低的问题。
2、技术方案:一种基于关键字块感知的iot设备识别方法,包括以下步骤:
3、将来自相同iot设备的数据包有效负载集表示为中的每个有效载荷都包括来自该设备的唯一格式字段,对于每个数据包有效载荷分别从正向和反向截取l个字节,得到正向字节pif={fi1,fi2,...,fil,...,fil}和反向字节pir={ri1,ri2,...,ril,...,ril},fil表示正向字节中的第l个字节,ril表示反向字节中的第l个字节,根据中所有有效载荷得到正向字节集合pf和反向字节集合pr;
4、根据pf和pr利用卷积神经网络提取特征f,并对特征f进行聚类,聚类结果记为k(f),其中包含n个有效载荷,k个聚类;
5、利用n-gram方法为每个聚类ci生成所有有效负载的n-gram序列qi并且计算相同位置的n-gram类型的数量,根据n-gram类型的数量识别出关键字节,并添加到聚类关键字集ki中,根据所有聚类得到关键字块的集合k;
6、根据集合k,寻找具有相同关键字块的集群,并将这些集群合并为一个大集群,利用序列对齐算法从合并的有效载荷中生成一个通用匹配序列作为最终生成的设备指纹,不同iot设备的指纹构成指纹库;
7、根据设备指纹库,从新的网络流量中提取第一个数据包的有效载荷,使用规则匹配来检查其对应的指纹,得到预测的lot设备类型标签。
8、一种基于关键字块感知的iot设备识别装置,包括:
9、数据预处理模块,将来自相同iot设备的数据包有效负载集表示为中的每个有效载荷都包括来自该设备的唯一格式字段,对于每个数据包有效载荷分别从正向和反向截取l个字节,得到正向字节pif={fi1,fi2,...,fil,...,fil}和反向字节pir={ri1,ri2,...,ril,...,ril},fil表示正向字节中的第l个字节,ril表示反向字节中的第l个字节,根据中所有有效载荷得到正向字节集合pf和反向字节集合pr;
10、深度聚类模块,根据pf和pr利用卷积神经网络提取特征f,并对特征f进行聚类,聚类结果记为k(f),其中包含n个有效载荷,k个聚类;
11、关键字感知模块,利用n-gram方法为每个聚类ci生成所有有效负载的n-gram序列qi并且计算相同位置的n-gram类型的数量,根据n-gram类型的数量识别出关键字节,并添加到聚类关键字集ki中,根据所有聚类得到关键字块的集合k;
12、指纹生成模块,根据集合k,寻找具有相同关键字块的集群,并将这些集群合并为一个大集群,利用序列对齐算法从合并的有效载荷中生成一个通用匹配序列作为最终生成的设备指纹,不同iot设备的指纹构成指纹库;
13、设备识别模块,根据设备指纹库,从新的网络流量中提取第一个数据包的有效载荷,使用规则匹配来检查其对应的指纹,得到预测的lot设备类型标签。
14、本发明还提供一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如上所述的基于关键字块感知的iot设备识别方法的步骤。
15、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于关键字块感知的iot设备识别方法的步骤。
16、有益效果:本发明提出一种基于关键字块感知的iot设备识别方法及装置,可自动、字节级、高效地生成物联网设备指纹,并有效识别混合流量中每个流对应的物联网设备类型。该方法存粹基于物联网中既有的专用协议流量,不需要相关的协议结构信息,也不需要手动搜索有效载荷特征,对单个流的识别时间可以控制在纳秒级,比cnn快两个数量级。此外,该方法不仅针对专用协议流量,还能有效解决面向公共协议的物联网设备的指纹提取问题。
1.一种基于关键字块感知的iot设备识别方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,根据pf和pr利用卷积神经网络提取特征f包括:
3.根据权利要求2所述的方法,其特征在于,卷积神经网络根据以下优化问题的求解定期更新参数:
4.根据权利要求1所述的方法,其特征在于,对特征f进行聚类包括:使用k-means算法对特征f进行聚类。
5.根据权利要求4所述的方法,其特征在于,聚类结果表示为:
6.根据权利要求1所述的方法,其特征在于,根据n-gram类型的数量识别出关键字节包括:
7.根据权利要求1所述的方法,其特征在于,利用序列对齐算法生成最终的设备指纹包括:使用needleman-wunsch算法进行序列比对,该算法基于动态规划来查找序列匹配从而获得指纹的正则表达式。
8.一种基于关键字块感知的iot设备识别装置,其特征在于,包括:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的基于关键字块感知的iot设备识别方法的步骤。