CN116033048A - 物联网的多协议解析方法、电子设备和存储介质 - Google Patents

物联网的多协议解析方法、电子设备和存储介质 Download PDF

Info

Publication number
CN116033048A
CN116033048A CN202310330398.4A CN202310330398A CN116033048A CN 116033048 A CN116033048 A CN 116033048A CN 202310330398 A CN202310330398 A CN 202310330398A CN 116033048 A CN116033048 A CN 116033048A
Authority
CN
China
Prior art keywords
session
analyzed
protocol
determining
sessions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310330398.4A
Other languages
English (en)
Other versions
CN116033048B (zh
Inventor
刘琳
王俊程
林锦州
陈辰
孟菲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sinotruk Data Co ltd
Automotive Data of China Tianjin Co Ltd
Original Assignee
Sinotruk Data Co ltd
Automotive Data of China Tianjin Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sinotruk Data Co ltd, Automotive Data of China Tianjin Co Ltd filed Critical Sinotruk Data Co ltd
Priority to CN202310330398.4A priority Critical patent/CN116033048B/zh
Publication of CN116033048A publication Critical patent/CN116033048A/zh
Application granted granted Critical
Publication of CN116033048B publication Critical patent/CN116033048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及协议解析领域,公开了一种物联网的多协议解析方法、电子设备和存储介质,该方法包括:获取多个待解析会话,并确定每个待解析会话对应的协议类型;针对协议类型为未知协议的多个待解析会话,基于预设模板对多个待解析会话进行分组,得到待解析会话组;针对每组待解析会话组中的每个待解析会话,根据响应字符,确定与待解析会话相对应的多个待划分响应;针对每个待解析会话,基于预设ASCII代码,确定待解析会话中各待划分响应所对应的通信阶段;针对每组待解析会话组中的每个通信阶段,确定通信阶段中的字段特征,根据字段特征构建与待解析会话组相对应的协议解析结果。本实施例能够实现大规模协议解析以及对未知协议进行准确解析的效果。

Description

物联网的多协议解析方法、电子设备和存储介质
技术领域
本发明涉及协议解析领域,尤其涉及一种物联网的多协议解析方法、电子设备和存储介质。
背景技术
基于工业物联网平台的工业控制系统是汽车智能制造产业的关键技术。工业控制系统通常由多个制造商的设备和系统组成,不同制造商采用的通信技术复杂多样,各个设备使用不同的工业通信协议进行通信,一些特殊的设备控制系统通过专有的工业通信协议进行通信,这导致了通讯接口和通信协议种类纷繁复杂。汽车制造物联网中使用的接口有OPC、CANBUS、NB-Iot、LoRa、5G等,这对于物联网的协议解析和通信带来了困难,因此,高效的多协议解析和数据传输是非常重要的。
工业物联网目前采用的设备接入方法为,通过物联网网关预先内置的协议解析程序完成对多种工业设备的协议解析和数据采集,并转换为通用物联网协议上传至工业互联网平台。当接入新设备时,需要人工修改解析代码来适配新增加的设备,代码修改完成后还要对物联网平台重新进行部署和测试,这一过程效率低下,还可能影响旧设备的正常解析。工业物联网环境复杂,各种通信协议结构差异较大,在实施时需要人工介入,无法实现智能化多协议解析。
因此,亟需一种物联网的多协议解析方法以解决工业物联网大规模工业协议解析的问题。
发明内容
为了解决上述技术问题,本发明提供了一种物联网的多协议解析方法、电子设备和存储介质,以解决工业物联网大规模工业协议解析的问题。
本发明实施例提供了一种物联网的多协议解析方法,该方法包括:
获取多个待解析会话,并确定每个所述待解析会话对应的协议类型;其中,所述协议类型包括已知协议和未知协议;
针对所述协议类型为未知协议的多个待解析会话,基于预设模板对多个所述待解析会话进行分组,得到待解析会话组;
针对每组所述待解析会话组中的每个所述待解析会话,根据响应字符,确定与所述待解析会话相对应的多个待划分响应;
针对每个所述待解析会话,基于预设ASCII代码,确定所述待解析会话中各所述待划分响应所对应的通信阶段;其中,所述通信阶段包括连接建立阶段、数据传输阶段和连接终止阶段;
针对每组所述待解析会话组中的每个所述通信阶段,确定所述通信阶段中的字段特征,并根据所述字段特征构建与所述待解析会话组相对应的协议解析结果。
本发明实施例提供了一种电子设备,所述电子设备包括:
处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行任一实施例所述的物联网的多协议解析方法的步骤。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行任一实施例所述的物联网的多协议解析方法的步骤。
本发明实施例具有以下技术效果:
通过获取多个待解析会话,并确定每个待解析会话对应的协议类型,针对协议类型为未知协议的多个待解析会话,基于预设模板对多个待解析会话进行分组,得到待解析会话组,进而,针对每组待解析会话组中的每个待解析会话,根据响应字符,确定与待解析会话相对应的多个待划分响应,针对每个待解析会话,基于预设ASCII代码,确定待解析会话中各待划分响应所对应的通信阶段,针对每组待解析会话组中的每个通信阶段,确定通信阶段中的字段特征,并根据字段特征构建与待解析会话组相对应的协议解析结果,解决了工业物联网中多协议难以进行解析问题,实现了对各种未知协议进行快速准确的解析的效果。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种物联网的多协议解析方法的流程图;
图2是本发明实施例提供的一种关键信息的识别流程示意图;
图3是本发明实施例提供的一种协议关键字提取的流程示意图;
图4是本发明实施例提供的一种域名关键字列表提取的流程示意图;
图5是本发明实施例提供的一种通信阶段划分的流程示意图;
图6是本发明实施例提供的一种协议字段解析的流程示意图;
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
本发明实施例提供的物联网的多协议解析方法,主要适用于解析未知类型的协议数据的情况。本发明实施例提供的物联网的多协议解析方法可以由集成在工业控制系统内或者由其他电子设备执行。
图1是本发明实施例提供的一种物联网的多协议解析方法的流程图。参见图1,该物联网的多协议解析方法具体包括:
S110、获取多个待解析会话,并确定每个待解析会话对应的协议类型。
其中,待解析会话可以是工业控制系统接收协议数据包后整合得到的各会话,解析后可用于执行和响应。协议类型包括已知协议和未知协议。
具体的,可以得到多个待解析会话,并对这些待解析会话进行分类,判断每个待解析会话的协议是已知协议还是未知协议。
在上述示例的基础上,可以通过下述方式来获取多个待解析会话:
获取多个协议数据包,根据各协议数据包的会话类型,对各协议数据包进行组合,得到多个待解析会话。
其中,会话类型包括TCP会话、UDP会话以及ICMP会话。协议数据包可以是各种会话类型的数据包,可以是pcap格式存储的数据。
具体的,接收到多个协议数据包之后,可以确定每个协议数据包的会话类型,进而根据会话类型的不同进行分类,并且按照时间顺序进行遍历和连接,得到多个待解析会话。
示例性的,TCP会话可以先提取具有相同5元组(源IP、目标IP、源端口、目标端口和协议)的所有数据包,并按时间顺序遍历它们,找到TCP三次握手作为开始的符号,四次握手作为结束。UDP会话则是从相同5元组的数据包序列中的第一个数据包开始遍历,如果给定会话的两个数据包之间的时间间隔大于设置的阈值,则意味着下一个会话开始。ICMP会话与UDP会话相类似。
S120、针对协议类型为未知协议的多个待解析会话,基于预设模板对多个待解析会话进行分组,得到待解析会话组。
其中,预设模板可以是包含用于区分不同未知协议的关键信息的模板。待解析会话组可以是与相同预设模板相匹配的一组待解析会话。
具体的,针对协议类型为未知协议的多个待解析会话,需要按类别进行分组,因此,可以使用预设模板对协议类型为未知的待解析会话进行匹配,将匹配为统一预设模板的多个待解析会话组合成一组待解析会话组。
在上述示例的基础上,可以通过下述方式来基于预设模板对多个待解析会话进行分组,得到待解析会话组:
对多个待解析会话进行信息提取,确定每个待解析会话对应的关键信息;
针对每个待解析会话,若待解析会话的关键信息与预设模板中的一组关键信息相对应,则确定待解析会话对应的待解析会话组,若待解析会话的关键信息与预设目标中的任一组关键信息均不对应,则根据待解析会话的关键信息更新预设模板,并建立待解析会话对应的待解析会话组。
其中,关键信息包括目标IP、目标关键字以及域关键字。
具体的,对每个待解析会话均可以进行信息提取,例如关键词提取等,可以得到每个待解析会话对应的关键信息。进而,针对每个待解析会话,将该待解析会话的关键信息与各个预设模板中的关键信息进行匹配,若匹配成功,则可以认为该待解析会话与该预设模板属于相同组;若均匹配失败,则根据该待解析会话的关键信息构建新的预设模板,并认为该待解析会话与该新的预设模板属于相同组。
S130、针对每组待解析会话组中的每个待解析会话,根据响应字符,确定与待解析会话相对应的多个待划分响应。
其中,响应字符包括响应序号以及响应确认字符。
具体的,针对每组待解析会话组中的每个待解析会话,都可以通过响应字符进行拆分,拆分成多个响应,并将每个响应作为一个待划分响应。
S140、针对每个待解析会话,基于预设ASCII代码,确定待解析会话中各待划分响应所对应的通信阶段。
其中,预设ASCII代码可以是用于控制或者特殊通信的ASCII码。通信阶段包括连接建立阶段、数据传输阶段和连接终止阶段。
具体的,在不同的通信阶段,预设ASCII代码的数量会呈现出明显的变化趋势,通常是在连接建立阶段上升至数据传输阶段,在数据传输阶段内先上升后下降,下降至连接终止阶段。因此,可以通过待解析会话中连续多个待划分响应中的预设ASCII代码的数量变化趋势,确定每个待划分响应对应的通信阶段。
在上述示例的基础上,可以通过下述方式来基于预设ASCII代码,确定待解析会话中各待划分响应所对应的通信阶段:
基于预设ASCII代码,确定待解析会话中的每个待划分响应对应的ASCII代码百分比;
将ASCII代码百分比高于预设的百分比阈值的连续的多个待划分响应的通信阶段确定为数据传输阶段;
根据各待划分响应的时间顺序,将位于数据传输阶段之前的多个待划分响应的通信阶段确定为连接建立阶段,并将位于数据传输阶段之后的多个待划分响应的通信阶段确定为连接终止阶段。
其中,ASCII代码百分比可以是每个待划分响应中的预设ASCII代码数量占对应的待解析会话中的预设ASCII代码总数量的百分比。百分比阈值可以是用于划分数据传输阶段的ASCII代码百分比。
具体的,对待解析会话中的每个待划分响应进行预设ASCII代码的识别,确定每个待划分响应中预设ASCII代码的数量,将各个待划分响应中预设ASCII代码的数量之和作为总数量。针对每个待划分响应,将该待划分响应中预设ASCII代码的数量与总数量的比值作为ASCII代码百分比。进而,将ASCII代码百分比高于预设的百分比阈值的连续的多个待划分响应认为是数据传输阶段,并将时间顺序位于数据传输阶段之前的连续的多个待划分响应认为是连接建立阶段,将时间顺序位于数据传输阶段之后的连续的多个待划分响应认为是连接终止阶段。
S150、针对每组待解析会话组中的每个通信阶段,确定通信阶段中的字段特征,并根据字段特征构建与待解析会话组相对应的协议解析结果。
其中,字段特征可以是各通信阶段的数据进行提取、过滤和集成处理后得到的特征。协议解析结果可以是由各字段特征组成的用于进行协议解析的格式。
具体的,每组待解析会话组中的每个待解析会话均可以分为三个通信阶段。由于每个通信阶段内的字段特征具有相似性,因此,将每组待解析会话中的各通信阶段的待解析响应作为一组,进行字段特征提取,得到每个通信阶段中的字段特征。进而,根据每个通信阶段中的字段特征进行组合,得到用于解析协议的协议解析格式,即与待解析会话组相对应的协议解析结果,用于对该未知类型的协议数据进行解析。
在上述示例的基础上,可以通过下述方式来确定通信阶段中的字段特征:
基于频繁项集方法以及特殊字符方法,对通信阶段中的各待划分响应进行关键词提取,得到待处理关键词;
针对各待处理关键词进行关键词过滤和集成处理,得到通信阶段中的字段特征。
其中,关键词过滤和集成处理的维度包括相似性维度、长度权重维度以及位置偏移维度。频繁项集方法可以是通过FP-gram方法来查找通信阶段中的各待划分响应的协议消息中的频繁项集的方法。特殊字符方法通过预设的特殊字符进行字段划分的方法。待处理关键词可以是特征提取以及字段划分后得到的关键词。
具体的,通过特殊字符方法对通信阶段中的各待划分响应进行字段划分,通过频繁项集方法对划分得到的各个字段进行频繁项集的提取,可以确定各划分后的字段中的频繁项集,即待处理关键词。进而,对待处理关键词进行关键词过滤和集成处理,以得到一组字段特征,即通信阶段中的字段特征。
在上述示例的基础上,可以通过下述方式来确针对各待处理关键词进行关键词过滤和集成处理,得到通信阶段中的字段特征:
基于下述公式确定任意两段由待处理关键词集成的序列之间的相似度:
其中,A和B表示任意两段由待处理关键词集成的序列,EditD(A,B)表示A和B两序列之间的编辑距离,LCS(A,B)表示A和B两序列之间的最长公共子序列,UnionCount(A,B)表示A和B两序列之间的相似度。
具体是采用联合相似度,结合编辑距离和最长公共子序列(Longest CommonSubsequence,LCS)来测量关键词相似度。
基于下述公式确定各待处理关键词的长度权重:
其中,l和r表示预设的长度最大值以及预设的长度最小值,x表示待处理关键词,len(x)表示待处理关键词的长度,F(x)表示待处理关键词的索引,Weight(x)表示待处理关键词的权重,freq(x)表示待处理关键词的词频。
具体是将待处理关键词的字符串长度转换为权重的方法来过滤关键词。网络协议中的大多数关键词都在长度范围内,因此对于长度在该范围内的字符串,它们被选为关键词的概率更高。该长度范围可以根据经验预先设定。这里,预设的关键词长度范围是[l,r]。
基于下述公式确定通信阶段中各待划分响应对应的待处理关键词的位置偏移:
其中,cv表示待处理关键词的位置偏移,表示待划分响应中各待处理关键词的位置值的标准偏差,表示各待划分响应中各待处理关键词的位置的平均值。
具体是考虑了通信阶段中各待划分响应的协议消息中出现的相同关键词的位置,提取各字段特征对应的该处理关键词应具有相对稳定的位置,因此使用变异系数cv来确定位置偏移。
基于各相似度、各长度权重以及各位置偏移,确定通信阶段中的字段特征。
具体是根据各待分析关键词的相似度、长度权重以及位置偏移,对待分析关键词进行过滤和集成,确定剩余的待分析关键词以及这些待分析关键词的字段位置为字段特征。
在上述示例的基础上,可以通过下述方式来根据字段特征构建与待解析会话组相对应的协议解析结果:
根据各字段特征的位置信息,构建协议解析格式;
根据协议解析格式对各待解析会话组进行解析,得到与待解析会话组相对应的协议解析结果。
其中,协议解析格式包括字段特征以及各字段特征的位置信息。
具体的,根据各字段特征的位置信息对各字段特征进行排列,构建协议解析格式。进而,通过构建的协议解析格式对各待解析会话组进行解析,将解析结果作为与待解析会话组相对应的协议解析结果。
若协议类型为已知协议,则可以通过下述方式来确定协议解析结果:
针对协议类型为已知协议的每个待解析会话,将待解析会话输入至预先训练的随机森林分类器中,得到与待解析会话对应的协议种类;
针对每种协议种类对应的待解析会话,根据与协议种类对应的解析方法,对待解析会话进行解析,得到协议解析结果。
其中,随机森林分类器基于样本会话以及与样本会话对应的协议种类训练得到。样本会话为标注了协议种类的会话,协议种类可以是具体的种类,例如Modbus协议等。
具体的,可以基于样本会话以及样本会话对应的协议种类,对随机森林分类器进行训练,得到训练完成的随机森林分类器。将待解析会话输入至预先训练的随机森林分类器中,将随机森林分类器的输出结果作为待解析会话对应的协议种类。根据协议种类可以获取与该协议种类对应的解析方法,并根据该解析方法对待解析会话进行解析,得到协议解析结果。
可选的,可以将待解析会话输入至预先训练的随机森林分类器中,若与任一协议种类均不匹配,则认为是未知协议。
本实施例具有以下技术效果:通过获取多个待解析会话,并确定每个待解析会话对应的协议类型,针对协议类型为未知协议的多个待解析会话,基于预设模板对多个待解析会话进行分组,得到待解析会话组,进而,针对每组待解析会话组中的每个待解析会话,根据响应字符,确定与待解析会话相对应的多个待划分响应,针对每个待解析会话,基于预设ASCII代码,确定待解析会话中各待划分响应所对应的通信阶段,针对每组待解析会话组中的每个通信阶段,确定通信阶段中的字段特征,并根据字段特征构建与待解析会话组相对应的协议解析结果,解决了工业物联网中多协议难以进行解析问题,实现了对各种未知协议进行快速准确的解析的效果。
步骤一,设备通信数据预处理:采集物联网设备通信数据(协议数据包),将数据包(协议数据包)转换为适用的数据格式,并对数据进行分类(会话类型)。
首先,从工业物联网中收集各种类型的协议数据包,以pcap格式存储数据。对数据进行分类,主要分为三种类型:1)TCP会话;2)UDP会话;以及3)ICMP会话。
步骤二,协议类型识别:若为已知协议,采用随机森林模型训练分类器,对已知协议的数据进行识别;若为未知协议,构建由目标IP列表、关键字列表和域关键字列表构成的模板,采用模板法对未知协议的数据进行识别。
针对已知协议,首先从设备端收集已知协议通信数据(样本会话),并提取数据的统计特征,包括数据包的数量、有效数据的大小、数据包的到达时间间隔等,对客户端和服务器之间的两个方向分别进行统计提取,并计算它们的最小值、最大值、平均值和方差,从而构建协议的训练样本。对数据(样本会话)进行标记,获得由数据特征向量及其对应的协议标签(协议种类)组成的训练数据集,采用上述训练数据集训练模型并进行测试,记录所有结果以供分析,确定准确率最高的参数,在模型中应用调整后的参数来构建分类器系统,通过分类器系统对已知协议进行识别。例如:从工业物联网数据中提取了44个流量统计特征用于监督学习,采用随机森林模型,提取要识别的每个会话的对应特征,然后将其输入到分类器中,最终的协议分类准确率达到95%以上。
对于未知协议,提取数据流(待解析会话)中的目标IP地址、协议关键字和域关键字信息,将这些信息与协议模板(预设模板)进行比较从而完成识别。若这些信息与模板信息不匹配,则分类为新类型,并将这些数据添加进入协议模板。未知协议的协议模板由目标IP列表、关键字列表和域关键字列表组成(关键信息),识别流程如图2所示。首先,进行协议关键字提取,协议关键字列表(关键信息)由两种方法构建。一种是根据字节长度收集高频率的协议关键字,这是通过FP-gram算法提取的。另一种是在同一协议中找到多个会话的LCS,以补充协议关键字列表。协议关键字提取具体流程如图3所示。然后进行域关键字,将应用程序进程作为目标,并获取其所有DNS请求数据包,获取域名关键字列表(域关键字列表),域名关键字列表提取流程如图4所示。由目标IP、关键字和域关键字构成的多个预设模板对未知协议进行识别。
步骤三,通信会话划分:针对协议数据包中的待解析会话,分析会话中每个响应的准确开始和结束,以将会话划分为多个响应(待划分响应)。
进行响应分类:TCP协议的功能类似于双向通信,其中服务器发送数据,客户端响应Ack(确认字符)包以确认数据采集并检查连接活动。可以通过检查Seq(序号)和Ack标志的值来定位连接的开始和结束。
主要包括两个步骤:
步骤1:查找长度为0的所有Ack数据包。每个响应中可能有多个Ack包。如果Ack的值等于Seq的值,则它们属于同一响应。
步骤2:遍历会话中的每个数据包以计算Seq和长度的总和,并检查Ack的值,以查看它们是否是响应确认的数据。
步骤四,通信阶段划分:响应分类后,使用ASCII字符百分比的方法,建立用于分析通信阶段的图形,以此划分通信阶段;
通信阶段划分:计算每个响应中某些特定ASCII字符的百分比(ASCII代码百分比),建立ASCII码百分比和响应序号的关系图,根据关系图将通信流程划分为连接建立、数据传输和连接终止三个阶段,具体的流程图如图5所示。
步骤五,协议字段预处理:首先匿名预处理协议,以防止用户信息干扰。
为降低字段提取的工作量,对每个通信阶段内的协议进行匿名预处理,根据不同的层协议和特定的位置和长度,将用户信息替换为等长的随机字符串。
步骤六,协议关键词提取:采用频繁项集法和特殊字符法进行关键字提取(待处理关键词)。
进行关键字提取,对于通常使用特殊字符来分割文本的文本协议,采用频繁项集法来进行关键词提取。对于二进制协议,特殊字符是加密的,无法直接识别,采用频繁项集方法进行关键词提取。
频繁项集方法:提出了FP-gram方法来查找频繁项集。首先,对匿名处理后的协议消息使用N-gram算法,将消息的长字符串处理成多个语料库集合;然后,使用FP-Growth(FP-增长)算法来挖掘频繁项集,以找到集合中具有高相关性和高频率的字段特征,将这些字段特征用作协议字段解析的关键字。
特殊字符方法:使用如:\x00作为分割字符的文本协议,首先,针对匿名处理后的协议消息,搜索\x00字符并以此划分有效数据为不同的划分字段,然后,对同一会话中的划分字段进行统计,并结合通信阶段、响应编号和字段划分进行比较,可获得用来划分不同响应的特征字段。基于\x00的协议字段解析流程如图6所示。
步骤七,关键词过滤和集成:对提取到的关键词进行过滤和集成,以获得协议解析所需的一组字段特征,根据字段特征分析总结得到协议的解析结果(协议解析结果)。
分别从相似性、长度权重、位置偏移三个维度过滤和集成了字段特征。目的都是集成字段特征。集成得到的字段特征通常是协议中在同一位置经常重复出现的字段,字段特征可以表示协议的格式特征,从字段特征总结获得协议的格式,即协议解析结果。
在实际应用中,可以通过设置权重,考虑将许多适用于协议分析的现有方案添加到本发明的框架中,以便使得本发明的框架能够更准确和全面地分析协议。对于加密的未知协议,一旦操作有效的解析技术可用,本发明的框架可以复制和引入这些技术,而各个阶段的效率改进也可以提高本发明的整体效果。
图7是本发明实施例提供的一种电子设备的结构示意图。如图7所示,电子设备400包括一个或多个处理器401和存储器402。
处理器401可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。
存储器402可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器401可以运行所述程序指令,以实现上文所说明的本发明任意实施例的物联网的多协议解析方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如初始外参、阈值等各种内容。
在一个示例中,电子设备400还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。该输入装置403可以包括例如键盘、鼠标等等。该输出装置404可以向外部输出各种信息,包括预警提示信息、制动力度等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图7中仅示出了该电子设备400中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。
除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本发明任意实施例所提供的物联网的多协议解析方法的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本发明任意实施例所提供的物联网的多协议解析方法的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,本发明所用术语仅为了描述特定实施例,而非限制本申请范围。如本发明说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
还需说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”等应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案。

