掌桥专利:专业的专利平台
掌桥专利
首页

一种规则命中检测方法、装置、电子设备及可读存储介质

文献发布时间:2023-06-19 11:52:33


一种规则命中检测方法、装置、电子设备及可读存储介质

技术领域

本申请涉及数据匹配检测技术领域,特别涉及一种规则命中检测方法、装置、电子设备及可读存储介质。

背景技术

大多数恶意内容的入侵检测机制在入侵检测时,其过程大体可描述为:获取待检测流量,运行入侵检测应用,调用规则库中存储的各条入侵检测规则来判定待检测流量中是否存在恶意流量。

即入侵检测应用中仅包含实际运行执行入侵检测的引擎,例如第一步检测入侵检测规则中的第一选项是否命中,具体实现入侵判定的规则内容则独立存在于规则库,例如第一选项为包含字符串“abc”。可见入侵检测引擎与规则库之间相互独立,在实际使用时,入侵检测引擎需要从规则库中读取相应规则内容才能有针对的判断出待检测内容是否命中了读取的这条规则。

随着恶意内容的不断变化,规则数量也逐渐增多,入侵检测引擎需要频繁从规则库读取一条条的规则的具体内容,以带入具体的规则内容对待检测内容进行入侵检测。引擎和规则库相对独立的方式,使得两方可以有不同的群体分别维护,分离式、模块化的设计固然更便于维护(尤其是可以单独更新规则库而不对引擎本体进行更新),但也导致了引擎在从规则库中读取各条规则时还需要进行一系列检测和处理的问题,例如完整性检测、格式检测、加解密操作等,且这些动作将会伴随着规则内容的不断读取持续进行,从而使得承载这一业务的网络安全设备需要花费更大的性能开销来完成这些操作,进而影响设备上其它业务的正常运行。同时,规则内容与引擎的分离也导致了规则内容易于被恶意攻击者通过诸如反编译等手段破解,泄露宝贵的数据。

因此,如何克服现有技术存在的各项技术缺陷,是本领域技术人员亟待解决的问题。

发明内容

本申请的目的是提供一种规则命中检测方法、装置、电子设备及可读存储介质,旨在消除由于规则命中检测引擎和规则库独立存在导致的额外性能开销,进而保障其它业务的正常运行,同时防止规则内容被盗取。

为实现上述目的,本申请首先提供了一种规则命中检测方法,包括:

接收规则命中检测请求;

利用一体式规则命中检测应用对所述规则命中检测请求中包含的待命中内容执行规则命中检测操作,得到规则命中检测结果;其中,所述一体式规则命中检测应用为将规则命中检测引擎和规则内容整合为一体得到的规则命中检测应用;

返回所述规则命中检测结果。

可选的,所述一体式规则命中检测应用的生成过程包括:

获取以独立形式表示的独立规则;

根据所述独立规则生成一体式可执行代码;

将所述一体式可执行代码封装成所述一体式规则命中检测应用。

可选的,所述独立规则包括以字符形式表示的字符规则、以树形结构表示的树形规则、以有向无环图结构表示的有向无环图规则中的任意一种。。

可选的,该规则命中检测方法还包括:

检查是否存在更新版本的一体式规则命中检测应用;

若存在,则获取最新版本的一体式规则命中检测应用,并将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用。

可选的,在将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用之前,还包括:

验校获取到的最新版本的一体式规则命中检测应用的完整性;

若通过了完整性验校,则执行所述将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用的步骤。

可选的,在所述将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用之前,还包括:

备份更新前使用的旧一体式规则命中检测应用;

对应的,在所述将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用之前,还包括:

当所述最新版本的一体式规则命中检测应用运行出现异常时,更换运行所述旧一体式规则命中检测应用,并同时将所述最新版本的一体式规则命中检测应用标记为异常状态。

可选的,在所述将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用之前,还包括:

备份所述最新版本的一体式规则命中检测应用;

当所述最新版本的一体式规则命中检测应用存在异常时,更换运行备份的最新版本的一体式规则命中检测应用;

若备份的最新版本的一体式规则命中检测应用运行未出现异常,则删去存在异常的最新版本的一体式规则命中检测应用。

为实现上述目的,本申请还提供了一种规则命中检测装置,包括:

规则命中检测请求接收单元,用于接收规则命中检测请求;

规则命中检测单元,用于利用一体式规则命中检测应用对所述规则命中检测请求中包含的待命中内容执行规则命中检测操作,得到规则命中检测结果;其中,所述一体式规则命中检测应用为将规则命中检测引擎和规则内容整合为一体得到的规则命中检测应用;

规则命中检测结果返回单元,用于返回所述规则命中检测结果。

