CN115242691B - 一种基于协议特征库的协议识别方法 - Google Patents

一种基于协议特征库的协议识别方法 Download PDF

Info

Publication number
CN115242691B
CN115242691B CN202210778687.6A CN202210778687A CN115242691B CN 115242691 B CN115242691 B CN 115242691B CN 202210778687 A CN202210778687 A CN 202210778687A CN 115242691 B CN115242691 B CN 115242691B
Authority
CN
China
Prior art keywords
protocol
feature
data packet
library
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.)
Active
Application number
CN202210778687.6A
Other languages
English (en)
Other versions
CN115242691A (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.)
CETC 30 Research Institute
Original Assignee
CETC 30 Research Institute
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 CETC 30 Research Institute filed Critical CETC 30 Research Institute
Priority to CN202210778687.6A priority Critical patent/CN115242691B/zh
Publication of CN115242691A publication Critical patent/CN115242691A/zh
Application granted granted Critical
Publication of CN115242691B publication Critical patent/CN115242691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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 (8)

1.一种基于协议特征库的协议识别方法,其特征在于,包括以下步骤:
步骤1:自定义协议,生成协议特征配置库文件;
步骤2:解析协议特征配置库文件,过滤数据包,统计协议的匹配结果;
所述步骤1包括:
基于用户输入的模板名称,生成文件名为模板名称的协议配置文件;协议配置文件中包含一个空字典filter;
基于用户输入的协议名称,在字典filter中添加key为协议名称,value为空列表的键值对;若用户定义多个协议名称,则字典filter中添加多个key及value的键值对;
基于用户输入的特征项个数n,在空列表中添加n个子列表;
基于用户选择的特征项、特征字段及其期望边界值的组合,在子列表中添加元祖;元祖中第一个元素表示用户选择的特征项,第二个元素表示特征字段和其期望值;若用户添加了多个特征项,则子列表中添加多个元祖,元祖之间用逗号隔开;
所述步骤2包括:
步骤21:在监听数据包时,通过数据包的源地址和目的地址过滤掉不属于业务地址的数据包;抓包保存所有符合业务地址的数据包;
步骤22:对符合业务地址的数据包进行逐包过滤;根据协议特征库中的协议定义顺序进行筛查;
步骤23:进行协议特征匹配。
2.根据权利要求1所述的方法,其特征在于,所述步骤22包括:
当协议的特征匹配符合时,该协议计数加1,后续其他协议不再匹配;
当所有协议的特征均不匹配且该数据包的TCP/UDP负载不为空时,记录该数据包,保存日志。
3.根据权利要求2所述的方法,其特征在于,所述步骤23包括:
若协议包括多特征集,按照协议特征库中协议特征集顺序进行过滤;
特征集内的特征项按照协议特征库中定义的顺序进行判断。
4.根据权利要求3所述的方法,其特征在于,若特征项判断失败,则此特征集内剩余特征项不再判断,继续匹配后续特征集;若判断成功则继续判断下一个特征项,直到特征集内的所有特征项都判断成功时,则认定协议匹配,后续特征集不再匹配。
5.根据权利要求3所述的方法,其特征在于,若所述特征项为“IP”、“ESP”、“TCP”、“UDP”,则取数据包中相应数据层中特征库包含的特征字段的值,判断取值与特征库中的期望值是否一致。
6.根据权利要求3所述的方法,其特征在于,若所述特征项为“按字节位置计算”,则首先获取数据包的数据负载信息,其次将数据负载部分转换为十六进制表示;然后依据特征库中的字节位置,取出位置对应的十六进制数;最后将取值转化为十进制数与特征库中期望值进行比较。
7.根据权利要求6所述的方法,其特征在于,所述数据包为ESP协议时,数据负载取IP层负载;所述数据包为TCP协议时,数据负载取TCP层负载;所述数据包为UDP协议时,数据负载取UDP层负载。
8.根据权利要求3所述的方法,其特征在于,若所述特征项为“按比特位置计算”,则首先获取数据包的数据负载信息,其次将数据负载部分转换为二进制表示;最后取出指定位置的二进制数转化为十进制数与特征库中期望值进行比较。
CN202210778687.6A 2022-07-04 2022-07-04 一种基于协议特征库的协议识别方法 Active CN115242691B (zh)

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 CN115242691A (zh) 2022-10-25
CN115242691B true 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 (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 紫光恒越技术有限公司 识别协议及内容的方法、存储设备、安全网关、服务器
CN113887173A (zh) * 2021-10-20 2022-01-04 中国电子科技集团公司第三十研究所 一种基于xml的协议动态组包和解析方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179418A1 (en) * 2005-02-08 2006-08-10 Pasadero, Inc. Research protocol toolkit
US11252600B2 (en) * 2020-02-19 2022-02-15 At&T Intellectual Property I, L.P. Transport protocol for latency sensitive applications

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 紫光恒越技术有限公司 识别协议及内容的方法、存储设备、安全网关、服务器
CN113887173A (zh) * 2021-10-20 2022-01-04 中国电子科技集团公司第三十研究所 一种基于xml的协议动态组包和解析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于内容分析的网络协议指纹识别;夏琨;丁波;刘俊;刘子豪;林亮成;;计算机与现代化(第05期);全文 *
未知协议的逆向分析与自动化测试;张蔚瑶;张磊;毛建瓴;许智君;张玉军;;计算机学报(第04期);全文 *

Also Published As

Publication number Publication date
CN115242691A (zh) 2022-10-25

Similar Documents

Publication Publication Date Title
CN108600192B (zh) 一种基于正则表达式的dbc文件解析及报文分析方法
US7570661B2 (en) Script-based parser
CN112632960B (zh) 基于动态字段模板的日志解析方法及系统
JP6055548B2 (ja) データストリームにおいてデータパターンを検出する装置、方法、及びネットワークサーバ
US20030033278A1 (en) Data sort method, data sort apparatus, and data sort program
CN112104634A (zh) 数据报文处理方法、系统、设备及可读存储介质
CN115242896B (zh) 动态报文解析方法、装置、电子设备及计算机可读存储介质
CN114157502B (zh) 一种终端识别方法、装置、电子设备及存储介质
US12058231B2 (en) Hybrid fixed/programmable header parser for network devices
CN112235302B (zh) 一种适用于多种总线的协议解析方法
CN111988231B (zh) 一种掩码五元组规则匹配的方法及装置
US8146027B1 (en) Creating interfaces for importation of modules into a circuit design
CN111177360B (zh) 一种基于云上用户日志的自适应过滤方法及装置
US20130063287A1 (en) Decoding encoded data
CN111107068B (zh) 一种fpga高效规则匹配方法及终端
CN115242691B (zh) 一种基于协议特征库的协议识别方法
CN114995878A (zh) 一种自动生成网络数据转发面驱动代码的方法
CN113709189A (zh) 检测规则库的生成方法及系统、电子设备、存储介质
CN117714562A (zh) 一种网络通信协议语法信息的自动化提取方法及系统
CN111049813B (zh) 报文组装方法、解析方法、装置及存储介质
CN114422624B (zh) 数据接收方法
CN113806321A (zh) 一种日志处理方法及系统
CN114143385A (zh) 一种网络流量数据的识别方法、装置、设备和介质
CN102843269A (zh) 一种模拟微码业务处理流程的方法及系统
CN112910894A (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