CN109194613B - 一种数据包检测方法和装置 - Google Patents
一种数据包检测方法和装置 Download PDFInfo
- Publication number
- CN109194613B CN109194613B CN201810845258.XA CN201810845258A CN109194613B CN 109194613 B CN109194613 B CN 109194613B CN 201810845258 A CN201810845258 A CN 201810845258A CN 109194613 B CN109194613 B CN 109194613B
- Authority
- CN
- China
- Prior art keywords
- feature
- node
- difference
- nodes
- tree
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种数据包检测方法和装置,属于数据处理技术领域。方法包括:接收用户输入的目标特征项集合,将第二特征项与第一特征项进行比对处理,得到差异特征项,根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对待检测数据包进行匹配检测。基于上述处理,只是在原始特征树的基础上对特征节点及失配跳转指针进行修改。在修改过程中,可以根据中间状态特征树对待检测数据包进行匹配检测,不会中断网络设备的DPI功能,进而可以降低更新特征库对网络设备的安全防御性能的影响。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据包检测方法和装置。
背景技术
目前,网络设备中通常会存储有预设的特征库,以便对接收到的数据包进行匹配检测,从而实现深度包检测(英文:Deep Packet Inspection,简称:DPI)功能。例如:特征库可以为入侵防御系统(英文:Intrusion Prevention System,简称:IPS)特征库或统一资源定位符(英文:Uniform Resource Locator,简称:URL)分类特征库等。
特征库包含特征项和基于特征项构建的特征树,其中,特征项为一个字符串。构建特征树的处理过程为:
首先,根据特征库中的各特征项包括的字符/字符串,确定特征树中的各特征节点。其中,除特征树中的根节点以外,特征树中的每一特征节点都对应一个字符。从根节点到某一特征节点经过的字符为该特征节点对应的字符串(即特征项)。各特征项的末端字符对应的特征节点构成匹配结果节点集。
然后,根据预设的失配跳转指针创建规则,创建各特征节点的失配跳转指针。例如,特征节点A的失配跳转指针可以由特征节点A指向另一特征节点B,当网络设备匹配到特征节点A时,如果根据特征节点A的子节点无法继续匹配,则根据特征节点A的失配跳转指针指向的特征节点B进行匹配。根据失配跳转指针创建规则,特征树中不存在指向叶子节点的失配跳转指针。
随着网络应用、网络攻击方式和病毒的不断更新,特征库也需要进行更新。在更新特征库时,首先对特征库中的特征项进行更新,然后,删除原有的特征树,并根据更新后的特征,重新构建特征树。在更新特征库的过程中,会删除原有的特征树,重新构建特征树,导致特征库无法使用,网络设备的DPI功能处于中断状态,从而降低网络设备的安全防御性能。
发明内容
本发明实施例的目的在于提供一种数据包检测方法和装置,可以降低更新特征库对网络设备的安全防御性能的影响。具体技术方案如下:
第一方面,为了达到上述目的,本发明实施例公开了一种数据包检测方法,所述方法应用于网络设备,所述网络设备中已存储当前特征库,所述当前特征库包括至少一个用于对当前流量进行特征匹配的第一特征项,所述第一特征项用于构建原始特征树,所述方法包括:
接收用户输入的目标特征项集合,其中,所述目标特征项集合包括所述用户输入的第二特征项;
将所述第二特征项与所述第一特征项进行比对处理,得到差异特征项;
根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对所述待检测数据包进行匹配检测;
其中,所述中间状态特征树包括已生效子树和未生效子树,所述已生效子树包括所述原始特征树中未进行更新处理的特征节点以及特征节点的失配跳转指针,所述未生效子树包括更新处理过程中变化的特征节点以及特征节点的失配跳转指针。
可选的,所述根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,包括:
当所述差异特征项属于所述当前特征库、且不属于所述目标特征项集合时,确定所述差异特征项包含的各字符在所述原始特征树中对应的差异特征节点;
当所述差异特征节点是所述差异特征项的末端字符对应的特征节点时,判断所述差异特征节点是否存在子节点;
如果所述差异特征节点存在子节点,则从匹配结果节点集中删除所述差异特征节点,其中,所述匹配结果节点集由所述当前特征库包含的第一特征项的末端字符对应的特征节点构成;
如果所述差异特征节点不存在子节点,则从所述原始特征树中删除所述差异特征节点。
可选的,所述判断所述差异特征节点是否存在子节点,还包括:
当所述差异特征节点为所述差异特征项中除末端字符以外的其他字符对应的特征节点时,按照所述原始特征树中子节点至根节点的顺序,依次判断每一所述差异特征节点是否存在子节点;
如果所述差异特征节点不存在子节点,且所述差异特征节点不属于所述匹配结果节点集,则从所述原始特征树中删除所述差异特征节点,并将指向所述差异特征节点的失配跳转指针修改为指向所述根节点。
可选的,所述根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,包括:
当所述差异特征项属于所述目标特征项集合、且不属于所述当前特征库时,按照所述原始特征树中根节点至子节点的顺序,依次判断所述原始特征树中除根节点之外的其他特征节点是否与所述差异特征项中的首字符匹配;
如果所述其他特征节点与所述差异特征项中的首字符匹配,则判断所述其他特征节点的子节点中是否存在与所述首字符的下一字符相匹配的特征节点;
如果所述其他特征节点与所述差异特征项中的首字符不匹配,则在所述根节点处创建所述未生效子树,所述未生效子树与所述其他特征节点虚连接,所述未生效子树包括的特征节点与所述差异特征项对应匹配;
根据预设的指针创建规则,为所述未生效子树包括的特征节点创建失配跳转指针。
可选的,所述方法还包括:
如果所述未生效子树为在所述根节点处添加的子树,则确定所述已生效子树中未与所述根节点直接相连,且失配跳转指针指向所述根节点的特征节点,得到第一特征节点集合;
确定所述未生效子树中与所述根节点直接相连的特征节点为目标首节点;
判断所述第一特征节点集合中,是否存在与所述目标首节点对应的字符相同的特征节点;
如果所述第一特征节点集合中,存在与所述目标首节点对应的字符相同的第一特征节点,则将所述第一特征节点的失配跳转指针修改为指向所述目标首节点;
确定所述第一特征节点在所述原始特征树中的层级为M,按照从根节点到子节点的顺序,从所述第一特征节点的子节点开始,依次判断层级为M+K的特征节点中,是否存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,其中,所述N的取值为2,所述K为正整数,且所述K的取值从1开始;
如果存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,则将所述第二特征节点的失配跳转指针修改为指向所述未生效子树中层级为N+K的特征节点。
可选的,在所述根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理之前,所述方法还包括:
根据所述差异特征项的个数、所述差异特征项的字符的个数和预设复杂度计算规则,得到更新所述原始特征树的第一时间复杂度;
根据所述第二特征项的个数、所述第二特征项的字符的个数和所述预设复杂度计算规则,得到重新构建特征树的第二时间复杂度;
如果所述第一时间复杂度小于所述第二时间复杂度,则根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
如果所述第一时间复杂度大于所述第二时间复杂度,则向用户终端发送携带有所述第一时间复杂度和所述第二时间复杂度的更新提示消息,以使用户根据所述第一时间复杂度和所述第二时间复杂度选择所述当前特征库的更新方式。
第二方面,为达到上述目的,本发明实施例还公开了一种数据包检测装置,所述装置用于网络设备,所述网络设备中已存储当前特征库,所述当前特征库包括至少一个用于对当前流量进行特征匹配的第一特征项,所述第一特征项用于构建原始特征树,所述装置包括:
接收模块,用于接收用户输入的目标特征项集合,其中,所述目标特征项集合包括所述用户输入的第二特征项;
对比模块,用于将所述第二特征项与所述第一特征项进行比对处理,得到差异特征项;
更新模块,用于根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
检测模块,用于当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对所述待检测数据包进行匹配检测;
其中,所述中间状态特征树包括已生效子树和未生效子树,所述已生效子树包括所述原始特征树中未进行更新处理的特征节点以及特征节点的失配跳转指针,所述未生效子树包括更新处理过程中变化的特征节点以及特征节点的失配跳转指针。
可选的,所述更新模块,具体用于当所述差异特征项属于所述当前特征库、且不属于所述目标特征项集合时,确定所述差异特征项包含的各字符在所述原始特征树中对应的差异特征节点;
当所述差异特征节点是所述差异特征项的末端字符对应的特征节点时,判断所述差异特征节点是否存在子节点;
如果所述差异特征节点存在子节点,则从匹配结果节点集中删除所述差异特征节点,其中,所述匹配结果节点集由所述当前特征库包含的第一特征项的末端字符对应的特征节点构成;
如果所述差异特征节点不存在子节点,则从所述原始特征树中删除所述差异特征节点。
可选的,所述更新模块,还用于当所述差异特征节点为所述差异特征项中除末端字符以外的其他字符对应的特征节点时,按照所述原始特征树中子节点至根节点的顺序,依次判断每一所述差异特征节点是否存在子节点;
如果所述差异特征节点不存在子节点,且所述差异特征节点不属于所述匹配结果节点集,则从所述原始特征树中删除所述差异特征节点,并将指向所述差异特征节点的失配跳转指针修改为指向所述根节点。
可选的,所述更新模块,具体用于当所述差异特征项属于所述目标特征项集合、且不属于所述当前特征库时,按照所述原始特征树中根节点至子节点的顺序,依次判断所述原始特征树中除根节点之外的其他特征节点是否与所述差异特征项中的首字符匹配;
如果所述其他特征节点与所述差异特征项中的首字符匹配,则判断所述其他特征节点的子节点中是否存在与所述首字符的下一字符相匹配的特征节点;
如果所述其他特征节点与所述差异特征项中的首字符不匹配,则在所述根节点处创建所述未生效子树,所述未生效子树与所述其他特征节点虚连接,所述未生效子树包括的特征节点与所述差异特征项对应匹配;
根据预设的指针创建规则,为所述未生效子树包括的特征节点创建失配跳转指针。
可选的,所述装置还包括:
第一处理模块,用于如果所述未生效子树为在所述根节点处添加的子树,则确定所述已生效子树中未与所述根节点直接相连,且失配跳转指针指向所述根节点的特征节点,得到第一特征节点集合;
确定所述未生效子树中与所述根节点直接相连的特征节点为目标首节点;
判断所述第一特征节点集合中,是否存在与所述目标首节点对应的字符相同的特征节点;
如果所述第一特征节点集合中,存在与所述目标首节点对应的字符相同的第一特征节点,则将所述第一特征节点的失配跳转指针修改为指向所述目标首节点;
确定所述第一特征节点在所述原始特征树中的层级为M,按照从根节点到子节点的顺序,从所述第一特征节点的子节点开始,依次判断层级为M+K的特征节点中,是否存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,其中,所述N的取值为2,所述K为正整数,且所述K的取值从1开始;
如果存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,则将所述第二特征节点的失配跳转指针修改为指向所述未生效子树中层级为N+K的特征节点。
可选的,所述装置还包括:
第二处理模块,用于根据所述差异特征项的个数、所述差异特征项的字符的个数和预设复杂度计算规则,得到更新所述原始特征树的第一时间复杂度;
根据所述第二特征项的个数、所述第二特征项的字符的个数和所述预设复杂度计算规则,得到重新构建特征树的第二时间复杂度;
如果所述第一时间复杂度小于所述第二时间复杂度,则根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
如果所述第一时间复杂度大于所述第二时间复杂度,则向用户终端发送携带有所述第一时间复杂度和所述第二时间复杂度的更新提示消息,以使用户根据所述第一时间复杂度和所述第二时间复杂度选择所述当前特征库的更新方式。
第三方面,提供了一种网络设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。
第四方面,提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现第一方面所述的方法步骤。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法步骤。
本发明实施例提供的一种数据包检测方法和装置,可以应用于网络设备,网络设备中已存储当前特征库,当前特征库包括至少一个用于对当前流量进行特征匹配的第一特征项,第一特征项用于构建原始特征树。网络设备可以接收用户输入的目标特征项集合,将第二特征项与第一特征项进行比对处理,得到差异特征项,根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对待检测数据包进行匹配检测。基于上述处理,网络设备只是在原始特征树的基础上对特征节点及失配跳转指针进行修改。在修改过程中,网络设备可以根据中间状态特征树对待检测数据包进行匹配检测,不会中断网络设备的DPI功能,进而可以降低更新特征库对网络设备的安全防御性能的影响。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种组网架构的框架图;
图2为本发明实施例提供的一种数据包检测方法的流程图;
图3为本发明实施例提供的一种更新特征节点以及失配跳转指针的方法的流程图;
图4为本发明实施例提供的一种特征树的结构图;
图5为本发明实施例提供的一种特征树的结构图;
图6为本发明实施例提供的一种特征树的结构图;
图7为本发明实施例提供的一种更新特征节点以及失配跳转指针的方法的流程图;
图8为本发明实施例提供的一种特征树的结构图;
图9为本发明实施例提供的一种特征树的结构图;
图10为本发明实施例提供的一种特征树的结构图;
图11为本发明实施例提供的一种特征树的结构图;
图12为本发明实施例提供的一种更新失配跳转指针的方法的流程图;
图13为本发明实施例提供的一种特征树的结构图;
图14为本发明实施例提供的一种特征树的结构图;
图15为本发明实施例提供的一种特征树的结构图;
图16为本发明实施例提供的一种数据包检测装置的结构图;
图17为本发明实施例提供的一种网络设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据包检测方法和装置,可以应用于网络设备,该网络设备可以为交换机、防火墙设备或其他网络安全设备。参见图1,图1为本发明实施例提供的一种组网架构的框架图,为一种可能的应用场景。该组网包括:网络设备、服务器和多个终端。终端可以向服务器发送数据包,网络设备则可以接收到该数据包。网络设备中可以存储有特征库和阿霍_科拉斯克(英文:Aho_Corasick,简称:AC)算法,以便对接收到的数据包进行匹配检测。其中,网络设备当前使用的特征库可称为当前特征库,当前特征库可以包括至少一个用于对当前流量进行特征匹配的特征项(可称为第一特征项)。
网络设备可以根据AC算法和第一特征项包含的各字符,确定特征树中的各特征节点,然后,网络设备根据预设的指针创建规则,创建各特征节点的失配跳转指针,以完成特征树的构建。之后,网络设备可以根据该特征树对接收到的数据包进行匹配检测,得到每一特征项的匹配次数,进而可以根据各特征项的匹配次数对数据包进行安全控制处理。应当说明的是,图1所示的组网架构中,网络设备与终端之间可能具有其他设备(比如,交换机),用于将终端发送的数据包发送至网络设备。同样的,网络设备与服务器之间也可能具有其他设备(比如,防火墙设备),用于将网络设备放行的数据包转发至服务器。
参见图2,图2为本发明实施例提供的一种数据包检测方法的流程图,该方法可以应用于网络设备,该网络设备中已存储当前特征库,当前特征库包括至少一个用于对当前流量进行特征匹配的第一特征项,网络设备中还存储有基于第一特征项构建的原始特征树,该方法可以包括以下步骤。
S201:接收用户输入的目标特征项集合。
其中,目标特征项集合包括用户输入的第二特征项。第二特征项可以为一个,也可以为多个。
在发明实施例中,当需要更新当前特征库时,用户可以通过输入部件向网络设备输入目标特征项集合。网络设备则可以接收到用户输入的目标特征项集合,以根据目标特征项集合对当前特征库进行更新。
S202:将第二特征项与第一特征项进行比对处理,得到差异特征项。
在发明实施例中,获取目标特征项集合中的第二特征项后,网络设备可以将第二特征项与第一特征项进行比对处理,进而得到目标特征项集合与当前特征库之间存在差异的特征项(即差异特征项)。差异特征项可以为一个,也可以为多个。
具体的,网络设备中可以存储有特征项列表,特征项列表中可以记录第一特征项和第一特征项的标识的对应关系。目标特征项集合中也可以记录有预设的第二特征项的标识。在获取目标特征项集合后,网络设备可以根据第二特征项的标识,在特征项列表中进行查询。网络设备可以确定出存在于特征项列表中,且不属于目标特征项集合的特征项(可以称为无效特征项)。网络设备还可以确定出属于目标特征项集合,且未存在于特征项列表中的特征项(可以称为新增特征项)。相应的,差异特征项可以包括新增特征项和无效特征项这两种类型的特征项。
例如,当前特征库包含的第一特征项为:abc、bca、cab和a,目标特征项集合包含的特征项为:abc、bca、cba和a。网络设备可以将cba确定为新增特征项,将cab确定为无效特征项,进而将cba和cab确定为差异特征项。在实际更新特征项时,差异特征项可能只包含无效特征项,也可能只包含新增特征项,还可能同时包含无效特征项和新增特征项。
S203:根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理。
在发明实施例中,网络设备可以根据差异特征项包含的字符,对原始特征树中的特征节点进行更新处理,然后,网络设备还可以对特征节点的失配跳转指针进行更新处理。
针对不同类型的差异特征项,网络设备可以采取不同的方式,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理。
S204:当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对待检测数据包进行匹配检测。
其中,中间状态特征树包括已生效子树和未生效子树,已生效子树包括原始特征树中未进行更新处理的特征节点以及特征节点的失配跳转指针,未生效子树包括更新处理过程中变化的特征节点以及特征节点的失配跳转指针。
在发明实施例中,在对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新的过程中,当网络设备接收到数据包(即待检测数据包)时,网络设备可以根据当前状态的原始特征树(即中间状态特征树),对待检测数据包进行匹配检测。网络设备可以根据待检测数据包与各特征项的匹配次数,对待检测数据包进行安全控制处理,包括丢弃待检测数据包或放行待检测数据包。
基于上述处理,网络只是在原始特征树的基础上对特征节点及失配跳转指针进行修改。在修改过程中,可以根据中间状态特征树对待检测数据包进行匹配检测,不会中断网络设备的DPI功能,进而可以降低更新特征库对网络设备的安全防御性能的影响。
可选的,对于前述步骤S202中涉及的无效特征项,可以采用以下方式执行步骤S203中对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理的过程。
S301:当差异特征项属于当前特征库、且不属于目标特征项集合时,确定差异特征项包含的各字符在原始特征树中对应的差异特征节点。
在发明实施例中,当差异特征项属于当前特征库、且不属于目标特征项集合时,也即,该差异特征项为无效特征项时,网络设备可以确定无效特征项包含的各字符在原始特征树中对应的特征节点(即差异特征节点),以便进行后续处理。
S302:当差异特征节点是差异特征项的末端字符对应的特征节点时,判断差异特征节点是否存在子节点。
其中,差异特征项可以包含一个字符,也可以包含多个字符。例如,对于差异特征项a,则字符a为该差异特征项的末端字符,也为该差异特征项的首字符;对于差异特征项abc,则字符c为该差异特征项的末端字符,字符a为该差异特征项的首字符。
在发明实施例中,针对差异特征项的末端字符对应的特征节点和除末端字符以外的其他字符对应的特征节点,网络设备可以采取不同的方式进行处理。
对于差异特征项的末端字符对应的差异特征节点,网络设备可以判断该差异特征节点是否存在子节点,并根据判断结果进行相应处理。
S303:如果差异特征节点存在子节点,则从匹配结果节点集中删除差异特征节点。
其中,匹配结果节点集由当前特征库包含的第一特征项的末端字符对应的特征节点构成。
参见图4,如果当前特征库包含图4所示的原始特征树,则第一特征项包括a、abc、bca、cab和acb。相应的,根据第一特征项的末端字符对应的特征节点,得到匹配结果节点集包括特征节点1、特征节点3、特征节点6、特征节点9和特征节点11,匹配结果节点集中的特征节点以两个圆圈标识。
在发明实施例中,针对差异特征项的末端字符对应的差异特征节点,当网络设备判定该差异特征节点在原始特征树中存在子节点时,网络设备可以将该差异特征节点从匹配结果节点集中删除。
例如,针对图4的原始特征树,如果差异特征项为a,该差异特征项的末端字符a对应的差异特征节点为特征节点1,而特征节点1在原始特征树中存在子节点(即特征节点2和特征节点10),因此,网络设备可以将特征节点1从匹配结果节点集中删除,此时,匹配结果节点集包括特征节点3、特征节点6、特征节点9和特征节点11,得到如图5所示的特征树。
S304:如果差异特征节点不存在子节点,则从原始特征树中删除差异特征节点。
在发明实施例中,针对差异特征项的末端字符对应的差异特征节点,当网络设备判定该差异特征节点在原始特征树中不存在子节点时,网络设备可以从原始特征树中删除该差异特征节点。
例如,针对图4的原始特征树,如果差异特征项为abc,该差异特征项的末端字符c对应的差异特征节点为特征节点3,而特征节点3在原始特征树中不存在子节点,因此,网络设备可以将特征节点3从原始特征树中删除。另外,在删除特征节点3时,也即将特征节点3从匹配结果节点集中删除,此时,匹配结果节点集包括特征节点1、特征节点6、特征节点9和特征节点11。同时,也即删除特征节点3的失配跳转指针。
如果差异特征项包含多个字符,在对该差异特征项的末端字符对应的特征节点处理结束后,网络设备可以采用以下步骤对除末端字符以外的其他字符对应的特征节点进行处理。
步骤一,针对差异特征节点为差异特征项中除末端字符以外的其他字符对应的特征节点,按照原始特征树中子节点至根节点的顺序,依次判断差异特征节点是否存在子节点。
在发明实施例中,差异特征项中除末端字符以外的其他字符对应的特征节点可以为多个,此时,网络设备可以按照原始特征树中子节点至根节点的顺序,依次对每一差异特征节点进行处理。
具体的,网络设备可以判断某一差异特征节点是否存在子节点,并根据判断结果执行相应的处理,然后,网络设备可以按照子节点至根节点的顺序,判断下一差异特征节点是否存在子节点,并根据判断结果执行相应的处理,以此类推,直至网络设备完成对各差异特征节点的处理。
例如,针对S304中的示例,差异特征项为abc,则差异特征项abc中除末端字符c以外的其他字符对应的特征节点包括:字符b对应特征节点2和字符a对应的特征节点1。网络设备在从原始特征树中删除特征节点3后,可以按照从特征节点2到特征节点1的顺序,依次对特征节点2和特征节点1进行处理。网络设备判断特征节点2是否存在子节点。
步骤二,如果差异特征节点不存在子节点,且差异特征节点不属于匹配结果节点集,则从原始特征树中删除差异特征节点,并将指向差异特征节点的失配跳转指针修改为指向根节点。
在发明实施例中,当网络设备判定该差异特征节点不存在子节点时,网络设备可以进一步判断该差异特征节点是否属于匹配结果节点集,当网络设备判定该差异特征节点不属于匹配结果节点集时,网络设备可以从原始特征树中删除差异特征节点,并将指向该差异特征节点的失配跳转指针修改为指向根节点。
例如,针对步骤一中的示例,差异特征项为abc,网络设备从原始特征树中删除特征节点3,此时,网络设备判定特征节点2在原始特征树中不存在子节点,且特征节点2不属于匹配结果节点集,则网络设备可以将从原始特征树中删除特征节点2。由于特征节点9的失配跳转指针指向特征节点2,则网络设备可以将特征节点9的失配跳转指针修改为指向根节点。
另外,当网络设备判定该差异特征节点存在子节点时,网络设备对该差异特征节点不进行任何处理。或者,当网络设备判定该差异特征节点不存在子节点,且该差异特征节点属于匹配结果节点集时,网络设备对该差异特征节点不进行任何处理。
例如,从原始特征树中删除特征节点2后,网络设备可以继续判断特征节点1是否存在子节点。网络设备判定特征节点1存在子节点(即特征节点10),且特征节点1属于匹配结果节点集,则网络设备对特征节点1不进行任何处理。至此,网络设备完成根据差异特征项abc对原始特征树的更新处理,得到如图6所示的特征树。
另外,当网络设备根据某一无效特征项完成对原始特征树的更新处理后,网络设备可以删除当前时刻该无效特征项的匹配结果(即该无效特征项与数据包的匹配次数)。可选的,对于对于前述步骤S202中涉及的新增特征项,可以采用以下方式执行步骤S203中对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理的过程。
S701:当差异特征项属于目标特征项集合、且不属于当前特征库时,按照原始特征树中根节点至子节点的顺序,依次判断原始特征树中除根节点之外的其他特征节点是否与差异特征项中的首字符匹配。
在发明实施例中,当差异特征项属于当前特征库、且不属于目标特征项集合,也即,差异特征项为新增特征项时,网络设备可以在原始特征树中添加该差异特征项对应的子树。网络设备可以按照原始特征树中根节点至子节点的顺序,判断原始特征树中根节点的子节点是否与差异特征项中的首字符匹配。
S702:如果其他特征节点与差异特征项中的首字符匹配,则判断其他特征节点的子节点中是否存在与首字符的下一字符相匹配的特征节点。
在发明实施例中,当网络设备判定根节点的子节点(可以称为第一匹配特征节点)与差异特征项中的首字符匹配时,网络设备可以判断第一匹配特征节点的子节点中,是否存在与首字符的下一字符(可以称为第二字符)相匹配的特征节点。如果第一匹配特征节点的子节点中,存在与第二字符相匹配的特征节点(可以称为第二匹配特征节点),网络设备可以继续判断第二匹配特征节点的子节点中,是否存在与第二字符的下一字符相匹配的特征节点,以此类推,直至网络设备判定某一匹配特征节点的子节点中不存在与差异特征项中的字符匹配的特征节点。
例如,如果图6所示的特征树为原始特征树,差异特征项为cad,网络设备可以判断根节点的子节点(即特征节点1、特征节点4和特征节点7)中,是否存在对应的字符为首字符c的特征节点。由于特征节点7对应的字符为c,因此,网络设备可以继续判断特征节点7的子节点中,是否存在对应的字符为首字符c的下一字符a的特征节点。由于特征节点7的子节点为特征节点8,特征节点8对应的字符为a,因此,网络设备可以继续判断特征节点8的子节点中,是否存在对应的字符为字符a的下一字符d的特征节点。由于特征节点8的子节点为特征节点9,特征节点9对应的字符为b,此时,网络设备判定其他特征节点与差异特征项中的字符不匹配。
S703:如果其他特征节点与差异特征项中的首字符不匹配,则在根节点处创建未生效子树。
其中,未生效子树与其他特征节点虚连接,未生效子树包括的特征节点与差异特征项对应匹配。
在发明实施例中,当网络设备判定根节点的子节点与差异特征项中的首字符不匹配时,网络设备可以在根节点处创建未生效子树。当网络设备判定某一匹配特征节点的子节点中不存在与差异特征项中的字符匹配的特征节点时,网络设备可以在该匹配特征节点处创建未生效子树。
例如,如果图6的特征树为原始特征树,差异特征项为dbc,网络设备可以判断根节点的子节点(即特征节点1、特征节点4和特征节点7)中,是否存在对应的字符为差异特征项dbc的首字符d的特征节点。由于特征节点1对应的字符为a,特征节点4对应的字符为b,特征节点7对应的字符为c,网络设备判定其他特征节点与差异特征项中的首字符不匹配,网络设备可以在根节点处创建未生效子树,得到如图8所示的特征树。创建的未生效子树与原始特征树虚连接,在图8中以虚线表示,创建的未生效子树包括特征节点12、特征节点13和特征节点14,特征节点12对应的字符为d,特征节点13对应的字符为b,特征节点14对应的字符为c,且特征节点14属于匹配结果节点集。
另外,针对S702中的示例,图6的特征树为原始特征树,差异特征项为cad的情况,由于特征节点8的子节点为特征节点9,特征节点9对应的字符为b,此时,网络设备判定其他特征节点与差异特征项中的字符不匹配。网络设备可以在特征节点8处创建未生效子树,得到如图9所示的特征树。创建的未生效子树与原始特征树虚连接,在图9中以虚线表示,创建的未生效子树包括特征节点12,特征节点12对应的字符为d,且特征节点12属于匹配结果节点集。
S704:根据预设的指针创建规则,为未生效子树包括的特征节点创建失配跳转指针。
在发明实施例中,网络设备可以根据预设的指针创建规则,为未生效子树包括的特征节点(可以称为新增特征节点)创建失配跳转指针。
具体的,如果新增特征节点为根节点的子节点,网络设备可以设置新增特征节点的失配跳转指针指向根节点。如果新增特征节点不是根节点的子节点,网络设备确定新增特征节点的父节点的失配跳转指针指向的特征节点(可以称为第一候选特征节点),网络设备判断第一候选特征节点的子节点中,是否存在对应的字符与新增特征节点对应的字符相同的特征节点。
如果第一候选特征节点的子节点中,存在对应的字符与新增特征节点对应的字符相同的特征节点,网络设备可以将新增特征节点的失配跳转指针指向第一候选特征节点的子节点。如果第一候选特征节点的子节点中,不存在对应的字符与新增特征节点对应的字符相同的特征节点,网络设备确定第一候选特征节点的失配跳转指针指向的特征节点(可以称为第二候选特征节点),网络设备可以判断第二候选特征节点的子节点中,是否存在对应的字符与新增特征节点对应的字符相同的特征节点,以此类推,直到确定某一候选特征节点的子节点中,存在对应的字符与新增特征节点对应的字符相同的特征节点。
然后,网络设备可以将新增特征节点的失配跳转指针指向该候选特征节点的子节点。当网络设备确定某一候选特征节点的失配跳转指针指向根节点,且根节点的子节点中不存在对应的字符与新增特征节点对应的字符相同的特征节点时,网络设备将新增特征节点的失配跳转指针指向根节点。
例如,在图8所示的特征树中,新增特征节点包括特征节点12、特征节点13和特征节点14。特征节点12为根节点的子节点,因此,网络设备可以将特征节点12的失配跳转指针指向根节点。针对特征节点13,网络设备确定特征节点13的父节点(即特征节点12)的失配跳转指针指向根节点,判定根节点的子节点(即特征节点4)对应的字符b与特征节点13对应的字符相同,网络设备可以将特征节点13的失配跳转指针指向特征节点4。针对特征节点14,网络设备确定特征节点14的父节点(即特征节点13)的失配跳转指针指向特征节点4,判定特征节点4的子节点(即特征节点5)对应的字符c与特征节点14对应的字符相同,网络设备可以将特征节点14的失配跳转指针指向特征节点5,得到如图10所示的特征树。图10中,新增特征节点的失配跳转指针以虚线表示。
例如,在图9所示的特征树中,新增特征节点包括特征节点12。网络设备确定特征节点12的父节点(即特征节点8)的失配跳转指针指向特征节点1。由于特征节点1的子节点中不存在对应的字符为d的特征节点,因此,网络设备继续确定特征节点1的失配跳转指针指向根节点。由于根节点的子节点中仍不存在对应的字符为d的特征节点,因此,网络设备将特征节点12的失配跳转指针指向根节点,得到如图11所示的特征树。图11中,新增特征节点的失配跳转指针以虚线表示。
需要说明的是,当差异特征项同时包含无效特征项和新增特征项时,网络设备可以根据无效特征项对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,然后,网络设备再根据新增特征项对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,以完成原始特征树的更新。
在为新增特征节点创建失配跳转指针后,网络设备还可以对已生效子树中的特征节点的失配跳转指针进行更新,以提高特征匹配的效率。具体的,该方法还可以包括以下处理步骤。
S1201:如果未生效子树为在根节点处添加的子树,则确定已生效子树中未与根节点直接相连,且失配跳转指针指向根节点的特征节点,得到第一特征节点集合。
在发明实施例中,如果未生效子树为在根节点处添加的子树,网络设备可以确定已生效子树中未与根节点直接相连的特征节点,然后,网络设备在确定出的特征节点中,选择失配跳转指针指向根节点的特征节点,将选择的特征节点组成第一特征节点集合。
例如,参见图13,图13所示的特征树中,如果特征项cab为新增特征项,此时,网络设备已为特征节点7、特征节点8和特征节点9创建失配跳转指针。已生效子树包括特征项abc、特征项a、特征项acb、特征项bca对应的子树。
网络设备可以确定已生效子树中未与根节点直接相连的特征节点(即特征节点2、特征节点3、特征节点5、特征节点6、特征节点10和特征节点11),然后,网络设备在特征节点2、特征节点3、特征节点5、特征节点6、特征节点10和特征节点11中确定出失配跳转指针指向根节点的特征节点(即特征节点5和特征节点10),网络设备得到的第一特征节点集合包括特征节点5和特征节点10。第一特征节点集合包含的特征节点在图13中以虚线圆圈表示。
S1202:确定未生效子树中与根节点直接相连的特征节点为目标首节点。
在发明实施例中,网络设备确定未生效子树中与根节点直接相连的特征节点为目标首节点。
例如,针对S1201中的示例,未生效子树为特征项cab对应的子树,网络设备可以将与根节点直接相连的特征节点7,确定为目标首节点。
S1203:判断第一特征节点集合中,是否存在与目标首节点对应的字符相同的特征节点。
在发明实施例中,确定出第一特征节点集合和目标首节点后,网络设备可以判断第一特征节点集合中,是否存在与目标首节点对应的字符相同的特征节点。
例如,针对S1201中的示例,第一特征节点集合包括特征节点5和特征节点10,目标首节点为特征节点7。网络设备可以判断特征节点5和特征节点10是否与目标首节点7对应的字符相同。
S1204:如果第一特征节点集合中,存在与目标首节点对应的字符相同的第一特征节点,则将第一特征节点的失配跳转指针修改为指向目标首节点。
在发明实施例中,当网络设备判定第一特征节点集合中,存在与目标首节点对应的字符相同的特征节点(即第一特征节点)时,网络设备可以将第一特征节点的失配跳转指针修改为指向目标首节点。
例如,针对S1201中的示例,第一特征节点集合中的特征节点5和特征节点10对应的字符均为c,目标特征节点7对应的字符为c,因此,网络设备可以将特征节点5和特征节点10确定为第一特征节点,并将特征节点5和特征节点10的失配跳转指针修改为指向目标首节点7,得到如图14所示的特征树。
S1205:确定第一特征节点在原始特征树中的层级为M,按照从根节点到子节点的顺序,从第一特征节点的子节点开始,依次判断层级为M+K的特征节点中,是否存在与未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点。
其中,N的取值为2,K为正整数,且K的取值从1开始。
在发明实施例中,在对第一特征节点的失配跳转指针进行修改后,网络设备还可以对第一特征节点的子节点的失配跳转指针进行修改。
具体的,网络设备可以确定第一特征节点在原始特征树中的层级(即为M),然后,网络设备可以从第一特征节点的子节点开始,逐层判断层级为M+K的特征节点中,是否存在与未生效子树中层级为N+K的特征节点对应的字符相同的特征节点(即第二特征节点)。
网络设备判定第一特征节点的子节点中是否存在与未生效子树中层级为2+1=3的特征节点对应的字符相同的特征节点,如果第一特征节点的子节点中存在与未生效子树中层级为3的特征节点对应的字符相同的特征节点(可以称为第一备选特征节点),网络设备将第一备选特征节点的失配跳转指针指向未生效子树中层级为3的特征节点。
然后,网络设备可以继续判断第一备选特征节点的子节点中是否存在与未生效子树中层级为2+2=4的特征节点对应的字符相同的特征节点。如果第一备选特征节点的子节点中存在与未生效子树中层级为4的特征节点对应的字符相同的特征节点(可以称为第二备选特征节点),网络设备将第二备选特征节点的失配跳转指针指向未生效子树中层级为4的特征节点。
接着,网络设备可以继续判断第二备选特征节点的子节点中是否存在与未生效子树中层级为2+3=5的特征节点对应的字符相同的特征节点,以此类推,直至网络设备对原始特征树的子节点处理结束,或者,直至网络设备判定已生效子树中某一层级的特征节点的子节点中,不存在对应的字符与未生效子树中对应层级的特征节点对应的字符相同的特征节点。
例如,针对S1204中的示例,在将特征节点5和特征节点10的失配跳转指针修改为指向目标首节点7后,网络设备可以对特征节点5和特征节点10分别进行处理。
针对特征节点5,网络设备确定特征节点5在原始特征树中的层级M为3,然后,网络设备可以从特征节点5的子节点开始判断。特征节点5的子节点的层级为4,则此时K=1,相应的,网络设备判断特征节点5的子节点中,是否存在与未生效子树中层级为N+K=3的特征节点对应的字符相同的第二特征节点。同理,网络设备判断特征节点10的子节点中,是否存在与未生效子树中层级为N+K=3的特征节点对应的字符相同的第二特征节点。
S1206:如果存在与未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,则将第二特征节点的失配跳转指针修改为指向未生效子树中层级为N+K的特征节点。
在发明实施例中,当网络设备判定存在与未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点时,网络设备可以将第二特征节点的失配跳转指针修改为指向未生效子树中层级为N+K的特征节点。
例如,针对S1205中的示例,特征节点5的子节点为特征节点6,相应的,未生效子树中层级为N+K=3的特征节点为特征节点8,特征节点6对应的字符与特征节点8对应的字符均为a,则网络设备可以将特征节点6确定为第二特征节点,并将特征节点6的失配跳转指针修改为指向特征节点8,得到如图15所示的特征树。在本示例中,由于特征节点6不存在子节点,则网络设备不再进行下一层级的判断。
如果特征节点6存在子节点,则网络设备继续判断特征节点6的子节点中,是否存在与未生效子树中层级为N+K=4的特征节点(即特征节点8的子节点)对应的字符相同的特征节(可称为第三特征节点)。如果存在第三特征节点,网络设备则将第三特征节点的失配跳转指针修改为指向未生效子树中层级为N+K=4的特征节点。以此类推,直至网络设备对原始特征树的子节点处理结束,或者,直至网络设备判定已生效子树中某一层级的特征节点的子节点中,不存在对应的字符与未生效子树中对应层级的特征节点对应的字符相同的特征节点。
另外,特征节点10的子节点为特征节点11,特征节点11对应的字符b与特征节点8对应的字符a不相同,则网络设备对特征节点11不进行任何处理。
经过上述处理,网络设备可以得到如图15所示的特征树。
可选的,网络设备还可以根据更新特征库的时间复杂度,选择不同的更新方式。具体的,上述方法还可以包括以下步骤。
步骤一、根据差异特征项的个数、差异特征项的字符的个数和预设复杂度计算规则,得到更新原始特征树的第一时间复杂度。
在发明实施例中,网络设备可以根据差异特征项的个数、差异特征项的字符的个数和预设的复杂度计算规则,得到根据差异特征项对原始特征树进行更新的时间复杂度(即第一时间复杂度)。
例如,差异特征项的平均字符个数为L1,新增特征项的个数为I,则网络设备可以计算得到创建新增特征节点的时间复杂度为O(I×L1),创建新增特征节点的失配跳转指针的时间复杂度为O(I×L1),修改已生效子树中特征节点的失配跳转指针的时间复杂度为O(I×L1),则第一时间复杂度为O(I×L1)+O(I×L1)+O(I×L1)。
步骤二、根据第二特征项的个数、第二特征项的字符的个数和预设复杂度计算规则,得到重新构建特征树的第二时间复杂度。
在发明实施例中,网络设备可以根据第二特征项的个数、第二特征项的字符的个数和复杂度计算规则,得到根据第二特征项重新构建特征树的时间复杂度(即第二时间复杂度)。
例如,第二特征项的个数为N,第二特征项的平均字符个数为L2,则网络设备可以计算得到创建特征节点的时间复杂度为O(N×L2),创建失配跳转指针的时间复杂度为O(N×L2),则第二时间复杂度为O(N×L2)+O(N×L2)。
步骤三、如果第一时间复杂度小于第二时间复杂度,根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理。
在发明实施例中,当网络设备判定第一时间复杂度小于第二时间复杂度时,网络设备可以根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理。
通常,更新特征库时新增特征项在目标特征项集合中所占的比例较大,可以认为L1=L2,因此,在O(I×L1)+O(I×L1)+O(I×L1)<O(N×L2)+O(N×L2),即3I<2N时,网络设备可以根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理。
步骤四、如果第一时间复杂度大于第二时间复杂度,则向用户终端发送携带有第一时间复杂度和第二时间复杂度的更新提示消息,以使用户根据第一时间复杂度和第二时间复杂度选择当前特征库的更新方式。
在发明实施例中,当网络设备判定第一时间复杂度大于或者等于第二时间复杂度时,网络设备可以向用户终端发送更新提示消息。具体的,在O(I×L1)+O(I×L1)+O(I×L1)≥O(N×L2)+O(N×L2),即3I≥2N时,网络设备向用户终端发送更新提示消息。相应的,用户终端可以显示第一时间复杂度对应的特征库更新方式(可以称为第一更新方式),以及第二时间复杂度对应的特征库更新方式(可以称为第二更新方式),以供用户选择。
当网络设备接收到用户终端发送的对应第一更新方式的选择指令时,网络设备可以根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理。当网络设备接收到对应第二更新方式的选择指令时,网络设备可以根据第二特征项重新构建特征树。
由以上可见,基于本发明实施例的数据包检测方法,接收用户输入的目标特征项集合,将第二特征项与第一特征项进行比对处理,得到差异特征项,根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对待检测数据包进行匹配检测。基于上述处理,只是在原始特征树的基础上对特征节点及失配跳转指针进行修改。在修改过程中,可以根据中间状态特征树对待检测数据包进行匹配检测,不会中断网络设备的DPI功能,进而可以降低更新特征库对网络设备的安全防御性能的影响。
与图2的方法实施例相对应,参见图16,图16为本发明实施例提供的一种数据包检测装置的结构图,该装置可以应用于网络设备,网络设备中已存储当前特征库,当前特征库包括至少一个用于对当前流量进行特征匹配的第一特征项,第一特征项用于构建原始特征树,该装置可以包括:
接收模块1601,用于接收用户输入的目标特征项集合,其中,所述目标特征项集合包括所述用户输入的第二特征项;
对比模块1602,用于将所述第二特征项与所述第一特征项进行比对处理,得到差异特征项;
更新模块1603,用于根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
检测模块1604,用于当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对所述待检测数据包进行匹配检测;
其中,所述中间状态特征树包括已生效子树和未生效子树,所述已生效子树包括所述原始特征树中未进行更新处理的特征节点以及特征节点的失配跳转指针,所述未生效子树包括更新处理过程中变化的特征节点以及特征节点的失配跳转指针。
可选的,所述更新模块1603,具体用于当所述差异特征项属于所述当前特征库、且不属于所述目标特征项集合时,确定所述差异特征项包含的各字符在所述原始特征树中对应的差异特征节点;
当所述差异特征节点是所述差异特征项的末端字符对应的特征节点时,判断所述差异特征节点是否存在子节点;
如果所述差异特征节点存在子节点,则从匹配结果节点集中删除所述差异特征节点,其中,所述匹配结果节点集由所述当前特征库包含的第一特征项的末端字符对应的特征节点构成;
如果所述差异特征节点不存在子节点,则从所述原始特征树中删除所述差异特征节点。
可选的,所述更新模块1603,还用于当所述差异特征节点为所述差异特征项中除末端字符以外的其他字符对应的特征节点时,按照所述原始特征树中子节点至所述根节点的顺序,依次判断每一所述差异特征节点是否存在子节点;
如果所述差异特征节点不存在子节点,且所述差异特征节点不属于所述匹配结果节点集,则从所述原始特征树中删除所述差异特征节点,并将指向所述差异特征节点的失配跳转指针修改为指向所述根节点。
可选的,所述更新模块1603,具体用于当所述差异特征项属于所述目标特征项集合、且不属于所述当前特征库时,按照所述原始特征树中根节点至所述子节点的顺序,依次判断所述原始特征树中除根节点之外的其他特征节点是否与所述差异特征项中的首字符匹配;
如果所述其他特征节点与所述差异特征项中的首字符匹配,则判断所述其他特征节点的子节点中是否存在与所述首字符的下一字符相匹配的特征节点;
如果所述其他特征节点与所述差异特征项中的首字符不匹配,则在所述根节点处创建所述未生效子树,所述未生效子树与所述其他特征节点虚连接,所述未生效子树包括的特征节点与所述差异特征项对应匹配;
根据预设的指针创建规则,为所述未生效子树包括的特征节点创建失配跳转指针。
可选的,所述装置还包括:
第一处理模块,用于如果所述未生效子树为在所述根节点处添加的子树,则确定所述已生效子树中未与所述根节点直接相连,且失配跳转指针指向所述根节点的特征节点,得到第一特征节点集合;
确定所述未生效子树中与所述根节点直接相连的特征节点为目标首节点;
判断所述第一特征节点集合中,是否存在与所述目标首节点对应的字符相同的特征节点;
如果所述第一特征节点集合中,存在与所述目标首节点对应的字符相同的第一特征节点,则将所述第一特征节点的失配跳转指针修改为指向所述目标首节点;
确定所述第一特征节点在所述原始特征树中的层级为M,按照从根节点到叶子节点的顺序,从所述第一特征节点的子节点开始,依次判断层级为M+K的特征节点中,是否存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,其中,所述N的取值为2,所述K为正整数,且所述K的取值从1开始;
如果存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,则将所述第二特征节点的失配跳转指针修改为指向所述未生效子树中层级为N+K的特征节点。
可选的,所述装置还包括:
第二处理模块,用于根据所述差异特征项的个数、所述差异特征项的字符的个数和预设复杂度计算规则,得到更新所述原始特征树的第一时间复杂度;
根据所述第二特征项的个数、所述第二特征项的字符的个数和所述预设复杂度计算规则,得到重新构建特征树的第二时间复杂度;
如果所述第一时间复杂度小于所述第二时间复杂度,则根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
如果所述第一时间复杂度大于所述第二时间复杂度,则向用户终端发送携带有所述第一时间复杂度和所述第二时间复杂度的更新提示消息,以使用户根据所述第一时间复杂度和所述第二时间复杂度选择所述当前特征库的更新方式。
由以上可见,基于本发明实施例的数据包检测装置,接收用户输入的目标特征项集合,将第二特征项与第一特征项进行比对处理,得到差异特征项,根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对待检测数据包进行匹配检测。基于上述处理,只是在原始特征树的基础上对特征节点及失配跳转指针进行修改。在修改过程中,可以根据中间状态特征树对待检测数据包进行匹配检测,不会中断网络设备的DPI功能,进而可以降低更新特征库对网络设备的安全防御性能的影响。
本发明实施例还提供了一种网络设备,如图17所示,包括处理器1701、通信接口1702、存储器1703和通信总线1704,其中,处理器1701,通信接口1702,存储器1703通过通信总线1704完成相互间的通信,
存储器1703,用于存放计算机程序;
处理器1701,用于执行存储器1703上所存放的程序时,以使该网络设备执行数据包检测方法的步骤,该方法包括:
接收用户输入的目标特征项集合,其中,所述目标特征项集合包括所述用户输入的第二特征项;
将所述第二特征项与所述第一特征项进行比对处理,得到差异特征项;
根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对所述待检测数据包进行匹配检测;
其中,所述中间状态特征树包括已生效子树和未生效子树,所述已生效子树包括所述原始特征树中未进行更新处理的特征节点以及特征节点的失配跳转指针,所述未生效子树包括更新处理过程中变化的特征节点以及特征节点的失配跳转指针。
可选的,所述处理器1701执行计算机程序包括的根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理指令具体为:
当所述差异特征项属于所述当前特征库、且不属于所述目标特征项集合时,确定所述差异特征项包含的各字符在所述原始特征树中对应的差异特征节点;
当所述差异特征节点是所述差异特征项的末端字符对应的特征节点时,判断所述差异特征节点是否存在子节点;
如果所述差异特征节点存在子节点,则从匹配结果节点集中删除所述差异特征节点,其中,所述匹配结果节点集由所述当前特征库包含的第一特征项的末端字符对应的特征节点构成;
如果所述差异特征节点不存在子节点,则从所述原始特征树中删除所述差异特征节点。可选的,所述处理器1701执行计算机程序包括的判断所述差异特征节点是否存在子节点指令具体为:
当所述差异特征节点为所述差异特征项中除末端字符以外的其他字符对应的特征节点时,按照所述原始特征树中子节点至所述根节点的顺序,依次判断每一所述差异特征节点是否存在子节点;
如果所述差异特征节点不存在子节点,且所述差异特征节点不属于所述匹配结果节点集,则从所述原始特征树中删除所述差异特征节点,并将指向所述差异特征节点的失配跳转指针修改为指向所述根节点。
可选的,所述处理器1701执行计算机程序包括的根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理指令具体为:
当所述差异特征项属于所述目标特征项集合、且不属于所述当前特征库时,按照所述原始特征树中根节点至所述子节点的顺序,依次判断所述原始特征树中除根节点之外的其他特征节点是否与所述差异特征项中的首字符匹配;
如果所述其他特征节点与所述差异特征项中的首字符匹配,则判断所述其他特征节点的子节点中是否存在与所述首字符的下一字符相匹配的特征节点;
如果所述其他特征节点与所述差异特征项中的首字符不匹配,则在所述根节点处创建所述未生效子树,所述未生效子树与所述其他特征节点虚连接,所述未生效子树包括的特征节点与所述差异特征项对应匹配;
根据预设的指针创建规则,为所述未生效子树包括的特征节点创建失配跳转指针。
可选的,所述处理器1701执行计算机程序还包括执行下述指令:
如果所述未生效子树为在所述根节点处添加的子树,则确定所述已生效子树中未与所述根节点直接相连,且失配跳转指针指向所述根节点的特征节点,得到第一特征节点集合;
确定所述未生效子树中与所述根节点直接相连的特征节点为目标首节点;
判断所述第一特征节点集合中,是否存在与所述目标首节点对应的字符相同的特征节点;
如果所述第一特征节点集合中,存在与所述目标首节点对应的字符相同的第一特征节点,则将所述第一特征节点的失配跳转指针修改为指向所述目标首节点;
确定所述第一特征节点在所述原始特征树中的层级为M,按照从根节点到叶子节点的顺序,从所述第一特征节点的子节点开始,依次判断层级为M+K的特征节点中,是否存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,其中,所述N的取值为2,所述K为正整数,且所述K的取值从1开始;
如果存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,则将所述第二特征节点的失配跳转指针修改为指向所述未生效子树中层级为N+K的特征节点。
可选的,所述处理器1701执行计算机程序还包括执行下述指令:
根据所述差异特征项的个数、所述差异特征项的字符的个数和预设复杂度计算规则,得到更新所述原始特征树的第一时间复杂度;
根据所述第二特征项的个数、所述第二特征项的字符的个数和所述预设复杂度计算规则,得到重新构建特征树的第二时间复杂度;
如果所述第一时间复杂度小于所述第二时间复杂度,则根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
如果所述第一时间复杂度大于所述第二时间复杂度,则向用户终端发送携带有所述第一时间复杂度和所述第二时间复杂度的更新提示消息,以使用户根据所述第一时间复杂度和所述第二时间复杂度选择所述当前特征库的更新方式。
机器可读存储介质可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括非易失性存储器(英文:Non-Volatile Memory,简称:NVM),例如至少一个磁盘存储器。另外,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据包检测方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据包检测方法。
本发明实施例中,接收用户输入的目标特征项集合,将第二特征项与第一特征项进行比对处理,得到差异特征项,根据差异特征项,对原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对待检测数据包进行匹配检测。基于上述处理,只是在原始特征树的基础上对特征节点及失配跳转指针进行修改。在修改过程中,可以根据中间状态特征树对待检测数据包进行匹配检测,不会中断网络设备的DPI功能,进而可以降低更新特征库对网络设备的安全防御性能的影响。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、网络设备、机器可读存储介质,以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种数据包检测方法,其特征在于,所述方法应用于网络设备,所述网络设备中已存储当前特征库,所述当前特征库包括至少一个用于对当前流量进行特征匹配的第一特征项,所述第一特征项用于构建原始特征树,所述方法包括:
接收用户输入的目标特征项集合,其中,所述目标特征项集合包括所述用户输入的第二特征项;
将所述第二特征项与所述第一特征项进行比对处理,得到差异特征项;
根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对所述待检测数据包进行匹配检测;
其中,所述中间状态特征树包括已生效子树和未生效子树,所述已生效子树包括所述原始特征树中未进行更新处理的特征节点以及特征节点的失配跳转指针,所述未生效子树包括更新处理过程中变化的特征节点以及特征节点的失配跳转指针。
2.根据权利要求1所述的方法,其特征在于,所述根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,包括:
当所述差异特征项属于所述当前特征库、且不属于所述目标特征项集合时,确定所述差异特征项包含的各字符在所述原始特征树中对应的差异特征节点;
当所述差异特征节点是所述差异特征项的末端字符对应的特征节点时,判断所述差异特征节点是否存在子节点;
如果所述差异特征节点存在子节点,则从匹配结果节点集中删除所述差异特征节点,其中,所述匹配结果节点集由所述当前特征库包含的第一特征项的末端字符对应的特征节点构成;
如果所述差异特征节点不存在子节点,则从所述原始特征树中删除所述差异特征节点。
3.根据权利要求2所述的方法,其特征在于,所述判断所述差异特征节点是否存在子节点,还包括:
当所述差异特征节点为所述差异特征项中除末端字符以外的其他字符对应的特征节点时,按照所述原始特征树中子节点至根节点的顺序,依次判断每一所述差异特征节点是否存在子节点;
如果所述差异特征节点不存在子节点,且所述差异特征节点不属于所述匹配结果节点集,则从所述原始特征树中删除所述差异特征节点,并将指向所述差异特征节点的失配跳转指针修改为指向所述根节点。
4.根据权利要求1所述的方法,其特征在于,所述根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理,包括:
当所述差异特征项属于所述目标特征项集合、且不属于所述当前特征库时,按照所述原始特征树中根节点至子节点的顺序,依次判断所述原始特征树中除根节点之外的其他特征节点是否与所述差异特征项中的首字符匹配;
如果所述其他特征节点与所述差异特征项中的首字符匹配,则判断所述其他特征节点的子节点中是否存在与所述首字符的下一字符相匹配的特征节点;
如果所述其他特征节点与所述差异特征项中的首字符不匹配,则在所述根节点处创建所述未生效子树,所述未生效子树与所述其他特征节点虚连接,所述未生效子树包括的特征节点与所述差异特征项对应匹配;
根据预设的指针创建规则,为所述未生效子树包括的特征节点创建失配跳转指针。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如果所述未生效子树为在所述根节点处添加的子树,则确定所述已生效子树中未与所述根节点直接相连,且失配跳转指针指向所述根节点的特征节点,得到第一特征节点集合;
确定所述未生效子树中与所述根节点直接相连的特征节点为目标首节点;
判断所述第一特征节点集合中,是否存在与所述目标首节点对应的字符相同的特征节点;
如果所述第一特征节点集合中,存在与所述目标首节点对应的字符相同的第一特征节点,则将所述第一特征节点的失配跳转指针修改为指向所述目标首节点;
确定所述第一特征节点在所述原始特征树中的层级为M,按照从根节点到子节点的顺序,从所述第一特征节点的子节点开始,依次判断层级为M+K的特征节点中,是否存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,其中,所述N的取值为2,所述K为正整数,且所述K的取值从1开始;
如果存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,则将所述第二特征节点的失配跳转指针修改为指向所述未生效子树中层级为N+K的特征节点。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理之前,所述方法还包括:
根据所述差异特征项的个数、所述差异特征项的字符的个数和预设复杂度计算规则,得到更新所述原始特征树的第一时间复杂度;
根据所述第二特征项的个数、所述第二特征项的字符的个数和所述预设复杂度计算规则,得到重新构建特征树的第二时间复杂度;
如果所述第一时间复杂度小于所述第二时间复杂度,则根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
如果所述第一时间复杂度大于所述第二时间复杂度,则向用户终端发送携带有所述第一时间复杂度和所述第二时间复杂度的更新提示消息,以使用户根据所述第一时间复杂度和所述第二时间复杂度选择所述当前特征库的更新方式。
7.一种数据包检测装置,其特征在于,所述装置应用于网络设备,所述网络设备中已存储当前特征库,所述当前特征库包括至少一个用于对当前流量进行特征匹配的第一特征项,所述第一特征项用于构建原始特征树,所述装置包括:
接收模块,用于接收用户输入的目标特征项集合,其中,所述目标特征项集合包括所述用户输入的第二特征项;
对比模块,用于将所述第二特征项与所述第一特征项进行比对处理,得到差异特征项;
更新模块,用于根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
检测模块,用于当接收到待检测数据包时,根据更新处理过程中生成的中间状态特征树,对所述待检测数据包进行匹配检测;
其中,所述中间状态特征树包括已生效子树和未生效子树,所述已生效子树包括所述原始特征树中未进行更新处理的特征节点以及特征节点的失配跳转指针,所述未生效子树包括更新处理过程中变化的特征节点以及特征节点的失配跳转指针。
8.根据权利要求7所述的装置,其特征在于,所述更新模块,具体用于当所述差异特征项属于所述当前特征库、且不属于所述目标特征项集合时,确定所述差异特征项包含的各字符在所述原始特征树中对应的差异特征节点;
当所述差异特征节点是所述差异特征项的末端字符对应的特征节点时,判断所述差异特征节点是否存在子节点;
如果所述差异特征节点存在子节点,则从匹配结果节点集中删除所述差异特征节点,其中,所述匹配结果节点集由所述当前特征库包含的第一特征项的末端字符对应的特征节点构成;
如果所述差异特征节点不存在子节点,则从所述原始特征树中删除所述差异特征节点。
9.根据权利要求8所述的装置,其特征在于,所述更新模块,还用于当所述差异特征节点为所述差异特征项中除末端字符以外的其他字符对应的特征节点时,按照所述原始特征树中子节点至根节点的顺序,依次判断每一所述差异特征节点是否存在子节点;
如果所述差异特征节点不存在子节点,且所述差异特征节点不属于所述匹配结果节点集,则从所述原始特征树中删除所述差异特征节点,并将指向所述差异特征节点的失配跳转指针修改为指向所述根节点。
10.根据权利要求7所述的装置,其特征在于,所述更新模块,具体用于当所述差异特征项属于所述目标特征项集合、且不属于所述当前特征库时,按照所述原始特征树中根节点至子节点的顺序,依次判断所述原始特征树中除根节点之外的其他特征节点是否与所述差异特征项中的首字符匹配;
如果所述其他特征节点与所述差异特征项中的首字符匹配,则判断所述其他特征节点的子节点中是否存在与所述首字符的下一字符相匹配的特征节点;
如果所述其他特征节点与所述差异特征项中的首字符不匹配,则在所述根节点处创建所述未生效子树,所述未生效子树与所述其他特征节点虚连接,所述未生效子树包括的特征节点与所述差异特征项对应匹配;
根据预设的指针创建规则,为所述未生效子树包括的特征节点创建失配跳转指针。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第一处理模块,用于如果所述未生效子树为在所述根节点处添加的子树,则确定所述已生效子树中未与所述根节点直接相连,且失配跳转指针指向所述根节点的特征节点,得到第一特征节点集合;
确定所述未生效子树中与所述根节点直接相连的特征节点为目标首节点;
判断所述第一特征节点集合中,是否存在与所述目标首节点对应的字符相同的特征节点;
如果所述第一特征节点集合中,存在与所述目标首节点对应的字符相同的第一特征节点,则将所述第一特征节点的失配跳转指针修改为指向所述目标首节点;
确定所述第一特征节点在所述原始特征树中的层级为M,按照从根节点到子节点的顺序,从所述第一特征节点的子节点开始,依次判断层级为M+K的特征节点中,是否存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,其中,所述N的取值为2,所述K为正整数,且所述K的取值从1开始;
如果存在与所述未生效子树中层级为N+K的特征节点对应的字符相同的第二特征节点,则将所述第二特征节点的失配跳转指针修改为指向所述未生效子树中层级为N+K的特征节点。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二处理模块,用于根据所述差异特征项的个数、所述差异特征项的字符的个数和预设复杂度计算规则,得到更新所述原始特征树的第一时间复杂度;
根据所述第二特征项的个数、所述第二特征项的字符的个数和所述预设复杂度计算规则,得到重新构建特征树的第二时间复杂度;
如果所述第一时间复杂度小于所述第二时间复杂度,则根据所述差异特征项,对所述原始特征树中的特征节点以及特征节点的失配跳转指针进行更新处理;
如果所述第一时间复杂度大于所述第二时间复杂度,则向用户终端发送携带有所述第一时间复杂度和所述第二时间复杂度的更新提示消息,以使用户根据所述第一时间复杂度和所述第二时间复杂度选择所述当前特征库的更新方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810845258.XA CN109194613B (zh) | 2018-07-27 | 2018-07-27 | 一种数据包检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810845258.XA CN109194613B (zh) | 2018-07-27 | 2018-07-27 | 一种数据包检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109194613A CN109194613A (zh) | 2019-01-11 |
CN109194613B true CN109194613B (zh) | 2021-02-23 |
Family
ID=64937653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810845258.XA Active CN109194613B (zh) | 2018-07-27 | 2018-07-27 | 一种数据包检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109194613B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553517B (zh) * | 2022-02-14 | 2024-05-14 | 北京源堡科技有限公司 | 非线性加权的网络安全评估方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472167B2 (en) * | 2001-10-31 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | System and method for uniform resource locator filtering |
CN104243486A (zh) * | 2014-09-28 | 2014-12-24 | 中国联合网络通信集团有限公司 | 一种病毒检测方法及系统 |
CN107038380A (zh) * | 2017-04-14 | 2017-08-11 | 华中科技大学 | 一种基于程序特征树的漏洞检测方法及系统 |
-
2018
- 2018-07-27 CN CN201810845258.XA patent/CN109194613B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472167B2 (en) * | 2001-10-31 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | System and method for uniform resource locator filtering |
CN104243486A (zh) * | 2014-09-28 | 2014-12-24 | 中国联合网络通信集团有限公司 | 一种病毒检测方法及系统 |
CN107038380A (zh) * | 2017-04-14 | 2017-08-11 | 华中科技大学 | 一种基于程序特征树的漏洞检测方法及系统 |
Non-Patent Citations (3)
Title |
---|
Android Malware Detection Based on Static Analysis of Characteristic Tree;Qi Li等;《Proceedings of 2015 7th International Conference on Cyber-enabled Distributed Computing and Knowledge Discovery》;20150901;全文 * |
基于DPI的网络流量检测与控制系统的研究与实现;郑丽芬;《中国优秀硕士学位论文全文数据库信息科技辑》;20180415;全文 * |
基于特征串树的病毒特征码匹配算法;于泠等;《南京师范大学学报(工程技术版)》;20031220;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109194613A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10121000B1 (en) | System and method to detect premium attacks on electronic networks and electronic devices | |
US8914320B2 (en) | Graph generation method for graph-based search | |
CN110290117B (zh) | 一种匹配ip地址的方法及装置 | |
KR101868720B1 (ko) | 정규 표현식들에 대한 컴파일러 | |
US20230092522A1 (en) | Data packet processing method, apparatus, and electronic device, computer-readable storage medium, and computer program product | |
CN111971931B (zh) | 在区块链网络中验证交易的方法以及构成该网络的节点 | |
CN108881101B (zh) | 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端 | |
US10528731B1 (en) | Detecting malicious program code using similarity of hashed parsed trees | |
US11171994B2 (en) | Tag-based security policy creation in a distributed computing environment | |
CN104933363A (zh) | 检测恶意文件的方法和装置 | |
CN113315742B (zh) | 攻击行为检测方法、装置及攻击检测设备 | |
KR102390355B1 (ko) | 시그니처 기반 네트워크 공격 탐지 및 공격 시그니처 생성 방법 및 장치 | |
CN114024728B (zh) | 一种蜜罐搭建方法以及应用方法 | |
CN112685612B (zh) | 一种特征码查找和匹配方法、设备及存储介质 | |
CN111224941A (zh) | 一种威胁类型识别方法及装置 | |
CN111107181B (zh) | Nat规则匹配方法、装置、电子设备及存储介质 | |
CN109194613B (zh) | 一种数据包检测方法和装置 | |
EP2107484A2 (en) | A method and device for code audit | |
CN113703996B (zh) | 基于用户和yang模型分组的访问控制方法、设备及介质 | |
US20150026799A1 (en) | Information processing system, information processing method, and non-transitory computer readable medium | |
US9722874B2 (en) | Inference-based network route control | |
CN109492844B (zh) | 业务策略的生成方法和装置 | |
CN108696418B (zh) | 一种社交网络中隐私保护方法及装置 | |
CN112187743B (zh) | 一种基于ip地址最长前缀的网络策略匹配方法及系统 | |
CN109361658B (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 |