Claims (10)

1.一种物联网的多协议解析方法,其特征在于,包括:
获取多个待解析会话,并确定每个所述待解析会话对应的协议类型;其中,所述协议类型包括已知协议和未知协议;
针对所述协议类型为未知协议的多个待解析会话,基于预设模板对多个所述待解析会话进行分组,得到待解析会话组;
针对每组所述待解析会话组中的每个所述待解析会话,根据响应字符,确定与所述待解析会话相对应的多个待划分响应;
针对每个所述待解析会话,基于预设ASCII代码,确定所述待解析会话中各所述待划分响应所对应的通信阶段;其中,所述通信阶段包括连接建立阶段、数据传输阶段和连接终止阶段;
针对每组所述待解析会话组中的每个所述通信阶段,确定所述通信阶段中的字段特征,并根据所述字段特征构建与所述待解析会话组相对应的协议解析结果。
2.根据权利要求1所述的方法,其特征在于,所述获取多个待解析会话,包括:
获取多个协议数据包,根据各所述协议数据包的会话类型,对各所述协议数据包进行组合,得到多个待解析会话;其中,所述会话类型包括TCP会话、UDP会话以及ICMP会话。
3.根据权利要求1所述的方法,其特征在于,所述基于预设模板对多个所述待解析会话进行分组,得到待解析会话组,包括:
对多个所述待解析会话进行信息提取,确定每个所述待解析会话对应的关键信息;其中,所述关键信息包括目标IP、目标关键字以及域关键字;
针对每个所述待解析会话,若所述待解析会话的关键信息与预设模板中的一组关键信息相对应,则确定所述待解析会话对应的待解析会话组,若所述待解析会话的关键信息与预设模板中的任一组关键信息均不对应,则根据所述待解析会话的关键信息更新所述预设模板,并建立所述待解析会话对应的待解析会话组。
4.根据权利要求1所述的方法,其特征在于,所述基于预设ASCII代码,确定所述待解析会话中各所述待划分响应所对应的通信阶段,包括:
基于预设ASCII代码,确定所述待解析会话中的每个待划分响应对应的ASCII代码百分比;
将所述ASCII代码百分比高于预设的百分比阈值的连续的多个待划分响应的通信阶段确定为数据传输阶段;
根据各所述待划分响应的时间顺序,将位于所述数据传输阶段之前的多个待划分响应的通信阶段确定为连接建立阶段,并将位于所述数据传输阶段之后的多个待划分响应的通信阶段确定为连接终止阶段。
5.根据权利要求1所述的方法,其特征在于,所述确定所述通信阶段中的字段特征,包括:
基于频繁项集方法以及特殊字符方法,对所述通信阶段中的各待划分响应进行关键词提取,得到待处理关键词;
针对各待处理关键词进行关键词过滤和集成处理,得到所述通信阶段中的字段特征;其中,所述关键词过滤和集成处理的维度包括相似性维度、长度权重维度以及位置偏移维度。
6.根据权利要求5所述的方法,其特征在于,所述针对各待处理关键词进行关键词过滤和集成处理,得到所述通信阶段中的字段特征,包括:
基于下述公式确定任意两段由所述待处理关键词集成的序列之间的相似度:
其中,A和B表示任意两段由所述待处理关键词集成的序列,EditD(A,B)表示A和B两序列之间的编辑距离,LCS(A,B)表示A和B两序列之间的最长公共子序列,UnionCount(A,B)表示A和B两序列之间的相似度;
基于下述公式确定各所述待处理关键词的长度权重:
其中,l和r表示预设的长度最大值以及预设的长度最小值,x表示所述待处理关键词,len(x)表示所述待处理关键词的长度,F(x)表示所述待处理关键词的索引,Weight(x)表示所述待处理关键词的权重,freq(x)表示所述待处理关键词的词频;
基于下述公式确定所述通信阶段中各所述待划分响应对应的所述待处理关键词的位置偏移:
其中,cv表示所述待处理关键词的位置偏移,表示所述待划分响应中各所述待处理关键词的位置值的标准偏差,表示各所述待划分响应中各所述待处理关键词的位置的平均值;
基于各所述相似度、各所述长度权重以及各所述位置偏移,确定所述通信阶段中的字段特征。
7.根据权利要求1所述的方法,其特征在于,所述根据所述字段特征构建与所述待解析会话组相对应的协议解析结果,包括:
根据各所述字段特征的位置信息,构建协议解析格式;
根据所述协议解析格式对各待解析会话组进行解析,得到与所述待解析会话组相对应的协议解析结果。
8.根据权利要求1所述的方法,其特征在于,还包括:
针对所述协议类型为已知协议的每个待解析会话,将所述待解析会话输入至预先训练的随机森林分类器中,得到与所述待解析会话对应的协议种类;其中,所述随机森林分类器基于样本会话以及与所述样本会话对应的协议种类训练得到;
针对每种所述协议种类对应的待解析会话,根据与所述协议种类对应的解析方法,对所述待解析会话进行解析,得到协议解析结果。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至8任一项所述的物联网的多协议解析方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至8任一项所述的物联网的多协议解析方法的步骤。
CN202310330398.4A 2023-03-31 2023-03-31 物联网的多协议解析方法、电子设备和存储介质 Active CN116033048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310330398.4A CN116033048B (zh) 2023-03-31 2023-03-31 物联网的多协议解析方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310330398.4A CN116033048B (zh) 2023-03-31 2023-03-31 物联网的多协议解析方法、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN116033048A true CN116033048A (zh) 2023-04-28
CN116033048B CN116033048B (zh) 2024-04-09

