CN112468370A - 一种支持自定义规则的高速网络报文监测分析方法及系统 - Google Patents

一种支持自定义规则的高速网络报文监测分析方法及系统 Download PDF

Info

Publication number
CN112468370A
CN112468370A CN202011379687.6A CN202011379687A CN112468370A CN 112468370 A CN112468370 A CN 112468370A CN 202011379687 A CN202011379687 A CN 202011379687A CN 112468370 A CN112468370 A CN 112468370A
Authority
CN
China
Prior art keywords
message
matching
rule
module
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
Application number
CN202011379687.6A
Other languages
English (en)
Other versions
CN112468370B (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.)
Beijing Ruichi Xinan Technology Co ltd
Original Assignee
Beijing Ruichi Xinan Technology 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 Beijing Ruichi Xinan Technology Co ltd filed Critical Beijing Ruichi Xinan Technology Co ltd
Priority to CN202011379687.6A priority Critical patent/CN112468370B/zh
Publication of CN112468370A publication Critical patent/CN112468370A/zh
Application granted granted Critical
Publication of CN112468370B publication Critical patent/CN112468370B/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/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种支持自定义规则的高速网络报文监测分析方法及系统,属于网络信息安全技术领域。本发明系统包括系统初始化模块、报文捕获模块、规则解析模块、报文解析模块、报文匹配模块、结果分装及格式化输出模块。本发明方法包括对用户自定义规则的解析处理,对匹配条件进行优化处理,并编译成树状的匹配搜索库;对捕获的报文分层解析,提取协议字段,在匹配搜索库进行包模式匹配;对TCP报文缓存和重组,提取流数据,在匹配搜索库进行流模式匹配;对命中的报文按照响应动作格式化封装后输出。本发明实现了对自定义规则的网络报文监测,提出了基于数据流缓存和流重组的流模式解析和匹配,能够满足不同场景下安全事件监测需求。

Description

