CN113381993A - 深度报文检测系统及其检测方法、计算机设备和存储介质 - Google Patents
深度报文检测系统及其检测方法、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113381993A CN113381993A CN202110637419.8A CN202110637419A CN113381993A CN 113381993 A CN113381993 A CN 113381993A CN 202110637419 A CN202110637419 A CN 202110637419A CN 113381993 A CN113381993 A CN 113381993A
- Authority
- CN
- China
- Prior art keywords
- message
- matching
- application layer
- detected
- detection
- 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.)
- Pending
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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种深度报文检测系统及其检测方法、计算机设备和存储介质。深度报文检测系统包括部署于Linux操作系统的匹配表项获取模块和报文检测模块,报文检测模块基于快速数据通路运行;匹配表项获取模块用于获取待匹配的目标字符串对应的匹配表项;报文检测模块用于读取待检测报文,根据匹配表项对待检测报文进行匹配检测。应用本申请,可以解决传统深度报文检测技术在云计算、容器等场景下存在的问题,提高报文检测性能,降低额外延迟和开销。
Description
技术领域
本申请涉及互联网技术领域,特别是设计一种深度报文检测系统及其检测方法、计算机设备和存储介质。
背景技术
深度报文检测(Deep Packet Inspection,DPI)技术在传统的网络协议报头数据检测技术之上,增加了对应用层数据的检测和识别。通过检测报文应用层数据中是否包含特定的字符串,深度报文检测技术可以用来识别网络入侵、垃圾邮件、病毒感染等攻击行为,是一种得到广泛应用的网络安全基础技术。
目前的DPI系统一般都位于网络中,在诸如专有网络中间件、网络功能虚拟化设备中实现。随着云计算的兴起和容器、函数计算等技术范式的出现,现有位于网络中的DPI系统暴露出不少缺陷。首先,目前DPI系统常用的经典匹配算法是Aho-Corasick(AC)算法,AC算法的匹配性能,和需要匹配的字符串数量密切相关;需要匹配的字符串数量越多,AC算法生成的AC自动机越大,每次报文载荷查询AC自动机时造成的缓存竞争也就越严重,AC算法的性能就越差,从而DPI系统的性能越大。而网络中的DPI系统可能至少需要服务数台物理服务器上成百上千个容器,匹配的规则数量非常庞大,因此存在检测性能差的问题。其次,目前网络中的DPI系统为了检测同一物理服务器上不同容器之间的通信,这些待检测的内容必须送到网络中的DPI系统上,这将来回穿越几遍物理服务器上的操作系统上的内核协议栈,会带来额外的延迟和开销。
发明内容
本申请要解决的技术问题是:现有技术中报文检测性能差、会带来额外延迟和开销的问题。
为解决上述技术问题,本申请提供了一种深度报文检测系统及其检测方法、计算机设备和存储介质。
一种深度报文检测系统,包括部署于Linux操作系统的匹配表项获取模块和报文检测模块,所述报文检测模块基于快速数据通路运行;
所述匹配表项获取模块用于获取待匹配的目标字符串对应的匹配表项;
所述报文检测模块用于读取待检测报文,根据所述匹配表项对所述待检测报文进行匹配检测。
在其中一个实施例中,所述匹配表项获取模块包括:
字符串获取单元,用于获取待匹配的目标字符串的集合;
自动机生成单元,用于采用AC算法根据所述集合构造出包括多条边的AC自动机;
转换单元,用于将AC自动机中的每一条边按照预设格式转换为包括起始状态和目的状态的匹配表项。
在其中一个实施例中,所述匹配表项获取模块还包括表项存储单元,用于将所述匹配表项存储于BPF映射中。
在其中一个实施例中,所述报文检测模块包括报文头部解析单元和应用层数据检查单元;
所述报文头部解析单元用于读取并解析所述待检测报文的报文头部,得到报文头部长度信息;
所述应用层数据检查单元基于所述报文头部长度信息确定所述待检测报文中应用层数据的起始位置,从所述起始位置开始读取所述应用层数据,并根据所述匹配表项对所述应用层数据进行匹配检测。
在其中一个实施例中,所述报文头部解析单元采用指针方式读取所述待检测报文的头部;所述应用层数据检查单元采用指针方式读取所述待检测报文的应用层数据。
在其中一个实施例中,所述从所述起始位置开始读取所述应用层数据,并根据所述匹配表项对所述应用层数据进行匹配检测,包括:
从所述起始位置开始读取所述应用层数据中预设长度的一段数据;
基于所述匹配表项对读取的数据进行匹配检测;
根据检测得到的信息生成用于指示下一段数据的起始位置的元数据;
解析所述元数据得到新的起始位置,返回所述从所述起始位置开始读取所述应用层数据中预设长度的一段数据的步骤进行循环,直到所述应用层数据检测完毕。
在其中一个实施例中,所述报文检测模块还用于在匹配检测通过时,将所述待检测报文传输至对应的容器,在匹配检测不通过时,丢弃所述待检测报文。
一种深度报文检测方法,包括:
匹配表项获取模块获取待匹配的目标字符串对应的匹配表项;其中,所述匹配表项所述模块部署于Linux操作系统;
报文检测模块读取待检测报文,根据所述匹配表项对所述待检测报文进行匹配检测;其中,所述报文检测模块部署于Linux操作系统且基于快速数据通路运行。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
匹配表项获取模块获取待匹配的目标字符串对应的匹配表项;其中,所述匹配表项所述模块部署于Linux操作系统;
报文检测模块读取待检测报文,根据所述匹配表项对所述待检测报文进行匹配检测;其中,所述报文检测模块部署于Linux操作系统且基于快速数据通路运行。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
匹配表项获取模块获取待匹配的目标字符串对应的匹配表项;其中,所述匹配表项所述模块部署于Linux操作系统;
报文检测模块读取待检测报文,根据所述匹配表项对所述待检测报文进行匹配检测;其中,所述报文检测模块部署于Linux操作系统且基于快速数据通路运行。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:通过部署于Linux操作系统、报文检测模块基于快速数据通路运行,使得在Linux操作系统的快速通路中实现检测逻辑。这样一方面,深度报文检测系统只用负责检测自己所在的物理服务器上的容器,相比于网络上的DPI系统服务于数台物理服务器,需要匹配的字符串数量大大减少,通过化整为零的方式提高了报文检测性能。另一方面,同一物理服务器上不同容器的检测可以在物理服务器内部完成,不需要出Linux操作系统导到外部的网络设备中,大大降低了导流导致来回穿越内核协议栈带来额外延迟和开销。
应用本申请,可以解决传统深度报文检测技术在云计算、容器等场景下存在的问题,提高报文检测性能,降低额外延迟和开销。
附图说明
通过结合附图阅读下文示例性实施例的详细描述可更好地理解本公开的范围。其中所包括的附图是:
图1为一个实施例中深度报文检测系统的结构示意图;
图2为一个实施例中深度报文检测系统的应用逻辑示意图;
图3为一个实施例中深度报文检测方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,以下将结合附图及实施例来详细说明本申请的实施方法,借此对本申请如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
如图1所示,在一个实施例中,提供了一种深度报文检测系统,部署于Linux操作系统,包括部署于Linux操作系统的匹配表项获取模块110和部署于Linux操作系统的报文检测模块130。匹配表项获取模块110用于获取待匹配的目标字符串对应的匹配表项。报文检测模块130用于读取待检测报文,根据匹配表项对待检测报文进行匹配检测。
其中,待匹配的目标字符串是需要匹配到的字符串,可以由用户通过输入装置进行输入。具体地,目标字符串可以是一个,也可以是多个。其中,待检测报文是需要进行匹配检测的报文;报文检测模块130以匹配表项为匹配的参考对象,对待检测报文进行匹配检测。具体地,报文检测模块130可以检测待检测报文的应用层数据是否与匹配表项所对应的目标字符串匹配。
其中,报文检测模块130基于快速数据通路运行。具体地,报文检测模块130采用eBPF程序实现。
快速数据通路(eXpress Data Path,XDP)技术允许开发人员将eBPF(extendedBerkeley Packet Filter)程序附加到Linux内核中由网络设备驱动实现的低级别钩子上,实现了eBPF程序在Linux内核中的直接运行。这些程序在内核协议栈接收数据包之前执行,实现了在硬件收到数据包后的最早时间点处理。内核通过在加载时对自定义程序进行静态验证来确保其安全性;程序被动态编译为本机指令以确保高性能。XDP不仅允许数据包处理进入操作系统以获得最高性能,也允许加载到内核中的程序有选择地将数据包重定向到特殊的用户空间套接字类型,从而绕过正常的网络协议堆栈,甚至可以在零拷贝模式下操作以进一步降低开销。这种操作模式与Netmap和PF_RING等框架使用的方法非常相似,它们通过降低从网络设备向用户空间应用程序传输数据包数据的开销而不完全绕过内核,从而提供高数据包处理性能。通过提供安全的执行环境和内核社区的支持,XDP大大降低了应用程序将处理移入内核的成本,从而提供了与内核向用户空间公开的所有其他接口相同的API(Application Programming Interface,应用程序接口)稳定性保证。此外,XDP程序可以完全绕过内核网络协议栈,这提供了比需要挂接到现有内核网络协议栈的传统内核模块更高的性能。在一个典型的XDP程序中,有四个最主要的模块:(1)XDP驱动挂载点,它是XDP程序的主要入口,在数据包从硬件收到后被执行;(2)eBPF虚拟机,它执行XDP程序的字节码,并即时编译它以提高性能;(3)BPF映射,它是一种键值存储,是XDP程序和操作系统其余部分的主要通信信道;(4)eBPF验证器,它在加载程序之前静态验证程序,以确保它们不会崩溃或损坏正在运行的内核。总之,XDP代表了Linux操作系统中一种高性能数据包处理方法,虽然它建立在以前的方法的基础上,但它在性能、系统集成和灵活性之间提供了一种新的权衡。XDP为实现很多高性能可定制的应用逻辑提供了很好的机遇。
上述深度报文检测系统中,报文检测模块130根据匹配表项获取模块110生成的对应目标字符串的匹配表项,对待检测报文进行匹配检测,通过部署于Linux操作系统、报文检测模块130基于快速数据通路运行,使得在Linux操作系统的快速通路中实现检测逻辑。这样一方面,深度报文检测系统只用负责检测自己所在的物理服务器上的容器,相比于网络上的DPI系统服务于数台物理服务器,需要匹配的字符串数量大大减少,通过化整为零的方式提高了报文检测性能。另一方面,同一物理服务器上不同容器的检测可以在物理服务器内部完成,不需要出Linux操作系统导到外部的网络设备中,大大降低了导流导致来回穿越内核协议栈带来额外延迟和开销。因此,可以解决传统深度报文检测技术在云计算、容器等场景下存在的问题,提高报文检测性能,降低额外延迟和开销。
在其中一个实施例中,匹配表项获取模块110包括字符串获取单元(图未示)、自动机生成单元(图未示)和转换单元(图未示)。其中,字符串获取单元用于获取待匹配的目标字符串的集合;自动机生成单元用于采用AC算法根据集合构造出包括多条边的AC自动机;转换单元用于将AC自动机中的每一条边按照预设格式转换为包括起始状态和目的状态的匹配表项。
目标字符串的集合包括一个或多个目标字符串。自动机生成单元以需要匹配的目标字符串的集合为输入,通过经典的AC算法构造出AC自动机。AC自动机的一条边是从一个起始状态经过一个字符串到达一个目的状态;具体地,转换单元可以将AC自动机的每一条边转换为“(起始状态+字符)-(目的状态)”的匹配表项。通过采用AC算法根据目标字符串生成AC自动机,基于AC自动机生成匹配表项,便于匹配检测时使用。
在其中一个实施例中,匹配表项获取模块110还包括表项存储单元(图未示),用于将匹配表项存储于BPF映射中。
BPF映射可以被eBPF程序访问。具体地,表项存储单元可以将匹配表项填入到BPF_MAP_TYPE_ARRAY类型的BPF映射中。通过将匹配表项存储于BPF映射,基于快速数据通路运行的报文检测模块130可以从BPF映射中读取匹配表项,方便匹配检测。
具体地,匹配表项获取模块110运行于Linux操作系统的用户空间。运行在用户空间的匹配表项获取模块110,与运行在Linux操作系统快速数据通路上的报文检测模块130通过BPF映射进行交互。
在其中一个实施例中,报文检测模块130包括报文头部解析单元(图未示)和应用层数据检查单元(图未示)。报文头部解析单元用于读取并解析待检测报文的报文头部,得到报文头部长度信息。应用层数据检查单元基于报文头部长度信息确定待检测报文中应用层数据的起始位置,从起始位置开始读取应用层数据,并根据匹配表项对应用层数据进行匹配检测。
其中,报文头部长度信息用于说明指报文头部的长度;应用层数据检查单元根据报文头部长度信息可以确定应用层数据的起始位置。采用报文头部解析单元和应用层数据检查单元,运行在Linux操作系统快速数据通路上的报文检测模块130主要有两块逻辑,一个是解析待检测报文的报文头部,另一个是检查待检测报文的应用层数据,解析报文头部的逻辑相对简单,检查应用层数据则需要一个字节一个字节的匹配检测。通过逻辑分块分别进行头部解析和数据匹配,优化处理,容易实现。
具体地,报文头部解析单元和应用层数据检查单元都采用eBPF程序实现。解析报文头部和检查应用层数据的两个eBPF程序之间需要传递已经解析的报文头部的长度,这样检查应用层数据的eBPF程序才能确定应用层数据的起始位置。
在其中一个实施例中,报文头部解析单元采用指针方式读取待检测报文的头部;应用层数据检查单元采用指针方式读取待检测报文的应用层数据。
一个报文会占据机器里的一段存储,传统简单的解析和匹配检测过程中是把数据拷贝一份出来操作,但是这样开销很大,因为拷贝不仅要占用额外的存储,还会浪费CPU资源。本实施例中,对报文头部的解析和应用层数据的匹配检测操作都是使用基于指针的内存直接读写完成,采取指针操作,不需要拷贝数据,可以避免不必要的拷贝,从而大大降低开销。
在其中一个实施例中,应用层数据检查单元从起始位置开始读取应用层数据,并根据匹配表项对应用层数据进行匹配检测的操作,包括:
步骤(a1):从起始位置开始读取应用层数据中预设长度的一段数据。
其中,预设长度是字节长度,可以根据eBPF程序允许的长度进行设置。
步骤(a2):基于匹配表项对读取的数据进行匹配检测。
步骤(a3):根据检测得到的信息生成用于指示下一段数据的起始位置的元数据。
检测得到的信息包括用于指示下一段数据的起始位置的信息,其中,下一段数据为当前检测的一段数据之后的数据。具体地,检测得到的信息包括AC自动机的当前状态和已经检查过的报文长度信息。将检测得到的信息封装在元数据内,方便信息传递。例如,可以使用bpf_xdp_adjust_meta函数来增加元数据,并把信息封装在元数据中。
例如,以指针方式读取数据为例,每一次检测完一段数据,指针会到达内存的某个位置(也就是待检测报文的某个位置),需要把这个位置信息封装到元数据,以传递到检测下一段数据的程序。
(a4):解析元数据得到新的起始位置,返回步骤(a1)进行循环,直到应用层数据检测完毕。
解析元数据得到新的起始位置之后,返回步骤(a1),从前一段数据之后新的起始位置开始读取下一段数据,基于匹配表项对下一段数据进行匹配检测,根据检测得到的信息生成用于指示之后的一段数据的起始位置的元数据,再解析元数据得到新的起始位置,如此循环,直到待检测报文的应用层数据检测完毕。具体地,可以是在步骤(a2)之后、步骤(a3)之前,判断应用层数据是否检测完毕,若检测完毕,则不执行步骤(a3),否则,继续执行步骤(a3)以进行循环,从而避免不必要的元数据生成。
应用层数据检查单元采用eBPF程序实现。由于eBPF验证器对单个eBPF程序的长度限制,无法在一个函数内执行完所有的应用层数据检测逻辑。为此,设计了eBPF的尾调用机制,该机制能够将控制权从一个eBPF程序转移到另外一个eBPF程序,而且再也不返回。基于此,设计了BPF_MAP_TYPE_PROG_ARRAY类型的BPF映射。解析报文头部的eBPF程序首先通过尾调用将控制权转移到检查应用层数据的eBPF程序,之后检查应用层数据的eBPF程序再通过尾调用的BPF映射来切换下一次的应用层数据检查的eBPF程序,直到所有的应用层数据检查结束。由于所有执行应用数据检查的eBPF程序其逻辑完全相同,只是程序运行参数不同,因此可以采取类似于函数迭代的尾调用使其跳到同一eBPF程序。具体地,对于检查相邻的应用层数据片段的“两”个eBPF程序,前一程序在尾调用后一程序时则需要传递AC自动机的当前状态和已经检查过的报文长度信息,这样后一程序才能继续确定下一片段应用层数据的起始位置以完成检查并且保证AC自动机的正确执行,使得不出现待检测报文中某一位的重复匹配、漏匹配等事件。为此,采用元数据传递AC自动机的当前状态和已经检查过的报文长度信息,元数据是“两”个eBPF程序之间传递信息的通道。
在其中一个实施例中,报文检测模块130还用于在匹配检测通过时,将待检测报文传输至对应的容器,在匹配检测不通过时,丢弃待检测报文。
容器是深度报文检测系统所在的物理服务器上的容器。将检测通过的待检测报文传输至对应的容器,以便容器对待检测报文进行处理;对于检测不通过的待检测报文,进行丢弃,防止网络入侵、垃圾邮件、病毒感染等攻击行为。
如图2所示,Linux操作系统快速数据通路上的深度报文检测系统,即XDPI,主要分为两部分逻辑,一部分是运行在用户空间的匹配表项构造过程,另一部分是运行在Linux快速数据通路上的报文解析和匹配逻辑;两部分通过BPF映射进行交互。eBPF程序0用于实现对待检测报文的报文头部解析,eBPF程序1用于根据匹配表项实现对待检测报文的应用层数据进行匹配检测;解析报文头部的eBPF程序0首先通过尾调用将控制权转移到检查应用层数据的eBPF程序1,eBPF程序1通过尾调用的BPF映射来切换下一次的应用层数据检查的eBPF程序1,直到所有的应用层数据检查结束。通过检测的待检测报文传输至对应的容器,未通过检测的报文可以丢弃。
上述深度报文检测系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图3所示,在一个实施例中,提供了一种深度报文检测方法,包括:
S310:匹配表项获取模块获取待匹配的目标字符串对应的匹配表项。
其中,匹配表项模块部署于Linux操作系统。
S330:报文检测模块读取待检测报文,根据匹配表项对待检测报文进行匹配检测。
其中,报文检测模块部署于Linux操作系统且基于快速数据通路运行。
上述深度报文检测方法中,报文检测模块根据匹配表项获取模块生成的对应目标字符串的匹配表项,对待检测报文进行匹配检测,通过部署于Linux操作系统、报文检测模块基于快速数据通路运行,使得在Linux操作系统的快速通路中实现检测逻辑。这样一方面,深度报文检测系统只用负责检测自己所在的物理服务器上的容器,相比于网络上的DPI系统服务于数台物理服务器,需要匹配的字符串数量大大减少,通过化整为零的方式提高了报文检测性能。另一方面,同一物理服务器上不同容器的检测可以在物理服务器内部完成,不需要出Linux操作系统导到外部的网络设备中,大大降低了导流导致来回穿越内核协议栈带来额外延迟和开销。因此,可以解决传统深度报文检测技术在云计算、容器等场景下存在的问题,提高报文检测性能,降低额外延迟和开销。
在其中一个实施例中,步骤S310包括:匹配表项获取模块获取待匹配的目标字符串的集合;采用AC算法根据集合构造出包括多条边的AC自动机;将AC自动机中的每一条边按照预设格式转换为包括起始状态和目的状态的匹配表项。通过采用AC算法根据目标字符串生成AC自动机,基于AC自动机生成匹配表项,便于匹配检测时使用。
在其中一个实施例中,步骤S310之后、步骤S330之前,还包括步骤:匹配表项获取模块将匹配表项存储于BPF映射中。通过将匹配表项存储于BPF映射,基于快速数据通路运行的报文检测模块可以从BPF映射中读取匹配表项,方便匹配检测。
具体地,匹配表项获取模块运行于Linux操作系统的用户空间。
在其中一个实施例中,步骤S330包括:报文检测模块读取并解析待检测报文的报文头部,得到报文头部长度信息;基于报文头部长度信息确定待检测报文中应用层数据的起始位置,从起始位置开始读取应用层数据,并根据匹配表项对应用层数据进行匹配检测。通过逻辑分块分别进行头部解析和数据匹配,优化处理,容易实现。
在其中一个实施例中,从起始位置开始读取应用层数据,并根据匹配表项对应用层数据进行匹配检测的操作的步骤,包括:从起始位置开始读取应用层数据中预设长度的一段数据;基于匹配表项对读取的数据进行匹配检测;根据检测得到的信息生成用于指示下一段数据的起始位置的元数据;解析元数据得到新的起始位置,返回从起始位置开始读取应用层数据中预设长度的一段数据的步骤进行循环,直到应用层数据检测完毕。
在其中一个实施例中,步骤S330之后还包括:报文检测模块在匹配检测通过时,将待检测报文传输至对应的容器,在匹配检测不通过时,丢弃待检测报文。
应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
关于深度报文检测方法的具体限定可以参见上文中对于深度报文检测系统的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各实施例中方法的步骤。
上述计算机设备,由于可以实现上述各实施例中方法的步骤,同理,可以提高报文检测性能,降低额外延迟和开销。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例中方法的步骤。
上述计算机可读存储介质,由于可以实现上述各实施例中方法的步骤,同理,可以提高报文检测性能,降低额外延迟和开销。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
虽然本申请所公开的实施方式如上,但所述的内容只是为了便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属技术领域内的技术人员,在不脱离本申请所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本申请的保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种深度报文检测系统,其特征在于,包括部署于Linux操作系统的匹配表项获取模块和报文检测模块,所述报文检测模块基于快速数据通路运行;
所述匹配表项获取模块用于获取待匹配的目标字符串对应的匹配表项;
所述报文检测模块用于读取待检测报文,根据所述匹配表项对所述待检测报文进行匹配检测。
2.根据权利要求1所述的系统,其特征在于,所述匹配表项获取模块包括:
字符串获取单元,用于获取待匹配的目标字符串的集合;
自动机生成单元,用于采用AC算法根据所述集合构造出包括多条边的AC自动机;
转换单元,用于将AC自动机中的每一条边按照预设格式转换为包括起始状态和目的状态的匹配表项。
3.根据权利要求2所述的系统,其特征在于,所述匹配表项获取模块还包括表项存储单元,用于将所述匹配表项存储于BPF映射中。
4.根据权利要求1-3中任意一项所述的系统,其特征在于,所述报文检测模块包括报文头部解析单元和应用层数据检查单元;
所述报文头部解析单元用于读取并解析所述待检测报文的报文头部,得到报文头部长度信息;
所述应用层数据检查单元基于所述报文头部长度信息确定所述待检测报文中应用层数据的起始位置,从所述起始位置开始读取所述应用层数据,并根据所述匹配表项对所述应用层数据进行匹配检测。
5.根据权利要求4所述的系统,其特征在于,所述报文头部解析单元采用指针方式读取所述待检测报文的头部;所述应用层数据检查单元采用指针方式读取所述待检测报文的应用层数据。
6.根据权利要求4所述的系统,其特征在于,所述从所述起始位置开始读取所述应用层数据,并根据所述匹配表项对所述应用层数据进行匹配检测,包括:
从所述起始位置开始读取所述应用层数据中预设长度的一段数据;
基于所述匹配表项对读取的数据进行匹配检测;
根据检测得到的信息生成用于指示下一段数据的起始位置的元数据;
解析所述元数据得到新的起始位置,返回所述从所述起始位置开始读取所述应用层数据中预设长度的一段数据的步骤进行循环,直到所述应用层数据检测完毕。
7.根据权利要求1所述的系统,其特征在于,所述报文检测模块还用于在匹配检测通过时,将所述待检测报文传输至对应的容器,在匹配检测不通过时,丢弃所述待检测报文。
8.一种深度报文检测方法,其特征在于,包括:
匹配表项获取模块获取待匹配的目标字符串对应的匹配表项;其中,所述匹配表项所述模块部署于Linux操作系统;
报文检测模块读取待检测报文,根据所述匹配表项对所述待检测报文进行匹配检测;其中,所述报文检测模块部署于Linux操作系统且基于快速数据通路运行。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求8所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求8所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110637419.8A CN113381993A (zh) | 2021-06-08 | 2021-06-08 | 深度报文检测系统及其检测方法、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110637419.8A CN113381993A (zh) | 2021-06-08 | 2021-06-08 | 深度报文检测系统及其检测方法、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113381993A true CN113381993A (zh) | 2021-09-10 |
Family
ID=77576481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110637419.8A Pending CN113381993A (zh) | 2021-06-08 | 2021-06-08 | 深度报文检测系统及其检测方法、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113381993A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024758A (zh) * | 2021-11-09 | 2022-02-08 | 清华大学 | 流量特征提取方法、系统、存储介质及电子设备 |
CN114039789A (zh) * | 2021-11-17 | 2022-02-11 | 北京天融信网络安全技术有限公司 | 流量防护方法及电子设备、存储介质 |
CN114900350A (zh) * | 2022-04-29 | 2022-08-12 | 北京元数智联技术有限公司 | 报文传输方法、装置、设备、存储介质及程序产品 |
CN115174451A (zh) * | 2022-07-19 | 2022-10-11 | 中国工商银行股份有限公司 | 报文加密检测方法、装置、设备、存储介质和程序产品 |
CN115296878A (zh) * | 2022-07-27 | 2022-11-04 | 天翼云科技有限公司 | 一种报文检测方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170208037A1 (en) * | 2014-06-23 | 2017-07-20 | Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. | Method and system for providing deep packet inspection as a service |
CN112015575A (zh) * | 2020-08-28 | 2020-12-01 | 北京浪潮数据技术有限公司 | 一种报文处理方法、装置及相关设备 |
CN112784127A (zh) * | 2021-03-12 | 2021-05-11 | 清华大学 | 多字符串模式匹配方法、装置、计算机设备及存储介质 |
-
2021
- 2021-06-08 CN CN202110637419.8A patent/CN113381993A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170208037A1 (en) * | 2014-06-23 | 2017-07-20 | Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. | Method and system for providing deep packet inspection as a service |
CN112015575A (zh) * | 2020-08-28 | 2020-12-01 | 北京浪潮数据技术有限公司 | 一种报文处理方法、装置及相关设备 |
CN112784127A (zh) * | 2021-03-12 | 2021-05-11 | 清华大学 | 多字符串模式匹配方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
GUANYU LI等: "《IEEE Xplore》", 31 December 2019 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024758A (zh) * | 2021-11-09 | 2022-02-08 | 清华大学 | 流量特征提取方法、系统、存储介质及电子设备 |
CN114039789A (zh) * | 2021-11-17 | 2022-02-11 | 北京天融信网络安全技术有限公司 | 流量防护方法及电子设备、存储介质 |
CN114039789B (zh) * | 2021-11-17 | 2023-11-14 | 北京天融信网络安全技术有限公司 | 流量防护方法及电子设备、存储介质 |
CN114900350A (zh) * | 2022-04-29 | 2022-08-12 | 北京元数智联技术有限公司 | 报文传输方法、装置、设备、存储介质及程序产品 |
CN114900350B (zh) * | 2022-04-29 | 2024-02-20 | 北京元数智联技术有限公司 | 报文传输方法、装置、设备、存储介质及程序产品 |
CN115174451A (zh) * | 2022-07-19 | 2022-10-11 | 中国工商银行股份有限公司 | 报文加密检测方法、装置、设备、存储介质和程序产品 |
CN115174451B (zh) * | 2022-07-19 | 2024-02-27 | 中国工商银行股份有限公司 | 报文加密检测方法、装置、设备和存储介质 |
CN115296878A (zh) * | 2022-07-27 | 2022-11-04 | 天翼云科技有限公司 | 一种报文检测方法、装置、电子设备及存储介质 |
CN115296878B (zh) * | 2022-07-27 | 2023-11-03 | 天翼云科技有限公司 | 一种报文检测方法、装置、电子设备及存储介质 |
WO2024021479A1 (zh) * | 2022-07-27 | 2024-02-01 | 天翼云科技有限公司 | 一种报文检测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113381993A (zh) | 深度报文检测系统及其检测方法、计算机设备和存储介质 | |
US11010681B2 (en) | Distributed computing system, and data transmission method and apparatus in distributed computing system | |
US10931734B2 (en) | Method and system for file transfer over a messaging infrastructure | |
US8681819B2 (en) | Programmable multifield parser packet | |
EP2525545B1 (en) | Method and device for pattern matching in a deep packet inspection (dpi) device | |
US20090113550A1 (en) | Automatic Filter Generation and Generalization | |
US20050278781A1 (en) | System security approaches using sub-expression automata | |
CN112558948A (zh) | 一种海量流量下报文识别的方法和装置 | |
US9398117B2 (en) | Protocol data unit interface | |
US8543528B2 (en) | Exploitation of transition rule sharing based on short state tags to improve the storage efficiency | |
WO2015009542A1 (en) | Semantics-oriented analysis of log message content | |
CN111935081B (zh) | 一种数据包脱敏方法和装置 | |
US10579799B2 (en) | System and method for execution of objects lacking rules of interpretation | |
CN111159709A (zh) | 一种文件类型识别方法、装置、设备及存储介质 | |
CN113835870A (zh) | 数据处理方法及系统 | |
CN111355696A (zh) | 一种报文识别方法、装置、dpi设备及存储介质 | |
CN105404635A (zh) | 字符串匹配的方法、设备和异构计算系统 | |
CN116743619B (zh) | 网络服务的测试方法、装置、设备及存储介质 | |
CN111061927A (zh) | 数据处理方法、装置及电子设备 | |
CN110471669B (zh) | 一种空指针引用的检测方法及检测装置 | |
CN112181670B (zh) | 进程间通讯方法及装置和Linux设备 | |
CN113992364A (zh) | 一种网络数据包阻断优化方法以及系统 | |
CN113360522A (zh) | 一种快速识别敏感数据的方法及装置 | |
CN112994931A (zh) | 一种规则匹配的方法及其设备 | |
CN113721916B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210910 |