发明内容
本发明实施例提供一种物联网设备识别的方法及装置,通过多个维度识别物联网设备,具有更高的准确度。
本发明实施例提供的一种物联网设备识别的方法,包括:
获取待识别设备的数据包;所述待识别设备的数据包包括第一数据包和第二数据包;所述第一数据包是所述待识别设备与DNS(Domain Name System,域名系统)服务器之间通信的数据包;所述第二数据包是所述待识别设备与目的服务器之间通信的数据包;
根据所述待识别设备的第一数据包,确定所述待识别设备的DNS信息,并根据所述待识别设备的DNS信息判断所述待识别设备是否为物联网设备;
若是,则根据所述物联网设备的第二数据包,确定所述物联网设备的关键字信息以及周期性信息;并根据所述物联网设备的关键字信息以及周期性信息,确定出所述物联网设备的设备型号以及所述物联网设备的设备型号的置信概率。
上述技术方案中,获取待识别设备的数据包,确定待识别设备的DNS信息,并根据待识别设备的DNS信息确定待识别设备是否为物联网设备,以及确定是物联网设备之后,确定待识别物联网设备的关键字信息以及周期性信息,从而确定待识别物联网设备的设备型号以及设备型号的置信概率,即通过DNS信息、关键字信息、周期性信息多个维度识别物联网设备,具有更高的准确度。
可选的,所述根据所述待识别设备的DNS信息判断所述待识别设备是否为物联网设备,包括:
判断DNS特征库中是否存在所述待识别设备的DNS信息,若是,则确定所述待识别设备为物联网设备;所述DNS特征库是由多个已知物联网设备的DNS信息组成。
上述技术方案中,设置DNS特征库,当待识别设备的DNS信息与DNS特征库中的DNS信息相匹配,则可以确定该待识别设备为物联网设备。
可选的,所述物联网设备的第二数据包包括Payload(有效载荷);
所述根据所述物联网设备的第二数据包,确定所述物联网设备的关键字信息,包括:
根据所述物联网设备的第二数据包的Payload,确定所述物联网设备的关键字信息。
上述技术方案中,可以通过第二数据包的Payload确定物联网设备的关键字信息,以用于后续的比对并确定出待识别物联网设备的设备型号。
可选的,所述物联网设备的第二数据包还包括所述物联网设备的设备IP(Internet Protocol,网络之间互连的协议)、设备端口、目的服务器IP、目的服务器端口;
所述根据所述物联网设备的第二数据包,确定所述物联网设备的周期性信息,包括:
将所述物联网设备的多个第二数据包按照所述物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口进行第一次聚合;将第一次聚合后的所述物联网设备的多个第二数据包按照所述Payload的长度进行第二次聚合;
根据第二次聚合后的所述物联网设备的多个第二数据包中的发送时间,确定所述物联网设备的时间间隔的序列;
将所述物联网设备的时间间隔的序列进行傅里叶变换后获取所述时间间隔的能量谱密度函数;
在确定所述时间间隔的能量谱密度函数为零点的脉冲函数后,根据所述时间间隔的序列确定所述物联网设备的周期性信息。
上述技术方案中,可以将第二数据包根据物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口以及Payload的长度进行两次聚合,根据两次聚合后的数据,确定物联网设备的周期性信息,以用于后续的比对并确定出物联网设备的设备型号的置信概率。
可选的,所述根据所述物联网设备的关键字信息以及周期性信息,确定出所述物联网设备的设备型号以及所述物联网设备的设备型号的置信概率,包括:
若第一特征库中存在与所述物联网设备的关键字信息相匹配的第一关键字信息,则将所述第一特征库中的第一关键字信息对应的已知物联网设备的设备型号确定为所述物联网设备的设备型号;
判断所述第一特征库中的第一关键字信息对应的已知物联网设备的周期性信息是否与所述物联网设备的周期性信息相匹配,若是,则确定所述物联网设备的设备型号为高置信概率;否则,确定所述物联网设备的设备型号为低置信概率;
其中,所述第一特征库是由多个已知物联网设备的关键字信息以及周期性信息组成。
上述技术方案中,将物联网设备的关键字信息与第一特征库中的已知物联网设备的关键字信息作比对,确定出与物联网设备的关键字信息相匹配的第一关键字信息,并将第一关键字信息对应的已知物联网设备的型号确定为该物联网设备的设备型号。进一步,确定出该物联网设备的周期性信息,并判断第一特征库中的第一关键字信息对应的已知物联网设备的周期性信息是否与物联网设备的周期性信息相匹配,即确定出物联网设备的设备型号的置信概率。通过多个维度识别物联网设备,具有更高的准确度。
相应的,本发明实施例还提供了一种物联网设备识别的装置,包括:
获取单元,用于获取待识别设备的数据包;所述待识别设备的数据包包括第一数据包和第二数据包;所述第一数据包是所述待识别设备与DNS服务器之间通信的数据包;所述第二数据包是所述待识别设备与目的服务器之间通信的数据包;
处理单元,用于根据所述待识别设备的第一数据包,确定所述待识别设备的DNS信息,并根据所述待识别设备的DNS信息判断所述待识别设备是否为物联网设备;若是,则根据所述物联网设备的第二数据包,确定所述物联网设备的关键字信息以及周期性信息;并根据所述物联网设备的关键字信息以及周期性信息,确定出所述物联网设备的设备型号以及所述物联网设备的设备型号的置信概率。
可选的,所述处理单元具体用于:
判断DNS特征库中是否存在所述待识别设备的DNS信息,若是,则确定所述待识别设备为物联网设备;所述DNS特征库是由多个已知物联网设备的DNS信息组成。
可选的,所述物联网设备的第二数据包包括Payload;
所述处理单元具体用于:
根据所述物联网设备的第二数据包的Payload,确定所述物联网设备的关键字信息。
可选的,所述物联网设备的第二数据包还包括所述物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口;
所述处理单元具体用于:
将所述物联网设备的多个第二数据包按照所述物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口进行第一次聚合;将第一次聚合后的所述物联网设备的多个第二数据包按照所述Payload的长度进行第二次聚合;
根据第二次聚合后的所述物联网设备的多个第二数据包中的发送时间,确定所述物联网设备的时间间隔的序列;
将所述物联网设备的时间间隔的序列进行傅里叶变换后获取所述时间间隔的能量谱密度函数;
在确定所述时间间隔的能量谱密度函数为零点的脉冲函数后,根据所述时间间隔的序列确定所述物联网设备的周期性信息。
可选的,所述处理单元具体用于:
若第一特征库中存在与所述物联网设备的关键字信息相匹配的第一关键字信息,则将所述第一特征库中的第一关键字信息对应的已知物联网设备的设备型号确定为所述物联网设备的设备型号;
判断所述第一特征库中的第一关键字信息对应的已知物联网设备的周期性信息是否与所述物联网设备的周期性信息相匹配,若是,则确定所述物联网设备的设备型号为高置信概率;否则,确定所述物联网设备的设备型号为低置信概率;
其中,所述第一特征库是由多个已知物联网设备的关键字信息以及周期性信息组成。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述物联网设备识别的方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述物联网设备识别的方法。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例提供物联网设备识别的方法所适用的系统架构,该系统架构可以为服务器100,包括处理器110、通信接口120和存储器130。该服务器100可以是位于信息安全中心的服务器,也可以为其它分中心的服务器,本发明实施例对此不做限制。
其中,通信接口120用于获取网络通信流量,该网络通信流量是指运营商的流量或者是某些场景的流量出口,比如企业、居民区等流量出口。
处理器110是服务器100的控制中心,利用各种接口和线路连接整个服务器100的各个部分,通过运行或执行存储在存储器130内的软件程序或模块,以及调用存储在存储器130内的数据,执行服务器100的各种功能和处理数据。可选地,处理器110可以包括一个或多个处理单元。
存储器130可用于存储软件程序以及模块,处理器110通过运行存储在存储器130的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器130可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据业务处理所创建的数据等。此外,存储器130可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2示例性的示出了本发明实施例提供的一种物联网设备识别的方法的流程,该流程可以由物联网设备识别的装置执行,该装置可以位于服务器中,可以是该服务器。如图2所示,该流程具体包括:
步骤201,获取待识别设备的数据包。
从全网的数据流量获取待识别设备的数据包,该待识别设备的数据包可以包括第一数据包和第二数据包。
其中,第一数据包是待识别设备与DNS服务器之间通信的数据包,是根据待识别设备的数据包的Protocol(网络数据交换规则)字段中的协议名称过滤出来的,第一数据包可以包括DNS请求数据及DNS应答数据包。
第二数据包是待识别设备与目的服务器之间通信的数据包,该目的服务器是上述DNS服务器通过域名解析获取到的IP对应的服务器。
步骤202,根据所述待识别设备的第一数据包,确定所述待识别设备的DNS信息,并根据所述待识别设备的DNS信息判断所述待识别设备是否为物联网设备。
通过对第一数据包解析,提取到Queries(查询)中的域名字段,即为待识别设备的DNS信息。例如,提取到Queries中的域名字段为“api.xxxxxx.com”,则可以确定“api.xxxxxx.com”为待识别设备的DNS信息。
根据提取到的待识别设备的DNS信息,确定该待识别设备是否为物联网设备,具体的,判断DNS特征库中是否存在待识别设备的DNS信息,若存在,则表明该待识别设备是物联网设备;若不存在,则表明该待识别设备不是物联网设备。其中,DNS特征库由多个已知物联网设备的DNS信息组成,具体确定方式在下面描述。
步骤203,若是,则根据所述物联网设备的第二数据包,确定所述物联网设备的关键字信息以及周期性信息;并根据所述物联网设备的关键字信息以及周期性信息,确定出所述物联网设备的设备型号以及所述物联网设备的设备型号的置信概率。
在步骤202中,若确定该待识别设备是物联网设备,则需要进一步根据该物联网设备的第二数据包确定该物联网设备的设备型号以及物联网设备的设备型号的置信概率。其中,物联网设备的第二数据包中包括Payload,物联网设备的设备型号可以根据物联网设备的第二数据包中的Payload确定,根据物联网设备的第二数据包的Payload,确定物联网设备的关键字信息,若第一特征库中存在与物联网设备的关键字信息相匹配的第一关键字信息,则可以将第一特征库中的第一关键字信息对应的已知物联网设备的设备型号确定为物联网设备的设备型号。此处,第一特征库是根据多个已知物联网设备的关键字信息以及周期性信息确定,包括多个已知物联网设备的关键字信息以及周期性信息,第一特征库的具体确定方式在下述实施例中具体描述。
举例来说,根据物联网设备的第二数据包的Payload,确定物联网设备的关键字信息为(1,2,1),且第一特征库中存在关键字信息(1,2,1),则可以确定物联网设备的关键字信息(1,2,1)与第一特征库中的关键字信息(1,2,1)相匹配,即第一特征库中存在与物联网设备的关键字信息相匹配的第一关键字信息。当然,若第一特征库中存在关键字信息(1,2),则也可以确定物联网设备的关键字信息(1,2,1)与第一特征库中的关键字信息(1,2)相匹配,同样可以确定第一特征库中存在与物联网设备的关键字信息相匹配的第一关键字信息。进一步的,若第一特征库中的第一关键字信息(1,2,1)或(1,2)对应的已知物联网设备的设备型号为abc1,则可以确定该物联网设备的设备型号也是abc1,也就是可以将第一特征库中的第一关键字信息对应的已知物联网设备的设备型号确定为物联网设备的设备型号。
在确定物联网设备的设备型号后,进一步需要对物联网设备的设备型号的置信概率进行确定,也就是判断该物联网设备的设备型号的可信度。作为一种实现方式,可以通过确定该物联网设备的周期性信息,从而确定该物联网设备的设备型号的置信概率。具体的,若该物联网设备的周期性信息与第一特征库中的第一关键字信息对应的已知物联网设备的周期性信息相匹配,则可以确定物联网设备的设备型号为高置信概率。
对确定物联网设备的周期性信息做以下解释。
可以获取多个物联网设备的第二数据包,其中,该第二数据包不仅包括Payload,还可以包括物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口。
首先,将物联网设备的多个第二数据包进行预处理,该预处理可以为两次聚合,具体如下:
聚合一,将物联网设备的多个第二数据包按照物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口进行第一次聚合。需要说明的是,因为获取的是一个物联网设备的多个第二数据包,多个第二数据包中可能存在一个物联网设备的设备IP对应多个目的服务器IP,以及一个物联网设备的多个设备端口对应多个目的服务器端口,所以需要将多个第二数据包按照物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口进行第一次聚合。
聚合二,将第一次聚合后的物联网设备的多个第二数据包按照Payload的长度进行第二次聚合。
经上述预处理后的物联网设备的多个第二数据包可以分为几类第二数据包,针对每一类第二数据包中的各第二数据包,都有相同的物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口以及Payload的长度。
进一步的,根据第二次聚合后的物联网设备的多个第二数据包中的发送时间,确定该物联网设备的时间间隔的序列。将物联网设备的时间间隔的序列进行傅里叶变换后获取时间间隔的能量谱密度函数。在确定时间间隔的能量谱密度函数为零点的脉冲函数后,根据时间间隔的序列确定物联网设备的周期性信息。当然,第二次聚合后的物联网设备的多个第二数据包相当于预处理后的物联网设备的多个第二数据包。对该实施例做如下解释。
提取第二次聚合后的物联网设备的多个第二数据包中的发送时间,并将相邻两个第二数据包的发送时间做差值,即可得到发送的时间间隔序列,也就是物联网设备的时间间隔的序列,例如时间间隔的序列为(1608.36278582,1608.4000833,1608.36680698,1608.33211684,……)。对该时间间隔的序列进行傅里叶变换后获取该时间间隔的能量谱密度函数,又由于常数的傅里叶变换是在零点的脉冲函数,则可以通过判断时间间隔的能量谱密度函数是否为零点的脉冲函数来确定该物联网设备的多个第二数据包的发送时间是否具有周期性。针对上述时间间隔的序列(1608.36278582,1608.4000833,1608.36680698,1608.33211684,……),可以如图3中的(a)所示,除A、B、C三个点的时间间隔较大之外,其他的时间间隔均在1608.3与1608.5之间。将该时间间隔的序列进行傅里叶变换后的能量谱密度函数,可以如图3中的(b)所示,近似于零点的脉冲函数,也就是时间间隔的序列(1608.36278582,1608.4000833,1608.36680698,1608.33211684,……)对应的多个第二数据包的发送时间具有周期性。
进一步的,针对图3中的(a)A、B、C三个较大的时间间隔,可以通过调节检测的阈值来调节检测的鲁棒性,使得少量的时间间隔变化不会影响最终的周期性结果。
在确定该物联网设备的多个第二数据包的发送时间具有周期性后,可以进一步根据物联网设备的时间间隔的序列确定该物联网设备的周期性信息,例如确定该物联网设备的多个第二数据包的时间间隔序列的均值、标准差、中位数等。
上述实施例中涉及到将待识别设备与DNS特征库进行匹配,以及在将待识别设备确定为物联网设备后,涉及到物联网设备与第一特征库进行匹配。下面,具体提供一种DNS特征库以及第一特征库的确定方式。
以一个已知物联网设备为例,可参照图4。
步骤401,获取已知物联网设备数据包。
将已知物联网设备接入到能够抓取其数据包的环境中,然后开机运行,同时抓取其预设时段内全量的通信数据包。该预设时段可以根据经验设定。
步骤402,获取已知物联网设备DNS信息。
根据数据包中的Protocol字段中的协议名称过滤出DNS数据包,即与DNS服务器之间通信的数据包,通过对该DNS数据包进行解析,提取Queries中的域名字段,即该已知物联网设备的DNS信息。
步骤403,已知物联网设备的DNS信息放入DNS特征库。
步骤404,数据传输协议数据包聚类。
从预设时段内全量的通信数据包中提取数据传输协议数据包,即已知物联网设备与目的服务器之间通信的数据包,将数据传输协议数据包按照已知物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口进行第一次聚合,第一次聚合后的每一类中的数据传输协议数据包的设备IP、设备端口、目的服务器IP、目的服务器端口和应用层协议都相同。然后再将第一次聚合后的每一类中的数据传输协议数据包按照Payload长度进行第二次聚合,第二次聚合后的每一类中的数据传输协议数据包的Payload长度都相同。针对第二次聚合后的每一类中的数据传输协议数据包,分别提取其关键字信息和周期性信息。
步骤405,已知物联网设备关键字信息提取。
根据第二次聚合后的已知物联网设备的数据传输协议数据包中的Payload,确定第二次聚合后的已知物联网设备的数据传输协议数据包中的Payload矩阵,并根据Payload矩阵,确定已知物联网设备的关键字信息。
下面,本发明实施例将以具体获取到的数据传输协议数据包为例,说明对已知物联网设备关键字信息的提取。如表1示出了获取到的已知物联网设备的部分数据传输协议数据包,如表1中包含了多个源/目的ip和端口。
表1
对表1中的数据传输协议数据包按照物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口进行第一次聚合,以及按照Payload的长度进行第二次聚合之后,可以获取到物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口、Payload的长度都相同的一类数据传输协议数据包,可以如表2所示。
表2
提取表2中的第二次聚合后的该类数据传输协议数据包,提取该类数据传输协议数据包中的Payload,将提取到的Payload放在一个二维列表中,如表3所示,列表的每一行为一个数据传输协议数据包的Payload,列表的行数为该类数据传输协议数据包中Payload的数量,然后按照每一列去比较二维列表中的数值,如果某一列的值完全相同,那么这个取值就是一个关键字信息。比较完所有的列以后,就可以得到该类数据传输协议数据包的关键字信息。如表3中,可以确定出完全相同的列,于是确定该类数据传输协议数据包的关键字信息为(23,3,0,36,60,165,2,102,232)。
表3
列/行 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
0 |
23 |
3 |
0 |
36 |
60 |
20 |
165 |
2 |
102 |
232 |
18 |
120 |
88 |
214 |
197 |
208 |
255 |
1 |
23 |
3 |
0 |
36 |
60 |
27 |
165 |
2 |
102 |
232 |
133 |
121 |
175 |
74 |
71 |
32 |
144 |
2 |
23 |
3 |
0 |
36 |
60 |
10 |
165 |
2 |
102 |
232 |
255 |
122 |
84 |
230 |
58 |
62 |
83 |
3 |
23 |
3 |
0 |
36 |
60 |
124 |
165 |
2 |
102 |
232 |
45 |
123 |
198 |
86 |
127 |
5 |
236 |
4 |
23 |
3 |
0 |
36 |
60 |
245 |
165 |
2 |
102 |
232 |
208 |
124 |
15 |
233 |
170 |
188 |
236 |
5 |
23 |
3 |
0 |
36 |
60 |
109 |
165 |
2 |
102 |
232 |
72 |
125 |
111 |
243 |
46 |
137 |
153 |
6 |
23 |
3 |
0 |
36 |
60 |
82 |
165 |
2 |
102 |
232 |
238 |
126 |
205 |
111 |
246 |
229 |
253 |
7 |
23 |
3 |
0 |
36 |
60 |
43 |
165 |
2 |
102 |
232 |
172 |
127 |
136 |
57 |
118 |
243 |
238 |
8 |
23 |
3 |
0 |
36 |
60 |
187 |
165 |
2 |
102 |
232 |
39 |
128 |
238 |
174 |
246 |
137 |
55 |
9 |
23 |
3 |
0 |
36 |
60 |
1 |
165 |
2 |
102 |
232 |
198 |
129 |
17 |
109 |
166 |
203 |
44 |
对提取到的关键字信息做解释:
因为每种类型物联网设备的数据传输协议数据包的Payload中会有特定的关键字,例如传输数据的Payload中会有相同的控制关键字或者设备指纹的关键字。从经过两次聚合之后的已知物联网设备的数据传输协议数据包中的某一类数据传输协议数据包提取Payload,并根据提取到的Payload确定该类数据传输协议数据包的关键字信息。也就是说,一类数据传输协议数据包代表一个已知物联网设备的型号,即提取到的一个关键字信息代表一个已知物联网设备的型号。
步骤406,已知物联网设备周期性信息提取。
提取第二次聚合后的已知物联网设备的数据传输协议数据包中的发送时间,并将相邻两个数据传输协议数据包的发送时间做差值,即可得到发送的时间间隔序列,将已知物联网设备的时间间隔的序列进行傅里叶变换后获取时间间隔的能量谱密度函数。在确定时间间隔的能量谱密度函数为零点的脉冲函数后,根据时间间隔的序列确定已知物联网设备的周期性信息。进一步的,可以通过调节检测的阈值来调节检测的鲁棒性,使得少量的时间间隔变化不会影响最终的周期性结果。
在确定已知物联网设备的多个数据传输协议数据包的发送时间具有周期性后,可以进一步根据已知物联网设备的时间间隔的序列确定该已知物联网设备的周期性信息,例如确定已知物联网设备的多个数据传输协议数据包的时间间隔序列的均值、标准差、中位数等。
步骤407,已知物联网设备的关键字信息、周期性信息放入第一特征库。
此外,也可以先对数据包进行端口聚类,然后再将端口聚类后的数据包分为DNS数据包和数据传输协议数据包,故本发明实施例提供另一种DNS特征库以及第一特征库的具体确定方式,如图5所示。
步骤501,获取已知物联网设备数据包。
步骤502,数据包IP、端口聚类。
步骤503,获取DNS数据包。
步骤504,提取已知物联网设备DNS信息。
步骤505,已知物联网设备的DNS信息放入DNS特征库。
步骤506,获取数据传输协议数据包。
步骤507,传输协议数据包Payload长度聚类。
步骤508,已知物联网设备关键字信息提取。
步骤509,已知物联网设备周期性信息提取。
步骤510,已知物联网设备的关键字信息、周期性信息放入第一特征库。
由于本实施例的具体实现方式已在其他实施例中描述,在此不作赘述。
上述两个实施例中,已经描述了针对一个已知物联网设备提取其DNS信息以及关键字信息、周期性信息。在建立DNS特征库时,以多个已知物联网设备为对象提取其DNS信息,并将提取到的DNS信息放入DNS特征库中,即DNS特征库是由多个已知物联网设备的DNS信息组成。在建立第一特征库时,同样以多个已知物联网设备为对象提取其关键字信息以及周期性信息,并将提取到的关键字信息以及周期性信息放入第一特征库中,即第一特征库是由多个已知物联网设备的关键字信息以及周期性信息组成。
将确定出的DNS特征库以及第一特征库作为对比特征库,可以用于在获取到待识别设备的数据包后,对待识别设备的设备特性进行评估,如图6所示。
步骤601,获取待识别设备的数据包。
步骤602,确定待识别设备的DNS信息。
根据待识别设备的数据包的Protocol字段中的协议名称过滤出第一数据包,第一数据包是待识别设备与DNS服务器之间通信的数据包,通过对第一数据包解析,提取到Queries中的域名字段,即为待识别设备的DNS信息。
步骤603,判断是否存在待识别设备的DNS信息。若是,则转向步骤604,否则,转向步骤605。
判断DNS特征库中是否存在待识别设备的DNS信息,若存在,则表明该待识别设备是物联网设备;若不存在,则表明该待识别设备不是物联网设备。
步骤604,确定待识别设备是物联网设备。
步骤605,确定待识别设备不是物联网设备。
步骤606,确定物联网设备的关键字信息。
过滤出待识别设备的数据包中的第二数据包,第二数据包是待识别设备与目的服务器之间通信的数据包,根据物联网设备的第二数据包的Payload,确定物联网设备的关键字信息。
步骤607,判断是否存在第一关键字信息。若是,则转向步骤608,否则,转向步骤609。
判断第一特征库中是否存在与物联网设备的关键字信息相匹配的第一关键字信息。若存在,则确定可以识别物联网设备型号,若不存在,则可以确定无法识别物联网设备型号。
步骤608,识别物联网设备型号。
将第一特征库中与物联网设备的关键字信息相匹配的第一关键字信息对应的已知物联网设备的设备型号确定为该物联网设备的设备型号。
步骤609,无法识别物联网设备型号。
步骤610,确定物联网设备的周期性信息。
将所述物联网设备的多个第二数据包按照物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口进行第一次聚合;将第一次聚合后的物联网设备的多个第二数据包按照Payload的长度进行第二次聚合;根据第二次聚合后的物联网设备的多个第二数据包中的发送时间,确定物联网设备的时间间隔的序列;将物联网设备的时间间隔的序列进行傅里叶变换后获取时间间隔的能量谱密度函数;并在确定时间间隔的能量谱密度函数为零点的脉冲函数后,根据时间间隔的序列确定该物联网设备的周期性信息。
步骤611,判断周期性信息是否匹配。若是,则转向步骤612,否则,转向步骤613。
判断第一特征库中的第一关键字信息对应的已知物联网设备的周期性信息是否与物联网设备的周期性信息相匹配,若是,则确定物联网设备的设备型号为高置信概率;否则,确定物联网设备的设备型号为低置信概率。
步骤612,物联网设备的设备型号为高置信概率。
步骤613,物联网设备的设备型号为低置信概率。
需要说明的是,获取到待识别设备的数据包指的是从全网数据流量中获取到待识别设备的数据包,根据获取到的待识别设备的数据包识别出物联网设备以及物联网设备的型号。也就是说,物联网设备在发生通信时,会被本发明实施例的方法识别出来,本发明实施例针对物联网的安全进行防护,保障了网络安全。
上述实施例中,获取待识别设备的数据包,根据待识别设备的数据包确定待识别设备是否为物联网设备,以及确定是物联网设备之后,将物联网设备的关键字信息与第一特征库中的已知物联网设备的关键字信息作比对,确定出与物联网设备的关键字信息相匹配的第一关键字信息,并将第一关键字信息对应的已知物联网设备的型号确定为该物联网设备的设备型号。进一步,确定出该物联网设备的周期性信息,并判断第一特征库中的第一关键字信息对应的已知物联网设备的周期性信息是否与物联网设备的周期性信息相匹配,即确定出物联网设备的设备型号的置信概率。通过多个维度识别物联网设备,具有更高的准确度。
基于同一发明构思,图7示例性的示出了本发明实施例提供的一种物联网设备识别的装置的结构,该装置可以执行物联网设备识别的方法的流程。
获取单元701,用于获取待识别设备的数据包;所述待识别设备的数据包包括第一数据包和第二数据包;所述第一数据包是所述待识别设备与DNS服务器之间通信的数据包;所述第二数据包是所述待识别设备与目的服务器之间通信的数据包;
处理单元702,用于根据所述待识别设备的第一数据包,确定所述待识别设备的DNS信息,并根据所述待识别设备的DNS信息判断所述待识别设备是否为物联网设备;若是,则根据所述物联网设备的第二数据包,确定所述物联网设备的关键字信息以及周期性信息;并根据所述物联网设备的关键字信息以及周期性信息,确定出所述物联网设备的设备型号以及所述物联网设备的设备型号的置信概率。
可选的,所述处理单元702具体用于:
判断DNS特征库中是否存在所述待识别设备的DNS信息,若是,则确定所述待识别设备为物联网设备;所述DNS特征库是由多个已知物联网设备的DNS信息组成。
可选的,所述物联网设备的第二数据包包括Payload;
所述处理单元702具体用于:
根据所述物联网设备的第二数据包的Payload,确定所述物联网设备的关键字信息。
可选的,所述物联网设备的第二数据包还包括所述物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口;
所述处理单元702具体用于:
将所述物联网设备的多个第二数据包按照所述物联网设备的设备IP、设备端口、目的服务器IP、目的服务器端口进行第一次聚合;将第一次聚合后的所述物联网设备的多个第二数据包按照所述Payload的长度进行第二次聚合;
根据第二次聚合后的所述物联网设备的多个第二数据包中的发送时间,确定所述物联网设备的时间间隔的序列;
将所述物联网设备的时间间隔的序列进行傅里叶变换后获取所述时间间隔的能量谱密度函数;
在确定所述时间间隔的能量谱密度函数为零点的脉冲函数后,根据所述时间间隔的序列确定所述物联网设备的周期性信息。
可选的,所述处理单元702具体用于:
若第一特征库中存在与所述物联网设备的关键字信息相匹配的第一关键字信息,则将所述第一特征库中的第一关键字信息对应的已知物联网设备的设备型号确定为所述物联网设备的设备型号;
判断所述第一特征库中的第一关键字信息对应的已知物联网设备的周期性信息是否与所述物联网设备的周期性信息相匹配,若是,则确定所述物联网设备的设备型号为高置信概率;否则,确定所述物联网设备的设备型号为低置信概率;
其中,所述第一特征库是由多个已知物联网设备的关键字信息以及周期性信息组成。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述物联网设备识别的方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述物联网设备识别的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。