一种支持自定义规则的高速网络报文监测分析方法及系统
技术领域
本发明涉及网络信息安全领域,具体涉及一种支持自定义规则且能够高速处理报文监测分析的方法及系统。
背景技术
随着现代网络规模的不断扩大、网络中业务流量爆炸式增长,以及网络攻击手段的日益多样复杂化,传统的报文监测分析系统面临巨大挑战。为提升报文系统监测能力,不仅需要对传统规范协议字段进行准确监测,而且需要系统能够通过解析复杂过滤表达式等自定义规则来对报文进行更为深度精准的监测。
普通的报文监测系统常常根据以下几种方式进行业务处理:
(1)根据传统协议规范中的字段对报文解析进行字段分析,从中寻找符合规则的协议字段数据。该方法可以将一部分报文根据协议规范进行归类、解析及匹配,但仍有很多协议处于保密或未知状态。对于网络攻击数据,由于其高隐蔽性和协议未知性,其往往能够绕过系统监测,突破到被保护区域进行破坏。
(2)根据模式匹配,通过查找报文中的特定值找出业务需要的数据。该方法虽然可以准确查找到复杂模式的报文数据,但对系统的性能损耗是不可预估的,由于报文数据的不确定性,模式串回溯的深度决定了系统的处理性能。
(3)根据包过滤,通过协议元数据或有效荷载中字段的内容来分离数据。该方法虽然可以过滤掉部分报文,减轻系统处理压力,但对于需要进行上层协议分析(如:HTTP会话分析)的业务需求则存在流不完整的可能。
发明内容
针对上述已有报文监测系统技术中存在的问题,本发明公开了一种支持自定义规则的高速网络报文监测分析方法和系统。
本发明提供的一种支持自定义规则的高速网络报文监测分析系统,包括如下功能模块:
系统初始化模块读取系统配置文件,对网卡端口、处理核心、内存及线程进行初始化;所述的配置文件记录核心分组及组内的网卡端口、接收报文逻辑核号、处理报文逻辑核号以及输出结果逻辑核号;
报文捕获模块通过监听网卡端口实时捕获报文,根据报文的五元组计算哈希值,将同一条网络数据流分配至同一队列中;报文捕获模块建立MMAP映射,将网卡接收队列映射至用户态空间;
规则解析模块加载或接收用户输入的自定义规则,对自定义规则进行解析,包括:校验自定义规则是否符合预先设置的格式标准;提取规则ID、规则名称、规则协议、规则匹配条件和响应动作;对规则匹配表达式和响应表达式进行词法分析和语法分析,提取其中指定TOKEN数据,包括协议字段、操作符、函数、字符串常量、变量及插件变量;将需要匹配的字符内容推送至字符匹配引擎,将需要匹配的整数内容推送至哈希表和二叉树构成的数字匹配引擎;对匹配条件进行编译生成匹配搜索库;匹配搜索库以树形结构建立,树中的每个叶子节点代表自定义规则中的一个条件,树中的非叶子节点代表所包含的叶子节点对应的条件的组合;
报文解析模块对报文捕获模块捕获的报文逐层提取协议字段,记录各字段的首地址指针及偏移长度存至在一个结构体中;报文解析模块还将报文数据进行缓存和重组排序,对重组后的报文提取流数据;流数据包括TCP报文流中首个报文序列号、TCP报文流中首个报文的确认号以及TCP报文流的负载文件;
报文匹配模块用于对单个报文及重组后的报文流数据,在匹配搜索库中进行匹配;对命中的报文结果推送至结果封装及格式化输出模块;报文匹配模块在匹配搜索库中进行匹配搜索时,若命中匹配搜索库中的节点,继续向上搜索该节点的父节点,通过判断充要必要条件进行规则逻辑判断,当满足匹配搜索库中的整条规则时认为报文匹配成功;
结果封装及格式化输出模块用于对命中的报文按照响应动作封装和输出。
对应的,本发明提供的一种支持自定义规则的高速网络报文监测分析方法,包括如下步骤:
步骤1,报文监测初始化,包括初始化网卡端口、处理核、内存及线程;根据网卡端口数将处理核进行核组划分,每个核组内包括输入、处理和输出三种业务核;
步骤2,读取自定义规则并进行解析处理,包括:
(1)对自定义规则进行结构格式校验,剔除不满足格式要求的规则;
(2)对匹配表达式进行词法分析和语法分析,提取匹配表达式中的指定的TOKEN数据,包括协议字段、函数、操作符、字符串常量、变量及插件变量;TOKEN表示标记;
(3)对响应表达式进行词法分析和语法分析,提取响应表达式中的指定TOKEN数据,包括协议字段、函数、操作符、字符串常量、变量及插件变量;
(4)对匹配表达式进行优化处理,包括:根据逻辑运算符“&&”,“||”,“=>”进行表达式递归分割,将各个需要匹配的内容进行结构体格式化,填充临时节点ID、父节点ID、子节点ID、子表达式内容;建立一套相互指引的多叉树,将字符类表达式推送至基于自动机的字符串匹配算法引擎库,将整数表达式推送至由哈希表和平衡二叉树构成的整数查找引擎库;其中ID表示标识号;
(5)将匹配条件由编译算法引擎库,生成匹配搜索库;匹配搜索库以树形结构建立,树中的每个叶子节点代表自定义规则中的一个条件,树中的非叶子节点代表所包含的叶子节点对应的条件的组合;
步骤3,捕获及解析报文数据,包括:建立MMAP映射,将网卡接收队列映射至用户态空间;对网卡端口实时监听以获取报文;对捕获的报文提取五元组信息,计算哈希值再进行同源同宿及负载均衡;对捕获的报文进行分层解析,提取协议字段,将各层解析的字段的首地址指针及偏移长度存至在一个结构体中;
步骤4,对解析的报文进行包模式匹配,包括:对解析的报文在匹配搜索库中进行匹配搜索,若命中匹配搜索库中的节点,继续向上搜索该节点的父节点,通过判断充要必要条件进行规则逻辑判断,当满足匹配搜索库中的整条规则后完成报文匹配;对匹配成功的报文生成规定格式的消息放置在队列中,然后清空匹配结果等待下一次匹配;对队列转步骤7执行;
步骤5,对原始TCP报文进行缓存,根据数据包序列号及流状态进行重组排序,丢弃重复包,缓存等待缺失包,并添加超时处理;对缓存重组后的报文进行消息HEAD和消息BODY分离,提取SEQ及ACK,提取TCP上层应用数据,解析并提取承载的文件;其中,HEAD表示头部,BODY表示主体,SEQ表示TCP流中首个报文序列号,ACK表示TCP流中首个报文的确认号;
步骤6,对缓存重组的报文提取的数据进行流模式匹配,在匹配搜索库中进行搜索,对满足匹配搜索库中的整条规则时,报文匹配成功,将匹配成功的报文生成规定格式的消息放置在队列中,然后清空匹配结果等待下一次匹配;对队列转步骤7执行;
步骤7,从队列中读取消息,将匹配成功的报文根据响应动作进行格式化封装后输出。
本发明公开的一种支持自定义规则的高速网络报文监测分析方法及系统,与已公开的现有技术相比,具有如下优点:(1)本发明方法和系统能够在传统报文监测系统的数据包级别的协议字段解析及匹配需求基础上,提出了基于数据流缓存和流重组的流模式解析和匹配,有效提升了事件监测能力。(2)本发明方法和系统采用一种支持变量、协议字段、操作符与运算、函数等复杂语法和表达式的规则描述语言及规则解析方法,规则下发者根据业务需求进行规则书写及事件监测,极大提升本方法及系统的灵活性和适用性,能够满足不同场景下安全事件监测需求。(3)本发明方法和系统充分利用了服务器多核并发以及多核间内存访问特性,提出了高并发场景下系统性能优化和提升方法,有效提高了系统的处理性能。
附图说明
图1是本发明的支持自定义规则的高速网络报文监测分析方法的流程图;
图2是本发明的支持自定义规则的高速网络报文监测分析系统结构模块图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明提供的支持自定义规则的高速网络报文监测分析方法及系统,能够达到如下目的:
(1)能够覆盖传统报文监测系统的协议字段解析及匹配业务,满足现有报文监测系统的基本功能。
(2)能够支持复杂过滤表达式等自定义规则解析及匹配,自定义规则由基本协议类型、基本数据类型、各类运算符及自定义函数、字符串组合而成,可由规则下发者根据相应语法进行规则书写及下发。
(3)能够支持包模式及流模式匹配,包模式基于单个报文进行解析及匹配,流模式需要对报文根据五元组缓存及重组后进行解析及匹配。
(4)能够充分利用服务器多核并发的特性,提高设备的吞吐量,采用用户态驱动的轮询机制对处理器核心进行亲和性绑定,降低中断上下文切换导致的性能损失。对多核处理器采用多核分组设计,对核组之间采用并行方式、核组之内采用串行方式,高效并行处理网络报文。
(5)对现代操作系统的非统一内存访问进行业务紧密耦合式设计,充分利用内存之间访问时延来提高业务处理性能。设计针对高速网络报文监测系统的细粒度内存管理方案,提高内存热度,减少内存缺页异常,充分发挥系统性能。
下面结合图1来说明本发明的支持自定义规则的高速网络报文监测分析方法,分如下7个步骤来说明。
步骤1,报文监测初始化:包括初始化网卡端口、初始化处理核、初始化内存及初始化线程。对系统的初始化根据网卡、CPU处理核及内存物理分布特点进行综合“就近操作”,利用现代操作系统特性,使网卡、处理核能够快速访问本地存储器。结合报文监测系统业务,根据网卡端口数将处理核划分为多个核组,每个核组内包括输入-处理-输出三种业务核,业务核心数通常比例为M:N:M,对线程的初始化根据业务进行深度绑定,核组内实现流水线分工,减少中断,提高CPU使用率。M和N均为正整数。
本发明实施例中,如图1所示,在初始化报文监测系统的参数时,首先读取系统配置,获取网卡端口、逻辑核、内存大小及线程功能等配置信息,然后对网卡端口、逻辑核内存及线程进行初始化及绑定操作;对系统其他内容进行初始化操作。如:
RX_DEV_NAME=0000:21:00.1
RX_LCORE=8
PROCESS_LCORE=9,10,11,12,13,75,76,77,78,79
TX_LCORE=14
上述表示,指定网卡端口BUSINFO号为0000:21:00.1为处理网卡RX_DEV_NAME;逻辑核号为8的CPU处理核为接收报文核RX_LCORE,用于进行收包功能;逻辑核号为9,10,11,12,13,75,76,77,78,79的CPU处理核为处理核PROCESS_LCORE,用于进行报文处理;核号为14的CPU处理核为结果发送核TX_LCORE,用于将结果传送至第三方分析系统。
步骤2,读取并解析规则:对自定义规则进行解析处理,包括静态文本规则和与第三方系统接口实现的更新规则。本步骤包括如下:
1)对读取的自定义规则文件进行结构格式校验。规则文件需包含规则ID、规则名称、规则协议、匹配条件和响应条件等若干字段组成,对于不满足格式要求的规则予以剔除。
2)对匹配条件进行解析。对匹配表达式进行词法分析和语法分析,提取匹配表达式中的协议字段、函数、操作符、字符串常量、变量及插件变量等规范中指定TOKEN数据。TOKEN表示标记。
3)对响应动作进行解析。对响应表达式进行词法分析和语法分析,提取响应表达式中的协议字段、函数、操作符、字符串常量、变量及插件变量等规范中指定TOKEN数据。
4)对匹配表达式进行优化处理。根据逻辑运算符“&&”,“||”,“=>”进行表达式递归分割,将各个需要匹配的内容进行结构体格式化,填充临时节点ID、父节点ID、子节点ID、子表达式等结构体内容,建立一套相互指引的多叉树,对于协议字段、字符串常量等字符类表达式,送至基于自动机的字符串匹配算法引擎库;对于IP、端口等整数表达式,送至由哈希表和平衡二叉树构成的整数查找引擎库。
5)编译算法引擎库,生成匹配搜索库。对算法引擎库通过复杂的图分析及优化,生成对应的匹配搜索数据库。匹配搜索库以树形结构建立,树中的每个叶子节点代表用户自定义规则中的某一个条件,叶子节点的父节点代表了所包含的叶子节点对应的条件的一个组合。
本发明实施例中,如图1所示,从自定义规则文件中逐条读取规则并进行校验,通过词法分析及语法分析解析规则中的匹配条件及响应动作内容,解析后的匹配内容推送至相关引擎库。如
规则ID:2943
规则名称:RULE2943
规则协议:tcp
规则匹配条件:tcp.srcport==443&&tcp.dstport==17414&&tcp.payload^"\x17\x03\x03\x00P\x89\x96U<\xD6\x0E\xB9T\xFA\xEA9\xF2\xDAz\x1DV\x17\x81\x89\xE5U\xB7\xC6s\x95\xE5\x\xEA\xCC\xC6fi\xB9\xBC\xCA\x0A\x92\xCE\xEB\xD9r\xE5\x87\xD1X\x82\x99\x8B\xD1B!\x90D3\xF8O+\xC60\xEE\xDE\x8A\xD7\x194`\xF8H"
规则响应动作:event("tcp.seq=",tcp.seq,";tcp.nxtseq=",tcp.nxtseq,";tcp_window_size=",tcp.window_size)
上述表示,读取规则ID为2943;规则名称为RULE2943;匹配协议为TCP协议;规则匹配条件为源端口(srcport)为443及目的端口(dstport)为17414,TCP层负载(payload)包含“\x17\x03\x03\x00P\x89\x96U<\xD6\x0E\xB9T\xFA\xEA9\xF2...\xF8H”的内容;响应动作为日志输出,日志自定义内容为组合的TCP的SEQ序列号、NXTSEQ、WINDOW_SIZE字符串。
在自定义规则文件读取完毕后,将匹配条件进行编译,生成对应的匹配搜索数据库。
本发明能够支持复杂过滤表达式等自定义规则解析及匹配,对自定义规则是由规则下发者根据相应语法进行规则书写及下发。在本步骤中,是根据预设路径读取所存储的自定义规则文件,然后对自定义规则进行解析。
步骤3,捕获及解析报文数据。通过建立MMAP映射,将网卡接收队列映射至用户态空间实现零拷贝,对网卡端口实时监听来获取报文数据。将捕获的报文提取出五元组信息,使用循环位移异或法计算出哈希值进行同源同宿及负载均衡。对报文进行分层解析,解析出ETH层MAC地址,IP/ICMP层协议字段,UDP/TCP层协议字段及应用层HTTP/SMTP/FTP等协议字段,最终将各层解析字段的首地址指针及偏移长度存至在一个结构体中。
本发明实施例中,如图1所示,监听网卡端口获取报文数据,对IP分片进行分片重组,逐层对报文协议字段进行解析,提取ETH层、IP/ICMP层、TCP/UDP层、HTTP/SMTP/POP3/DNS层等协议字段,记录各字段地址指针及长度。
其中,MMAP是一种内存映射文件的方法,将一个文件或者其它对象映射进内存。ETH代表以太网。MAC代表物理地址。IP是网际互连协议,ICMP是Internet控制报文协议。UDP是用户数据报协议,TCP是传输控制协议,HTTP是超文本传输协议,SMTP是简单邮件传输协议,FTP是文件传输协议,POP3是邮局协议版本3,DNS是域名系统。
步骤4,匹配报文数据。对解析的报文进行包模式匹配,通过对各个字符串匹配搜索,对命中的数据进行向上搜索,找到其父节点,通过判断充要必要条件进行规则逻辑判断,满足整条规则后完成报文匹配,对不满足的节点进行记录操作。报文匹配结束后,清空匹配结果等待下一次匹配计算。
本发明实施例中,如图1所示,对匹配搜索数据库进行匹配搜索,通过对各个字符串匹配搜索,对命中的数据进行向上搜索,找到其父节点,通过判断充要必要条件进行规则逻辑判断,满足整条规则后完成报文匹配,对匹配成功的报文,根据响应动作进行日志报送、抓包及二元组或五元组记录等操作,生成对应规定的格式消息放置在队列中,然后执行步骤7,对不满足的节点进行记录操作。报文匹配结束后,清空匹配结果等待下一次匹配计算。由于用户自定义规则中可能包含多个条件的组合,因此需要遍历匹配搜索库来判定是否命中用户规则。
本发明中,通过自定义规则的使用和解析,可实现包匹配。协议字段属于包模式匹配中的能力,可根据用户需求自定义,具备更丰富和深入的字段描述和规则定义能力。其次,具备协议字段间组合关系的灵活定义能力,如HTTP协议字段1与TCP协议字段2的与xx协议字段3等最多20级字段间逻辑与、或关系。并且本发明支持包级别的协议字段匹配与步骤5的流匹配的组合能力,更能体现本发明方法对报文检测事件的描述能力和监测能力。
步骤5,报文缓存及重组。报文包模式匹配结束后,对原始TCP报文进行缓存,根据数据包序列号及流状态进行重组排序,对重复包进行丢弃操作,对缺失包进行缓存等待,并添加超时处理,超过10秒后进行‘0’填充。缓存重组后的数据进行消息HEAD和消息BODY分离,提取SEQ及ACK,提取TCP上层应用数据,解析并提取承载的文件。HEAD表示头部,BODY表示主体,SEQ表示TCP流中首个报文序列号,ACK表示TCP流中首个报文的确认号。
本发明实施例中,如图1所示,在步骤4中进行报文包匹配后,需要对报文进行流重组还原。对原始TCP报文进行缓存,根据数据包SEQ序列号及流状态(STATUS)进行重组排序,对重复包采取丢弃操作,对缺失包采取缓存等待,并添加超时(TIMEOUT)处理,超过10秒后进行‘0’填充。缓存重组后的数据进行消息HEAD和消息BODY分离,提取SEQ及ACK,提取TCP上层应用数据,解析并提取承载的文件,并进行流模式匹配;对满足整条规则的报文转步骤6,不满足则转步骤3。
步骤6,流模式匹配数据。报文缓存及重组结束后,对流数据进行匹配处理,满足流信息后,通过填充流五元组、消息HEAD及消息BODY、以及应用层数据,进行流模式匹配。将匹配命中的数据生成事件动作规定的格式消息放置队列中待下一步处理。进行下一个报文处理,转到步骤2。
本发明中,对当前输入的所有用户自定义规则统一编译匹配搜索库,匹配搜索库中还可以包括多个子库,如包匹配搜索子库、流匹配搜索子库、五元组匹配搜索子库等,各个子库之间可以独立匹配,可以根据所进行的匹配阶段来选择对应的搜索子库来匹配。可以在分别匹配各个子库后,最后来判定是否命中最终规则。
步骤7,结果数据格式化输出。从队列中取出匹配命中结果,根据响应动作对匹配命中的数据进行格式化封装,日志最终采用动态TLV格式封装成日志供第三方系统分析使用。
本发明实施例中,如图1所示,对采取日志输出的将命中数据根据响应动作格式进行日志格式化封装;对原始数据包捕获落地至本地的命中数据,根据抓包PCAP格式进行原始报文落地;对记录二元组/五元组继续匹配的进行二元组/五元组提取,存储至系统相应表格,进行后续报文匹配;结束后转至步骤3,执行下一次报文监测。
相应地,本发明提供的支持自定义规则的高速网络报文监测系统,如图2所示,主要包括系统初始化模块1、报文捕获模块2、规则解析模块3、报文解析模块4、报文匹配模块5、结果封装及格式化输出模块6。图2中,结果封装及格式化输出模块6包括结果封装模块61和格式化输出模块62。下面对各模块进行说明。
系统初始化模块1,用于对网卡端口、处理核心、内存及线程进行初始化,读取系统配置,配置包括核心分组及组内处理网卡BUS-INFO号、接收报文逻辑核号、处理报文逻辑核号、输出结果逻辑核号;对流表、核间队列等内存池进行初始化操作;对线程进行绑定操作。
报文捕获模块2,用于监听网卡端口,实时捕获报文数据,根据报文五元组计算HASH值,将同一条网络数据流分配至同一队列中,保证报文同源同宿和负载均衡。如图2所示,报文捕获模块2中包括同源同宿模块、负载均衡模块、二级缓存模块等。同源同宿模块用于根据对报文计算的哈希值进行报文的分配。负载均衡模块用于负责各处理核心的负载分配。二级缓存模块用于缓存网络报文数据。报文捕获模块2建立MMAP映射,将网卡接收队列映射至用户态空间,减少数据拷贝以提升系统性能。
规则解析模块3加载或接收用户输入的规则,对用户输入的自定义规则进行解析,包括:规则校验模块,用于确定自定义规则是否符合所要求的规范标准;规则拆分模块,提取规则中的规则ID、规则名称、规则协议、规则匹配条件、响应动作等信息;词法分析模块和语法分析模块,对规则匹配条件及响应动作进行解析,对规则匹配表达式和响应表达式进行词法分析和语法分析,提取匹配表达式以及响应表达式中的协议字段、操作符、函数及字符串常量、变量等内容;规则优化模块,将需要匹配的字符内容推送至字符匹配引擎,将整数内容推送至哈希表和二叉树构成的数字匹配引擎;规则编译模块,对匹配条件通过引擎库进行编译生成匹配搜索库。
报文解析模块4对报文捕获模块2捕获的报文逐层提取报文字段,提取ETH层、IP/ICMP层、TCP/UDP层、HTTP/SMTP层等协议字段,记录各字段地址指针及长度。报文解析模块4还将TCP报文数据缓存进行重组排序,重组后提取流信息及负载文件。如图2中,报文解析模块4中包含协议识别模块、各层解析模块以及流缓存重组模块。
报文匹配模块5,用于对单个报文及重组后流信息进行匹配。可对匹配搜索库精细化设置,按照协议层、报文字段之间偏移值进行聚类分库,如分为RAW、MSGBODY、MSGHEAD、TCPSTREAM、HOST等十余个搜索匹配库,通过协议识别分类等前期操作,对报文进行分库匹配,提升命中率,减少报文字段匹配流信息库等不必要匹配操作。通过对匹配搜索库查找,将命中结果推送至结果封装及格式化输出模块6。如图2所示,报文匹配模块5包括协议变量匹配模块、规则函数匹配模块、动态规则匹配模块、并行查找模块。协议变量匹配模块、规则函数匹配模块、动态规则匹配模块可分别对应一个匹配搜索库,并行查找模块可调用多个匹配模块进行并行匹配查找。
结果封装模块61包括响应动作日志分装模块和响应动作报文落地模块,用于对命中数据进行响应动作封装,响应动作通过用户自定义设置,可将结果生成日志、可将数据包捕获落地至本地、可提取二元组五元组等信息继续匹配相关流内容和定时输出相关命中结果。
格式化输出模块62包括TLV重组模块、TCP发送模块、UDP发送模块、FTP发送模块和日志压缩模块。TLV重组模块是将日志结果中所需字段信息通过动态TLV格式封装输出至第三方处理系统。TCP发送模块、UDP发送模块、FTP发送模块对应将命中的报文包装成相应协议的报文格式输出。日志压缩模块用于对日志文件进行压缩以存储或发送。

