CN112532565B - 一种网络数据包检测方法、装置、终端及存储介质 - Google Patents
一种网络数据包检测方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112532565B CN112532565B CN201910877169.8A CN201910877169A CN112532565B CN 112532565 B CN112532565 B CN 112532565B CN 201910877169 A CN201910877169 A CN 201910877169A CN 112532565 B CN112532565 B CN 112532565B
- Authority
- CN
- China
- Prior art keywords
- rule
- rules
- keyword
- data packet
- network data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- 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/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- 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/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种网络数据包检测方法、装置、终端及存储介质,其中,所述方法包括:从第一规则集合的规则中提取对应的关键字,得到关键字集合;创建用于表示映射关系的映射表,所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则;基于所述映射表对网络数据包进行匹配,以确定在所述第一规则集合中匹配到的第一目标规则;对所述网络数据包执行所述第一目标规则对应的操作;本申请实施例能够提升对网络数据包进行匹配的效率。
Description
技术领域
本申请涉及网络安全技术,涉及但不限于一种网络数据包检测方法、装置、终端及存储介质。
背景技术
网络应用程序防火墙(Modsecurity)按照超文本传输协议(Hyper Text TransferProtocol,HTTP)处理网络数据包的过程有4个部分:请求头、请求体、响应头和响应体;Modsecurity按照这4个部分依次分别进行规则匹配,每个阶段都有各自所属的规则集,在每个阶段中,规则的匹配都是串行的。绝大多数情况下,HTTP数据只会匹配少数规则,在规则增多以及请求中参数比较多的时候,串行的匹配方式会遍历防护站点下面所有的安全规则,匹配耗时较长会直接导致网站应用级入侵防御系统(Web Application Firewall,WAF)的性能明显下降。
发明内容
本申请实施例提供一种网络数据包检测方法、装置、终端及存储介质,能够减少匹配的规则的数量,提高规则匹配的效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种网络数据包检测方法,所述方法包括:
从第一规则集合的规则中提取对应的关键字,得到关键字集合;
创建用于表示映射关系的映射表,所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则;
基于所述映射表对网络数据包进行匹配,以确定在所述第一规则集合中匹配到的第一目标规则;
对所述网络数据包执行所述第一目标规则对应的操作。
本申请实施例提供一种网络数据包检测装置,所述装置包括:第一提取模块、第一创建模块、第一匹配模块和第一执行模块,其中:
所述第一提取模块,用于从第一规则集合的规则中提取对应的关键字,得到关键字集合;
所述第一创建模块,用于创建用于表示映射关系的映射表,所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则;
所述第一匹配模块,用于基于所述映射表对网络数据包进行匹配,以确定在所述第一规则集合中匹配到的第一目标规则;
所述第一执行模块,用于对所述网络数据包执行所述第一目标规则对应的操作。
本申请实施例提供一种设备,所述设备至少包括:控制器和配置为存储可执行指令的存储介质,其中:
控制器配置为执行存储的可执行指令,所述可执行指令配置为执行上述提供的网络数据包检测方法。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述提供的网络数据包检测方法。
本申请实施例提供一种网络数据包检测方法、装置、终端及存储介质,其中,首先,从第一规则集合的规则中提取对应的关键字,得到关键字集合;然后,创建用于表示映射关系的映射表,所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则;基于所述映射表对网络数据包进行匹配,以确定在所述第一规则集合中匹配到的第一目标规则;最后,对所述网络数据包执行所述第一目标规则对应的操作;如此,利用能够提取关键字的第一规则集合对网络数据包进行匹配,能够减少匹配的规则的数量,提高了规则匹配的效率,从而提升了WAF引擎的处理性能。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本申请实施例网络数据包检测方法的实现流程示意图;
图2为本申请实施例的网络数据包检测实现流程示意图;
图3为本申请实施例的网络数据包检测实现流程示意图;
图4为本申请实施例生成AC描述文件流程示意图;
图5为本申请实施例数据存储结构的结构示意图;
图6为本申请实施例数据存储结构的另一结构示意图;
图7为本申请实施例的网络数据包检测另一实现流程示意图;
图8为申请实施例网络数据包检测装置的结构示意图;
图9为本申请实施例所述设备的组成结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本申请中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本申请的实施方式的构造也能够应用于固定类型的终端。
本申请实施例提供一种网络数据包检测方法,图1为本申请实施例网络数据包检测方法的实现流程示意图,如图1所示,结合如图1所示方法进行说明:
步骤S101,从第一规则集合的规则中提取对应的关键字,得到关键字集合。
这里,所述第一规则集合为能够使用多模式匹配中的经典算法(AC算法)对网络数据包进行预匹配的规则。AC算法,是一种自动机匹配算法,可以保证在给定的长度为n的数据包的文本,和模式集合P{p1,p2,…,pm},在O(n)时间复杂度内,找到数据包对应文本中的所有目标模式,而与模式集合的数据量m无关。所述关键字(fast pattern)可以理解为第一规则集合中包含的待匹配的字符串,而且这些字符串能够提取出具有确定含义的字符串(Common String);所述具有确定含义的字符串为该字符串所包含的意义是确定的,比如,文本字符串或者单撇号包括的字符等等。所述步骤S101可以理解为,从第一规则库中的每一规则中提取对应的关键字,而且关键字集合中的各个关键字互不相同。
步骤S102,创建用于表示映射关系的映射表。
这里,所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则;所述关键字、和所述第一规则集合中的规则之间的对应关系可以理解为,该关键字是从第一规则集合中的具体哪一个规则中提出出来的。所述映射表可以是前缀树(AC Trie树);所述前缀树为一种多路树形结构,是哈希树的变种,用于快速检索的多叉树结构。
步骤S103,基于所述映射表对网络数据包进行匹配,以确定在所述第一规则集合中匹配到的第一目标规则。
这里,由于映射表中包含有关键字和规则之间的对应关系,所以将网络数据包中的字符与每一关键字进行匹配,即可确定该网络数据包匹配的规则,即第一目标规则。
步骤S104,对所述网络数据包执行所述第一目标规则对应的操作。
这里,在一些具体的例子中,如果关键字为一些敏感词汇(比如,邪教名称),当网络数据包中出现与关键词相同的敏感词汇时,基于该关键词对应的第一目标规则,对该网络数据包进行拦截。
在本申请实施例中,利用能够提取关键字的第一规则集合对网络数据包进行匹配,能够减少匹配的规则的数量,提高了规则匹配的效率,从而提升了WAF引擎的处理性能。
本申请实施例提供一种网络数据包检测方法,图2为本申请实施例的网络数据包检测实现流程示意图,如图2所示,结合如图2所示方法进行说明:
步骤S201,确定预设规则库中包含操作符或自定义字符的第二规则集合。
这里,预设规则库中包含用于保护网络安全的多个规则;所述操作符为用于指示指令进行什么操作的字符,比如,“>”、“<”、“=”或者逻辑操作符(比如,与、或、非)等;所述自定义字符,为用于基于自身需求自行定义的字符,比如,用户定义字符“intercept”表示“拦截”操作。
步骤S202,利用所述预设规则库中除所述第二规则集合之外的规则,形成所述第一规则集合。
这里,从预设规则库中确定出能够提取关键字的第一规则集合,从而利用第一规则集合中的关键字对网络数据包进行匹配,减少了需要匹配的规则的数量。
步骤S203,提取所述第一规则集合的规则中包含于生僻字符集合的关键字。
这里,如果第一规则集合的规则中包含有生僻字符集合中的关键字,优先提取该关键字;所述生僻字集合可以认为不常见的字符,比如,常见的字符单个点(.)在系统文件头部中很常见,如果作为fast pattern,基本每次都会被匹配,达不到减少匹配的目的,所以字符单个点(.)不属于生僻字集合。
步骤S204,提取所述第一规则集合的规则中未包含于所述生僻字符集合中的关键字。
这里,优先提取包含于生僻字集合中的关键字,然后提取未包含于生僻字符集合中的关键字;这样,避免对于常见字符的多次匹配。
步骤S205,确定所述关键字对应的变换函数集合。
这里,当关键字确定之后,即可确定与该关键字匹配的字符串需要进行的变化,从而确定变换函数。比如,转换函数为小写转换、统一资源定位符(Uniform ResourceLocator,url)解码或者超文本标记语言(Hyper Text Markup Language,html)解码等。
步骤S206,确定所述变换函数集合中包含的变换函数的种类。
这里,将相同种类的变换函数进行合并。
步骤S207,基于所述变换函数的种类的确定待创建的映射表的数量。
这里,映射表的数量可以大于等于变换函数的种类。
步骤S208,创建大于或等于所述数量的所述对应关系,以形成所述映射表。
步骤S209,基于所述映射表中包含的转换函数对所述网络数据包进行转换,得到转换后的所述网络数据包。
这里,在一些具体的例子中,比如,转换函数为小写转换,步骤S209可以理解为,将网络数据包中的大写字符转换为小写字符。
步骤S210,将所述转换后的网络数据包,与所述第一规则集合中的规则进行匹配。
这里,将转换后的网络数据包与第一规则集合中规则包含的关键字进行匹配,以确定出与所述转换后的网络数据包相匹配的关键字。
步骤S211,将在所述第一规则集合中匹配到的规则确定为所述第一目标规则,并对所述网络数据包执行所述第一目标规则对应的操作。
这里,将与转换后的网络数据包相匹配的关键字对应的规则,确定为第一目标规则,从而对所述网络数据包执行所述第一目标规则对应的操作。
在本申请实施例中,采用AC算法进行规则的预匹配,来过滤不相关的规则,从而加速规则的匹配过程;而且为了避免漏掉规则,需要从Modsecurity规则的特征串中正确有效地提取fast pattern,从而能够快速确定出第一规则集合,提高了规则匹配的效率,从而提升了WAF引擎的处理性能。
在其他实施例中,所述方法还包括以下步骤:
步骤S21,将所述网络数据包与所述第二规则集合中的每一规则中包含的字符进行匹配,以确定在所述第二规则集合中匹配到的第二目标规则。
这里,将网络数据包与第二规则集合中的每一规则进行遍历,以确定该网络数据包相匹配的第二目标规则。
步骤S22,对所述网络数据包执行所述第二目标规则对应的操作。
在本申请实施例中,将预设的规则库分为第一规则集合和第二规则集合,对于第一规则集合中的规则采用关键字对网络数据包进行匹配,对于第二规则集合中的规则采用遍历的方式与网络数据包进行匹配,从而能够减少对于预设的规则可以中的规则进行匹配的次数。
本申请实施例提供一种网络数据包检测方法,图3为本申请实施例的网络数据包检测实现流程示意图,如图3所示,结合如图3所示方法进行说明:
步骤S301,确定预设规则库中包含操作符或自定义字符的第二规则集合。
步骤S302,利用所述预设规则库中除所述第二规则集合之外的规则,形成所述第一规则集合。
步骤S303,将所述第一规则集合的规则中的空白字符替换为空格,并将连续的空格进行合并。
这里,利用空格转换函数将第一规则集合的规则中的空白字符转换为空格,并将连续的空格进行合并,得到新的规则,即空白字符合并之后的规则,从而后续从新的规则中提取关键字,得到关键字集合。
上述步骤S303给出了一种对第一规则集合的规则进行处理的原则,将规则中的空白字符替换为空格,并对连续空格合并,这样能够达到压缩空白字符的效果。
步骤S304,从第一规则集合的规则中提取对应的关键字,得到关键字集合。
这里,从所述规则中提取关键字时,包括多个原则,比如:
1、提取的关键字应该保存字符的小写形式,以方便引擎对使用不同变换函数的规则做合并,引擎默认做小写转换即可。
2、使用特别操作符(Operator)修饰的关键字不进行提取,比如,使用身份验证字符(@gt / @verifyCC)等不是用来检查字面内容的Operator的规则不用提取。
3、第一规则集合中的规则为链式规则,那么从该链式规则中提取一个包含关键字的字符串。
4、使用“非”操作符修饰的字符串中不用提取关键字。
5、变量为TX:XX格式的规则,由于其该变量的值是前置规则设置的,无法直接确定取值来源以及是否做过加工,所以不从该规则中提取关键字。
步骤S305,当所述关键字为采用预设编码方式进行编码的字符时,将所述预设编码方式对应的头部字符添加在所述关键字的头部。
这里,所述预设编码方式为url编码或者html编码,如果规则中的关键字是url编码的字符,那么需要在关键字的头部带%;如果规则中的关键字是html编码字符,那么需要在关键字的头部带&#。
上述步骤S303至步骤S305,通过多条原则从第一规则集合中正确有效地提取关键字,从而能够提高对于网络数据包匹配的准确率。
步骤S306,当所述规则中的关键字对应的变换函数的被使用次数小于预设次数阈值时,从所述第一规则集合中删除所述规则。
这里,变换函数的被使用次数小于预设次数阈值,说明该变换函数对应的规则是不经常使用的,那么即使不将网络数据包与该不经常使用的变换函数对应的规则进行匹配,也不会应用网络安全性;所以从第一规则集合中删除所述规则,从而减少对于网络数据包的不必要的匹配。
步骤S307,创建用于表示映射关系的映射表。
这里,所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则
步骤S308,确定所述网络数据包的封装结构中的待检测部分的结构体。
这里,所述网络数据包的封装结构中的待检测部分可以是:请求头、请求体、响应头和响应体;待检测部分的结构体如图5所示。
步骤S309,将所述待检测部分对应的存储信息,存储到所述结构体中对应的位置。
这里,如图5所示,所述存储信息包括:待检测部分的名称(请求头、请求体、响应头或响应体)、映射表(AC tries)、转换函数、规则的数量、关键字的数量、关键字列表和规则编号列表。在存储待检测部分对应的存储信息的同时,将所述关键字集合中关键字的编号、所述关键字对应的文本和所述关键字对应规则的索引,存储到所述结构体中对应的位置;比如,将当对网络数据包进行请求头处理时,分别将请求头、映射表、转换函数、规则的数量、关键字的数量、关键字列表和规则编号列表,存储在数据结构508中。
上述步骤S308和步骤S309给出了一种“对映射表和关键字进行存储”的实现方式,在该方式中,每一关键字和对应的规则均存储在相应的位置,从而能够快速的查找到要进行匹配的规则和关键字。
步骤S310,基于所述映射表对网络数据包进行匹配,以确定在所述第一规则集合中匹配到的第一目标规则。
步骤S311,创建列数与所述第一规则集合中规则的数量相同的第一点阵图和第二点阵图。
这里,所述第一点阵图和所述第二点阵图均为一维向量;所述第一点阵图用于记录与网络数据包进行匹配之后的关键字;所述第二点阵图用于记录所述与网络数据包进行匹配之后的关键字对应的目标规则的索引。在第一点阵图中,有多少关键字就有多少个点,在第二点阵图中,有多少个规则就有多少个点。
上述步骤S311给出了一种记录已经匹配的关键字和已经匹配的规则的方式,在该方式中,通过第一点阵图和第二点阵图对已经匹配的关键字和规则进行记录,避免重复匹配。
在本申请实施例中,通过采用两个点阵图,分别用于记录已匹配的关键字和已经匹配的规则,从而可以减少规则的重复匹配,而且通过记录已经匹配的规则的索引能够快速取出第一规则集合中规则的编号,进而提高规则的匹配效率。
Modsecurity是一个开源、跨平台的万维网网站应用级入侵防御系统即应用程序防火墙的引擎模块,通过与安全防护规则相结合,可以实现对HTTP请求和响应的过滤及安全防护功能。
安全防护规则是由命令次规则(SecRule)来定义,用于分析数据并根据匹配结果执行动作,语法如下:
SecRule VARIABLES OPERATOR [ACTIONS]
其中,VARIABLES描述哪个变量被检查;
OPERATOR描述如何对变量进行检查,其中,OPERATOR包括操作符和特征串等;
ACTIONS描述当操作进行成功的匹配一个变量时该怎么做。
Modsecurity按照HTTP处理过程的4个阶段(请求头、请求体、响应头、响应体)依次分别进行规则匹配,每个阶段都有各自所属的规则集,在每个阶段中,规则的匹配都是串行的,即遍历该阶段中的所有规则,而规则内部的变量在匹配时也是串行的。
但是在相关技术中,绝大多数情况下,HTTP流量只会匹配少数规则,在规则增多以及请求中参数比较多的时候,串行的匹配方式会遍历防护站点下面所有的安全规则,匹配耗时较长会直接导致WAF的性能明显下降。
基于此,为了提高匹配的效率,本申请实施例提供一种规则匹配方法,取消了所有规则全部采用串行匹配的方式,将规则分为快速规则和慢速规则,其中慢速规则的比例比较低,通常可以设置为10%至20%,比如,15%。快速规则是指可以使用AC算法(多模式匹配中的经典算法)对流量进行预匹配的那些规则;而慢速规则反之,包含了用户定义规则、无法提取确定的字符串即平凡字符串(Common String)的规则等。所谓AC算法,是一种自动机匹配算法,可以保证在给定的长度为n的文本,和模式集合P{p1,p2,…,pm},在O(n)时间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关,被广泛使用。
对于一个Modsecurity处理阶段而言,由于Modsecurity规则中可以定义变换函数,为了不造成漏匹配,需要对原始的HTTP数据做规则中类似的变换后再利用AC做检查,故需要根据不同的转换函数列表建立多个AC trie。根据规则库中提供的fast pattern(是指那些确定的字符,即平凡字符串;不包含模糊匹配字符,如正则中的“.”、“\s”等)串信息和所对应的变换函数,将fast pattern添加到对应的AC Trie中,并做好fast pattern和规则的关系映射。检测一个HTTP请求的时候先使用AC算法对快速规则提取的fast pattern进行并行预匹配,对命中fast pattern的快速规则再逐一检查,然后对慢速规则进行逐一匹配。这个方法能够提高速度的原因在于AC扫描后推导出的候选规则会比原始列表中的少,降低了做传统匹配的规则数量。
本申请实施例提供的规则匹配方法,可以通过以下步骤实现:
第一步,规则分类及Fast pattern的提取,包括:
这里,将用户定义规则和无法提取fast pattern的规则作为慢速规则,其余的作为快速规则。为了提高快速规则筛选的有效性、减少规则匹配的次数,需要尽可能精确地提取fast pattern。
所述第一步,提取的fast pattern的原则如下:
1)需要覆盖规则Pattern表示的所有分支。
这里,规则中可能存在多个字符串,对于能提取fast pattern的规则,一条规则提取一个fast pattern,该提取的fast pattern需要覆盖规则中所有字符串包含的情况。
2)优先提取不常见的字符
比如单个点(.)在Host头部中很常见,如果作为fast pattern,基本每次都会被分配,达不到减少匹配的目的。
3)Faste pattern应该保存字符的小写形式
这里,将Faste pattern中的字符保存在小写的形式,方便引擎对使用不同变换函数的规则做合并,引擎默认做小写转换即可。
4)将规则中的空白字符替换成空格并对连续空格进行合并。
这里,方便引擎对使用不同变换函数的规则做合并,如压缩空白符。
5)使用特别Operator修饰的Pattern无须提取
比如,使用@gt / @verifyCC等不是用来检查字面内容的Operator的规则不要提取。
6)链式规则中应该只有一个Pattern被提取
7)使用“非”操作符修饰的Pattern不要提取
8)Varialbe为TX:XX格式的规则(子规则),由于其值是前置规则设置的,无法直接确定取值来源以及是否做过加工,所以不要提取。
9)如果fast pattern中的字符是url编码的字符需要带%头部,
10)如果fast pattern中的字符是html编码字符,需要带&#头部。
在一个具体的例子中,Pattern是个正则表达式,借助分析工具得到需要匹配的内容:
比如,一个正则表达式两端各有一个分支:“on”和“=”,中间有三个分支分别为:dblclick、mouseup、readystatechange。如果提取两端的,只需要提取一个字符串即可([“on”]或[“=”]);但中间的字符串更加精确,根据上述原则1)可以提取的fast pattern有三个[“ondblclick”,”onmouseup”,“onreadystatechange”],而前后的\b(正则中的边界符)不是普通字符,故不要提取出来。所以最终提取的fast pattern为:[“ondblclick”,”onmouseup”,“onreadystatechange”]。
第二步,建立AC Tries;
所述第二步,建立AC Tries,包括两个子步骤:
一是,AC Trie描述文件的建立:
Modsecurity规则中可以定义变换函数,这些变换函数的作用是对那些变量的取值做某些指定的变换后再和Pattern比较;其中,所述指定的变换为转换函数,如url解码、html解码、小写转换或去空格转换等;建立AC Tries的各规则的fast pattern是从Pattern中提取的,在AC检测时的输入是HTTP数据,为了不造成漏匹配,需要对这些原始的HTTP数据做规则中类似的变换后再用AC Trie进行规则匹配。因此,在设置AC Trie的时候除了考虑到阶段外,规则的变换也是一个必要的考虑因素。
AC信息的描述主要包含两种命令:SecAcTrie和SecAcPattern,SecAcTire用于描述一个AC Trie及其属性,SecAcPattern用于描述一个fast pattern的属性。
SecAcTrie和SecAcPattern两个命令的格式分别为:
第一个命令的格式为:SecAcTrie "ac_trie_name" "phase:x,t:func1,t:func2"
在第一个命令的格式中,ac_trie_name是AC Trie的名称;x为AC Trie所处的阶段;func是变换函数名称,可以配置多个。
第二个命令的格式为:SecAcPattern "fast_pattern" "ac_trie:ac_trie_name,rule:rule1,rule:rule2"
在第二个命令的格式中,fast_pattern是要检测的fast pattern内容;ac_trie用来描述所属AC Trie,对应于SecAcTrie中的ac_trie_name;rule表示这个pattern是从哪个规则中提取出来的,也就是说,匹配该pattern后,需要进一步检查是否匹配对应的规则。因为多个规则可能提取相同的fast pattern,所以每一个规则的字段可以配置多个。
在一些具体的例子中:
如果第一个命令的格式为:
SecAcTrie "phase1_1" "phase:1,t:urlDecodeUni,t:lowercase"
这里,声明一个AC Trie,名称为phase1_1,用于请求头阶段,在使用此AC匹配HTTP数据之前,需要对数据做urlDecodeUni,lowercase变换。
如果第二个命令的格式为:
SecAcPattern "ABC" "ac_trie:phase1_1,rule_id:'1000010009'"
这里,声明一个fast pattern:pattern的内容为ABC,所属的AC Trie为phase1_1,这个fast pattern是从规则1000010009中提取出来的。
如果第二个命令的格式为:SecAcPattern"DEF","ac_trie:phase1_1,rule_id:'1000010009',rule_id:'1030010011'"
这里,声明一个fast pattern:pattern的内容为DEF,所属的AC Trie为phase1_1,这个fast pattern是从规则1000010009和1030010011中提取出来的。
图4为本申请实施例生成AC描述文件流程示意图,如图4所示,所述生成AC描述文件包括以下步骤:
步骤S401,按照网络数据包的待检测部分读取预设规则库中的规则。
步骤S402,将读取的规则格式化。
步骤S403,依据变量调整规则对应的转换函数。
步骤S404,统计使用相同转换函数的规则数量。
步骤S405,合并使用可兼容变换的规则。
步骤S406,依据转换函数的数量确定需要生成的AC Tries。
步骤S407,从规则列表中删除包含使用量少的变换函数的规则。
步骤S408,将AC Tries存储在对应的结构体中。
这里,所述步骤S408可以理解为,将AC Tries中包含的关键字和规则的对应关系以图5所示的数据结构进行存储。
二是,AC Trie的加载和存储
AC Trie在内存中的数据结构如图5所示,数据结构说明如下:
在相关技术中,Modsecurity模块只有本地配置,在本实施例中fast pattern的引擎(fast engine)信息需要作为全局的配置,所以增加结构体ngx_http_modsecurity_mian_conf_t 501用来存储fast engine的配置502和开关503。
对于fast engine配置502内容,新增第一数据结构体(modsecurity_fast_conf_t)504用来抽象AC Tries 51,包含所有的AC Trie配置505和AC文件更新时间506,AC文件更新时间主要用来参考是否需要更新AC Trie配置;
AC Trie是也按网络数据包的封装结构中的待检测部分来存储,新增第二数据结构(modsecurity_ac_conf_t)507以实现此目的;其中,新增第二数据结构507包括四种待检测部分的四个部分对应的存储结构,即请求头571、请求体572、响应头573和响应体574对应的存储结构508。在存储结构508中规则编号列表以结构体514的形式进行存储;其中,541表示规则的编号,542表示每一规则对应的值;比如,编号为0的规则,对应的值为“1020010015”。
在存储结构508中关键字列表的存储结构为509,即存储关键字的编号510、关键字的数据量511和关键字对应的规则的索引列表512;规则的索引列表512以结构体513进行存储。
对于单个AC Trie的配置而言,定义结构体modsecurity_ac_trie_conf_t用于存储包含的fast pattern,fast pattern和规则的映射关系,编译后的AC Trie等。
对于单个fast pattern,定义结构体modsecurity_ac_pattern_t用来保存其信息,包含pattern编号、数据和关联规则的索引。
在本申请实施例中,pattern id和rule index都是从0开始编号,其中,patternid为每一个fast pattern的编号;rule id为第一规则库中每一第一规则的编号;ruleindex在数据结构中以数组(或者表)的形式存在的,比如找第一规则库中的第i个规则,只需遍历rule index,也就是该第i个规则在数组中的第几位。
结构体modsecurity_ac_trie_conf_t中pattern_talbe以pattern_id为数组下标,rule_id_table以rule index为下标。相应的,modsecurity_ac_pattern_t中的rule_index_list中存储的也是规则编号。编号是基于单个AC Trie进行。
Modsecurity的命令列表module_directives中注册新的命令SecAcTrie和SecAcPattern,命令格式如下,其中:
SecAcTrie的命令格式为:
AP_INIT_TAKE2 {
“SecAcTrie”, //命令名称
hs_cmd_ac_trie, //解析函数
NULL, //cmd数据
CMD_SCOPE_MAIN, //覆写标志
“an AC trie” //描述
}
SecAcPattern的命令格式为:
AP_INIT_TAKE2 {
“SecAcPattern”, //命令名称
hs_cmd_ac_pattern, //解析函数
NULL, //cmd数据
CMD_SCOPE_MAIN, //覆写标志
“a fast pattern” //描述
}
在上述命令格式中,命令解析函数cmd_ac_pattern分析每条指令的内容,并将fast pattern和对应的规则信息记录到modsecurity_ac_trie_config_t中。
命令解析函数在解析fast pattern时,会依据ac_trie的名称找到对应的ACTrie,然后对fast pattern和rule进行编号(从0开始),然后存入ac_trie中,同时记录好fast pattern和rule的关系。
在AC配置文件解析完成后,需要将AC配置信息编译成AC Trie,AC Trie的编译过程比较简单。
第三步,调整规则匹配流程
单条规则的匹配方式不做修改,这里描述一下候选快速规则的推导。在matchstate中设置两个点阵图(bitmap),如图6所示,AC Trie600包括:第一点阵图601用于记录已经匹配的fast pattern,防止同一fast pattern被反复匹配时频繁地调用后续处理动作;第二点阵图602用于记录已经匹配的规则的索引,以防止匹配同一条规则后查询是否匹配过时需要遍历数组。在第一点阵图601中,序号61为关键字的编号,字符62为相应编号的关键字对应地字符,比如,编号为0的关键字,对应的字符为“0 2 7”等。对于第一点阵图601中的关键字的匹配结果显示在表603中,比如,编号为0的关键字匹配失败,则在表603中标识“F”;编号为1的关键字匹配成功,则在表603中标识“T”;在第二点阵图602中,序号63为规则的编号,字符64为相应编号的规则对应地字符;比如,编号为0的规则,对应的字符为“1020010015”等。对于第二点阵图602中的规则的匹配结果显示在表604中,比如,编号为0的规则匹配失败,则在表604中标识“F”;编号为1的关键字匹配成功,则在表604中标识“T”。
在做AC匹配时,如果发生匹配会将pattern信息作为参数进行匹配函数的回调,此时将相应fast pattern在第一个bitmap中置位,同时将相关的规则在第二个bitmap中置位。当AC匹配结束后,用第二个bitmap中命中规则的信息到main conf中取出规则id。
增加AC预匹配后的规则处理流程如图7所示,包括以下步骤:
步骤S701,如果引擎(fast engine)是关闭的,用遍历的方式对网络数据包进行匹配。
步骤S702,获取一个AC Trie,并依据AC Trie中的转换函数对网络数据包做变换。
步骤S703,将网络数据包与第一规则集合中的规则的关键字进行匹配。
步骤S704,如果有发生匹配,则调用处理函数进行记录该匹配结果。
步骤S705,在匹配的处理函数中判断此关键字是否发生过匹配,如果没有发生过匹配,则记录该关键字对应的规则。
步骤S706,当本条规则匹配完成之后,用获取的第一规则集合中的规则来调用单规则的匹配流程,已进行下一条规则的匹配。
步骤S707,将下一条规则中的关键字与网络数据包进行匹配,直到网络数据包的封装结构中的待检测部分的所有AC Trie检查完毕。
这里,如果有规则需要deny / allow请求。
步骤S708,获取所述网络数据包的封装结构中的待检测部分的第二规则集合中的规则,用遍历的方式与网络数据包进行匹配;
步骤S709,所述网络数据包的封装结构中的待检测部分的匹配。
在本申请实施例中,在Modsecurity的规则匹配流程中,采用AC预匹配来过滤不相关的规则,从而加速规则的匹配过程。为了避免漏报,需要从Modsecurity规则的特征串中正确有效地提取fast pattern。为了提高快速规则的推导效率,引入了两个位图bitmap分别用于记录已匹配的fast pattern和rule index,通过记录了fast pattern的bitmap可以减少pattern的重复匹配,而通过记录了rule index的位图可以快速取出候选规则id;从而有效地解决了Modsecurity规则数量上升时所带来的匹配性能线性下降问题,实现了不相关规则的快速过滤,并可以快速推导出候选规则,提高了规则匹配的效率,从而提升了WAF引擎的处理性能。
本申请实施例再提供一种网络数据包检测装置,图8为申请实施例网络数据包检测装置的结构示意图,如图8所示,所述装置800包括:第一提取模块801、第一创建模块802、第一匹配模块803和第一执行模块804,其中:
所述第一提取模块801,用于从第一规则集合的规则中提取对应的关键字,得到关键字集合;
所述第一创建模块802,用于创建用于表示映射关系的映射表,所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则;
所述第一匹配模块803,用于基于所述映射表对网络数据包进行匹配,以确定在所述第一规则集合中匹配到的第一目标规则;
所述第一执行模块804,用于对所述网络数据包执行所述第一目标规则对应的操作。
在上述装置中,所述装置还包括:
第一确定模块,用于确定预设规则库中包含操作符或自定义字符的第二规则集合;
第一形成模块,用于利用所述预设规则库中除所述第二规则集合之外的规则,形成所述第一规则集合。
在上述装置中,所述装置还包括:
第二匹配模块,用于将所述网络数据包与所述第二规则集合中的每一规则中包含的字符进行匹配,以确定在所述第二规则集合中匹配到的第二目标规则;
第二执行模块,用于对所述网络数据包执行所述第二目标规则对应的操作。
在上述装置中,所述第一提取模块801,包括:
第一提取子模块,用于提取所述第一规则集合的规则中包含于生僻字符集合的关键字;
第二提取子模块,用于提取所述第一规则集合的规则中未包含于所述生僻字符集合中的关键字。
在上述装置中,所述装置还包括:
第一替换模块,用于将所述第一规则集合的规则中的空白字符替换为空格,并将连续的空格进行合并。
在上述装置中,所述装置还包括:
第一添加模块,用于当所述关键字为采用预设编码方式进行编码的字符时,将所述预设编码方式对应的头部字符添加在所述关键字的头部。
在上述装置中,所述第一创建模块802,包括:
第一确定子模块,用于确定所述关键字对应的变换函数集合;
第二确定子模块,用于确定所述变换函数集合中包含的变换函数的种类;
第三确定子模块,用于基于所述变换函数的种类的确定待创建的映射表的数量;
第一创建子模块,用于创建大于或等于所述数量的所述对应关系,以形成所述映射表。
在上述装置中,所述装置还包括:
第一删除单元,用于当所述规则中的关键字对应的变换函数的被使用次数小于预设次数阈值时,从所述第一规则集合中删除所述规则。
在上述装置中,所述装置还包括:
第二确定模块,用于确定所述网络数据包的封装结构中的待检测部分的结构体;
第一存储模块,用于将所述待检测部分对应存储信息,存储到所述结构体中对应的位置。
在上述装置中,所述装置还包括:
第二存储模块,用于将所述关键字集合中关键字的编号、所述关键字对应的文本和所述关键字对应规则的索引,存储到所述结构体中对应的位置。
在上述装置中,所述装置还包括:
第二创建模块,用于创建列数与所述第一规则集合中规则的数量相同的第一点阵图和第二点阵图;
其中,所述第一点阵图和所述第二点阵图均为一维向量;所述第一点阵图用于记录与网络数据包进行匹配之后的关键字;所述第二点阵图用于记录所述与网络数据包进行匹配之后的关键字对应的目标规则的索引。
在上述装置中,所述第一匹配模块803,包括:
第一转换子模块,用于基于所述映射表中包含的转换函数对所述网络数据包进行转换,得到转换后的所述网络数据包;
第一匹配子模块,用于将所述转换后的网络数据包,与所述第一规则集合中的规则进行匹配;
第四确定子模块,用于将在所述第一规则集合中匹配到的规则确定为所述第一目标规则。
本申请实施例再提供一种网络数据包检测装置,该装置包括所包括的各模块、以及各模块所包括的各子模块和各单元,可以通过终端中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
对应地,本申请实施例提供一种设备,图9为本申请实施例所述设备的组成结构示意图,如图9所示,所述设备900至少包括:控制器902和配置为存储可执行指令的存储介质901,其中:
控制器902配置为执行存储的可执行指令,所述可执行指令用于实现提供的网络数据包检测方法。
需要说明的是,以上设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
对应地,本申请实施例提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令配置为执行本申请其他实施例提供的网络数据包检测方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器等)执行本申请各个实施例所描述的方法。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (13)
1.一种网络数据包检测方法,其特征在于,所述方法包括:
从第一规则集合的规则中提取对应的关键字,得到关键字集合;
确定所述关键字对应的变换函数集合;确定所述变换函数集合中包含的变换函数的种类;基于所述变换函数的种类确定待创建的映射表的数量;创建大于或等于所述数量的映射关系,以形成所述映射表,所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则;
基于所述映射表中包含的所述变换函数对网络数据包进行转换,得到转换后的所述网络数据包;将所述转换后的网络数据包,与所述第一规则集合中的规则进行匹配;将在所述第一规则集合中匹配到的规则确定为第一目标规则;
对所述网络数据包执行所述第一目标规则对应的操作。
2.如权利要求1中所述的方法,其特征在于,在所述从第一规则集合的规则中提取对应的关键字,得到关键字集合之前,所述方法还包括:
确定预设规则库中包含操作符或自定义字符的第二规则集合;
利用所述预设规则库中除所述第二规则集合之外的规则,形成所述第一规则集合。
3.如权利要求2中所述的方法,其特征在于,所述方法还包括:
将所述网络数据包与所述第二规则集合中的每一规则包含的字符进行匹配,以确定在所述第二规则集合中匹配到的第二目标规则;
对所述网络数据包执行所述第二目标规则对应的操作。
4.如权利要求1中所述的方法,其特征在于,所述从第一规则集合的规则中提取对应的关键字,包括:
提取所述第一规则集合的规则中包含于生僻字符集合的关键字;
提取所述第一规则集合的规则中未包含于所述生僻字符集合中的关键字。
5.如权利要求1中所述的方法,其特征在于,从第一规则集合的规则中提取对应的关键字之前,所述方法还包括:
将所述第一规则集合的规则中的空白字符替换为空格,并将连续的空格进行合并。
6.如权利要求1中所述的方法,其特征在于,在所述从第一规则集合的规则中提取对应的关键字之后,所述方法还包括:
当所述关键字为采用预设编码方式进行编码的字符时,将所述预设编码方式对应的头部字符添加在所述关键字的头部。
7.如权利要求1中所述的方法,其特征在于,所述方法还包括:
当所述规则中的关键字对应的变换函数的被使用次数小于预设次数阈值时,从所述第一规则集合中删除所述规则。
8.如权利要求1中所述的方法,其特征在于,在所述创建用于表示映射关系的映射表之后,所述方法还包括:
确定所述网络数据包的封装结构中的待检测部分的结构体;
将所述待检测部分对应存储信息,存储到所述结构体中对应的位置。
9.如权利要求8中所述的方法,其特征在于,所述方法还包括:
将所述关键字集合中关键字的编号、所述关键字对应的文本和所述关键字对应规则的索引,存储到所述结构体中对应的位置。
10.如权利要求1中所述的方法,其特征在于,在所述对所述网络数据包执行所述第一目标规则对应的操作之前,所述方法还包括:
创建列数与所述第一规则集合中规则的数量相同的第一点阵图和第二点阵图;
其中,所述第一点阵图和所述第二点阵图均为一维向量;所述第一点阵图用于记录与网络数据包进行匹配之后的关键字;所述第二点阵图用于记录所述与网络数据包进行匹配之后的关键字对应的目标规则的索引。
11.一种网络数据包检测装置,其特征在于,所述装置包括:
第一提取模块,用于从第一规则集合的规则中提取对应的关键字,得到关键字集合;
第一确定子模块,用于确定所述关键字对应的变换函数集合;第二确定子模块,用于确定所述变换函数集合中包含的变换函数的种类;第三确定子模块,用于基于所述变换函数的种类确定待创建的映射表的数量;第一创建子模块,用于创建大于或等于所述数量的映射关系,以形成所述映射表;所述映射关系对应所述关键字集合中的所述关键字与所述第一规则集合中的规则;
第一转换子模块,用于基于所述映射表中包含的所述变换函数对网络数据包进行转换,得到转换后的所述网络数据包;第一匹配子模块,用于将所述转换后的网络数据包,与所述第一规则集合中的规则进行匹配;第四确定子模块,用于将在所述第一规则集合中匹配到的规则确定为第一目标规则;
第一执行模块,用于对所述网络数据包执行所述第一目标规则对应的操作。
12.一种电子设备,其特征在于,所述设备至少包括:控制器和配置为存储可执行指令的存储介质,其中:
控制器配置为执行存储的可执行指令,所述可执行指令配置为执行上述权利要求1至10任一项提供的网络数据包检测方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令配置为执行上述权利要求1至10任一项提供的网络数据包检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910877169.8A CN112532565B (zh) | 2019-09-17 | 2019-09-17 | 一种网络数据包检测方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910877169.8A CN112532565B (zh) | 2019-09-17 | 2019-09-17 | 一种网络数据包检测方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112532565A CN112532565A (zh) | 2021-03-19 |
CN112532565B true CN112532565B (zh) | 2022-06-10 |
Family
ID=74974725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910877169.8A Active CN112532565B (zh) | 2019-09-17 | 2019-09-17 | 一种网络数据包检测方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112532565B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426049A (zh) * | 2017-05-16 | 2017-12-01 | 国家计算机网络与信息安全管理中心 | 一种网络流量精确检测方法、设备及存储介质 |
CN108881145A (zh) * | 2017-12-26 | 2018-11-23 | 北京安天网络安全技术有限公司 | 入侵检测规则优化方法、装置、电子设备及存储介质 |
CN110147431A (zh) * | 2019-05-05 | 2019-08-20 | 中国银行股份有限公司 | 关键词匹配方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103384213B (zh) * | 2011-12-31 | 2017-07-21 | 华为数字技术(成都)有限公司 | 一种检测规则优化配置方法及设备 |
-
2019
- 2019-09-17 CN CN201910877169.8A patent/CN112532565B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426049A (zh) * | 2017-05-16 | 2017-12-01 | 国家计算机网络与信息安全管理中心 | 一种网络流量精确检测方法、设备及存储介质 |
CN108881145A (zh) * | 2017-12-26 | 2018-11-23 | 北京安天网络安全技术有限公司 | 入侵检测规则优化方法、装置、电子设备及存储介质 |
CN110147431A (zh) * | 2019-05-05 | 2019-08-20 | 中国银行股份有限公司 | 关键词匹配方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112532565A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844705B (zh) | 基于二进制代码特征的第三方组件漏洞检测方法 | |
CN109445834B (zh) | 基于抽象语法树的程序代码相似性快速比较方法 | |
US7769704B2 (en) | Contextual pattern decoder engine | |
CN111931935B (zh) | 基于One-shot 学习的网络安全知识抽取方法和装置 | |
CN110007906B (zh) | 脚本文件的处理方法、装置和服务器 | |
CN112511546A (zh) | 基于日志分析的漏洞扫描方法、装置、设备和存储介质 | |
US20200342037A1 (en) | System and method for search discovery | |
US10002254B2 (en) | Systems and methods for SQL type evaluation to detect evaluation flaws | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN114444487A (zh) | 一种数据处理方法、装置、设备及介质 | |
US10025936B2 (en) | Systems and methods for SQL value evaluation to detect evaluation flaws | |
CN112532565B (zh) | 一种网络数据包检测方法、装置、终端及存储介质 | |
CN105373236A (zh) | 一种学词方法和装置 | |
Zou et al. | SCVD: A new semantics-based approach for cloned vulnerable code detection | |
KR102671575B1 (ko) | 교차 아키텍처 바이너리에 대한 이진 비교 방법 | |
CN113688240B (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN115859273A (zh) | 一种数据库异常访问的检测方法、装置、设备及存储介质 | |
CN114880523A (zh) | 字符串处理方法、装置、电子设备及存储介质 | |
WO2017049254A1 (en) | Systems and methods for sql type and/or value evaluation to detect evaluation flaws | |
CN112883372A (zh) | 跨站脚本攻击检测方法和装置 | |
JP2014235584A (ja) | 文書分析システム、文書分析方法およびプログラム | |
CN112202822B (zh) | 数据库注入检测方法、装置、电子设备及存储介质 | |
EP4124985A1 (en) | Token frequency based data matching | |
WO2022201309A1 (ja) | 情報補完装置、情報補完方法、及びコンピュータ読み取り可能な記録媒体 | |
CN109067696B (zh) | 基于图相似度分析的webshell检测方法及系统 |
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 |