其中,该规则命中检测装置还隐含包括应用生成单元,其中,所述应用生成单元包括:

独立规则获取子单元,用于获取以独立形式表示的独立规则;

一体式可执行代码生成子单元,用于根据所述独立规则生成一体式可执行代码;

封装子单元,用于将所述一体式可执行代码封装成所述一体式规则命中检测应用。

可选的,该规则命中检测装置还包括:

版本更新检查单元,用于检查是否存在更新版本的一体式规则命中检测应用;

版本更新单元,用于当存在更新版本的一体式规则命中检测应用时,获取最新版本的一体式规则命中检测应用,并将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用。

可选的,该规则命中检测装置还包括:

完整性验校单元,用于在将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用之前,验校获取到的最新版本的一体式规则命中检测应用的完整性;

更新执行单元,用于当通过了完整性验校时,执行所述将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用的步骤。

可选的,该规则命中检测装置还包括:

旧应用备份单元,用于在将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用之前,备份更新前使用的旧一体式规则命中检测应用;

第一新应用运行异常更换及处理单元,用于在将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用之前,当所述最新版本的一体式规则命中检测应用运行出现异常时,更换运行所述旧一体式规则命中检测应用,并同时将所述最新版本的一体式规则命中检测应用标记为异常状态。

可选的,该规则命中检测装置还包括:

新应用备份单元,用于在将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用之前,备份所述最新版本的一体式规则命中检测应用;

第二新应用运行异常更换及处理单元,用于当所述最新版本的一体式规则命中检测应用存在异常时,更换运行备份的最新版本的一体式规则命中检测应用;若备份的最新版本的一体式规则命中检测应用运行未出现异常,则删去存在异常的最新版本的一体式规则命中检测应用。

为实现上述目的,本申请还提供了一种电子设备,包括:

存储器,用于存储规则命中检测程序;

处理器,用于在执行所述规则命中检测程序时实现如上述内容所描述的规则命中检测方法的各步骤。

为实现上述目的,本申请还提供了一种可读存储介质,所述可读存储介质上存储有规则命中检测程序,所述规则命中检测程序在被处理器执行后实现如上述内容所描述的规则命中检测方法的各步骤。

本申请提供的一种规则命中检测方法包括:接收规则命中检测请求;利用一体式规则命中检测应用对所述规则命中检测请求中包含的待命中内容执行规则命中检测操作,得到规则命中检测结果;其中,所述一体式规则命中检测应用为将规则命中检测引擎和规则内容整合为一体得到的规则命中检测应用;返回所述规则命中检测结果。

根据本申请提供的规则命中检测方法可以看出,本申请不再采用将规则命中检测引擎与规则内容分离的方式来执行规则命中检测操作,而是将规则命中检测引擎和规则内容整合为一体,直接得到一体式规则命中检测应用。由于规则命中检测引擎与规则内容不再分离,在执行规则命中检测操作时也就无需再读取规则内容,也省去了相关的一系列的检测和处理操作,可有效降低性能开销。同时,由于形成一个整体,也能够更好的防止恶意方通过对窃取来的规则进行反编译得到宝贵的规则内容。

本申请同时还提供了一种规则命中检测装置、电子设备及可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种规则命中检测方法的流程图;

图2为一种将规则内容按树形结构表示得到的树形图;

图3为本申请实施例提供的规则命中检测方法中一种生成一体式规则命中检测应用的方法的流程图;

图4为本申请实施例提供的一种规则命中检测装置的结构框图。

具体实施方式

本申请的目的是提供一种规则命中检测方法、装置、电子设备及可读存储介质,旨在消除由于规则命中检测引擎和规则库独立存在到导致的额外性能,进而保障其它业务的正常运行,同时防止规则内容被盗取。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

请参见图1,图1为本申请实施例提供的一种规则命中检测方法的流程图,其包括以下步骤:

S101:接收规则命中检测请求;

本步骤旨在规则命中检测装置接收传入的规则命中检测请求。其中,该规则命中检测请求基于存在的需要进行规则命中检测操作的待命中内容生成,以便于响应该请求对其中包含的待命中内容执行规则命中检测操作。

S102:利用一体式规则命中检测应用对规则命中检测请求中包含的待命中内容执行规则命中检测操作,得到规则命中检测结果;

其中,该一体式规则命中检测应用为将规则命中检测引擎和规则内容整合为一体得到的规则命中检测应用。

在S101的基础上,本步骤旨在由规则命中检测装置根据接收到的规则命中检测请求,利用一体式规则命中检测应用对规则命中检测请求中包含的待命中内容执行规则命中检测操作,从而得到规则命中检测结果。

