CN115242691A - 一种基于协议特征库的协议识别方法 - Google Patents
一种基于协议特征库的协议识别方法 Download PDFInfo
- Publication number
- CN115242691A CN115242691A CN202210778687.6A CN202210778687A CN115242691A CN 115242691 A CN115242691 A CN 115242691A CN 202210778687 A CN202210778687 A CN 202210778687A CN 115242691 A CN115242691 A CN 115242691A
- Authority
- CN
- China
- Prior art keywords
- protocol
- feature
- library
- data packet
- data
- 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
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/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于协议特征库的协议识别方法,其包括:自定义协议,生成协议特征配置库文件;解析协议特征配置库文件,过滤数据包,统计协议的匹配结果。本发明对于各种自定义协议,只要在协议特征库中定义了该协议特征集,就可以识别出此协议并对其进行统计;特征库中的特征项、特征关键字可根据业务需要进行扩展,可扩展性好;使用交互式界面生成配置库,易用性好。
Description
技术领域
本发明涉及协议识别技术领域,特别是一种基于协议特征库的协议识别方法。
背景技术
当前针对各种通用协议已有较为成熟的协议识别方法及工具。但如果协议格式为自定义的,则少有现成的方法或工具可以对其进行协议识别。针对自定义协议,现有的工具一般采用工具要求的开发语言进行协议插件的编写,上手难度较高,人力成本较高。同时现有的工具也很难对自定义协议进行分类统计。对于自定义协议较多的产品,每次都去编写协议插件和数据统计脚本,这样的做法投入产出比较低。
发明内容
针对用户编写协议插件困难以及自定义协议无法简易的识别和统计,本发明提供一种基于协议特征库的协议识别方法,以解决上述技术问题。
本发明公开了一种基于协议特征库的协议识别方法,包括以下步骤:
步骤1:自定义协议,生成协议特征配置库文件;
步骤2:解析协议特征配置库文件,过滤数据包,统计协议的匹配结果。
进一步地,所述步骤1包括:
基于用户输入的模板名称,生成文件名为模板名称的协议配置文件;协议配置文件中包含一个空字典filter;
基于用户输入的协议名称,在字典filter中添加key为协议名称,value为空列表的键值对;若用户定义多个协议名称,则字典filter中添加多个key及value的键值对;
基于用户输入的特征项个数n,在空列表中添加n个子列表;
基于用户选择的特征项、特征字段及其期望边界值的组合,在子列表中添加元祖;元祖中第一个元素表示用户选择的特征项,第二个元素表示特征字段和其期望值;若用户添加了多个特征项,则子列表中添加多个元祖,元祖之间用逗号隔开。
进一步地,所述步骤2包括:
步骤21:在监听数据包时,通过数据包的源地址和目的地址过滤掉不属于该业务地址的数据包;抓包保存所有符合业务地址的数据包;
步骤22:对符合业务地址的数据包进行逐包过滤;根据协议特征库中的协议定义顺序进行筛查;
步骤23:进行协议特征匹配。
进一步地,所述步骤22包括:
当协议的特征匹配符合时,该协议计数加1,后续其他协议不再匹配;
当所有协议的特征均不匹配且该数据包的TCP/UDP负载不为空时,记录该数据包,保存日志。
进一步地,所述步骤23包括:
若协议包括多特征集,按照协议特征库中协议特征集顺序进行过滤;
特征集内的特征项按照协议特征库中定义的顺序进行判断。
进一步地,若特征项判断失败,则此特征集内剩余特征项不再判断,继续匹配后续特征集;若判断成功则继续判断下一个特征项,直到特征集内的所有特征项都判断成功时,则认定协议匹配,后续特征集不再匹配。
进一步地,若所述特征项为“IP”、“ESP”、“TCP”、“UDP”,则取数据包中相应数据层中特征库包含的特征字段的值,判断取值与特征库中的期望值是否一致。
进一步地,若所述特征项为“按字节位置计算”,则首先获取数据包的数据负载信息,其次将数据负载部分转换为十六进制表示;然后依据特征库中的字节位置,取出位置对应的十六进制数;最后将取值转化为十进制数与特征库中期望值进行比较。
进一步地,所述数据包为ESP协议时,数据负载取IP层负载;所述数据包为TCP协议时,数据负载取TCP层负载;所述数据包为UDP协议时,数据负载取UDP层负载。
进一步地,若所述特征项为“按比特位置计算”,则首先获取数据包的数据负载信息,其次将数据负载部分转换为二进制表示;最后取出指定位置的二进制数转化为十进制数与特征库中期望值进行比较。
由于采用了上述技术方案,本发明具有如下的优点:对于各种自定义协议,只要在协议特征库中定义了该协议特征集,就可以识别出此协议并对其进行统计;特征库中特征项、特征关键字可根据业务需要进行扩展,可扩展性好;使用交互式界面生成配置库,易用性好。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种协议特征配置引导界面示意图;
图2为本发明实施例的一种协议模板文件示意图;
图3为本发明实施例的一种协议匹配统计存储流程图;
图4为本发明实施例的一种基于协议特征库的协议识别方法的流程示意图。
具体实施方式
结合附图和实施例对本发明作进一步说明,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
参见图4,本发明提供了一种基于协议特征库的协议识别方法的实施例,其包括以下步骤:
步骤1:自定义协议,生成协议特征配置库文件;
步骤2:解析协议特征配置库文件,过滤数据包,统计协议的匹配结果。
具体地,本发明实施例提供的多协议特征配置引导界面如图1所示,界面包含:
(1)“新建模板”按钮。点击后弹出新协议模板配置界面。用户可以根据需要创建多个模板。
(2)“模板名称”输入框。引导用户输入模板名称。
(3)“新建协议”按钮,点击后新增一个协议的相关配置项。
(4)“协议名称”输入框。引导用户输入协议名称。
(5)“新建特征集”按钮,点击后新增一个特征集区域。
(6)“特征集名称”输入框。引导用户输入特征集名称。
(7)“添加特征项”按钮。点击后新增特征项下拉列表,引导用户从列表中选择协议特征集包含的特征项。
(8)特征项下拉列表中包含选项IP、TCP、UDP、ESP、按字节位置计算、按比特位置计算等。
(9)用户选择“IP”特征项后,关联下拉列表包含协议号、版本、TOS、长度、TTL、IHL等特征字段选项。
(10)用户选择“ESP”特征项后,关联下拉列表包含SPI、序号等特征字段选项。
(11)用户选择“TCP”特征项后,关联下拉列表包含源端口、目的端口、SEQ、ACK、FLAGS、WINDOW等特征字段选项。
(12)用户选择“UDP”特征项后,关联下拉列表显示源端口、目的端口、长度等特征字段选项。
(13)用户选择“按字节位置计算”特征项后,关联用户填写要比较字节的位置或位置范围的输入框。
(14)用户选择“按比特位置计算”特征项后,关联用户填写要比较比特的位置或位置范围的输入框。
(15)特征字段下拉列表后,显示比较运算符下拉列表包含选项“大于”、“小于”、“等于”、“不大于”、“不小于”、“不等于”。比较运算符后跟期望值边界的输入框。
(16)“生成协议模板库”按钮。
其中,通过点击“生成协议模板库”按钮,协议特征配置界面信息解析生成协议特征配置库文件如图2所示,其包括如下内容:
(1)基于用户输入的模板名称,生成文件名为模板名称的协议配置文件。配置文件中包含一个空字典filter。如:filter={}。
(2)基于用户输入的协议名称,在字典filter中添加key为协议名称,value为空列表的键值对。若用户定义多个协议名称,则字典filter中添加多个key及value的键值对。如:filter={“XY_1”:[],“XY_2”:[]}
(3)基于用户输入的特征项个数n,在空列表中添加n个子列表。如:filter={“XY”:[[],[]]}.
(4)基于用户选择的特征项、特征字段及其期望边界值的组合,在子列表中添加元祖。元祖中第一个元素表示用户选择的特征项,第二个元素表示特征字段和其期望值。若用户添加了多个特征项,则子列表中添加多个元祖,元祖之间用逗号隔开。如:filter={“XY”:[[(“IP”,“len=100”),(“ESP”,“spi>100”)]]}。
其中,通过解析协议特征配置库文件,过滤数据包,统计协议匹配结果如图3所示,其包括如下流程:
(1)在监听数据包时,通过数据包的源地址和目的地址过滤掉不属于该业务地址的数据包。抓包保存所有符合业务地址的数据包。
(2)对符合业务地址的数据包进行逐包过滤。根据特征库中的协议定义顺序进行筛查。当协议的特征匹配符合时,该协议计数加1,后续其他协议不再匹配。当所有协议的特征均不匹配且该包的TCP/UDP负载不为空时,记录此包,保存日志。
(3)进行协议特征匹配时,若协议包含多特征集,按照特征库中协议特征集顺序进行过滤。特征集内的特征项同样按照特征库中定义的顺序进行判断。若特征项判断失败,则此特征集内剩余特征项不再判断,继续匹配后续特征集;若判断成功则继续判断下一个特征项,直到特征集内的所有特征项都判断成功时,则认定协议匹配,后续特征集不再匹配。
其中,协议识别方法中,协议各特征字段的判断方法如下:
(1)若特征项为“IP”、“ESP”、“TCP”、“UDP”则取数据包中相应数据层中特征库包含的特征字段的值,判断取值与特征库中的期望值是否一致;
(2)若特征项为“按字节位置计算”,首先获取数据包的数据负载信息。数据包为ESP协议时数据负载取IP层负载,数据包为TCP协议时数据负载取TCP层负载,数据包为UDP协议时数据负载取UDP层负载。其次将数据负载部分转换为十六进制表示。然后依据特征库中的字节位置,取出位置对应的十六进制数。最后将取值转化为十进制数与特征库中期望值进行比较;
(3)若特征项为“按比特位置计算”,方式与(2)类似。不同点在于将数据负载部分转化为二进制表示。最后取出指定位置的二进制数转化为十进制数与特征库中期望值进行比较。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种基于协议特征库的协议识别方法,其特征在于,包括以下步骤:
步骤1:自定义协议,生成协议特征配置库文件;
步骤2:解析协议特征配置库文件,过滤数据包,统计协议的匹配结果。
2.根据权利要求1所述的方法,其特征在于,所述步骤1包括:
基于用户输入的模板名称,生成文件名为模板名称的协议配置文件;协议配置文件中包含一个空字典filter;
基于用户输入的协议名称,在字典filter中添加key为协议名称,value为空列表的键值对;若用户定义多个协议名称,则字典filter中添加多个key及value的键值对;
基于用户输入的特征项个数n,在空列表中添加n个子列表;
基于用户选择的特征项、特征字段及其期望边界值的组合,在子列表中添加元祖;元祖中第一个元素表示用户选择的特征项,第二个元素表示特征字段和其期望值;若用户添加了多个特征项,则子列表中添加多个元祖,元祖之间用逗号隔开。
3.根据权利要求1所述的方法,其特征在于,所述步骤2包括:
步骤21:在监听数据包时,通过数据包的源地址和目的地址过滤掉不属于该业务地址的数据包;抓包保存所有符合业务地址的数据包;
步骤22:对符合业务地址的数据包进行逐包过滤;根据协议特征库中的协议定义顺序进行筛查;
步骤23:进行协议特征匹配。
4.根据权利要求3所述的方法,其特征在于,所述步骤22包括:
当协议的特征匹配符合时,该协议计数加1,后续其他协议不再匹配;
当所有协议的特征均不匹配且该数据包的TCP/UDP负载不为空时,记录该数据包,保存日志。
5.根据权利要求4所述的方法,其特征在于,所述步骤23包括:
若协议包括多特征集,按照协议特征库中协议特征集顺序进行过滤;
特征集内的特征项按照协议特征库中定义的顺序进行判断。
6.根据权利要求5所述的方法,其特征在于,若特征项判断失败,则此特征集内剩余特征项不再判断,继续匹配后续特征集;若判断成功则继续判断下一个特征项,直到特征集内的所有特征项都判断成功时,则认定协议匹配,后续特征集不再匹配。
7.根据权利要求5所述的方法,其特征在于,若所述特征项为“IP”、“ESP”、“TCP”、“UDP”,则取数据包中相应数据层中特征库包含的特征字段的值,判断取值与特征库中的期望值是否一致。
8.根据权利要求5所述的方法,其特征在于,若所述特征项为“按字节位置计算”,则首先获取数据包的数据负载信息,其次将数据负载部分转换为十六进制表示;然后依据特征库中的字节位置,取出位置对应的十六进制数;最后将取值转化为十进制数与特征库中期望值进行比较。
9.根据权利要求8所述的方法,其特征在于,所述数据包为ESP协议时,数据负载取IP层负载;所述数据包为TCP协议时,数据负载取TCP层负载;所述数据包为UDP协议时,数据负载取UDP层负载。
10.根据权利要求5所述的方法,其特征在于,若所述特征项为“按比特位置计算”,则首先获取数据包的数据负载信息,其次将数据负载部分转换为二进制表示;最后取出指定位置的二进制数转化为十进制数与特征库中期望值进行比较。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210778687.6A CN115242691B (zh) | 2022-07-04 | 2022-07-04 | 一种基于协议特征库的协议识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210778687.6A CN115242691B (zh) | 2022-07-04 | 2022-07-04 | 一种基于协议特征库的协议识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115242691A true CN115242691A (zh) | 2022-10-25 |
CN115242691B CN115242691B (zh) | 2023-05-19 |
Family
ID=83670617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210778687.6A Active CN115242691B (zh) | 2022-07-04 | 2022-07-04 | 一种基于协议特征库的协议识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242691B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060179418A1 (en) * | 2005-02-08 | 2006-08-10 | Pasadero, Inc. | Research protocol toolkit |
JP2008524965A (ja) * | 2004-12-21 | 2008-07-10 | ミスルトウ テクノロジーズ, インコーポレイテッド | ネットワークインターフェイスおよびファイヤーウォールデバイス |
CN101710898A (zh) * | 2009-11-06 | 2010-05-19 | 北京理工大学 | 一种应用软件通信协议特征的描述方法 |
CN105282123A (zh) * | 2014-07-24 | 2016-01-27 | 亿阳安全技术有限公司 | 一种网络协议识别方法和装置 |
CN109510737A (zh) * | 2018-12-14 | 2019-03-22 | 深圳壹账通智能科技有限公司 | 协议接口测试方法、装置、计算机设备和存储介质 |
CN110808879A (zh) * | 2019-11-01 | 2020-02-18 | 杭州安恒信息技术股份有限公司 | 一种协议识别方法、装置、设备及可读存储介质 |
CN111935061A (zh) * | 2019-12-26 | 2020-11-13 | 长扬科技(北京)有限公司 | 一种工控主机的网络安全防护实现方法及工控主机 |
CN112468370A (zh) * | 2020-11-30 | 2021-03-09 | 北京锐驰信安技术有限公司 | 一种支持自定义规则的高速网络报文监测分析方法及系统 |
CN112788015A (zh) * | 2020-12-31 | 2021-05-11 | 天津大学 | 一种基于工业网关的工控协议识别与解析方法 |
CN112994984A (zh) * | 2021-04-15 | 2021-06-18 | 紫光恒越技术有限公司 | 识别协议及内容的方法、存储设备、安全网关、服务器 |
US20210258821A1 (en) * | 2020-02-19 | 2021-08-19 | At&T Intellectual Property I, L.P. | Transport protocol for latency sensitive applications |
CN113887173A (zh) * | 2021-10-20 | 2022-01-04 | 中国电子科技集团公司第三十研究所 | 一种基于xml的协议动态组包和解析方法 |
-
2022
- 2022-07-04 CN CN202210778687.6A patent/CN115242691B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008524965A (ja) * | 2004-12-21 | 2008-07-10 | ミスルトウ テクノロジーズ, インコーポレイテッド | ネットワークインターフェイスおよびファイヤーウォールデバイス |
US20060179418A1 (en) * | 2005-02-08 | 2006-08-10 | Pasadero, Inc. | Research protocol toolkit |
CN101710898A (zh) * | 2009-11-06 | 2010-05-19 | 北京理工大学 | 一种应用软件通信协议特征的描述方法 |
CN105282123A (zh) * | 2014-07-24 | 2016-01-27 | 亿阳安全技术有限公司 | 一种网络协议识别方法和装置 |
CN109510737A (zh) * | 2018-12-14 | 2019-03-22 | 深圳壹账通智能科技有限公司 | 协议接口测试方法、装置、计算机设备和存储介质 |
CN110808879A (zh) * | 2019-11-01 | 2020-02-18 | 杭州安恒信息技术股份有限公司 | 一种协议识别方法、装置、设备及可读存储介质 |
CN111935061A (zh) * | 2019-12-26 | 2020-11-13 | 长扬科技(北京)有限公司 | 一种工控主机的网络安全防护实现方法及工控主机 |
US20210258821A1 (en) * | 2020-02-19 | 2021-08-19 | At&T Intellectual Property I, L.P. | Transport protocol for latency sensitive applications |
CN112468370A (zh) * | 2020-11-30 | 2021-03-09 | 北京锐驰信安技术有限公司 | 一种支持自定义规则的高速网络报文监测分析方法及系统 |
CN112788015A (zh) * | 2020-12-31 | 2021-05-11 | 天津大学 | 一种基于工业网关的工控协议识别与解析方法 |
CN112994984A (zh) * | 2021-04-15 | 2021-06-18 | 紫光恒越技术有限公司 | 识别协议及内容的方法、存储设备、安全网关、服务器 |
CN113887173A (zh) * | 2021-10-20 | 2022-01-04 | 中国电子科技集团公司第三十研究所 | 一种基于xml的协议动态组包和解析方法 |
Non-Patent Citations (2)
Title |
---|
夏琨;丁波;刘俊;刘子豪;林亮成;: "基于内容分析的网络协议指纹识别", 计算机与现代化 * |
张蔚瑶;张磊;毛建瓴;许智君;张玉军;: "未知协议的逆向分析与自动化测试", 计算机学报 * |
Also Published As
Publication number | Publication date |
---|---|
CN115242691B (zh) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597734B (zh) | 一种适用于工控私有协议的模糊测试用例生成方法 | |
US6954789B2 (en) | Method and apparatus for monitoring traffic in a network | |
EP3085022B1 (en) | System and method for network packet event characterization and analysis | |
US7570661B2 (en) | Script-based parser | |
US6263455B1 (en) | Method and apparatus for analyzing alarm conditions in a networked computing environment | |
US7620807B1 (en) | Method and apparatus for automatically constructing application signatures | |
JP6055548B2 (ja) | データストリームにおいてデータパターンを検出する装置、方法、及びネットワークサーバ | |
CN114157502B (zh) | 一种终端识别方法、装置、电子设备及存储介质 | |
CN113438252B (zh) | 报文访问控制方法、装置、设备及存储介质 | |
CN115242896B (zh) | 动态报文解析方法、装置、电子设备及计算机可读存储介质 | |
CN112632960A (zh) | 基于动态字段模板的日志解析方法及系统 | |
US9807204B2 (en) | Optimized message processing | |
CN100574312C (zh) | 分析数据分组的分析器 | |
CN115134432A (zh) | 一种多工业通信协议自适应快速解析方法 | |
EP4024251A1 (en) | Method for verifying vulnerabilities of network devices using cve entries | |
CN107590258B (zh) | 关键字匹配方法及装置 | |
CN115242691B (zh) | 一种基于协议特征库的协议识别方法 | |
CN107330031B (zh) | 一种数据存储的方法、装置及电子设备 | |
EP1620996A2 (en) | Communication path analysis | |
CN115801927A (zh) | 报文解析方法及装置 | |
CN116016345B (zh) | 一种基于自定义协议描述语言的网络流量还原方法 | |
CN114143385A (zh) | 一种网络流量数据的识别方法、装置、设备和介质 | |
CN110581823B (zh) | 一种非公开数据库协议请求数据包的解析方法 | |
US20220004481A1 (en) | Log analysis device, log analysis method, and program | |
CN102843269A (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 |