CN115190056B - 一种可编排的流量协议识别与解析方法、装置及设备 - Google Patents
一种可编排的流量协议识别与解析方法、装置及设备 Download PDFInfo
- Publication number
- CN115190056B CN115190056B CN202211096117.5A CN202211096117A CN115190056B CN 115190056 B CN115190056 B CN 115190056B CN 202211096117 A CN202211096117 A CN 202211096117A CN 115190056 B CN115190056 B CN 115190056B
- Authority
- CN
- China
- Prior art keywords
- protocol
- plug
- analysis
- identification
- data packet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种可编排的流量协议识别与解析方法、装置及设备,该方法包括:若数据包的协议特征与第一协议识别插件的协议特征匹配,则将第一协议识别插件对应的协议确定为协议级别下的目标协议;若多个协议级别下的目标协议中存在具有子协议的候选目标协议,则将数据包输入给候选目标协议对应的至少一个子协议识别插件;若数据包的协议特征与第一子协议识别插件的协议特征匹配,则将第一子协议识别插件对应的子协议确定为候选目标协议下的子协议;将数据包输入给每个协议级别下的目标协议对应的协议解析插件,由协议解析插件从数据包中解析出该协议级别下的协议解析结果。通过本申请的技术方案,能够有效提升协议识别的效率和准确率。
Description
技术领域
本申请涉及网络安全技术领域,尤其是涉及一种可编排的流量协议识别与解析方法、装置及设备。
背景技术
随着信息技术的不断进步,网络流量分析技术越来越重要,基于网络流量分析技术,能够使运维人员了解当前网络状态,如流量分布情况、流量带宽情况等,基于网络流量分析技术,能够使运维人员了解当前网络的安全情况,如当前网络是否存在网络攻击、当前网络存在哪种类型的网络攻击等。
在网络流量分析技术中,需要对数据包协议进行识别,即分析数据包采用哪些协议,即基于端口或关键特征分析数据包协议。比如说,针对80端口的数据包,确定数据包协议为HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议,针对22端口的数据包,确定数据包协议为SSH(Secure Shell,安全外壳协议)协议,针对带有GET HTTP/1.1的数据包,确定数据包协议为HTTP协议。
但是,在上述方法中,需要依赖端口或关键特征分析数据包协议,存在协议识别不准确,存在大量漏报情况和误报情况,即无法准确分析数据包协议。
发明内容
本申请提供一种可编排的流量协议识别与解析方法,应用于电子设备,所述电子设备包括多个协议级别的协议识别插件和协议解析插件,所述方法包括:
针对每个协议级别,将数据包输入给所述协议级别的至少一个协议识别插件;若数据包的协议特征与第一协议识别插件的协议特征匹配,则将所述第一协议识别插件对应的协议确定为所述协议级别下的目标协议;
若所述多个协议级别下的目标协议中存在具有子协议的候选目标协议,则将数据包输入给所述候选目标协议对应的至少一个子协议识别插件;若数据包的协议特征与第一子协议识别插件的协议特征匹配,则将所述第一子协议识别插件对应的子协议确定为所述候选目标协议下的子协议;
将数据包输入给每个协议级别下的目标协议对应的协议解析插件,由所述协议解析插件从数据包中解析出该协议级别下的协议解析结果;
输出所述数据包对应的所述多个协议级别下的目标协议、所述候选目标协议下的子协议、所述多个协议级别下的协议解析结果。
本申请提供一种可编排的流量协议识别与解析装置,应用于电子设备,所述电子设备包括多个协议级别的协议识别插件和协议解析插件,所述装置包括:
目标协议解析模块,用于针对每个协议级别,将数据包输入给所述协议级别的至少一个协议识别插件;若数据包的协议特征与第一协议识别插件的协议特征匹配,则将第一协议识别插件对应的协议确定为该协议级别下的目标协议;
子协议解析模块,用于若多个协议级别下的目标协议中存在具有子协议的候选目标协议,则将数据包输入给所述候选目标协议对应的至少一个子协议识别插件;若数据包的协议特征与第一子协议识别插件的协议特征匹配,则将所述第一子协议识别插件对应的子协议确定为所述候选目标协议下的子协议;
内容解析模块,用于将数据包输入给每个协议级别下的目标协议对应的协议解析插件,由协议解析插件从数据包中解析出该协议级别下的协议解析结果;
输出模块,用于输出所述数据包对应的所述多个协议级别下的目标协议、所述候选目标协议下的子协议、所述多个协议级别下的协议解析结果。
本申请提供一种电子设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请的可编排的流量协议识别与解析方法。
由以上技术方案可见,本申请实施例中,可以部署多个协议识别插件,通过多个协议识别插件识别数据包的协议,且协议识别插件可以动态扩展,可以基于实际需要部署协议识别插件,能够准确分析数据包协议,避免协议识别不准确、存在大量漏报情况和误报情况等问题。多个协议识别插件支持按需串行部署和并行部署,能够有效提升协议识别的效率和准确率。多个协议识别插件能够从纵向和横向等两个角度进行协议识别,可以满足不同场景下不同用户的需求。通过准确分析出数据包协议,帮助网络管理员和安全管理员实时监测网络中的流量分布,提高流量协议识别与解析的准确率,也能够为安全设备提供基础数据支持,实现安全威胁的实时发现,提高网络的安全性。
数据包到达后由不同纵向维度的协议识别插件(即不同协议级别的协议识别插件)串行进行协议识别。数据包到达后由同一纵向维度的协议识别插件(即同一个协议级别的协议识别插件)并行进行协议识别。数据包到达后同一横向维度的协议识别插件(如HTTP协议的协议识别插件和ISAPI子协议的子协议识别插件)串行进行协议识别,如先由HTTP协议的协议识别插件进行协议识别,再由ISAPI子协议的子协议识别插件进行协议识别。通过采用并行方式可以提升数据包协议识别的效率,通过采用串行方式可以提升数据包协议识别的准确率,将并行方式和串行方式并用,实现识别效率与识别准确率的有效平衡。
可以部署多个协议解析插件,通过多个协议解析插件识别数据包的实际内容,且协议解析插件可以动态扩展,可以基于实际需要部署协议解析插件,能够准确分析数据包的内容。通过部署多个协议解析插件,能够根据不同场景灵活定制需要分析的内容,如分析视频行为、分析网络中的恶意攻击等。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是可编排的流量协议识别与解析方法的流程示意图;
图2是可编排的流量协议识别与解析方法的流程示意图;
图3是可编排的流量协议识别与解析方法的流程示意图;
图4是可编排的流量协议识别与解析装置的结构示意图;
图5是本申请一种实施方式中的电子设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种可编排的流量协议识别与解析方法,可以应用于电子设备,电子设备可以包括多个协议级别的协议识别插件和多个协议级别的协议解析插件,参见图1所示,为该方法的流程示意图,该方法可以包括:
步骤101、针对每个协议级别,将数据包输入给该协议级别的至少一个协议识别插件;若数据包的协议特征与第一协议识别插件的协议特征匹配,则将第一协议识别插件对应的协议确定为该协议级别下的目标协议。示例性的,第一协议识别插件可以是所述至少一个协议识别插件中的任一协议识别插件。
示例性的,多个协议级别可以按照指定顺序排列,将数据包输入给该协议级别的至少一个协议识别插件,可以包括但不限于:基于多个协议级别的排列顺序,依次遍历每个协议级别作为当前协议级别。若当前协议级别为第一个协议级别,则将数据包输入给当前协议级别的所有协议识别插件;若当前协议级别不为第一个协议级别,针对当前协议级别的每个协议识别插件,若该协议识别插件的前置协议包括当前协议级别的上一个协议级别下的目标协议,则将数据包输入给该协议识别插件,否则,禁止将数据包输入给该协议识别插件。
示例性的,在将数据包输入给该协议级别的至少一个协议识别插件后,还可以通过所述至少一个协议识别插件并行对数据包的协议特征进行协议识别,得到数据包的协议特征与协议识别插件的协议特征的匹配结果。若基于匹配结果确定数据包的协议特征与一个协议识别插件的协议特征匹配,则可以将所述一个协议识别插件确定为第一协议识别插件;若基于匹配结果确定数据包的协议特征与至少两个协议识别插件的协议特征匹配,则可以从所述至少两个协议识别插件中选取置信度最大的协议识别插件作为第一协议识别插件。
步骤102、若多个协议级别下的目标协议中存在具有子协议的候选目标协议,则将数据包输入给候选目标协议对应的至少一个子协议识别插件;若数据包的协议特征与第一子协议识别插件的协议特征匹配,则将第一子协议识别插件对应的子协议确定为候选目标协议下的子协议。示例性的,第一子协议识别插件可以是目标协议对应的至少一个子协议识别插件中的任一子协议识别插件。
示例性的,多个协议级别可以包括数据链路层级别、网络层级别、传输层级别、应用层级别。数据链路层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:ARP(Address Resolution Protocol,地址解析协议)协议、RARP(Reverse AddressResolution Protocol,反向地址转换协议)协议、IEEE(Institute of Electrical andElectronics Engineers,电气与电子工程师协会)802.1协议、IEEE802.3协议、PPP(Pointto Point Protocol,点对点协议)协议、CSMA/CD(Carrier Sense Multiple Access/Collision Detection,带有冲突检测的载波侦听多路存取)协议。网络层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:IP协议、ICMP(Internet ControlMessage Protocol,Internet控制报文协议)协议、RIP(Routing Information Protocol,路由信息协议)协议、IGMP(Internet Group Management Protocol,Internet 组管理协议)协议。传输层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:TCP(Transmission Control Protocol,传输控制协议)协议、UDP(User DatagramProtocol,用户数据报协议)协议。应用层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:HTTP协议、SIP(Session initialization Protocol,会话初始协议)协议、DNS(Domain Name System,域名系统)协议、TELNET(远程登录)协议、FTP(FileTransferProtocol,文件传输协议)协议。
若目标协议为HTTP协议或SIP协议,则HTTP协议或SIP协议为具有子协议的候选目标协议。HTTP协议对应的子协议识别插件包括用于识别以下子协议的子协议识别插件:ISAPI(Intelligent Security Application Program Interface,智能安全应用程序接口)子协议、ONVIF(Open Network Video Interface Forum,开放型网络视频接口论坛)子协议;SIP协议对应的子协议识别插件包括用于识别以下子协议的子协议识别插件:GB/T28181子协议、GB35114子协议。
步骤103、将数据包输入给每个协议级别下的目标协议对应的协议解析插件,由该协议解析插件从数据包中解析出该协议级别下的协议解析结果。
示例性的,目标协议对应的协议解析插件可以包括一个基础解析插件和至少一个定制解析插件;由协议解析插件从数据包中解析出该协议级别下的协议解析结果,可以包括但不限于:通过基础解析插件对数据包中的基础字段进行解析,得到基础字段的解析结果;针对每个定制解析插件,通过该定制解析插件对数据包中的定制字段进行解析,得到定制字段的解析结果;基于基础字段的解析结果和定制字段的解析结果确定该协议级别下的协议解析结果。
步骤104、输出该数据包对应的多个协议级别下的目标协议、该候选目标协议下的子协议、多个协议级别下的协议解析结果。
示例性的,还可以通过可视化编辑页面接收针对协议识别插件的操作命令。若操作命令为针对协议识别插件的新增操作命令,则添加协议识别插件,将该协议识别插件的状态设置为禁用状态;若操作命令为针对协议识别插件的编辑操作命令,且该协议识别插件的状态为禁用状态,则对该协议识别插件进行修改;若操作命令为针对协议识别插件的删除操作命令,且该协议识别插件的状态为禁用状态,则删除该协议识别插件;若操作命令为针对协议识别插件的启用操作命令,且该协议识别插件的状态为禁用状态,将该协议识别插件的状态修改为启用状态;若操作命令为针对协议识别插件的禁用操作命令,且该协议识别插件的状态为启用状态,将该协议识别插件的状态修改为禁用状态。
在此基础上,在将数据包输入给协议识别插件时,允许将数据包输入给启用状态的协议识别插件,禁止将数据包输入给禁用状态的协议识别插件。
示例性的,还可以通过可视化编辑页面接收针对协议解析插件的操作命令;若操作命令为针对协议解析插件的新增操作命令,则添加协议解析插件,将该协议解析插件的状态设置为禁用状态;若操作命令为针对协议解析插件的编辑操作命令,且该协议解析插件的状态为禁用状态,则对该协议解析插件进行修改;若操作命令为针对协议解析插件的删除操作命令,且该协议解析插件的状态为禁用状态,则删除该协议解析插件;若操作命令为针对协议解析插件的启用操作命令,且该协议解析插件的状态为禁用状态,将该协议解析插件的状态修改为启用状态;若操作命令为针对协议解析插件的禁用操作命令,且该协议解析插件的状态为启用状态,将该协议解析插件的状态修改为禁用状态。
在此基础上,在将数据包输入给协议解析插件时,允许将数据包输入给启用状态的协议解析插件,禁止将数据包输入给禁用状态的协议解析插件。
由以上技术方案可见,本申请实施例中,可以部署多个协议识别插件,通过多个协议识别插件识别数据包的协议,且协议识别插件可以动态扩展,可以基于实际需要部署协议识别插件,能够准确分析数据包协议,避免协议识别不准确、存在大量漏报情况和误报情况等问题。多个协议识别插件支持按需串行部署和并行部署,能够有效提升协议识别的效率和准确率。多个协议识别插件能够从纵向和横向等两个角度进行协议识别,可以满足不同场景下不同用户的需求。通过准确分析出数据包协议,帮助网络管理员和安全管理员实时监测网络中的流量分布,提高流量协议识别与解析的准确率,也能够为安全设备提供基础数据支持,实现安全威胁的实时发现,提高网络的安全性。
数据包到达后由不同纵向维度的协议识别插件(即不同协议级别的协议识别插件)串行进行协议识别。数据包到达后由同一纵向维度的协议识别插件(即同一个协议级别的协议识别插件)并行进行协议识别。数据包到达后同一横向维度的协议识别插件(如HTTP协议的协议识别插件和ISAPI子协议的子协议识别插件)串行进行协议识别,如先由HTTP协议的协议识别插件进行协议识别,再由ISAPI子协议的子协议识别插件进行协议识别。通过采用并行方式可以提升数据包协议识别的效率,通过采用串行方式可以提升数据包协议识别的准确率,将并行方式和串行方式并用,实现识别效率与识别准确率的有效平衡。
可以部署多个协议解析插件,通过多个协议解析插件识别数据包的实际内容,且协议解析插件可以动态扩展,可以基于实际需要部署协议解析插件,能够准确分析数据包的内容。通过部署多个协议解析插件,能够根据不同场景灵活定制需要分析的内容,如分析视频行为、分析网络中的恶意攻击等。
以下结合具体应用场景,对本申请实施例的上述技术方案进行说明。
在网络流量分析技术中,为了对数据包协议进行识别,可以基于端口或者关键特征分析数据包协议。比如说,80端口的数据包的协议为HTTP协议,22端口的数据包的协议为SSH协议,带有GET HTTP/1.1的数据包的协议为HTTP协议。但是,在上述方法中,需要依赖端口或者关键特征分析数据包协议,存在协议识别不准确,存在大量漏报情况和误报情况等问题。
针对上述发现,本申请实施例中提出一种可编排的流量协议识别与解析方法,可以实现数据包的协议识别与协议解析。对于协议识别,可以从纵向和横向等两个维度实现数据包的协议识别,在纵向维度,可以按照五层结构(如物理层、数据链路层、网络层、传输层和应用层)从下往上依次进行各层协议识别,在横向维度,可以根据协议依赖关系进行协议识别。
可编排是指:对协议识别插件和协议解析插件进行新增、删除、编辑等操作,从而满足不同场景或不同用户对于协议识别和协议解析的需求。协议识别是指:对数据包进行协议识别,如从纵向和横向等两个维度实现数据包的协议识别。协议解析是指:根据协议识别结果对不同协议进行关键数据的解析。
本申请实施例中,为了实现数据包的协议识别与协议解析,需要配置协议识别插件和协议解析插件,针对协议识别插件和协议解析插件的配置过程,参见图2所示,协议识别插件和协议解析插件的配置过程可以包括以下步骤:
步骤201、获取多个协议级别的协议识别插件。
示例性的,多个协议级别可以包括但不限于以下至少两种:数据链路层级别、网络层级别、传输层级别、应用层级别,当然,当然只是协议级别的几个示例,对此不做限制。为了方便描述,后续以上述4种协议级别为例。
针对数据链路层级别,可以获取数据链路层级别的多个协议识别插件。比如说,由于数据链路层的协议包括但不限于ARP协议、RARP协议、IEEE802.1协议、IEEE802.3协议、PPP协议、CSMA/CD协议,因此,可以获取用于识别ARP协议的协议识别插件、用于识别RARP协议的协议识别插件、用于识别IEEE802.1协议的协议识别插件、用于识别IEEE802.3协议的协议识别插件、用于识别PPP协议的协议识别插件、用于识别CSMA/CD协议的协议识别插件。在实际应用中,可以获取上述协议识别插件的部分协议识别插件,也可以获取上述协议识别插件的全部协议识别插件,还可以获取除上述协议识别插件之外的其它协议识别插件,对此数据链路层级别的协议识别插件不做限制。
针对网络层级别,可以获取网络层级别的多个协议识别插件。比如说,由于网络层的协议可以包括但不限于IP协议、ICMP协议、RIP协议、IGMP协议,因此,可以获取用于识别IP协议的协议识别插件、用于识别ICMP协议的协议识别插件、用于识别RIP协议的协议识别插件、用于识别IGMP协议的协议识别插件。在实际应用中,可以获取上述协议识别插件的部分协议识别插件,也可以获取上述协议识别插件的全部协议识别插件,还可以获取除上述协议识别插件之外的其它协议识别插件,对此网络层级别的协议识别插件不做限制。
针对传输层级别,可以获取传输层级别的多个协议识别插件。比如说,由于传输层的协议可以包括但不限于TCP协议、UDP协议,因此,可以获取用于识别TCP协议的协议识别插件、用于识别UDP协议的协议识别插件。在实际应用中,可以获取上述协议识别插件的部分协议识别插件,也可以获取上述协议识别插件的全部协议识别插件,还可以获取除上述协议识别插件之外的其它协议识别插件,对此传输层级别的协议识别插件不做限制。
针对应用层级别,可以获取应用层级别的多个协议识别插件。比如说,由于应用层的协议可以包括但不限于HTTP协议、SIP协议、DNS协议、TELNET协议、FTP协议,因此,可以获取用于识别HTTP协议的协议识别插件、用于识别SIP协议的协议识别插件、用于识别DNS协议的协议识别插件、用于识别TELNET协议的协议识别插件、用于识别FTP协议的协议识别插件。在实际应用中,可以获取上述协议识别插件的部分协议识别插件,也可以获取上述协议识别插件的全部协议识别插件,还可以获取除上述协议识别插件之外的其它协议识别插件,对此应用层级别的协议识别插件不做限制。
在一种可能的实施方式中,对于某些协议(如应用层协议)来说,会存在基于该协议制定的子协议,比如说,ISAPI协议和ONVIF协议是基于HTTP协议制定的子协议,GB/T28181协议和GB35114协议是基于SIP协议制定的子协议。在此基础上,本实施例中,还可以获取子协议识别插件。比如说,针对HTTP协议对应的子协议,获取用于识别ISAPI子协议的子协议识别插件(子协议识别插件的内容与协议识别插件的内容类似,这里只是为了区分方便,称为子协议识别插件)、用于识别ONVIF子协议的子协议识别插件。又例如,针对SIP协议,获取用于识别GB/T28181子协议的子协议识别插件、用于识别GB35114子协议的子协议识别插件。当然,上述只是几个示例,对此不做限制。
综上所述,可以获取到大量协议识别插件(或子协议识别插件),对于每个协议识别插件来说,该协议识别插件用于识别数据包的协议。每种协议可以对应至少一个协议识别插件,如ARP协议对应至少一个协议识别插件,即用于识别ARP协议的协议识别插件为至少一个。每个协议识别插件只能对应一种协议,如ARP协议的协议识别插件只能对应ARP协议,而不能对应其它协议。
在一种可能的实施方式中,对于每个协议识别插件(或子协议识别插件)来说,该协议识别插件包括但不限于以下内容的至少一种:编号、协议名称、协议版本、部署位置、协议特征、前置协议、协议描述、置信度。
编号是协议识别插件的编号,具有唯一性,即协议识别插件的标识,例如,编号为Identity_A_00001、Identity_B_00001、Identity_C_00001、Identity_D_00001等,Identity表示本插件属于协议识别插件,A、B、C、D表示协议识别插件所处的层次,如A表示协议识别插件处于数据链路层、B表示协议识别插件处于网络层、C表示协议识别插件处于传输层、D表示协议识别插件处于应用层。
协议名称表示协议识别插件对应的协议名称,如ARP协议、RARP协议等。
协议版本表示本协议识别插件对应的协议版本,如1.1、1.2等。
部署位置表示本协议识别插件对应的部署位置,即本协议识别插件需要部署在哪个位置。比如说,部署位置可以为数据链路层、网络层、传输层和应用层,若部署位置为数据链路层,则表示本协议识别插件需要部署在数据链路层。
协议特征表示本协议识别插件进行协议识别时需要匹配的特征,特征可以是端口、字符串或其它应用逻辑,如port==80、URI.contain(“/ISAPI/”)、前六个字节为0等。比如说,若协议特征为port==80,那么,在数据包中包括port==80时,说明数据包的协议特征与本协议识别插件的协议特征匹配。
前置协议表示本协议识别插件前置的协议,也就是说,在数据包与这个前置协议匹配时,才有可能与本协议匹配(也有可能与本协议不匹配),在该情况下,可以基于本协议识别插件对数据包进行协议识别,在数据包与这个前置协议不匹配时,不会与本协议匹配,在该情况下,不需要基于本协议识别插件对数据包进行协议识别。比如说,ISAPI协议的前置协议可以是:IP、TCP、HTTP等,因此,若数据包与HTTP协议匹配时,数据包才有可能与ISAPI协议匹配,若数据包与HTTP协议不匹配,则数据包不会与ISAPI协议匹配。
协议描述表示本协议的相关描述,可以辅助用户进行查看。
置信度表示本协议识别插件的置信度,可以是0-1之间的数值,比如说,本协议识别插件的可靠性比较大(即不会产生误报)时,则置信度可以为1或接近于1的数值,本协议识别插件的可靠性比较小(即可能会产生误报)时,则置信度可以为0或接近于0的数值。在初始状态下,所有协议识别插件的置信度可以设为0.5,用户可以对置信度进行调整,如增加置信度的取值或减小置信度的取值,使得不同协议识别插件的置信度可以不同,对此过程不再赘述。
步骤202、获取多个协议级别的协议解析插件。
示例性的,可以获取数据链路层级别的协议解析插件、网络层级别的协议解析插件、传输层级别的协议解析插件、应用层级别的协议解析插件。
针对数据链路层级别来说,可以获取数据链路层级别的多个协议解析插件。比如说,可以获取ARP协议对应的协议解析插件、RARP协议对应的协议解析插件、IEEE802.1协议对应的协议解析插件、IEEE802.3协议对应的协议解析插件、PPP协议对应的协议解析插件、CSMA/CD协议对应的协议解析插件。在实际应用中,可以获取上述部分协议解析插件,也可以获取上述全部协议解析插件,还可以获取除上述协议解析插件之外的其它协议解析插件,对此不做限制。
针对网络层级别来说,可以获取网络层级别的多个协议解析插件。比如说,可以获取IP协议对应的协议解析插件、ICMP协议对应的协议解析插件、RIP协议对应的协议解析插件、IGMP协议对应的协议解析插件,对此不做限制。
针对传输层级别来说,可以获取传输层级别的多个协议解析插件。比如说,可以获取TCP协议对应的协议解析插件、UDP协议对应的协议解析插件。
针对应用层级别来说,可以获取应用层级别的多个协议解析插件。比如说,可以获取HTTP协议对应的协议解析插件、SIP协议对应的协议解析插件、DNS协议对应的协议解析插件、TELNET协议对应的协议解析插件、FTP协议对应的协议解析插件。对于基于HTTP协议制定的子协议,可以获取ISAPI协议对应的协议解析插件、ONVIF协议对应的协议解析插件。对于基于SIP协议制定的子协议,可以获取GB/T28181协议和GB35114子协议对应的协议解析插件。
综上所述,可以获取到大量协议解析插件,对于每个协议解析插件来说,该协议解析插件用于针对不同场景进行数据关键字段提取。针对每个协议对应的协议解析插件,该协议解析插件可以包括一个基础解析插件和至少一个定制解析插件。基础解析插件用于对数据包的基础字段进行解析,定制解析插件则用于对数据包的定制字段解析。比如说,协议解析插件包括基础解析插件、定制解析插件1和定制解析插件2,假设数据包存在字段1、字段2、字段3、…、字段100等,那么,基础解析插件用于对数据包中的基础字段进行解析,得到基础字段的解析结果,假设基础字段包括字段1-字段20、字段41和字段66,则可以得到这些基础字段的解析结果。定制解析插件1用于对数据包中的定制字段(如字段15)进行解析,得到字段15的解析结果,定制解析插件2用于对数据包中的定制字段(如字段55)进行解析,得到字段25的解析结果。
在一种可能的实施方式中,对于每个协议解析插件(如基础解析插件或者定制解析插件)来说,该协议解析插件可以包括但不限于以下内容的至少一种:编号、协议名称、协议版本、解析规则、描述信息等。
编号是协议解析插件的编号,具有唯一性,即协议解析插件的标识,例如,编号为Parse_A_0001、Parse_B_0001、Parse_C_0001、Parse_D_0001等,Parse表示本插件属于协议解析插件,A、B、C、D表示协议解析插件所处的层次,如A表示协议解析插件处于数据链路层、B表示协议解析插件处于网络层、C表示协议解析插件处于传输层、D表示协议解析插件处于应用层。
协议名称表示协议解析插件对应的协议名称,如ARP协议、RARP协议等。
协议版本表示本协议解析插件对应的协议版本,如1.1、1.2等。
解析规则表示本协议解析插件的具体解析规则,例如,针对ARP协议对应的协议解析插件,解析规则为:解析出IP地址与MAC地址的绑定关系。针对DNS协议对应的协议解析插件,解析规则为:解析出DNS请求的域名、域名解析结果、域名解析类型等。针对HTTP协议对应的协议解析插件,解析规则为:解析出请求方式、URI、请求头、请求体、请求是否成功、响应体等。针对SIP协议对应的协议解析插件,解析规则为:解析出请求主体与请求客体、请求是否成功等。针对ISAPI协议对应的协议解析插件,解析规则为:解析出请求头、请求体。当然,上述只是解析规则的几个示例,对此解析规则不做限制。
描述信息表示本协议解析插件的功能描述,如本协议解析插件为ISAPI协议的基础解析插件、ISAPI协议的视频行为解析插件(即定制解析插件)等。
步骤203、基于用户输入的操作命令对协议识别插件进行动态调整。
示例性的,可以向用户展示可视化编辑页面,由用户在可视化编辑页面上进行协议识别插件的新增、删除、编辑等操作,从而实现不同场景下的需求。
情况1、针对协议识别插件的新增操作。
示例性的,可以向用户展示可视化编辑页面,由用户在可视化编辑页面上进行协议识别插件的新增操作,这样,可以通过可视化编辑页面接收到针对协议识别插件的新增操作命令。在接收到该新增操作命令之后,可以添加这个协议识别插件,并将该协议识别插件的状态设置为禁用状态。
比如说,对于协议识别插件的新增操作,用户可以在可视化编辑页面上配置该协议识别插件的内容,如编号、协议名称、协议版本、部署位置、协议特征、前置协议、协议描述、置信度等,这些内容可以参见步骤201所示。在接收到这些内容之后,就可以添加这个协议识别插件,从而新增协议识别插件。
在添加协议识别插件之后,可以将该协议识别插件的状态设置为禁用状态,表示这个协议识别插件当前还无法使用,即不会基于这个协议识别插件对数据包进行协议识别。在此基础上,在需要通过这个协议识别插件对数据包进行协议识别时,用户还可以在可视化编辑页面上进行协议识别插件的启用操作,这样,可以通过可视化编辑页面接收针对协议识别插件的启用操作命令。
在接收到针对协议识别插件的启用操作命令,且该协议识别插件的状态为禁用状态时,就可以将该协议识别插件的状态修改为启用状态,表示这个协议识别插件可以正常使用,可以基于这个协议识别插件对数据包进行协议识别。
情况2、针对协议识别插件的编辑操作。
示例性的,可以向用户展示可视化编辑页面,在用户需要对协议识别插件进行编辑时,可以在可视化编辑页面上进行协议识别插件的禁用操作,这样,可以通过可视化编辑页面接收针对协议识别插件的禁用操作命令。在接收到针对协议识别插件的禁用操作命令,且该协议识别插件的状态为启用状态时,就可以将该协议识别插件的状态修改为禁用状态,表示这个协议识别插件当前还无法使用,即不会基于这个协议识别插件对数据包进行协议识别。
然后,用户在可视化编辑页面上进行协议识别插件的编辑操作,这样,可以通过可视化编辑页面接收到针对协议识别插件的编辑操作命令。在接收到编辑操作命令之后,可以对协议识别插件进行修改。比如说,对协议识别插件的协议特征进行修改、对协议识别插件的置信度进行修改,对此不做限制。
然后,用户在可视化编辑页面上进行协议识别插件的启用操作,这样,可以通过可视化编辑页面接收针对协议识别插件的启用操作命令。在接收到针对协议识别插件的启用操作命令后,就可以将该协议识别插件的状态修改为启用状态,可以基于这个协议识别插件对数据包进行协议识别。
情况3、针对协议识别插件的删除操作。
示例性的,向用户展示可视化编辑页面,在用户需要对协议识别插件进行删除时,可以在可视化编辑页面上进行协议识别插件的禁用操作,这样,可以通过可视化编辑页面接收针对协议识别插件的禁用操作命令。在接收到针对协议识别插件的禁用操作命令,且该协议识别插件的状态为启用状态时,可以将协议识别插件的状态修改为禁用状态。然后,用户在可视化编辑页面上进行协议识别插件的删除操作,这样,通过可视化编辑页面接收到针对协议识别插件的删除操作命令。在接收到删除操作命令之后,可以删除这个协议识别插件。
综上所述,可以实现协议识别插件的新增、编辑和删除,从而可以实现不同场景的灵活定制,满足不同用户的识别需求,支持协议识别插件的热插拔与协议识别插件的自定义,协议识别插件的整体实现方法更加灵活。
步骤204、基于用户输入的操作命令对协议解析插件进行动态调整。
示例性的,可以向用户展示可视化编辑页面,由用户在可视化编辑页面上进行协议解析插件的新增、删除、编辑等操作,从而实现不同场景下的需求。
情况1、针对协议解析插件的新增操作。
示例性的,可以向用户展示可视化编辑页面,由用户在可视化编辑页面上进行协议解析插件的新增操作,这样,可以通过可视化编辑页面接收到针对协议解析插件的新增操作命令。在接收到该新增操作命令之后,可以添加这个协议解析插件,并将该协议解析插件的状态设置为禁用状态。比如说,对于协议解析插件的新增操作,用户可以在可视化编辑页面上配置该协议解析插件的内容,如编号、协议名称、协议版本、解析规则、描述信息等。在接收到这些内容之后,就可以添加这个协议解析插件,从而新增协议解析插件。
在添加协议解析插件之后,可以将该协议解析插件的状态设置为禁用状态,表示这个协议解析插件当前还无法使用,即不会基于这个协议解析插件对数据包进行协议解析。在此基础上,在需要通过这个协议解析插件对数据包进行协议解析时,用户还可以在可视化编辑页面上进行协议解析插件的启用操作,这样,可以通过可视化编辑页面接收针对协议解析插件的启用操作命令。
在接收到针对协议解析插件的启用操作命令,且该协议解析插件的状态为禁用状态时,就可以将该协议解析插件的状态修改为启用状态,表示这个协议解析插件可以正常使用,可以基于这个协议解析插件对数据包进行协议解析。
情况2、针对协议解析插件的编辑操作。
示例性的,可以向用户展示可视化编辑页面,在用户需要对协议解析插件进行编辑时,可以在可视化编辑页面上进行协议解析插件的禁用操作,这样,可以通过可视化编辑页面接收针对协议解析插件的禁用操作命令。在接收到针对协议解析插件的禁用操作命令,且该协议解析插件的状态为启用状态时,就可以将该协议解析插件的状态修改为禁用状态,表示这个协议解析插件当前还无法使用,即不会基于这个协议解析插件对数据包进行协议解析。
然后,用户在可视化编辑页面上进行协议解析插件的编辑操作,这样,可以通过可视化编辑页面接收到针对协议解析插件的编辑操作命令。在接收到编辑操作命令之后,可以对协议解析插件进行修改。比如说,对协议解析插件的解析规则进行修改,对此不做限制。显然,用户可以通过编辑解析规则实现攻击的实时检测,例如,通过协议解析插件的编辑操作,可以针对HTTP协议编辑SQL注入攻击检测规则,针对FTP协议编辑恶意文件检测规则等。
然后,用户在可视化编辑页面上进行协议解析插件的启用操作,这样,可以通过可视化编辑页面接收针对协议解析插件的启用操作命令。在接收到针对协议解析插件的启用操作命令后,就可以将该协议解析插件的状态修改为启用状态,可以基于这个协议解析插件对数据包进行协议解析。
情况3、针对协议解析插件的删除操作。
示例性的,向用户展示可视化编辑页面,在用户需要对协议解析插件进行删除时,可以在可视化编辑页面上进行协议解析插件的禁用操作,这样,可以通过可视化编辑页面接收针对协议解析插件的禁用操作命令。在接收到针对协议解析插件的禁用操作命令,且该协议解析插件的状态为启用状态时,可以将协议解析插件的状态修改为禁用状态。然后,用户在可视化编辑页面上进行协议解析插件的删除操作,这样,通过可视化编辑页面接收到针对协议解析插件的删除操作命令。在接收到删除操作命令之后,可以删除这个协议解析插件。
综上所述,可以实现协议解析插件的新增、编辑和删除,从而可以实现不同场景的灵活定制,满足不同用户的解析需求,支持协议解析插件的热插拔与协议解析插件的自定义,协议解析插件的整体实现方法更加灵活。
基于协议识别插件和协议解析插件,本申请实施例中提出一种可编排的流量协议识别与解析方法,参见图3所示,该方法可以包括以下步骤:
步骤301、获取待识别的数据包,即需要进行协议识别和协议解析的数据包。
例如,通过串联部署方式对网络流量进行实时监测,得到待识别的数据包;或,通过旁路部署方式对网络流量进行实时监测,得到待识别的数据包;或,将离线数据包作为待识别的数据包。当然,上述只是几个示例,对此不做限制。
步骤302、针对每个协议级别,将数据包输入给该协议级别的至少一个协议识别插件;若数据包的协议特征与第一协议识别插件的协议特征匹配,则将第一协议识别插件对应的协议确定为该协议级别下的目标协议。
比如说,按照指定顺序(如TCP/IP五层结构的顺序)对多个协议级别进行排列后,排列顺序为数据链路层级别、网络层级别、传输层级别、应用层级别。
首先,遍历数据链路层级别为当前协议级别,将数据包输入给数据链路层级别的所有协议识别插件,如用于识别ARP协议的协议识别插件a1、用于识别RARP协议的协议识别插件a2、用于识别IEEE协议的协议识别插件a3、用于识别PPP协议的协议识别插件a4、用于识别CSMA/CD协议的协议识别插件a5。
协议识别插件a1、协议识别插件a2、协议识别插件a3、协议识别插件a4和协议识别插件a5,可以并行对数据包的协议特征进行协议识别,即同时对数据包的协议特征进行协议识别。比如说,协议识别插件a1可以确定数据包的协议特征与协议识别插件a1的协议特征是否匹配,协议识别插件a2可以确定数据包的协议特征与协议识别插件a2的协议特征是否匹配,以此类推。
假设数据包的协议特征只与协议识别插件a1的协议特征匹配,则将协议识别插件a1确定为第一协议识别插件,并将协议识别插件a1对应的ARP协议确定为数据链路层级别下的目标协议。假设数据包的协议特征与协议识别插件a1的协议特征和协议识别插件a2的协议特征匹配,则比较协议识别插件a1的置信度和协议识别插件a2的置信度,若议识别插件a1的置信度大于协议识别插件a2的置信度,则将协议识别插件a1确定为第一协议识别插件,并将协议识别插件a1对应的ARP协议确定为数据链路层级别下的目标协议。
然后,遍历网络层级别为当前协议级别,网络层级别下的协议识别插件包括用于识别IP协议的协议识别插件b1、用于识别ICMP协议的协议识别插件b2、用于识别RIP协议的协议识别插件b3、用于识别IGMP协议的协议识别插件b4。
判断协议识别插件b1的前置协议是否包括数据链路层级别下的目标协议,即ARP协议,若协议识别插件b1的前置协议包括ARP协议,则将数据包输入给协议识别插件b1,否则,禁止将数据包输入给协议识别插件b1。同理,可以判断是否将数据包输入给协议识别插件b2、协议识别插件b3、协议识别插件b4。
假设将数据包输入给协议识别插件b2和协议识别插件b4,那么,协议识别插件b2和协议识别插件b4可以并行对数据包的协议特征进行协议识别。比如说,协议识别插件b2确定数据包的协议特征与协议识别插件b2的协议特征是否匹配,协议识别插件b4确定数据包的协议特征与协议识别插件b4的协议特征是否匹配。假设数据包的协议特征只与协议识别插件b4的协议特征匹配,则将协议识别插件b4确定为第一协议识别插件,将协议识别插件b4对应的IGMP协议确定为网络层级别下的目标协议。假设数据包的协议特征与协议识别插件b2的协议特征和协议识别插件b4的协议特征匹配,则比较协议识别插件b2的置信度和协议识别插件b4的置信度,若议识别插件b4的置信度大于协议识别插件b2的置信度,则将协议识别插件b4确定为第一协议识别插件,并将协议识别插件b4对应的IGMP协议确定为网络层级别下的目标协议。
然后,遍历传输层级别为当前协议级别,传输层级别下的协议识别插件包括用于识别TCP协议的协议识别插件c1、用于识别UDP协议的协议识别插件c2。参见网络层级别下的目标协议的获取方式,可以得到传输层级别下的目标协议,如将协议识别插件c1对应的TCP协议确定为传输层级别下的目标协议。
然后,遍历应用层级别为当前协议级别,应用层级别下的协议识别插件可以包括用于识别HTTP协议的协议识别插件d1、用于识别SIP协议的协议识别插件d2、用于识别DNS协议的协议识别插件d3、用于识别TELNET协议的协议识别插件d4、用于识别FTP协议的协议识别插件d5。基于此,参见网络层级别下的目标协议的获取方式,可以得到应用层级别下的目标协议,如将协议识别插件d1对应的HTTP协议确定为应用层级别下的目标协议。
综上所述,可以得到数据链路层级别下的目标协议(如ARP协议)、网络层级别下的目标协议(如IGMP协议)、传输层级别下的目标协议(如TCP协议)、应用层级别下的目标协议(如HTTP协议),当然,上述只是示例。
在步骤302中,是按照纵向维度实现数据包的协议识别,即按照数据链路层、网络层、传输层和应用层的顺序,纵向对数据包进行逐步协议识别。
在数据链路层,协议包括ARP、RARP、IEEE802.1、IEEE802.3、PPP、CSMA/CD等。在网络层,协议包括IP、ICMP、RIP、IGMP等,进入网络层才可以获取数据包的IP地址。在传输层,协议包括TCP、UDP等,进行传输层才可以获取数据包的端口、TCP和UDP的关键字段,如SYN、FIN等,且TCP协议和UDP协议均是基于IP协议,即前置协议为IP协议。在应用层,协议包括HTTP、SIP、DNS、TELNET、FTP等,且应用层协议能够分别基于TCP协议或UDP协议实现,如ONVIF同时支持TCP协议和UDP协议。
在步骤302中,同一纵向维度的协议识别插件(即同一个协议级别的协议识别插件)都是并行执行的,即数据包到达后由协议识别插件并行进行协议识别,根据协议识别插件的置信度,取置信度最大结果作为最终结果。
在步骤302中,不同纵向维度的协议识别插件(即不同协议级别的协议识别插件)都是串行执行,即数据包到达后由不同纵向维度的协议识别插件串行进行协议识别,即数据包依次进入不同纵向维度的协议识别插件进行协议识别。
示例性的,通过采用并行方式可以提升数据包协议识别的效率,通过采用串行方式可以提升数据包协议识别的准确率,本实施例中,将并行方式和串行方式并用,可以实现识别效率与识别准确率的有效平衡。
步骤303、若多个协议级别下的目标协议中存在具有子协议的候选目标协议,则将数据包输入给候选目标协议对应的至少一个子协议识别插件;若数据包的协议特征与第一子协议识别插件的协议特征匹配,则将第一子协议识别插件对应的子协议确定为候选目标协议下的子协议。或,若多个协议级别下的目标协议中不存在具有子协议的候选目标协议,则不再确定候选目标协议下的子协议。
示例性的,若多个协议级别下的目标协议包括HTTP协议,由于HTTP协议是具有子协议(如ISAPI协议和ONVIF协议)的候选目标协议,因此,需要确定HTTP协议下的子协议。若多个协议级别下的目标协议包括SIP协议,由于SIP协议是具有子协议的候选目标协议,因此,需要确定SIP协议下的子协议。为了方便描述,以目标协议包括HTTP协议为例进行说明。
对于HTTP协议来说,HTTP协议对应的子协议识别插件可以包括用于识别ISAPI子协议的子协议识别插件e1、用于识别ONVIF子协议的子协议识别插件e2,可以将数据包输入给子协议识别插件e1和子协议识别插件e2。子协议识别插件e1确定数据包的协议特征与子协议识别插件e1的协议特征是否匹配,子协议识别插件e2确定数据包的协议特征与子协议识别插件e2的协议特征是否匹配。假设数据包的协议特征只与子协议识别插件e1的协议特征匹配,则将子协议识别插件e1确定为第一子协议识别插件,并将子协议识别插件e1对应的ISAPI子协议确定为HTTP协议下的子协议。假设数据包的协议特征与子协议识别插件e1和子协议识别插件e2的协议特征匹配,则比较子协议识别插件e1的置信度和子协议识别插件e2的置信度,若子协议识别插件e1的置信度大于子协议识别插件e2的置信度,则将子协议识别插件e1确定为第一子协议识别插件,并将子协议识别插件e1对应的ISAPI子协议确定为HTTP协议下的子协议。
在步骤303中,是按照横向维度实现数据包的协议识别,即按照协议自身的层级关系进行逐步识别,比如说,由于ISAPI子协议是HTTP协议下的子协议,因此,在识别出HTTP协议之后,才会横向识别出ISAPI子协议。
在步骤303中,同一横向维度的协议识别插件(即HTTP协议的协议识别插件和ISAPI子协议的子协议识别插件)是串行执行,即先由HTTP协议的协议识别插件进行协议识别,再由ISAPI子协议的子协议识别插件进行协议识别。
步骤304、将数据包输入给每个协议级别下的目标协议对应的协议解析插件,由该协议解析插件从数据包中解析出该协议级别下的协议解析结果。
示例性的,假设数据链路层级别下的目标协议为ARP协议,则可以将数据包输入给ARP协议对应的协议解析插件,由该协议解析插件对数据包进行解析,得到数据链路层级别下的协议解析结果。比如说,由ARP协议对应的基础解析插件对数据包中的基础字段进行解析,得到基础字段的解析结果;由ARP协议对应的定制解析插件对数据包中的定制字段进行解析,得到定制字段的解析结果;基础字段的解析结果和定制字段的解析结果组成该协议解析结果。
同理,可以得到数据链路层级别下的协议解析结果、可以得到传输层级别下的协议解析结果、可以得到应用层级别下的协议解析结果。
示例性的,若存在候选目标协议下的子协议,如HTTP协议下的ISAPI子协议,那么,还可以将数据包输入给ISAPI子协议对应的协议解析插件,由该协议解析插件对数据包进行解析,得到ISAPI子协议下的协议解析结果,ISAPI子协议属于应用层,这个协议解析结果也作为应用层级别下的协议解析结果。
示例性的,多个协议级别下的目标协议对应的协议解析插件,可以并行对数据包进行解析,即同时对数据包进行解析,得到协议解析结果。
综上所述,可以得到每个协议级别下的协议解析结果。
步骤305、输出该数据包对应的多个协议级别下的目标协议、该候选目标协议下的子协议、多个协议级别下的协议解析结果。
示例性的,在得到多个协议级别下的目标协议之后,可以输出该数据包对应的协议识别链,该协议识别链包括多个协议级别下的目标协议、候选目标协议下的子协议,比如说,该协议识别链可以为[IEEE802.1、IP、TCP、HTTP、ISAPI]。
在得到多个协议级别下的协议解析结果之后,可以输出多个协议级别下的协议解析结果,即多个目标协议和候选目标协议下的子协议的协议解析结果。
示例性的,输出目标协议、候选目标协议下的子协议、协议解析结果是指:可以存储目标协议、候选目标协议下的子协议、协议解析结果;或者,可以通过页面展示目标协议、候选目标协议下的子协议、协议解析结果。
示例性的,可以获取到同一数据流的大量数据包,可以采用上述方式对每个数据包进行处理,得到该数据包对应的目标协议、候选目标协议下的子协议、协议解析结果。在此基础上,还可以采用数据流方式对这些数据包进行存储,即每个数据包对应一个唯一的数据流ID,数据流重组方式可以包括:
TCP重组:根据TCP协议的数据传输特点,通过TCP首部的SYN位和FIN位来判断连接的建立和释放,从而可以确定数据流的开始、结束及其完整性;然后通过序列号和负载数据的长度将所有数据包重组为一条有序流。
UDP重组:通过数据包的发送时间和数据流的持续时间来判断:首先选择第一个数据包的发送时间作为数据流的开始时间,计算接下来的每个数据包与第一个数据包发送时间的差值,若差值大于预先设定好的数据流最大持续时间,则该数据包属于下一条数据流,上一个数据包即为上一条流结束的标志。
由以上技术方案可见,本申请实施例中,从纵向和横向两个角度进行协议识别和解析,可以满足不同场景下不同用户的需求,如用户只需要传输层数据,或用户需要不同层级中流量分布情况数据等。不同插件支持按需串行和并行部署,能够有效提升流量识别与解析的效率和准确率,且将各个协议之间的关系通过协议链的方式进行展示。支持插件热插拔,识别方式更灵活,应用场景更广泛,更能解决用户对于流量识别和解析的需求。引入协议解析插件,可以根据不同的场景进行灵活定制,如视频网中视频行为的分析、网络中恶意攻击发现等。支持通过可视化编辑页面的方式动态调整协议识别与协议解析过程,以满足不同场景和不同用户对于流量分析的需求。可以在可视化编辑页面实时展示当前流量分布情况,展示的信息包括但不限于:按纵向层次展示各协议数据包的分布情况(数据包数量)、未识别数据包情况、实时数据流带宽、协议识别插件与协议解析插件部署情况等。支持通过可视化编辑页面新增、删除、移动和编辑协议识别插件与协议解析插件,从而满足不同的需求。
基于与上述方法同样的申请构思,本申请实施例提出一种可编排的流量协议识别与解析装置,应用于电子设备,电子设备包括多个协议级别的协议识别插件和协议解析插件,参见图4所示,为所述装置的结构图,所述装置包括:
目标协议解析模块41,用于针对每个协议级别,将数据包输入给所述协议级别的至少一个协议识别插件;若数据包的协议特征与第一协议识别插件的协议特征匹配,将第一协议识别插件对应的协议确定为该协议级别下的目标协议;
子协议解析模块42,用于若多个协议级别下的目标协议中存在具有子协议的候选目标协议,则将数据包输入给所述候选目标协议对应的至少一个子协议识别插件;若数据包的协议特征与第一子协议识别插件的协议特征匹配,则将所述第一子协议识别插件对应的子协议确定为所述候选目标协议下的子协议;
内容解析模块43,用于将数据包输入给每个协议级别下的目标协议对应的协议解析插件,由协议解析插件从数据包中解析出协议级别下的协议解析结果;
输出模块44,用于输出所述数据包对应的所述多个协议级别下的目标协议、所述候选目标协议下的子协议、所述多个协议级别下的协议解析结果。
示例性的,所述多个协议级别按照指定顺序排列,所述目标协议解析模块41将数据包输入给所述协议级别的至少一个协议识别插件时具体用于:基于所述多个协议级别的排列顺序,依次遍历每个协议级别作为当前协议级别;若所述当前协议级别为第一个协议级别,则将所述数据包输入给所述当前协议级别的所有协议识别插件;或者,若所述当前协议级别不为第一个协议级别,针对所述当前协议级别的每个协议识别插件,若该协议识别插件的前置协议包括所述当前协议级别的上一个协议级别下的目标协议,则将所述数据包输入给该协议识别插件,否则,禁止将所述数据包输入给该协议识别插件。
示例性的,目标协议解析模块41,还用于通过至少一个协议识别插件并行对数据包的协议特征进行协议识别,得到数据包的协议特征与协议识别插件的协议特征的匹配结果;若基于匹配结果确定数据包的协议特征与一个协议识别插件的协议特征匹配,将该协议识别插件确定为第一协议识别插件;若基于匹配结果确定数据包的协议特征与至少两个协议识别插件的协议特征匹配,从至少两个协议识别插件中选取置信度最大的协议识别插件作为第一协议识别插件。
示例性的,所述多个协议级别包括数据链路层级别、网络层级别、传输层级别、应用层级别;所述数据链路层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:ARP协议、RARP协议、IEEE802.1协议、IEEE802.3协议、PPP协议、CSMA/CD协议;所述网络层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:IP协议、ICMP协议、RIP协议、IGMP协议;所述传输层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:TCP协议、UDP协议;所述应用层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:HTTP协议、SIP协议、DNS协议、TELNET协议、FTP协议;其中,若所述目标协议为HTTP协议或SIP协议,则HTTP协议或SIP协议为具有子协议的候选目标协议;所述HTTP协议对应的子协议识别插件包括用于识别以下子协议的子协议识别插件:ISAPI子协议、ONVIF子协议;所述SIP协议对应的子协议识别插件包括用于识别以下子协议的子协议识别插件:GB/T28181子协议、GB35114子协议。
示例性的,目标协议对应的协议解析插件包括一个基础解析插件和至少一个定制解析插件;所述内容解析模块43从数据包中解析出该协议级别下的协议解析结果时具体用于:通过基础解析插件对数据包中的基础字段进行解析,得到基础字段的解析结果;针对每个定制解析插件,通过所述定制解析插件对所述数据包中的定制字段进行解析,得到定制字段的解析结果;基于所述基础字段的解析结果和所述定制字段的解析结果确定该协议级别下的协议解析结果。
示例性的,所述装置还包括:第一管理模块,用于通过可视化编辑页面接收针对协议识别插件的操作命令;若所述操作命令为针对协议识别插件的新增操作命令,则添加协议识别插件,将该协议识别插件的状态设置为禁用状态;若所述操作命令为针对协议识别插件的编辑操作命令,且该协议识别插件的状态为禁用状态,则对该协议识别插件进行修改;若所述操作命令为针对协议识别插件的删除操作命令,且该协议识别插件的状态为禁用状态,则删除该协议识别插件;若所述操作命令为针对协议识别插件的启用操作命令,且该协议识别插件的状态为禁用状态,则将该协议识别插件的状态修改为启用状态;若所述操作命令为针对协议识别插件的禁用操作命令,且该协议识别插件的状态为启用状态,则将该协议识别插件的状态修改为禁用状态;其中,在所述目标协议解析模块将数据包输入给协议识别插件时,允许将数据包输入给启用状态的协议识别插件,禁止将数据包输入给禁用状态的协议识别插件。
示例性的,所述装置还包括:第二管理模块,用于通过可视化编辑页面接收针对协议解析插件的操作命令;若所述操作命令为针对协议解析插件的新增操作命令,则添加协议解析插件,将该协议解析插件的状态设置为禁用状态;若所述操作命令为针对协议解析插件的编辑操作命令,且该协议解析插件的状态为禁用状态,则对该协议解析插件进行修改;若所述操作命令为针对协议解析插件的删除操作命令,且该协议解析插件的状态为禁用状态,则删除该协议解析插件;若所述操作命令为针对协议解析插件的启用操作命令,且该协议解析插件的状态为禁用状态,则将该协议解析插件的状态修改为启用状态;若所述操作命令为针对协议解析插件的禁用操作命令,且该协议解析插件的状态为启用状态,则将该协议解析插件的状态修改为禁用状态;其中,在所述内容解析模块将数据包输入给协议解析插件时,允许将数据包输入给启用状态的协议解析插件,禁止将数据包输入给禁用状态的协议解析插件。
基于与上述方法同样的申请构思,本申请实施例中提出一种电子设备,参见图5所示,电子设备包括处理器51和机器可读存储介质52,机器可读存储介质52存储有能够被处理器51执行的机器可执行指令;处理器51用于执行机器可执行指令,以实现本申请上述示例公开的可编排的流量协议识别与解析方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的可编排的流量协议识别与解析方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种可编排的流量协议识别与解析方法,其特征在于,应用于电子设备,电子设备包括多个协议级别的协议识别插件和协议解析插件,所述方法包括:
针对每个协议级别,将数据包输入给所述协议级别的至少一个协议识别插件;若数据包的协议特征与第一协议识别插件的协议特征匹配,则将所述第一协议识别插件对应的协议确定为所述协议级别下的目标协议;
若所述多个协议级别下的目标协议中存在具有子协议的候选目标协议,则将数据包输入给所述候选目标协议对应的至少一个子协议识别插件;若数据包的协议特征与第一子协议识别插件的协议特征匹配,则将所述第一子协议识别插件对应的子协议确定为所述候选目标协议下的子协议;
将数据包输入给每个协议级别下的目标协议对应的协议解析插件,由所述协议解析插件从数据包中解析出该协议级别下的协议解析结果;
输出所述数据包对应的所述多个协议级别下的目标协议、所述候选目标协议下的子协议、所述多个协议级别下的协议解析结果;
其中,所述多个协议级别按照指定顺序排列,所述将数据包输入给所述协议级别的至少一个协议识别插件,包括:
基于多个协议级别的排列顺序,依次遍历每个协议级别作为当前协议级别;
若所述当前协议级别为第一个协议级别,则将所述数据包输入给所述当前协议级别的所有协议识别插件;若所述当前协议级别不为第一个协议级别,针对所述当前协议级别的每个协议识别插件,若该协议识别插件的前置协议包括所述当前协议级别的上一个协议级别下的目标协议,则将所述数据包输入给该协议识别插件,否则,禁止将所述数据包输入给该协议识别插件。
2.根据权利要求1所述的方法,其特征在于,所述将数据包输入给所述协议级别的至少一个协议识别插件之后,所述方法还包括:
通过所述至少一个协议识别插件并行对数据包的协议特征进行协议识别,得到数据包的协议特征与协议识别插件的协议特征的匹配结果;
若基于匹配结果确定数据包的协议特征与一个协议识别插件的协议特征匹配,则将所述一个协议识别插件确定为第一协议识别插件;若基于匹配结果确定数据包的协议特征与至少两个协议识别插件的协议特征匹配,则从所述至少两个协议识别插件中选取置信度最大的协议识别插件作为第一协议识别插件。
3.根据权利要求1或2所述的方法,其特征在于,所述多个协议级别包括数据链路层级别、网络层级别、传输层级别、应用层级别;所述数据链路层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:ARP协议、RARP协议、IEEE802.1协议、IEEE802.3协议、PPP协议、CSMA/CD协议;所述网络层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:IP协议、ICMP协议、RIP协议、IGMP协议;所述传输层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:TCP协议、UDP协议;所述应用层级别的协议识别插件包括用于识别以下至少一种协议的协议识别插件:HTTP协议、SIP协议、DNS协议、TELNET协议、FTP协议;
若目标协议为HTTP协议或SIP协议,则目标协议为具有子协议的候选目标协议;HTTP协议对应的子协议识别插件包括用于识别以下子协议的子协议识别插件:ISAPI子协议、ONVIF子协议;SIP协议对应的子协议识别插件包括用于识别以下子协议的子协议识别插件:GB/T28181子协议、GB35114子协议。
4.根据权利要求1所述的方法,其特征在于,目标协议对应的协议解析插件包括一个基础解析插件和至少一个定制解析插件;所述由所述协议解析插件从数据包中解析出该协议级别下的协议解析结果,包括:
通过基础解析插件对数据包中的基础字段进行解析,得到所述基础字段的解析结果;针对每个定制解析插件,通过所述定制解析插件对所述数据包中的定制字段进行解析,得到所述定制字段的解析结果;基于所述基础字段的解析结果和所述定制字段的解析结果确定该协议级别下的协议解析结果。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
通过可视化编辑页面接收针对协议识别插件的操作命令;
若所述操作命令为针对协议识别插件的新增操作命令,则添加协议识别插件,将该协议识别插件的状态设置为禁用状态;
若所述操作命令为针对协议识别插件的编辑操作命令,且该协议识别插件的状态为禁用状态,则对该协议识别插件进行修改;
若所述操作命令为针对协议识别插件的删除操作命令,且该协议识别插件的状态为禁用状态,则删除该协议识别插件;
若所述操作命令为针对协议识别插件的启用操作命令,且该协议识别插件的状态为禁用状态,将该协议识别插件的状态修改为启用状态;
若所述操作命令为针对协议识别插件的禁用操作命令,且该协议识别插件的状态为启用状态,将该协议识别插件的状态修改为禁用状态;
其中,在将数据包输入给协议识别插件时,允许将数据包输入给启用状态的协议识别插件,禁止将数据包输入给禁用状态的协议识别插件。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
通过可视化编辑页面接收针对协议解析插件的操作命令;
若所述操作命令为针对协议解析插件的新增操作命令,则添加协议解析插件,将该协议解析插件的状态设置为禁用状态;
若所述操作命令为针对协议解析插件的编辑操作命令,且该协议解析插件的状态为禁用状态,则对该协议解析插件进行修改;
若所述操作命令为针对协议解析插件的删除操作命令,且该协议解析插件的状态为禁用状态,则删除该协议解析插件;
若所述操作命令为针对协议解析插件的启用操作命令,且该协议解析插件的状态为禁用状态,将该协议解析插件的状态修改为启用状态;
若所述操作命令为针对协议解析插件的禁用操作命令,且该协议解析插件的状态为启用状态,将该协议解析插件的状态修改为禁用状态;
其中,在将数据包输入给协议解析插件时,允许将数据包输入给启用状态的协议解析插件,禁止将数据包输入给禁用状态的协议解析插件。
7.一种可编排的流量协议识别与解析装置,其特征在于,应用于电子设备,电子设备包括多个协议级别的协议识别插件和协议解析插件,所述装置包括:
目标协议解析模块,用于针对每个协议级别,将数据包输入给所述协议级别的至少一个协议识别插件;若数据包的协议特征与第一协议识别插件的协议特征匹配,则将第一协议识别插件对应的协议确定为该协议级别下的目标协议;
子协议解析模块,用于若多个协议级别下的目标协议中存在具有子协议的候选目标协议,则将数据包输入给所述候选目标协议对应的至少一个子协议识别插件;若数据包的协议特征与第一子协议识别插件的协议特征匹配,则将所述第一子协议识别插件对应的子协议确定为所述候选目标协议下的子协议;
内容解析模块,用于将数据包输入给每个协议级别下的目标协议对应的协议解析插件,由协议解析插件从数据包中解析出该协议级别下的协议解析结果;
输出模块,用于输出所述数据包对应的所述多个协议级别下的目标协议、所述候选目标协议下的子协议、所述多个协议级别下的协议解析结果;
其中,所述多个协议级别按照指定顺序排列,所述目标协议解析模块将数据包输入给所述协议级别的至少一个协议识别插件时具体用于:基于所述多个协议级别的排列顺序,依次遍历每个协议级别作为当前协议级别;若所述当前协议级别为第一个协议级别,则将所述数据包输入给所述当前协议级别的所有协议识别插件;或者,若所述当前协议级别不为第一个协议级别,针对所述当前协议级别的每个协议识别插件,若该协议识别插件的前置协议包括所述当前协议级别的上一个协议级别下的目标协议,则将所述数据包输入给该协议识别插件,否则,禁止将所述数据包输入给该协议识别插件。
8.一种电子设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211096117.5A CN115190056B (zh) | 2022-09-08 | 2022-09-08 | 一种可编排的流量协议识别与解析方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211096117.5A CN115190056B (zh) | 2022-09-08 | 2022-09-08 | 一种可编排的流量协议识别与解析方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115190056A CN115190056A (zh) | 2022-10-14 |
CN115190056B true CN115190056B (zh) | 2022-12-23 |
Family
ID=83523839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211096117.5A Active CN115190056B (zh) | 2022-09-08 | 2022-09-08 | 一种可编排的流量协议识别与解析方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115190056B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115866073B (zh) * | 2022-11-30 | 2024-04-19 | 重庆长安汽车股份有限公司 | 数据差量融合方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035111A (zh) * | 2007-04-13 | 2007-09-12 | 北京启明星辰信息技术有限公司 | 一种智能协议解析方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904057B2 (en) * | 2001-05-04 | 2005-06-07 | Slt Logic Llc | Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification |
US20040088425A1 (en) * | 2002-10-31 | 2004-05-06 | Comverse, Ltd. | Application level gateway based on universal parser |
CN101282251B (zh) * | 2008-05-08 | 2011-04-13 | 中国科学院计算技术研究所 | 一种应用层协议识别特征挖掘方法 |
CN102215206A (zh) * | 2010-04-01 | 2011-10-12 | 上海凌屹信息科技有限公司 | 一种基于npta技术的网络协议识别方法及装置 |
RU2485705C1 (ru) * | 2012-03-26 | 2013-06-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный политехнический университет" (ФГБОУ ВПО "СПбГПУ") | Способ и система идентификации сетевых протоколов на основании описания клиент-серверного взаимодействия |
CN103023909B (zh) * | 2012-12-24 | 2016-05-04 | 成都科来软件有限公司 | 一种网络数据包协议识别方法及系统 |
CN104038389A (zh) * | 2014-06-19 | 2014-09-10 | 高长喜 | 多重应用协议识别方法和装置 |
CN106961445B (zh) * | 2017-04-28 | 2019-10-29 | 中国人民解放军信息工程大学 | 基于fpga硬件并行流水线的报文解析装置 |
CN110808879B (zh) * | 2019-11-01 | 2021-11-02 | 杭州安恒信息技术股份有限公司 | 一种协议识别方法、装置、设备及可读存储介质 |
CN111147394B (zh) * | 2019-12-16 | 2022-09-27 | 南京理工大学 | 一种远程桌面协议流量行为的多级分类检测方法 |
CN112311789B (zh) * | 2020-10-28 | 2023-02-28 | 北京锐安科技有限公司 | 深度报文处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-09-08 CN CN202211096117.5A patent/CN115190056B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035111A (zh) * | 2007-04-13 | 2007-09-12 | 北京启明星辰信息技术有限公司 | 一种智能协议解析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115190056A (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2434689B1 (en) | Method and apparatus for detecting message | |
EP2482497B1 (en) | Data forwarding method, data processing method, system and device thereof | |
CN111211980B (zh) | 传输链路管理方法、装置、电子设备及存储介质 | |
US20050240989A1 (en) | Method of sharing state between stateful inspection firewalls on mep network | |
US9197523B2 (en) | Systems and methods for extracting media from network traffic having unknown protocols | |
US20090241188A1 (en) | Communication monitoring apparatus and communication monitoring method | |
CN108965248B (zh) | 一种基于流量分析的p2p僵尸网络检测系统及方法 | |
CN104320304A (zh) | 一种易扩展的多方式融合的核心网用户流量应用识别方法 | |
CN112994984B (zh) | 识别协议及内容的方法、存储设备、安全网关、服务器 | |
CN110300065B (zh) | 一种基于软件定义网络的应用流量识别方法及系统 | |
CN107612890B (zh) | 一种网络监测方法及系统 | |
US8903749B2 (en) | Method of identifying a protocol giving rise to a data flow | |
CN105429968A (zh) | 基于布隆过滤器的网络取证载荷归属方法及系统 | |
CN111885106A (zh) | 一种基于终端设备特征信息的物联网安全管控方法及系统 | |
CN112422567B (zh) | 一种面向大流量的网络入侵检测方法 | |
CN115190056B (zh) | 一种可编排的流量协议识别与解析方法、装置及设备 | |
JP2009260880A (ja) | パケット転送制御装置およびパケット転送制御方法 | |
CN117240560A (zh) | 一种基于gan的高仿真蜜罐实现方法及系统 | |
CN107070851B (zh) | 基于网络流的连接指纹生成和垫脚石追溯的系统和方法 | |
CN115086068B (zh) | 一种网络入侵检测方法和装置 | |
CN106506400A (zh) | 一种数据流识别方法及出口设备 | |
CN111030976A (zh) | 一种基于密钥的分布式访问控制方法、装置及存储设备 | |
Sija et al. | Automatic payload signature generation for accurate identification of internet applications and application services | |
CN112615713A (zh) | 隐蔽信道的检测方法、装置、可读存储介质及电子设备 | |
EP2819365A1 (en) | Network traffic inspection |
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 |