Claims (3)

1.一种支持自定义规则的高速网络报文监测分析系统,其特征在于,包括:系统初始化模块、报文捕获模块、规则解析模块、报文解析模块、报文匹配模块、结果分装及格式化输出模块;其中,
系统初始化模块读取系统配置文件,对网卡端口、处理核心、内存及线程进行初始化;所述的配置文件记录核心分组及组内的网卡端口、接收报文逻辑核号、处理报文逻辑核号以及输出结果逻辑核号;
报文捕获模块通过监听网卡端口实时捕获报文,根据报文的五元组计算哈希值,将同一条网络数据流分配至同一队列中;报文捕获模块建立MMAP映射,将网卡接收队列映射至用户态空间;
规则解析模块加载或接收用户输入的自定义规则,对自定义规则进行解析,包括:校验自定义规则是否符合预先设置的格式标准;提取规则ID、规则名称、规则协议、规则匹配条件和响应动作;对规则匹配表达式和响应表达式进行词法分析和语法分析,提取其中指定TOKEN数据,包括协议字段、操作符、函数、字符串常量、变量及插件变量;将需要匹配的字符内容推送至字符匹配引擎,将需要匹配的整数内容推送至哈希表和二叉树构成的数字匹配引擎;对匹配条件进行编译生成匹配搜索库;匹配搜索库以树形结构建立,树中的每个叶子节点代表自定义规则中的一个条件,树中的非叶子节点代表所包含的叶子节点对应的条件的组合;
报文解析模块对报文捕获模块捕获的报文逐层提取协议字段,记录各字段的首地址指针及偏移长度存至在一个结构体中;报文解析模块还将报文数据进行缓存和重组排序,对重组后的报文提取流数据;流数据包括TCP报文流中首个报文序列号、TCP报文流中首个报文的确认号以及TCP报文流的负载文件;
报文匹配模块用于对单个报文及重组后的报文流数据,在匹配搜索库中进行匹配;对命中的报文结果推送至结果封装及格式化输出模块;报文匹配模块在匹配搜索库中进行匹配搜索时,若命中匹配搜索库中的节点,继续向上搜索该节点的父节点,通过判断充要必要条件进行规则逻辑判断,当满足匹配搜索库中的整条规则时认为报文匹配成功;
结果封装及格式化输出模块用于对命中的报文按照响应动作封装和输出。
2.一种支持自定义规则的高速网络报文监测分析方法,其特征在于,包括如下步骤:
步骤1,报文监测初始化,包括初始化网卡端口、处理核、内存及线程;根据网卡端口数将处理核进行核组划分,每个核组内包括输入、处理和输出三种业务核;
步骤2,读取自定义规则并进行解析处理,包括:
(1)对自定义规则进行结构格式校验,剔除不满足格式要求的规则;
(2)对匹配表达式进行词法分析和语法分析,提取匹配表达式中的指定的TOKEN数据,包括协议字段、函数、操作符、字符串常量、变量及插件变量;TOKEN表示标记;
(3)对响应表达式进行词法分析和语法分析,提取响应表达式中的指定TOKEN数据,包括协议字段、函数、操作符、字符串常量、变量及插件变量;
(4)对匹配表达式进行优化处理,包括:根据逻辑运算符“&&”,“||”,“=>”进行表达式递归分割,将各个需要匹配的内容进行结构体格式化,填充临时节点ID、父节点ID、子节点ID、子表达式内容;建立一套相互指引的多叉树,将字符类表达式推送至基于自动机的字符串匹配算法引擎库,将整数表达式推送至由哈希表和平衡二叉树构成的整数查找引擎库;其中ID表示标识号;
(5)将匹配条件由编译算法引擎库,生成匹配搜索库;匹配搜索库以树形结构建立,树中的每个叶子节点代表自定义规则中的一个条件,树中的非叶子节点代表所包含的叶子节点对应的条件的组合;
步骤3,捕获及解析报文数据,包括:建立MMAP映射,将网卡接收队列映射至用户态空间;对网卡端口实时监听以获取报文;对捕获的报文提取五元组信息并计算哈希值,进行同源同宿处理;对捕获的报文进行分层解析,提取协议字段,将各层解析的字段的首地址指针及偏移长度存至在一个结构体中;
步骤4,对解析的报文进行包模式匹配,包括:对解析的报文在匹配搜索库中进行匹配搜索,若命中匹配搜索库中的节点,继续向上搜索该节点的父节点,通过判断充要必要条件进行规则逻辑判断,当满足匹配搜索库中的整条规则后完成报文匹配;对匹配成功的报文生成规定格式的消息放置在队列中,然后清空匹配结果等待下一次匹配;对队列转步骤7执行;
步骤5,对原始TCP报文进行缓存,根据数据包序列号及流状态进行重组排序,丢弃重复包,缓存等待缺失包,并添加超时处理;对缓存重组后的报文进行消息HEAD和消息BODY分离,提取SEQ及ACK,提取TCP上层应用数据,解析并提取承载的文件;其中,HEAD表示头部,BODY表示主体,SEQ表示TCP流中首个报文序列号,ACK表示TCP流中首个报文的确认号;
步骤6,对缓存重组的报文提取的数据进行流模式匹配,在匹配搜索库中进行搜索,对满足匹配搜索库中的整条规则时,报文匹配成功,将匹配成功的报文生成规定格式的消息放置在队列中,然后清空匹配结果等待下一次匹配;对队列转步骤7执行;
步骤7,从队列中读取消息,将匹配成功的报文根据响应动作进行格式化封装后输出。
3.根据权利要求2所述的方法,其特征在于,所述的步骤2中,自定义规则的结构格式中包含的字段有规则ID、规则名称、规则协议、匹配条件和响应条件。
CN202011379687.6A 2020-11-30 2020-11-30 一种支持自定义规则的高速网络报文监测分析方法及系统 Active CN112468370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011379687.6A CN112468370B (zh) 2020-11-30 2020-11-30 一种支持自定义规则的高速网络报文监测分析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011379687.6A CN112468370B (zh) 2020-11-30 2020-11-30 一种支持自定义规则的高速网络报文监测分析方法及系统

