CN112887280B - 一种基于自动机的网络协议元数据提取系统及方法 - Google Patents
一种基于自动机的网络协议元数据提取系统及方法 Download PDFInfo
- Publication number
- CN112887280B CN112887280B CN202110041348.5A CN202110041348A CN112887280B CN 112887280 B CN112887280 B CN 112887280B CN 202110041348 A CN202110041348 A CN 202110041348A CN 112887280 B CN112887280 B CN 112887280B
- Authority
- CN
- China
- Prior art keywords
- protocol
- metadata
- message
- judgment result
- http
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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/03—Protocol definition or specification
-
- 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/08—Protocols for interworking; Protocol conversion
-
- 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)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于自动机的网络协议元数据提取系统及方法。该系统包括:协议状态模块,并基于协议域确定协议自动机的初始状态;第一判断模块,用于基于报文协议类型,根据初始状态判断是否进入协议自动机;协议自动机模块,用于当进入协议自动机时,按照初始状态开始执行,不断获取网络协议元数据,直至协议自动机运行到协议终止状态;封装网络协议元数据,并输出网络协议元数据;网络协议元数据输出模块,用于当不进入所述协议自动机时,结束协议报文处理。本发明能够满足复杂的骨干网络实时监控的需要且能够应用于高速网络上实时处理数据。
Description
技术领域
本发明涉及计算机网络内容安全技术领域,特别是涉及一种基于自动机的网络协议元数据提取系统及方法。
背景技术
随着新一代互联网兴起,网络已经从10G-100G爆炸性发展,网络上承载着各式各样的流量,高速网络数据还原技术是网络空间安全的基础,网络协议还原技术对网络空间安全起到核心的作用,尤其是可以用到流量可视化、网络取证、网络监控、网络内容安全等领域。
如何高性能实时对网络流量可视化,是网络内容监管少不了步骤,因此网络流量还原技术成为内容安全领域内研究的重点,一方面当前已有的系统或开源软件大多数针对离线数据包进行处理,且仅仅特定的协议的部分元数据还原系统可扩展性差,无法满足复杂的骨干网络实时监控的需要。另一方面处理性能普遍较低,无法应用于高速网络上实时处理数据。
发明内容
本发明的目的是提供一种基于自动机的网络协议元数据提取系统及方法,以解决无法满足复杂的骨干网络实时监控的需要以及无法应用于高速网络上实时处理数据的问题。
为实现上述目的,本发明提供了如下方案:
一种基于自动机的网络协议元数据提取系统,包括:
协议状态模块,用于获取TCP流保序和协议识别处理后的协议报文,并基于协议域确定协议自动机的初始状态;协议域分割模块用于提供协议域分割的原子操作组件;所述协议域分割的原子操作组件包括域属性识别、域分隔符查找、属性域结束匹配、报文位置跳转以及16进制整数提取;
第一判断模块,用于基于所述协议报文,根据所述初始状态判断是否进入协议自动机,得到第一判断结果;
协议自动机模块,用于当所述第一判断结果表示为进入所述协议自动机时,按照所述初始状态开始执行,不断获取网络协议元数据,直至所述协议自动机运行到协议终止状态;封装所述网络协议元数据,并输出所述网络协议元数据;
网络协议元数据输出模块,用于当所述第一判断结果表示为不进入所述协议自动机时,结束协议报文处理。
可选的,所述协议自动机模块,具体包括:
请求方式提取单元,用于当所述协议报文为HTTP协议报文时,根据所述HTTP协议报文注册的初始状态匹配空字符,提取请求方式并存储至元数据存储模块;
统一资源定位符提取单元,用于根据所述HTTP协议报文注册的初始状态匹配非空字符以及空字符,提取所述HTTP协议报文的统一资源定位符,并存储至元数据存储模块;
版本号提取单元,用于根据所述HTTP协议报文注册的初始状态匹配非空字符且根据所述HTTP协议报文注册的初始状态匹配非换行符以及换行符,提取版本号,并存储至元数据存储模块;
第二判断单元,用于当根据所述HTTP协议报文注册的初始状态匹配到回车符或换行符时,判断所述HTTP协议报文的报头是否结束,得到第二判断结果;
第三判断单元,用于若所述第二判断结果表示为所述HTTP协议报文的报头结束,判断是否存在HTTP载荷内容,得到第三判断结果;
网络内容域提取单元,用于若所述第三判断结果表示为存在HTTP载荷内容,提取HTTP载荷内容域,并存储至元数据存储模块;
属性提取单元,用于若所述第二判断结果表示为所述HTTP协议报文的报头未结束,识别所述HTTP协议报文的属性且匹配非换行符以及换行符,提取所述属性,并存储至元数据存储模块。
可选的,所述协议自动机模块,具体包括:
参数提取单元,用于当所述协议报文为DNS协议报文时,根据所述DNS协议报文注册的初始状态跳过请求报文,分别提取所述DNS协议报文的响应码的低四位、询问列表数目、回答数目、认证机构数目以及附加信息数目,并存储至元数据存储模块;
第四判断单元,用于判断标签长度是否为0,得到第四判断结果;
类型提取单元,用于若所述第四判断结果表示为所述标签长度为0,提取DNS协议报文的类型,并存储至元数据存储模块;
第五判断单元,用于判断是否到达响应数据的正文数目,得到第五判断结果;
第六判断单元,用于若所述第五判断结果表示为未到达相应数据的正文数目,提取数据长度,并判断类型是否为解析域名,得到第六判断结果;
解析域名提取单元,用于若所述第六判断结果表示为类型为解析域名,提取所述解析域名,并存储至元数据存储模块;
IP提取单元,用于若所述第六判断结果表示为类型不为解析域名,提取IP地址,并存储至元数据存储模块。
可选的,所述协议自动机模块,还包括:
当前状态恢复单元,用于当前状态恢复单元,用于当出现解析跨报文时,自动保存所述协议报文的当前状态并在下一个协议报文达到时,恢复至当前状态。
可选的,还包括:元数据存储模块;
所述元数据存储模块,具体包括:
第七判断单元,用于获取内存管理块指针,并判断所述内存管理块指针是否为空,得到第七判断结果;
内存块管理数据第一更新单元,用于若所述第七判断结果表示为所述内存管理块指针为空,从内存池内获取内存块,并利用获取的网络协议元数据更新内存块管理数据;
第八判断单元,用于若所述第七判断结果表示为所述内存管理块指针不为空,判断当前的内存块是否满足待存储容量,得到第八判断结果;
内存块管理数据第二更新单元,用于若所述第八判断结果表示为当前的内存块满足待存储容量,利用获取的网络协议元数据更新内存块管理数据。
一种基于自动机的网络协议元数据提取方法,包括:
获取TCP流保序和协议识别处理后的协议报文,并基于协议域确定协议自动机的初始状态;协议域分割模块用于提供协议域分割的原子操作组件;所述协议域分割的原子操作组件包括域属性识别、域分隔符查找、属性域结束匹配、报文位置跳转以及16进制整数提取;
基于所述协议报文,根据所述初始状态判断是否进入协议自动机,得到第一判断结果;
当所述第一判断结果表示为进入所述协议自动机时,按照所述初始状态开始执行,不断获取网络协议元数据,直至所述协议自动机运行到协议终止状态;封装所述网络协议元数据,并输出所述网络协议元数据;
当所述第一判断结果表示为不进入所述协议自动机时,结束协议报文处理。
可选的,所述按照所述初始状态开始执行,不断获取网络协议元数据,具体包括:
当所述协议报文为HTTP协议报文时,根据所述HTTP协议报文注册的初始状态匹配空字符,提取请求方式并存储至元数据存储模块;
根据所述HTTP协议报文注册的初始状态匹配非空字符以及空字符,提取所述HTTP协议报文的统一资源定位符,并存储至元数据存储模块;
根据所述HTTP协议报文注册的初始状态匹配非空字符且根据所述HTTP协议报文注册的初始状态匹配非换行符以及换行符,提取版本号,并存储至元数据存储模块;
当根据所述HTTP协议报文注册的初始状态匹配到回车符或换行符时,判断所述HTTP协议报文的报头是否结束,得到第二判断结果;
若所述第二判断结果表示为所述HTTP协议报文的报头结束,判断是否存在HTTP载荷内容,得到第三判断结果;
若所述第三判断结果表示为存在HTTP载荷内容,提取HTTP载荷内容域,并存储至元数据存储模块;
若所述第二判断结果表示为所述HTTP协议报文的报头未结束,识别所述HTTP协议报文的属性且匹配非换行符以及换行符,提取所述属性,并存储至元数据存储模块。
可选的,所述按照所述初始状态开始执行,不断获取网络协议元数据,具体包括:
当所述协议报文为DNS协议报文时,根据所述DNS协议报文注册的初始状态跳过请求报文,分别提取所述DNS协议报文的响应码的低四位、询问列表数目、回答数目、认证机构数目以及附加信息数目,并存储至元数据存储模块;
判断标签长度是否为0,得到第四判断结果;
若所述第四判断结果表示为所述标签长度为0,提取DNS协议报文的类型,并存储至元数据存储模块;
判断是否到达响应数据的正文数目,得到第五判断结果;
若所述第五判断结果表示为未到达相应数据的正文数目,提取数据长度,并判断类型是否为解析域名,得到第六判断结果;
若所述第六判断结果表示为类型为解析域名,提取所述解析域名,并存储至元数据存储模块;
若所述第六判断结果表示为类型不为解析域名,提取IP地址,并存储至元数据存储模块。
可选的,所述协议自动机运行到协议终止状态,之后还包括:
当前状态恢复单元,用于当出现解析跨报文时,自动保存所述协议报文的当前状态并在下一个协议报文达到时,恢复至当前状态。
可选的,所述封装所述网络协议元数据,并输出所述网络协议元数据,之前还包括:
获取内存管理块指针,并判断所述内存管理块指针是否为空,得到第七判断结果;
若所述第七判断结果表示为所述内存管理块指针为空,从内存池内获取内存块,并利用获取的网络协议元数据更新内存块管理数据;
若所述第七判断结果表示为所述内存管理块指针不为空,判断当前的内存块是否满足待存储容量,得到第八判断结果;
若所述第八判断结果表示为当前的内存块满足待存储容量,利用获取的网络协议元数据更新内存块管理数据。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供了一种基于自动机的网络协议元数据提取系统及方法,本发明在元数据提取输入数据前经过TCP流重组预处理,进入协议自动机中,并根据协议自动机的初始状态,由协议自动机根据报文数据自动运行并跳转到下一状态,自动机连续运行直到终止状态而结束协议元数据提取。应用本发明能够将复杂的协议交互过程转化为自动机运行,元数据提取过程中不需要回溯报文,也不需要中间保存报文,且在流跨报文解析时自动保存中间状态,在提高性能的前提下具有良好的协议可扩展性和灵活性,极大的简化了网络协议元数据提取效率,以满足高速网络实时还原的需求;本发明在性能、灵活性有了很大的提升,对当前骨干网络流量实时分析非常有意义的,对保障网络安全起到至关重要的作用
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的基于自动机的网络协议元数据提取系统结构图;
图2为本发明所提供的域分割模块的具体实现框架图;
图3为本发明所提供的协议状态集示意图;
图4为本发明所提供的内存分配存储结构示意图;
图5为本发明所提供的基于自动机的网络协议元数据提取方法流程图;
图6为本发明所提供的协议自动机运行流程图;
图7为本发明所提供的以HTTP协议报文为例的协议自动机运行流程图;
图8为本发明所提供的以DNS协议报文为例的协议自动机运行流程图;
图9为本发明所提供的元数据存储模块处理流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于自动机的网络协议元数据提取系统及方法,能够满足复杂的骨干网络实时监控的需要且能够应用于高速网络上实时处理数据。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明所提供的基于自动机的网络协议元数据提取系统结构图,如图1所示,一种基于自动机的网络协议元数据提取系统,包括:
协议状态模块,用于获取TCP流保序和协议识别处理后的协议报文,并基于协议域确定协议自动机的初始状态;协议域分割模块用于提供协议域分割的原子操作组件;所述协议域分割的原子操作组件包括域属性识别、域分隔符查找、属性域结束匹配、报文位置跳转以及16进制整数提取。
域分割模块具体为实现一些高性能的原子操作公共组件,供协议状态实现时使用,本发明改进了自动机算法(Aho-Corasick,AC)及字符串模式匹配算法(The Knuth-Morris-Pratt Algorithm,KMP),支持跨报文匹配且将AC状态高频状态与起始状态连续存储,以提高高速缓冲存储器CACHE的命中率,具体实现框架如图2所示。
为了满足多协议元数据提取的需求,域分割模块设计实现了20个基本的公共原子操作,其中包括属性域识别、属性域结束匹配、报文位置跳转、16进制整数提取等功能,基本上满足了所有协议的元数据提取功能,表1为元数据提取功能具体定义表,具体定义如下表1所示。
表1
表1中r和n为ASCII定义的换行符,即需要转义。
协议状态模块更具体为每种协议实现一系列状态,每个状态实现由域识别和分割基本原子操作组成,实现协议从开始状态到结束状态的具体的解析流程,每个状态承载一个元数据提取或协议解析功能,模块集合了所支持的协议状态集如图3所示,其中自动机模块为协议自动机模块。
第一判断模块,用于基于所述协议报文,根据所述初始状态判断是否进入协议自动机,得到第一判断结果。
协议自动机模块,用于当所述第一判断结果表示为进入所述协议自动机时,按照所述初始状态开始执行,不断获取网络协议元数据,直至所述协议自动机运行到协议终止状态;封装所述网络协议元数据,并输出所述网络协议元数据。
在实际应用中,所述协议自动机模块,具体包括:
请求方式提取单元,用于当所述协议报文为HTTP协议报文时,根据所述HTTP协议报文注册的初始状态匹配空字符,提取请求方式并存储至元数据存储模块。
统一资源定位符提取单元,用于根据所述HTTP协议报文注册的初始状态匹配非空字符以及空字符,提取所述HTTP协议报文的统一资源定位符,并存储至元数据存储模块。
版本号提取单元,用于根据所述HTTP协议报文注册的初始状态匹配非空字符且根据所述HTTP协议报文注册的初始状态匹配非换行符以及换行符,提取版本号,并存储至元数据存储模块。
第二判断单元,用于当根据所述HTTP协议报文注册的初始状态匹配到回车符或换行符时,判断所述HTTP协议报文的报头是否结束,得到第二判断结果。
第三判断单元,用于若所述第二判断结果表示为所述HTTP协议报文的报头结束,判断是否存在HTTP载荷内容,得到第三判断结果。
HTTP载荷内容域提取单元,用于若所述第三判断结果表示为存在HTTP载荷内容,提取HTTP载荷内容域,并存储至元数据存储模块。
属性提取单元,用于若所述第二判断结果表示为所述HTTP协议报文的报头未结束,识别所述HTTP协议报文的属性且匹配到非换行符以及换行符,提取所述属性,并存储至元数据存储模块。
在实际应用中,所述协议自动机模块,具体包括:
参数提取单元,用于当所述协议报文为DNS协议报文时,根据所述DNS协议报文注册的初始状态跳过请求报文,分别提取所述DNS协议报文的响应码的低四位、询问列表数目、回答数目、认证机构数目以及附加信息数目,并存储至元数据存储模块。
第四判断单元,用于判断标签长度是否为0,得到第四判断结果。
类型提取单元,用于若所述第四判断结果表示为所述标签长度为0,提取DNS协议报文的类型,并存储至元数据存储模块。
第五判断单元,用于判断是否到达响应数据的正文数目,得到第五判断结果。
第六判断单元,用于若所述第五判断结果表示为未到达相应数据的正文数目,提取数据长度,并判断类型是否为解析域名,得到第六判断结果。
解析域名提取单元,用于若所述第六判断结果表示为类型为解析域名,提取所述解析域名,并存储至元数据存储模块。
IP提取单元,用于若所述第六判断结果表示为类型不为解析域名,提取IP地址,并存储至元数据存储模块。
在实际应用中,所述协议自动机模块,还包括:当前状态恢复单元,用于当前状态恢复单元,用于当出现解析跨报文时,自动保存所述协议报文的当前状态并在下一个协议报文达到时,恢复至当前状态。
协议自动机模块具体为实现了一种从协议状态开始到结束持续运行的方法,并在运行过程中如果出现跨报文时,会保存当前状态待下一个报文到达时恢复状态继续执行,直到运行最终状态而结束。本模块会在协议会话过程中维护一个当前状态(CURRENT_STATE),一个跨报文标识位(CROSS_PACKET_BIT),一个协议原子操作子状态(MICROSTATE)三个变量,其中当前状态用于自动机运行过程中状态切换,且在跨报文处理时保存和恢复状态;跨报文标识位用来标识协议状态机执行过程中标识是否需要跨报文提取;协议原子操作子状态用于在跨报文提取时下一个报文到达而恢复到当前状态下原子操作子状态下继续执行,协议状态机运行依赖这三个变量有序执行。
网络协议元数据输出模块,用于当所述第一判断结果表示为不进入所述协议自动机时,结束协议报文处理。
本发明还包括:元数据存储模块,具体包括:
第七判断单元,用于获取内存管理块指针,并判断所述内存管理块指针是否为空,得到第七判断结果。
内存块管理数据第一更新单元,用于若所述第七判断结果表示为所述内存管理块指针为空,从内存池内获取内存块,并利用获取的网络协议元数据更新内存块管理数据。
第八判断单元,用于若所述第七判断结果表示为所述内存管理块指针不为空,判断当前的内存块是否满足待存储容量,得到第八判断结果。
内存块管理数据第二更新单元,用于若所述第八判断结果表示为当前的内存块满足待存储容量,利用获取的网络协议元数据更新内存块管理数据。
元数据存储模块更具体为在协议自动机运行过程中对一条会话提取的多条元数据进行有效存储管理,高效率的组织每条元数据,待流结束或提取完成时统一处理元数据。元数据存储模块设计了一种内存分配方式,有效的存储会话过程中流的元数据。模块初始化时,根据配置初始化一定数量一定大小的内存池,元数据提取时从内存池中分配相应大小的内存存储数据。本模块需要维护内存块头指针及元数据节点头指针,内存分配存储具体如图4所示。
应用本发明的报文首先需要经过流表(外部流表存储本模块会话过程中的一些中间状态)和信息及流保序和协议识别处理(使用通用技术,非本方案描述内容),然后进入本发明描述的流程处理。
本发明充分结合协议交互过程是有状态的特点,利用协议交互流程实现协议状态,并将多协议统一到协议自动机上执行。结合高性能的匹配算法,在元数据提取过程中,通过内存和算法的优化,既以O(1)的匹配性能扫描报文HTTP载荷提高元数据提取性能,又可以简化协议处理流程,灵活且扩展性好,以满足网络流量高速还原的方法及设备。
目前应用本发明已实现了多种协议的元数据提取,包括HTTP、FTP、SMTP、POP3、IMAP、HTTPS、DNS、SIP、RTSP、RADIUS等协议。以下数据处理流程以HTTP(以关键字为属性域)和DNS(二进制数据为属性域)两种不同类型的协议为例描述,其他协议元数据提取过程类似。
图5为本发明所提供的基于自动机的网络协议元数据提取方法流程图,如图5所示,一种基于自动机的网络协议元数据提取方法,包括:
步骤501:获取TCP流保序和协议识别处理后的协议报文,并基于协议域确定协议自动机的初始状态;协议域分割模块用于提供协议域分割的原子操作组件;所述协议域分割的原子操作组件包括域属性识别、域分隔符查找、属性域结束匹配、报文位置跳转以及16进制整数提取。
步骤502:基于所述协议报文,根据所述初始状态判断是否进入协议自动机,若是,执行步骤503,若否,执行步骤504。
步骤503:不断获取网络协议元数据,直至所述协议自动机运行到协议终止状态;封装所述网络协议元数据,并输出所述网络协议元数据;
协议自动机从协议初始状态开始运行,协议自动机运行流程如图6所示。
以HTTP协议报文为例,如图7所示,若识别为HTTP协议,则以HTTP协议注册的初始状态开始执行,所述按照所述初始状态开始执行,不断获取网络协议元数据,具体包括:当所述协议报文为HTTP协议报文时,根据所述HTTP协议报文注册的初始状态匹配空字符,提取请求方式并存储至元数据存储模块;根据所述HTTP协议报文注册的初始状态匹配非空字符以及空字符,提取所述HTTP协议报文的统一资源定位符,并存储至元数据存储模块;根据所述HTTP协议报文注册的初始状态匹配非空字符且根据所述HTTP协议报文注册的初始状态匹配非换行符以及换行符,提取版本号,并存储至元数据存储模块;当根据所述HTTP协议报文注册的初始状态匹配到回车符或换行符时,判断所述HTTP协议报文的报头是否结束,得到第二判断结果;若所述第二判断结果表示为所述HTTP协议报文的报头结束,判断是否存在HTTP载荷内容,得到第三判断结果;若所述第三判断结果表示为存在HTTP载荷内容,提取HTTP载荷内容域,并存储至元数据存储模块;若所述第二判断结果表示为所述HTTP协议报文的报头未结束,识别所述HTTP协议报文的属性且匹配非换行符以及换行符,提取所述属性,并存储至元数据存储模块。
以DNS协议报文为例,如图8所示,若识别为DNS协议,则以DNS协议注册的初始状态开始执行,所述按照所述初始状态开始执行,不断获取网络协议元数据,具体包括:当所述协议报文为DNS协议报文时,根据所述DNS协议报文注册的初始状态跳过请求报文,分别提取所述DNS协议报文的响应码的低四位、询问列表数目、回答数目、认证机构数目以及附加信息数目,并存储至元数据存储模块;判断标签长度是否为0,得到第四判断结果;若所述第四判断结果表示为所述标签长度为0,提取DNS协议报文的类型,并存储至元数据存储模块;判断是否到达响应数据的正文数目,得到第五判断结果;若所述第五判断结果表示为未到达相应数据的正文数目,提取数据长度,并判断类型是否为解析域名,得到第六判断结果;若所述第六判断结果表示为类型为解析域名,提取所述解析域名,并存储至元数据存储模块;若所述第六判断结果表示为类型不为解析域名,提取IP地址,并存储至元数据存储模块。
若识别为已注册的其他协议,则以已注册的初始状态开始执行,执行流程类似图7和图8的执行过程,否则不进入协议状态机而结束报文处理。
所述协议自动机运行到协议终止状态,之后还包括:当前状态恢复单元,用于当出现解析跨报文时,自动保存所述协议报文的当前状态并在下一个协议报文达到时,恢复至当前状态。
元数据存储处理流程如图9所示,根据已提取元数据长度,获取适当的内存块存储元数据,以连续内存存储,所述封装所述网络协议元数据,并输出所述网络协议元数据,之前还包括:获取内存管理块指针,并判断所述内存管理块指针是否为空,得到第七判断结果;若所述第七判断结果表示为所述内存管理块指针为空,从内存池内获取内存块,并利用获取的网络协议元数据更新内存块管理数据;若所述第七判断结果表示为所述内存管理块指针不为空,判断当前的内存块是否满足待存储容量,得到第八判断结果;若所述第八判断结果表示为当前的内存块满足待存储容量,利用获取的网络协议元数据更新内存块管理数据。
步骤504:结束协议报文处理。
与现有的技术或方法相比,本发明在处理流程及算法上的优化,大幅度的提高了报文元数据处理性能,在应用本发明的系统中测试取得了较好的效果;将复杂的多类型的协议统一到协议自动机上运行,扩展增加协议只需要单独实现协议状态,因此灵活性和可扩展性好,简化了本发明实际应用和实施。
该优点主要来自上述方案中元数据提取方法的2个技术点:
一方面改进了AC匹配算法,并应用到域识别和分隔符查找中,且以连续内存方式存储高频状态,因此以O(1)的时间复杂度识别和分割协议属性域;由于大部分性能瓶颈在访存上,在元数据存储过程中通过内存优化等技术合理高效的利用内存,且在元数据提取流程中不需要回溯报文及中间保存报文,以连续访问内存方式提高了CACHE的命中率(通用处理器上无法锁存)减少访存次数,因此可以较大幅度的提高报文元数据处理性能。
另一方面极大的简化了协议处理流程,将跨报文处理封装在原子操作中,不需要上层处理,协议自动机运行协议状态时处理跨报文动作,扩展协议只需要实现协议状态,在状态中调用已设计好的域识别和分割域查找接口,极大的方便了本发明的应用和实施。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种基于自动机的网络协议元数据提取系统,其特征在于,包括:
协议状态模块,用于获取TCP流保序和协议识别处理后的协议报文,并基于协议域确定协议自动机的初始状态;协议域分割模块用于提供协议域分割的原子操作组件;所述协议域分割的原子操作组件包括域属性识别、域分隔符查找、属性域结束匹配、报文位置跳转以及16进制整数提取;
第一判断模块,用于基于所述协议报文,根据所述初始状态判断是否进入协议自动机,得到第一判断结果;
协议自动机模块,用于当所述第一判断结果表示为进入所述协议自动机时,按照所述初始状态开始执行,不断获取网络协议元数据,直至所述协议自动机运行到协议终止状态;封装所述网络协议元数据,并输出所述网络协议元数据;
所述协议自动机模块包括:
当前状态恢复单元,用于当出现解析跨报文时,自动保存所述协议报文的当前状态并在下一个协议报文达到时,恢复至当前状态;
网络协议元数据输出模块,用于当所述第一判断结果表示为不进入所述协议自动机时,结束协议报文处理。
2.根据权利要求1所述的基于自动机的网络协议元数据提取系统,其特征在于,所述协议自动机模块,具体包括:
请求方式提取单元,用于当所述协议报文为HTTP协议报文时,根据所述HTTP协议报文注册的初始状态匹配空字符,提取请求方式并存储至元数据存储模块;
统一资源定位符提取单元,用于根据所述HTTP协议报文注册的初始状态匹配非空字符以及空字符,提取所述HTTP协议报文的统一资源定位符,并存储至元数据存储模块;
版本号提取单元,用于根据所述HTTP协议报文注册的初始状态匹配非空字符且根据所述HTTP协议报文注册的初始状态匹配非换行符以及换行符,提取版本号,并存储至元数据存储模块;
第二判断单元,用于当根据所述HTTP协议报文注册的初始状态匹配到回车符或换行符时,判断所述HTTP协议报文的报头是否结束,得到第二判断结果;
第三判断单元,用于若所述第二判断结果表示为所述HTTP协议报文的报头结束,判断是否存在HTTP载荷内容,得到第三判断结果;
HTTP载荷内容域提取单元,用于若所述第三判断结果表示为存在HTTP载荷内容,提取HTTP载荷内容域,并存储至元数据存储模块;
属性提取单元,用于若所述第二判断结果表示为所述HTTP协议报文的报头未结束,识别所述HTTP协议报文的属性且匹配非换行符以及换行符,提取所述属性,并存储至元数据存储模块。
3.根据权利要求1所述的基于自动机的网络协议元数据提取系统,其特征在于,所述协议自动机模块,具体包括:
参数提取单元,用于当所述协议报文为DNS协议报文时,根据所述DNS协议报文注册的初始状态跳过请求报文,分别提取所述DNS协议报文的响应码的低四位、询问列表数目、回答数目、认证机构数目以及附加信息数目,并存储至元数据存储模块;
第四判断单元,用于判断标签长度是否为0,得到第四判断结果;
类型提取单元,用于若所述第四判断结果表示为所述标签长度为0,提取DNS协议报文的类型,并存储至元数据存储模块;
第五判断单元,用于判断是否到达响应数据的正文数目,得到第五判断结果;
第六判断单元,用于若所述第五判断结果表示为未到达相应数据的正文数目,提取数据长度,并判断类型是否为解析域名,得到第六判断结果;
解析域名提取单元,用于若所述第六判断结果表示为类型为解析域名,提取所述解析域名,并存储至元数据存储模块;
IP提取单元,用于若所述第六判断结果表示为类型不为解析域名,提取IP地址,并存储至元数据存储模块。
4.根据权利要求1所述的基于自动机的网络协议元数据提取系统,其特征在于,还包括:元数据存储模块;
所述元数据存储模块,具体包括:
第七判断单元,用于获取内存管理块指针,并判断所述内存管理块指针是否为空,得到第七判断结果;
内存块管理数据第一更新单元,用于若所述第七判断结果表示为所述内存管理块指针为空,从内存池内获取内存块,并利用获取的网络协议元数据更新内存块管理数据;
第八判断单元,用于若所述第七判断结果表示为所述内存管理块指针不为空,判断当前的内存块是否满足待存储容量,得到第八判断结果;
内存块管理数据第二更新单元,用于若所述第八判断结果表示为当前的内存块满足待存储容量,利用获取的网络协议元数据更新内存块管理数据。
5.一种基于自动机的网络协议元数据提取方法,其特征在于,包括:
获取TCP流保序和协议识别处理后的协议报文,并基于协议域确定协议自动机的初始状态;协议域分割模块用于提供协议域分割的原子操作组件;所述协议域分割的原子操作组件包括域属性识别、域分隔符查找、属性域结束匹配、报文位置跳转以及16进制整数提取;
基于所述协议报文,根据所述初始状态判断是否进入协议自动机,得到第一判断结果;
当所述第一判断结果表示为进入所述协议自动机时,按照所述初始状态开始执行,不断获取网络协议元数据,直至所述协议自动机运行到协议终止状态;封装所述网络协议元数据,并输出所述网络协议元数据;
所述协议自动机运行到协议终止状态,之后包括:
当出现解析跨报文时,自动保存所述协议报文的当前状态并在下一个协议报文达到时,恢复至当前状态;
当所述第一判断结果表示为不进入所述协议自动机时,结束协议报文处理。
6.根据权利要求5所述的基于自动机的网络协议元数据提取方法,其特征在于,所述按照所述初始状态开始执行,不断获取网络协议元数据,具体包括:
当所述协议报文为HTTP协议报文时,根据所述HTTP协议报文注册的初始状态匹配空字符,提取请求方式并存储至元数据存储模块;
根据所述HTTP协议报文注册的初始状态匹配非空字符以及空字符,提取所述HTTP协议报文的统一资源定位符,并存储至元数据存储模块;
根据所述HTTP协议报文注册的初始状态匹配非空字符且根据所述HTTP协议报文注册的初始状态匹配非换行符以及换行符,提取版本号,并存储至元数据存储模块;
当根据所述HTTP协议报文注册的初始状态匹配到回车符或换行符时,判断所述HTTP协议报文的报头是否结束,得到第二判断结果;
若所述第二判断结果表示为所述HTTP协议报文的报头结束,判断是否存在HTTP载荷内容,得到第三判断结果;
若所述第三判断结果表示为存在HTTP载荷内容,提取HTTP载荷内容域,并存储至元数据存储模块;
若所述第二判断结果表示为所述HTTP协议报文的报头未结束,识别所述HTTP协议报文的属性且匹配非换行符以及换行符,提取所述属性,并存储至元数据存储模块。
7.根据权利要求5所述的基于自动机的网络协议元数据提取方法,其特征在于,所述按照所述初始状态开始执行,不断获取网络协议元数据,具体包括:
当所述协议报文为DNS协议报文时,根据所述DNS协议报文注册的初始状态跳过请求报文,分别提取所述DNS协议报文的响应码的低四位、询问列表数目、回答数目、认证机构数目以及附加信息数目,并存储至元数据存储模块;
判断域名标签长度是否为0,得到第四判断结果;
若所述第四判断结果表示为所述标签长度为0,提取DNS协议报文的类型,并存储至元数据存储模块;
判断是否到达响应数据的正文数目,得到第五判断结果;
若所述第五判断结果表示为未到达相应数据的正文数目,提取数据长度,并判断类型是否为解析域名,得到第六判断结果;
若所述第六判断结果表示为类型为解析域名,提取所述解析域名,并存储至元数据存储模块;
若所述第六判断结果表示为类型不为解析域名,提取IP地址,并存储至元数据存储模块。
8.根据权利要求5所述的基于自动机的网络协议元数据提取方法,其特征在于,所述封装所述网络协议元数据,并输出所述网络协议元数据,之前还包括:
获取内存管理块指针,并判断所述内存管理块指针是否为空,得到第七判断结果;
若所述第七判断结果表示为所述内存管理块指针为空,从内存池内获取内存块,并利用获取的网络协议元数据更新内存块管理数据;
若所述第七判断结果表示为所述内存管理块指针不为空,判断当前的内存块是否满足待存储容量,得到第八判断结果;
若所述第八判断结果表示为当前的内存块满足待存储容量,利用获取的网络协议元数据更新内存块管理数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110041348.5A CN112887280B (zh) | 2021-01-13 | 2021-01-13 | 一种基于自动机的网络协议元数据提取系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110041348.5A CN112887280B (zh) | 2021-01-13 | 2021-01-13 | 一种基于自动机的网络协议元数据提取系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112887280A CN112887280A (zh) | 2021-06-01 |
CN112887280B true CN112887280B (zh) | 2022-05-31 |
Family
ID=76045185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110041348.5A Active CN112887280B (zh) | 2021-01-13 | 2021-01-13 | 一种基于自动机的网络协议元数据提取系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112887280B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760369B (zh) * | 2022-04-14 | 2023-12-19 | 曙光网络科技有限公司 | 一种协议元数据提取方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130956A (zh) * | 2011-03-18 | 2011-07-20 | 清华大学 | 应用层协议识别方法及系统 |
CN104038389A (zh) * | 2014-06-19 | 2014-09-10 | 高长喜 | 多重应用协议识别方法和装置 |
US9083740B1 (en) * | 2009-09-28 | 2015-07-14 | Juniper Networks, Inc. | Network traffic pattern matching using adaptive deterministic finite automata |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707532B (zh) * | 2009-10-30 | 2012-08-15 | 中山大学 | 一种未知应用层协议自动分析方法 |
NL2007180C2 (en) * | 2011-07-26 | 2013-01-29 | Security Matters B V | Method and system for classifying a protocol message in a data communication network. |
CN103281213B (zh) * | 2013-04-18 | 2016-04-06 | 西安交通大学 | 一种网络流量内容提取和分析检索方法 |
CN109947835B (zh) * | 2019-03-12 | 2023-05-23 | 东华大学 | 基于有限状态自动机的印染报价结构化需求数据提取方法 |
CN110311914A (zh) * | 2019-07-02 | 2019-10-08 | 北京微步在线科技有限公司 | 通过镜像网络流量提取文件的方法及装置 |
-
2021
- 2021-01-13 CN CN202110041348.5A patent/CN112887280B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9083740B1 (en) * | 2009-09-28 | 2015-07-14 | Juniper Networks, Inc. | Network traffic pattern matching using adaptive deterministic finite automata |
CN102130956A (zh) * | 2011-03-18 | 2011-07-20 | 清华大学 | 应用层协议识别方法及系统 |
CN104038389A (zh) * | 2014-06-19 | 2014-09-10 | 高长喜 | 多重应用协议识别方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112887280A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105162626B (zh) | 基于众核处理器的网络流量深度识别系统及识别方法 | |
US7765183B2 (en) | Hierarchical tree of deterministic finite automata | |
CN106815112B (zh) | 一种基于深度包检测的海量数据监控系统及方法 | |
US20060085389A1 (en) | Method for transformation of regular expressions | |
CN112612761B (zh) | 一种数据清洗方法、装置、设备及存储介质 | |
CN104618132B (zh) | 一种应用程序识别规则生成方法和装置 | |
CN110083746B (zh) | 一种基于字符串的快速匹配识别方法和装置 | |
CN111988231B (zh) | 一种掩码五元组规则匹配的方法及装置 | |
CN102710504A (zh) | 应用识别方法和装置 | |
CN112468410B (zh) | 一种增强网络流量特征准确率的方法和装置 | |
CN112887280B (zh) | 一种基于自动机的网络协议元数据提取系统及方法 | |
CN102014065A (zh) | 报文包头的解析方法、包头解析预处理装置和网络处理器 | |
CN107943826A (zh) | 一种适用于多类字段的高速数据流分类装置及方法 | |
Yang et al. | PiDFA: A practical multi-stride regular expression matching engine based on FPGA | |
KR101912778B1 (ko) | Ip 네트워크 주위로 흐르는 데이터스트림으로부터 데이터를 추출하기 위한 방법 및 장치 | |
CN102984242A (zh) | 一种应用协议的自动识别方法和装置 | |
CN112866229B (zh) | 一种基于状态图的高速网络流量识别方法及系统 | |
Sija et al. | Automatic payload signature generation for accurate identification of internet applications and application services | |
CN110445800B (zh) | 一种基于自学习的深度报文解析系统 | |
CN114006831A (zh) | 报文数据处理方法及装置 | |
US9177252B2 (en) | Incremental DFA compilation with single rule granularity | |
CN102130956A (zh) | 应用层协议识别方法及系统 | |
CN113489622B (zh) | 一种提取网络设备指纹的方法、系统、设备及存储介质 | |
CN111737251A (zh) | 一种ip数据识别方法、装置、计算机设备以及存储介质 | |
CN113472654B (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 |