Family

ID=86074498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310330398.4A Active CN116033048B (zh) 2023-03-31 2023-03-31 物联网的多协议解析方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116033048B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118250357A (zh) * 2024-05-27 2024-06-25 中国电子科技集团公司第三十研究所 一种物联网动态协议识别装置和方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546625A (zh) * 2011-12-31 2012-07-04 深圳市永达电子股份有限公司 半监督聚类集成的协议识别系统
CN105630839A (zh) * 2014-11-07 2016-06-01 阿里巴巴集团控股有限公司 网页信息的获取方法和装置
CN109726388A (zh) * 2018-05-07 2019-05-07 深圳壹账通智能科技有限公司 Pdf文件解析方法、装置、设备及计算机可读存储介质
CN111785383A (zh) * 2020-06-29 2020-10-16 平安医疗健康管理股份有限公司 数据处理方法及相关设备
CN113364732A (zh) * 2021-04-22 2021-09-07 东风电驱动系统有限公司 一种车载终端通讯协议解析方法及装置
CN113452672A (zh) * 2021-05-11 2021-09-28 国网天津市电力公司电力科学研究院 基于协议逆向分析的电力物联网终端流量异常分析方法
CN114745455A (zh) * 2022-04-14 2022-07-12 通号城市轨道交通技术有限公司 网络接口报文数据处理方法、装置、设备及介质
CN115398860A (zh) * 2020-06-04 2022-11-25 深圳市欢太科技有限公司 一种会话检测方法、装置、检测设备及计算机存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546625A (zh) * 2011-12-31 2012-07-04 深圳市永达电子股份有限公司 半监督聚类集成的协议识别系统
CN105630839A (zh) * 2014-11-07 2016-06-01 阿里巴巴集团控股有限公司 网页信息的获取方法和装置
CN109726388A (zh) * 2018-05-07 2019-05-07 深圳壹账通智能科技有限公司 Pdf文件解析方法、装置、设备及计算机可读存储介质
CN115398860A (zh) * 2020-06-04 2022-11-25 深圳市欢太科技有限公司 一种会话检测方法、装置、检测设备及计算机存储介质
CN111785383A (zh) * 2020-06-29 2020-10-16 平安医疗健康管理股份有限公司 数据处理方法及相关设备
CN113364732A (zh) * 2021-04-22 2021-09-07 东风电驱动系统有限公司 一种车载终端通讯协议解析方法及装置
CN113452672A (zh) * 2021-05-11 2021-09-28 国网天津市电力公司电力科学研究院 基于协议逆向分析的电力物联网终端流量异常分析方法
CN114745455A (zh) * 2022-04-14 2022-07-12 通号城市轨道交通技术有限公司 网络接口报文数据处理方法、装置、设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
戴睿: ""基于协议状态和特征提取的协议报文格式推断研究"", 《中国硕士学位论文全文数据库信息科技辑》, no. 12, pages 15 - 26 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118250357A (zh) * 2024-05-27 2024-06-25 中国电子科技集团公司第三十研究所 一种物联网动态协议识别装置和方法
CN118250357B (zh) * 2024-05-27 2024-08-02 中国电子科技集团公司第三十研究所 一种物联网动态协议识别装置和方法