Publications (2)

Publication Number Publication Date
CN112468370A true CN112468370A (zh) 2021-03-09
CN112468370B CN112468370B (zh) 2024-02-20

Family

ID=74805241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011379687.6A Active CN112468370B (zh) 2020-11-30 2020-11-30 一种支持自定义规则的高速网络报文监测分析方法及系统

Country Status (1)

Country Link
CN (1) CN112468370B (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671618A (zh) * 2021-03-15 2021-04-16 北京安帝科技有限公司 深度报文检测方法和装置
CN113313216A (zh) * 2021-07-30 2021-08-27 深圳市永达电子信息股份有限公司 网络数据的主体抽取方法、装置、电子设备及存储介质
CN113542450A (zh) * 2021-07-21 2021-10-22 北京威努特技术有限公司 一种工控防火墙支持ftp穿越nat的实现方法及系统
CN113760367A (zh) * 2021-09-10 2021-12-07 平安医疗健康管理股份有限公司 一种数据处理方法、装置、电子设备以及存储介质
CN113810237A (zh) * 2021-11-16 2021-12-17 北京安博通科技股份有限公司 一种网络设备配置合规性的检查方法
CN113938400A (zh) * 2021-08-27 2022-01-14 曙光网络科技有限公司 流表管理和维护的方法、设备以及存储介质
CN113947071A (zh) * 2021-10-21 2022-01-18 北京四方继保工程技术有限公司 一种变电站五防文件的解析执行系统及方法
CN113950088A (zh) * 2021-09-07 2022-01-18 浙江三维利普维网络有限公司 基站监测分析方法、装置、系统、电子装置及存储介质
CN114070761A (zh) * 2021-11-11 2022-02-18 北京轨道交通路网管理有限公司 协议报文检测方法、其装置及电子设备
CN114629970A (zh) * 2022-01-14 2022-06-14 华信咨询设计研究院有限公司 一种tcp/ip流量还原方法
CN114697273A (zh) * 2022-03-29 2022-07-01 杭州安恒信息技术股份有限公司 流量识别方法、装置、计算机设备和存储介质
CN115065496A (zh) * 2022-04-13 2022-09-16 山石网科通信技术股份有限公司 网络安全设备上的认证用户角色映射信息生成方法及装置
CN115134434A (zh) * 2022-06-17 2022-09-30 奇安信科技集团股份有限公司 会话连接的监控方法及装置
CN115225730A (zh) * 2022-07-05 2022-10-21 北京赛思信安技术股份有限公司 一种支持多任务的高并发离线数据包分析方法
CN115242691A (zh) * 2022-07-04 2022-10-25 中国电子科技集团公司第三十研究所 一种基于协议特征库的协议识别方法
CN115250254A (zh) * 2022-07-23 2022-10-28 杭州迪普科技股份有限公司 Netflow报文分发处理方法及装置
CN115277881A (zh) * 2022-06-17 2022-11-01 奇安信科技集团股份有限公司 网络报文解析方法及装置
CN115297191A (zh) * 2022-09-30 2022-11-04 成都云智北斗科技有限公司 一种多数据流服务器
CN115297183A (zh) * 2022-07-29 2022-11-04 天翼云科技有限公司 一种数据处理方法、装置、电子设备和存储介质
CN115396388A (zh) * 2022-08-15 2022-11-25 成都北中网芯科技有限公司 一种高效的基于np的网络处理装置
CN115473850A (zh) * 2022-09-14 2022-12-13 电信科学技术第十研究所有限公司 一种基于ai的实时数据过滤方法、系统及存储介质
CN115499332A (zh) * 2022-09-13 2022-12-20 科东(广州)软件科技有限公司 网络报文的监测方法、装置、设备及介质
CN115622818A (zh) * 2022-12-20 2023-01-17 北京微步在线科技有限公司 一种网络攻击数据处理方法及装置
CN116132187A (zh) * 2023-02-23 2023-05-16 北京京航计算通讯研究所 一种数据包过滤方法及系统
CN117596211A (zh) * 2024-01-18 2024-02-23 湖北省楚天云有限公司 Ip分片多核负载均衡装置及方法
CN115225730B (zh) * 2022-07-05 2024-05-31 北京赛思信安技术股份有限公司 一种支持多任务的高并发离线数据包分析方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917350A (zh) * 2010-09-13 2010-12-15 南京中兴特种软件有限责任公司 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法
CN102163232A (zh) * 2011-04-18 2011-08-24 国电南瑞科技股份有限公司 一种支持iec61850对象查询的sql接口实现方法
CN103281213A (zh) * 2013-04-18 2013-09-04 西安交通大学 一种网络流量内容提取和分析检索方法
US20180288126A1 (en) * 2017-03-28 2018-10-04 Indigovision Limited Monitoring devices and methods for ip surveillance networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917350A (zh) * 2010-09-13 2010-12-15 南京中兴特种软件有限责任公司 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法
CN102163232A (zh) * 2011-04-18 2011-08-24 国电南瑞科技股份有限公司 一种支持iec61850对象查询的sql接口实现方法
CN103281213A (zh) * 2013-04-18 2013-09-04 西安交通大学 一种网络流量内容提取和分析检索方法
US20180288126A1 (en) * 2017-03-28 2018-10-04 Indigovision Limited Monitoring devices and methods for ip surveillance networks

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671618A (zh) * 2021-03-15 2021-04-16 北京安帝科技有限公司 深度报文检测方法和装置
CN113542450A (zh) * 2021-07-21 2021-10-22 北京威努特技术有限公司 一种工控防火墙支持ftp穿越nat的实现方法及系统
CN113313216A (zh) * 2021-07-30 2021-08-27 深圳市永达电子信息股份有限公司 网络数据的主体抽取方法、装置、电子设备及存储介质
CN113313216B (zh) * 2021-07-30 2021-11-30 深圳市永达电子信息股份有限公司 网络数据的主体抽取方法、装置、电子设备及存储介质
CN113938400A (zh) * 2021-08-27 2022-01-14 曙光网络科技有限公司 流表管理和维护的方法、设备以及存储介质
CN113938400B (zh) * 2021-08-27 2023-06-27 曙光网络科技有限公司 流表管理和维护的方法、设备以及存储介质
CN113950088A (zh) * 2021-09-07 2022-01-18 浙江三维利普维网络有限公司 基站监测分析方法、装置、系统、电子装置及存储介质
CN113950088B (zh) * 2021-09-07 2024-01-23 浙江三维利普维网络有限公司 基站监测分析方法、装置、系统、电子装置及存储介质
CN113760367A (zh) * 2021-09-10 2021-12-07 平安医疗健康管理股份有限公司 一种数据处理方法、装置、电子设备以及存储介质
CN113760367B (zh) * 2021-09-10 2024-05-14 深圳平安医疗健康科技服务有限公司 一种数据处理方法、装置、电子设备以及存储介质
CN113947071A (zh) * 2021-10-21 2022-01-18 北京四方继保工程技术有限公司 一种变电站五防文件的解析执行系统及方法
CN114070761A (zh) * 2021-11-11 2022-02-18 北京轨道交通路网管理有限公司 协议报文检测方法、其装置及电子设备
CN114070761B (zh) * 2021-11-11 2023-09-26 北京轨道交通路网管理有限公司 协议报文检测方法、其装置及电子设备
CN113810237A (zh) * 2021-11-16 2021-12-17 北京安博通科技股份有限公司 一种网络设备配置合规性的检查方法
CN113810237B (zh) * 2021-11-16 2022-02-15 北京安博通科技股份有限公司 一种网络设备配置合规性的检查方法
CN114629970A (zh) * 2022-01-14 2022-06-14 华信咨询设计研究院有限公司 一种tcp/ip流量还原方法
CN114697273A (zh) * 2022-03-29 2022-07-01 杭州安恒信息技术股份有限公司 流量识别方法、装置、计算机设备和存储介质
CN115065496B (zh) * 2022-04-13 2024-05-07 山石网科通信技术股份有限公司 网络安全设备上的认证用户角色映射信息生成方法及装置
CN115065496A (zh) * 2022-04-13 2022-09-16 山石网科通信技术股份有限公司 网络安全设备上的认证用户角色映射信息生成方法及装置
CN115277881A (zh) * 2022-06-17 2022-11-01 奇安信科技集团股份有限公司 网络报文解析方法及装置
CN115134434A (zh) * 2022-06-17 2022-09-30 奇安信科技集团股份有限公司 会话连接的监控方法及装置
CN115242691A (zh) * 2022-07-04 2022-10-25 中国电子科技集团公司第三十研究所 一种基于协议特征库的协议识别方法
CN115242691B (zh) * 2022-07-04 2023-05-19 中国电子科技集团公司第三十研究所 一种基于协议特征库的协议识别方法
CN115225730B (zh) * 2022-07-05 2024-05-31 北京赛思信安技术股份有限公司 一种支持多任务的高并发离线数据包分析方法
CN115225730A (zh) * 2022-07-05 2022-10-21 北京赛思信安技术股份有限公司 一种支持多任务的高并发离线数据包分析方法
CN115250254A (zh) * 2022-07-23 2022-10-28 杭州迪普科技股份有限公司 Netflow报文分发处理方法及装置
CN115250254B (zh) * 2022-07-23 2024-03-08 杭州迪普科技股份有限公司 Netflow报文分发处理方法及装置
CN115297183A (zh) * 2022-07-29 2022-11-04 天翼云科技有限公司 一种数据处理方法、装置、电子设备和存储介质
CN115297183B (zh) * 2022-07-29 2023-11-03 天翼云科技有限公司 一种数据处理方法、装置、电子设备和存储介质
CN115396388A (zh) * 2022-08-15 2022-11-25 成都北中网芯科技有限公司 一种高效的基于np的网络处理装置
CN115499332A (zh) * 2022-09-13 2022-12-20 科东(广州)软件科技有限公司 网络报文的监测方法、装置、设备及介质
CN115499332B (zh) * 2022-09-13 2023-12-15 科东(广州)软件科技有限公司 网络报文的监测方法、装置、设备及介质
CN115473850A (zh) * 2022-09-14 2022-12-13 电信科学技术第十研究所有限公司 一种基于ai的实时数据过滤方法、系统及存储介质
CN115473850B (zh) * 2022-09-14 2024-01-05 电信科学技术第十研究所有限公司 一种基于ai的实时数据过滤方法、系统及存储介质
CN115297191A (zh) * 2022-09-30 2022-11-04 成都云智北斗科技有限公司 一种多数据流服务器
CN115622818A (zh) * 2022-12-20 2023-01-17 北京微步在线科技有限公司 一种网络攻击数据处理方法及装置
CN115622818B (zh) * 2022-12-20 2023-04-21 北京微步在线科技有限公司 一种网络攻击数据处理方法及装置
CN116132187A (zh) * 2023-02-23 2023-05-16 北京京航计算通讯研究所 一种数据包过滤方法及系统
CN116132187B (zh) * 2023-02-23 2024-05-14 北京京航计算通讯研究所 一种数据包过滤方法及系统
CN117596211A (zh) * 2024-01-18 2024-02-23 湖北省楚天云有限公司 Ip分片多核负载均衡装置及方法
CN117596211B (zh) * 2024-01-18 2024-04-05 湖北省楚天云有限公司 Ip分片多核负载均衡装置及方法

Also Published As

Publication number Publication date
CN112468370B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
CN112468370A (zh) 一种支持自定义规则的高速网络报文监测分析方法及系统
US7685637B2 (en) System security approaches using sub-expression automata
EP2215565B1 (en) Deterministic finite automata (dfa) graph compression
US20110016154A1 (en) Profile-based and dictionary based graph caching
US20090138440A1 (en) Method and apparatus for traversing a deterministic finite automata (DFA) graph compression
CN114157502B (zh) 一种终端识别方法、装置、电子设备及存储介质
CN103281213A (zh) 一种网络流量内容提取和分析检索方法
US7216364B2 (en) System security approaches using state tables
CN110768875A (zh) 一种基于dns学习的应用识别方法及系统
EP1744235A1 (en) Method and system for virus detection based on finite automata
CN112507336A (zh) 基于代码特征和流量行为的服务端恶意程序检测方法
CN103324886A (zh) 一种网络攻击检测中指纹库的提取方法和系统
Aldwairi et al. n‐Grams exclusion and inclusion filter for intrusion detection in Internet of Energy big data systems
CN115913655B (zh) 一种基于流量分析和语义分析的Shell命令注入检测方法
CN116170227A (zh) 一种流量异常的检测方法、装置、电子设备及存储介质
CN115168857B (zh) 恶意软件检测优化方法、系统、终端及存储介质
CN113382003B (zh) 一种基于两级过滤器的rtsp混合入侵检测方法
CN108650229A (zh) 一种网络应用行为解析还原方法及系统
CN114510717A (zh) 一种elf文件的检测方法、装置、存储介质
Swetha et al. Network data analysis using spark
CN110336817B (zh) 一种基于TextRank的未知协议帧定位方法
CN111835660A (zh) 一种深度数据包检测方法及装置
Boillat DDoSGrid-Mining: Analyzing and Classifying DDoS Attack Traffic
CN118101308A (zh) 一种加速机器学习特征工程的方法、系统及电子设备
CN114070819B (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