为了便于更好的理解本申请描述的一体式规则命中检测应用,以下通过伪代码来对比说明:

请参见图2所示的以树形结构表示的规则内容,图2所示的树形图对应以下采用字符形式表示的规则内容:

规则A:Content:"b";

规则B:Content:"a";Content:"c";

规则C:Content:"a";Content:"d"。

为了验证待命中内容中是否匹配某条规则,传统分离式的规则命中检测引擎的伪代码往往需要编写为如下形式:

在该伪代码中,使用了一个switch语句来对节点的类型进行判断,根据类型跳转到相应的处理代码;使用了一个for循环来对所有的子节点进行遍历,每一次遍历要增加一次迭代器并判断一次是否已到了循环尾;使用了递归函数调用来对子节点进行检测。以上代码会增加额外的性能开销,同时规则库被编译为独立的数据结构,易于被反编译而使规则库泄密。

而同样是对应于图2所示的规则内容,在将规则内容和规则命中检测引擎整合为一体时,其就可以简单的编写得到如下能够实现相同结果的伪代码:

bool match;//是否匹配

match=进行Content匹配("a");

if(!match)goto行号2;

match=进行Content匹配("c");

if(!match)goto行号1;

输出“命中了规则B”

行号1:

match=进行Content匹配("d");

if(!match)goto行号2;

输出“命中了规则C”

行号2:

match=进行Content匹配("b");

if(!match)goto行号3;

输出“命中了规则A”

行号3:

结束

两者对比就可以明显看出:两者在复杂程度上差异明显,且遵循分离式设计的伪代码并不包含具体的规则内容,还需要考虑从规则库中读取这部分内容。因此,对于规则命中检测装置来说,显然运行本申请提供的一体式规则命中检测应用能够避免额外的开销,对于用户来讲,一体式设计也使得宝贵的规则内容也更难被窃取。

S103:返回规则命中检测结果。

根据本实施例提供的规则命中检测方法可以看出,本申请不再采用将规则命中检测引擎与规则内容分离的方式来执行规则命中检测操作,而是将规则命中检测引擎和规则内容整合为一体,直接得到一体式规则命中检测应用。由于规则命中检测引擎与规则内容不再分离,在执行规则命中检测操作时也就无需再读取规则内容,也省去了相关的一系列的检测和处理操作,可有效降低性能开销。同时,由于形成一个整体,也能够更好的防止恶意方通过对窃取来的规则进行反编译得到宝贵的规则内容。

在上述实施例的基础上,为了更深入的了解一体式规则命中检测应用的生成方式,本申请提供了一种如图3流程图所示的实现方式,包括如下步骤:。

S201:获取以独立形式表示的独立规则;

其中,独立规则指独立于规则命中检测引擎存在、表示相应规则内容的规则,具体的,以形如“规则B:Content:"a";Content:"c"”的字符或文本表示的字符规则、形如图2所示的树形图(将规则内容按树形结构进行表示得到)以及类似树形图的有向无环图(将规则内容按有向无环图结构进行表示得到)等,均为将规则内容以独立形式表示的一种独立规则。

S202:根据独立规则和规则命中检测引擎生成一体式可执行代码;

以形如图2所示树形图表示的独立规则为例,其可以与规则命中检测引擎生成如下所示的一体式可执行代码:

bool match;//是否匹配

match=进行Content匹配("a");

if(!match)goto行号2;

match=进行Content匹配("c");

if(!match)goto行号1;

输出“命中了规则B”

行号1:

match=进行Content匹配("d");

if(!match)goto行号2;

输出“命中了规则C”

行号2:

match=进行Content匹配("b");

if(!match)goto行号3;

输出“命中了规则A”

行号3:

结束

S203:根据一体式可执行代码生成一体式规则命中检测应用。

将上述一体式可执行代码经过封装即可得到一体式规则命中检测应用。

在本申请的另一些实施例中,伴随着规则内容的不断增加,规则命中检测装置还可以检查是否存在更新版本的一体式规则命中检测应用,若检查到存在更新版本的一体式规则命中检测应用,则获取最新版本的一体式规则命中检测应用,并将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用。具体的,检查操作可以每隔一段时间进行一次,也可以由保存所有版本的远端服务器来主动推送告知存在更新版本的一体式规则命中检测应用。

更一步的,在将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用之前,还可以验校获取到的最新版本的一体式规则命中检测应用的完整性,并仅在通过了完整性验校后,才执行将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用的步骤,从而防止运行异常应用所导致出现的安全漏洞或异常。具体的,完整性验证可以通过Hash值、摘要、数字签名等多种方式实现,此处不做具体限定,可以自行选择与实际情况匹配的方式。

同时,在应用更新时,为了尽可能的减少更新的数据量,还可以通过增量更新的方式将当前的一体式规则命中检测应用更新至最新版本的一体式规则命中检测应用。

在本申请的另一些实施例中,考虑到最新版本的一体式规则命中检测应用在后续使用过程可能产生的异常,本申请还针对性的给出两种尽快恢复正常的处理方式:

其中一种方式是通过备份旧的一体式规则命中检测应用,以便在最新版本的一体式规则命中检测应用运行异常时,还可以换用先前已经确认可稳定运行的旧的一体式规则命中检测应用。一种包括但不限于的实现方式为:

在将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用之前,备份更新前使用的旧一体式规则命中检测应用;

当最新版本的一体式规则命中检测应用运行出现异常时,更换运行旧一体式规则命中检测应用,并同时将最新版本的一体式规则命中检测应用标记为异常状态,以便及时修复和更换。

另一种方式则是通过最新版本的一体式规则命中检测应用,在原版的最最新版本的一体式规则命中检测应用运行异常时,通过尝试换用备份的最新版本的一体式规则命中检测应用来验证异常是否由于数据错误或丢失问题导致。一种包括但不限于的实现方式为:

在将当前的规则命中检测应用更新至所述最新版本的一体式规则命中检测应用之前,备份最新版本的一体式规则命中检测应用;

当最新版本的一体式规则命中检测应用存在异常时,更换运行备份的最新版本的一体式规则命中检测应用;

若备份的最新版本的一体式规则命中检测应用运行未出现异常,则删去存在异常的最新版本的一体式规则命中检测应用。

因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。

下面请参见图4,图4为本申请实施例提供的一种规则命中检测装置的结构框图,该装置可以包括:

规则命中检测请求接收单元100,用于接收规则命中检测请求;

规则命中检测单元200,用于利用一体式规则命中检测应用对规则命中检测请求中包含的待命中内容执行规则命中检测操作,得到规则命中检测结果;其中,一体式规则命中检测应用为将规则命中检测引擎和规则内容整合为一体得到的规则命中检测应用;

规则命中检测结果返回单元300,用于返回规则命中检测结果。

其中,该规则命中检测装置还隐含包括应用生成单元,其中,应用生成单元包括:

独立规则获取子单元,用于获取以独立形式表示的独立规则;

一体式可执行代码生成子单元,用于根据独立规则生成一体式可执行代码;

封装子单元,用于将一体式可执行代码封装成一体式规则命中检测应用。

可选的,该规则命中检测装置还包括:

版本更新检查单元,用于检查是否存在更新版本的一体式规则命中检测应用;

版本更新单元,用于当存在更新版本的一体式规则命中检测应用时,获取最新版本的一体式规则命中检测应用,并将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用。

可选的,该规则命中检测装置还包括:

完整性验校单元,用于在将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用之前,验校获取到的最新版本的一体式规则命中检测应用的完整性;

更新执行单元,用于当通过了完整性验校时,执行将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用的步骤。

可选的,该规则命中检测装置还包括:

旧应用备份单元,用于在将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用之前,备份更新前使用的旧一体式规则命中检测应用;

第一新应用运行异常更换及处理单元,用于在将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用之前,当最新版本的一体式规则命中检测应用运行出现异常时,更换运行旧一体式规则命中检测应用,并同时将最新版本的一体式规则命中检测应用标记为异常状态。

可选的,该规则命中检测装置还包括:

新应用备份单元,用于在将当前的规则命中检测应用更新至最新版本的一体式规则命中检测应用之前,备份最新版本的一体式规则命中检测应用;

第二新应用运行异常更换及处理单元,用于当最新版本的一体式规则命中检测应用存在异常时,更换运行备份的最新版本的一体式规则命中检测应用;若备份的最新版本的一体式规则命中检测应用运行未出现异常,则删去存在异常的最新版本的一体式规则命中检测应用。

本实施例作为对应于上述方法实施例的装置实施例存在,具有方法实施例的全部有益效果,此处不再一一赘述。

基于上述实施例,本申请还提供了一种电子设备,该电子设备可以包括存储器和处理器,其中,该存储器中存有规则命中检测程序,该处理器调用该存储器中的规则命中检测程序时,可以实现上述实施例所提供的规则命中检测方法中的各步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。

本申请还提供了一种可读存储介质,其上存有规则命中检测程序,该规则命中检测程序被执行终端或处理器执行时可以实现上述实施例所提供的规则命中检测方法中的各步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关技术
  • 一种规则命中检测方法、装置、电子设备及可读存储介质
  • 一种规则质量检测方法、装置、设备及可读存储介质
技术分类

06120113083684