Also Published As

Publication number Publication date
CN116033048B (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
US20210240682A1 (en) Automatic entity resolution with rules detection and generation system
US10133650B1 (en) Automated API parameter resolution and validation
CN112989348B (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN114826671B (zh) 一种基于指纹的分层匹配的网络资产识别方法及装置
CN110007906B (zh) 脚本文件的处理方法、装置和服务器
CN116033048B (zh) 物联网的多协议解析方法、电子设备和存储介质
CN110020665A (zh) 一种兼容不同飞行质谱仪的微生物质谱数据分析方法
CN113360521A (zh) 日志查询方法、装置、设备及存储介质
CN116107834A (zh) 日志异常检测方法、装置、设备及存储介质
CN115618355A (zh) 注入攻击结果判定方法、装置、设备及存储介质
CN115062600A (zh) 一种基于加权抽象语法树的代码抄袭检测方法
CN111464515A (zh) 一种数据转换方法、装置、设备及存储介质
CN112822121A (zh) 流量识别方法、流量确定方法、知识图谱建立方法
CN117435189A (zh) 金融系统接口的测试用例分析方法、装置、设备及介质
CN117081801A (zh) 网站的内容管理系统的指纹识别方法、装置及介质
CN110688558B (zh) 网页搜索的方法、装置、电子设备和存储介质
CN111314109A (zh) 一种基于弱密钥的大规模物联网设备固件识别方法
CN116318813A (zh) 一种基于聚类分析的域名滥用检测方法及系统
CN115392238A (zh) 一种设备识别方法、装置、设备及可读存储介质
CN114385468A (zh) 一种日志分析方法、系统及相关组件
CN113868495A (zh) 一种网站聚类方法、装置、设备及存储介质
CN105224655B (zh) 网站转化设置的检测方法、处理方法和装置
CN116112350B (zh) 一种宽带故障处理方法、装置、电子设备和可读存储介质
CN115587364B (zh) 基于前后端关联性分析的固件漏洞输入点定位方法及装置
CN113965421B (zh) 应用程序接口的获取方法、装置和分析方法、装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant