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

网关自定义规则优化方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 19:30:30


网关自定义规则优化方法、装置、电子设备及存储介质

技术领域

本申请涉及边界安全技术领域,具体而言,涉及一种网关自定义规则优化方法、装置、电子设备及存储介质。

背景技术

安全网关的IPS、WAF等功能通常允许用户设置自定义规则来阻断特定的攻击流量。安全网关的WAF功能是通过解析规则配置文件,通过规则描述的内容将一些常见的web应用攻击报文进行拦截,其中有一些规则是可以通过用户自定义配置进行生效的。这样做的好处是,随时可以针对某种web攻击做出多样化的检查,进而达到更好的防御效果。

用户设置的多个条件,对系统的消耗情况有较大区别:有的条件匹配耗时,如正则表达式;有的条件匹配快速,如判断tcp选项字段等。各个条件对报文的过滤程度不一样,如较长的特征串条件能过滤绝大部分报文,而有些条件大部分报文都能满足,导致过滤效果不好。如果只按照用户设置的顺序进行匹配,匹配的效率不高。

发明内容

本申请实施例的目的在于提供一种网关自定义规则优化方法、装置、电子设备及存储介质,自动调整自定义规则中各种过滤条件的匹配顺序,使得匹配效率达到最优,解决了自定义规则匹配顺序不合理导致匹配效率不高的问题。

本申请实施例提供了一种网关自定义规则优化方法,所述方法包括:

获取自定义规则中的所有过滤条件对攻击报文的执行参数;

基于所述执行参数计算所述过滤条件的过滤效率;

利用所述过滤效率对所有过滤条件重新排序。

在上述实现过程中,在过滤条件执行的过程中获取执行参数,从而可通过执行参数计算过滤条件的过滤效率,根据过滤效率自动调整自定义规则中的各个过滤条件的匹配顺序,使得过滤效率较高的过滤条件被优先选用,进而使得匹配效率达到最优,解决了自定义规则匹配顺序不合理导致匹配效率不高的问题。

进一步地,所述获取自定义规则中的所有过滤条件对攻击报文的执行参数,包括:

遍历所有的自定义规则;

基于当前攻击报文执行所述过滤条件判断;

选取当前自定义规则中的过滤条件;

获取所述过滤条件的预设个数的执行结果;

基于所述过滤条件的执行结果获得执行参数,所述执行参数包括总耗时、未命中次数和命中次数。

在上述实现过程中,在对攻击报文的进行过滤条件匹配执行后,获取执行参数,这些执行参数将作为过滤效率的计算依据。

进一步地,所述获取所述过滤条件的预设个数的执行结果,包括:

获取执行前的第一CPU周期数;

记录执行后的第二CPU周期数;

判断所述过滤条件是否命中。

在上述实现过程中,执行结果包括执行前后的CPU周期数变化以及过滤条件是否命中,获得当前过滤条件被执行预设个数的执行结果,根据这些参数可计算过滤效率。

进一步地,所述基于所有过滤条件的执行结果获得执行参数,包括:

计算所述第一CPU周期数和所述第二CPU周期数的差值;

将所述差值累加到所述过滤条件的总耗时中;

若命中所述过滤条件,则命中次数加1;

若没有命中所述过滤条件,则未命中次数加1。

在上述实现过程中,在多个执行结果中,统计命中次数、未命中次数以及总耗时,可利用这些参数获得该过滤条件的过滤效率。

进一步地,所述基于所述执行参数计算所述过滤条件的过滤效率,包括:

所述过滤条件的过滤效率表示为:

过滤效率=(未命中次数/(命中次数+未命中次数))/总耗时。

在上述实现过程中,给出了过滤效率的具体计算方法,可作为排序依据。

本申请实施例还提供一种网关自定义规则优化装置,所述装置包括:

执行参数获取模块,用于获取自定义规则中的所有过滤条件对攻击报文的执行参数;

过滤效率计算模块,用于基于所述执行参数计算所述过滤条件的过滤效率;

排序模块,用于利用所述过滤效率对所有过滤条件重新排序。

在上述实现过程中,在过滤条件执行的过程中获取执行参数,从而可通过执行参数计算过滤条件的过滤效率,根据过滤效率自动调整自定义规则中的各个过滤条件的匹配顺序,使得过滤效率较高的过滤条件被优先选用,进而使得匹配效率达到最优,解决了自定义规则匹配顺序不合理导致匹配效率不高的问题。

进一步地,所述执行参数获取模块包括:

遍历模块,用于遍历所有的自定义规则;

执行模块,用于基于当前攻击报文执行所述过滤条件判断;

过滤条件获取模块,用于选取当前自定义规则中的过滤条件;

执行结果获取模块,用于获取所述过滤条件的预设个数的执行结果;

执行参数生成模块,用于基于所有过滤条件的执行结果获得执行参数,所述执行参数包括总耗时、未命中次数和命中次数。

在上述实现过程中,在对攻击报文的进行过滤条件匹配执行后,获取执行参数,这些执行参数将作为过滤效率的计算依据。

进一步地,所述执行结果获取模块,包括:

第一周期数获取模块,用于获取执行前的第一CPU周期数;

第二周期数获取模块,用于记录执行后的第二CPU周期数;

命中判断模块,用于判断所述过滤条件是否命中。

在上述实现过程中,执行结果包括执行前后的CPU周期数变化以及过滤条件是否命中,获得当前过滤条件被执行预设个数的执行结果,根据这些参数可计算过滤效率。

本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的网关自定义规则优化方法。

本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的网关自定义规则优化方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种网关自定义规则优化方法的流程图;

图2为本申请实施例提供的数据收集阶段的具体实现流程图;

图3为本申请实施例提供的执行参数获取流程图;

图4为本申请实施例提供的执行结果的获取流程图;

图5为本申请实施例提供的获取执行参数的流程图;

图6为本申请实施例提供的匹配优化阶段的具体流程图;

图7为本申请实施例提供的一种网关自定义规则优化装置的结构框图;

图8为本申请实施例提供的另一种网关自定义规则优化装置的结构框图。

图标:

100-执行参数获取模块;110-遍历模块;120-执行模块;130-过滤条件获取模块;140-执行结果获取模块;141-第一周期数获取模块;142-第二周期数获取模块;143-命中判断模块;150-执行参数生成模块;151-差值计算模块;152-总耗时计算模块;153-命中次数计算模块;154-未命中次数计算模块;200-过滤效率计算模块;300-排序模块。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

实施例1

请参看图1,图1为本申请实施例提供的一种网关自定义规则优化方法的流程图。该方法通过自动调整自定义规则中各过滤条件的匹配顺序,使匹配效率达到最优。该方法大致可分为数据收集阶段和匹配优化阶段两个步骤,其中,在数据收集阶段,需要遍历所有的自定义规则以及自定义规则中的所有过滤条件,且过滤条件被执行一定的次数,从而可获得执行结果,完成数据收集;在匹配优化阶段,根据收集到的数据计算过滤效率,以根据过滤效率对过滤条件进行排序,使得过滤效率较高的过滤条件可优先被选择,从而提高自定义规则的匹配效率。

该方法具体包括以下步骤:

步骤S100:获取自定义规则中的所有过滤条件对攻击报文的执行参数;

步骤S200:基于所述执行参数计算所述过滤条件的过滤效率;

步骤S300:利用所述过滤效率对所有过滤条件重新排序。

如图2所示,为数据收集阶段的具体实现流程图,其中,如图3所示,为执行参数获取流程图,具体地,步骤S100具体包括以下步骤:

步骤S110:遍历所有的自定义规则;

步骤S120:基于当前攻击报文执行所述过滤条件判断;

步骤S130:选取当前自定义规则中的过滤条件;

步骤S140:获取所述过滤条件的预设个数的执行结果;

步骤S150:基于所述过滤条件的执行结果获得执行参数,所述执行参数包括总耗时、未命中次数和命中次数。

预先设置自定义规则的每个过滤条件的执行参数:总耗时、未命中次数和命中次数,初始化为0;当某个报文需要匹配自定义规则时,如果此自定义规则有N个过滤条件,则随机选择其中一个过滤条件,执行过滤条件判断,即判断当前攻击报文中的特征是否与过滤条件相匹配,若匹配,则为命中,否则,为未命中。

由于攻击者会把攻击特征内容放在攻击报文的不同字段中,因此需要对攻击报文的不同字段进行检查,用户可以设置多个过滤条件,对攻击报文依次匹配多个过滤条件,各过滤条件都满足时,认为该攻击报文命中自定义规则。例如:攻击者在请求行中添加了SQL注入攻击,由于攻击特征多样性,自定义规则需要设置多个过滤条件进行联合检查,如果每个过滤条件都满足则认为是存在SQL注入攻击。例如,报文攻击特征是“-1'or usernamelike'admin%'or'/*a%*/”,用户自定义规则的过滤条件可能是“or”、“username”、“like”、“'admin”等条件。

为了反映过滤条件的真实过滤效率,需要获取该过滤条件一定次数的执行结果,例如预设次数为100次,将这100次的执行结果进行统计,可获得总耗时、未命中次数和命中次数,获得一定数量的执行结果确保最终计算的过滤效率真实、有效。

如图4所示,为执行结果的获取流程图,步骤S140具体可以包括以下步骤:

步骤S141:获取执行前的第一CPU周期数;

步骤S142:记录执行后的第二CPU周期数;

步骤S143:判断所述过滤条件是否命中。

在过滤条件执行前记录当前CPU周期数,记录执行后的CPU周期数,并计算两者的差值;将差值累加到此自定义规则的过滤条件的总耗时中;如果过滤条件判断的结果为命中,此过滤条件的命中次数加1,否则未命中次数加1。

如图5所示,为获取执行参数的流程图,步骤S150具体可以包括以下步骤:

步骤S151:计算所述第一CPU周期数和所述第二CPU周期数的差值;

步骤S152:将所述差值累加到所述过滤条件的总耗时中;

步骤S153:若命中所述过滤条件,则命中次数加1;

步骤S154:若没有命中所述过滤条件,则未命中次数加1。

如图6所示,为匹配优化阶段的具体流程图,遍历自定义规则中的所有过滤条件,计算每个条件的过滤效率。

过滤效率的具体计算公式为:

过滤效率=(未命中次数/(命中次数+未命中次数))/总耗时。

根据过滤效率重新调整自定义规则中各个过滤条件的顺序,可按过滤效率从大到小排序,自定义规则中的各个过滤条件以过滤效率的高低为顺序执行,这样过滤效率高的过滤条件可优先被执行,从而提高自定义规则的匹配效率。

该方法可以应用于防火墙、入侵检测、WAF、VPN、超融合等,对于使用范围不做限定。

示例地,在安全网关的WAF安全引擎产品中具备自定义规则匹配功能,用户自定义配置的过滤条件如下表1所示:

表1过滤条件

当攻击报文中的URL内容为“abcdefg013269892666ssssdsasdw222”时,用户配置的自定义规则中的过滤条件顺序如上表时,需要将所有的过滤条件都满足才能算是自定义规则被命中。

一个自定义规则由多个条件组成,只有所有的条件都满足时,才算是命中此规则。如果条件1不满足,那么规则的其他条件就可以直接跳过,无需继续研判。所以很难命中的条件应该优先使用,这样其他条件就可以直接跳过了,节省检测时间。当然也要考虑条件的消耗时间,所以运行速度快,同时命中难度大的条件应该排到最先执行。

假设字符串比较过程中每个字符串比较单个耗时为1秒;则有如下结果表2:

表2执行参数

继续收集数据,当报文中的URL内容为“wqewljddsufdsfmsssdd”时,则有如下表3:

表3执行参数

通过不断的收集数据,更新自定义规则中的每个过滤条件的过滤效率,通过将过滤效率高的条件进行优先匹配,进而加快自定义规则匹配的效率。

通过该方法将过滤效率最高的过滤条件与报文进行优先匹配,提高自定义规则的匹配效率,并且提高安全网关的转发效率。

实施例2

本申请实施例提供一种网关自定义规则优化装置,如图7所示,为一种网关自定义规则优化装置的结构框图,所述装置包括但不限于:

执行参数获取模块100,用于获取自定义规则中的所有过滤条件对攻击报文的执行参数;

过滤效率计算模块200,用于基于所述执行参数计算所述过滤条件的过滤效率;

排序模块300,用于利用所述过滤效率对所有过滤条件重新排序。

在过滤条件执行的过程中获取执行参数,从而可通过执行参数计算过滤条件的过滤效率,根据过滤效率自动调整自定义规则中的各个过滤条件的匹配顺序,使得过滤效率较高的过滤条件被优先选用,进而使得匹配效率达到最优,解决了自定义规则匹配顺序不合理导致匹配效率不高的问题。

如图8所示,为另一种网关自定义规则优化装置的结构框图,所述执行参数获取模块100包括:

遍历模块110,用于遍历所有的自定义规则;

执行模块120,用于基于当前攻击报文执行所述过滤条件判断;

过滤条件获取模块130,用于选取当前自定义规则中的过滤条件;

执行结果获取模块140,用于获取所述过滤条件的预设个数的执行结果;

执行参数生成模块150,用于基于所有过滤条件的执行结果获得执行参数,所述执行参数包括总耗时、未命中次数和命中次数。

所述执行结果获取模块140,包括:

第一周期数获取模块141,用于获取执行前的第一CPU周期数;

第二周期数获取模块142,用于记录执行后的第二CPU周期数;

命中判断模块143,用于判断所述过滤条件是否命中。

执行参数生成模块150包括:

差值计算模块151,用于计算所述第一CPU周期数和所述第二CPU周期数的差值;

总耗时计算模块152,用于将所述差值累加到所述过滤条件的总耗时中;

命中次数计算模块153,用于若命中所述过滤条件,则命中次数加1;

未命中次数计算模块154,用于若没有命中所述过滤条件,则未命中次数加1。

根据过滤效率重新调整自定义规则中各个过滤条件的顺序,可按过滤效率从大到小排序,自定义规则中的各个过滤条件以过滤效率的高低为顺序执行,这样过滤效率高的过滤条件可优先被执行,从而提高自定义规则的匹配效率。

本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行实施例1所述的网关自定义规则优化方法。

本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行实施例1所述的网关自定义规则优化方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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

技术分类

06120115934992