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

一种数据匹配的方法、装置、设备及介质

文献发布时间:2023-06-19 19:07:35


一种数据匹配的方法、装置、设备及介质

技术领域

本申请实施例涉及网络安全领域,具体涉及一种数据匹配的方法、装置、设备及介质。

背景技术

数据库作为存放数据的容器,其安全性是非常重要的。其中,数据库访问控制是保证数据库安全的重要手段。相关技术中,在对审计日志进行过滤规则匹配时是通过规则的字段从审计日志中查找获取该字段的值,再根据规则的操作符对该值和规则值做对应的比较处理,根据比较结果来确定命中和未命中。但是,相关技术中将上述所有的规则过滤过程均放在一个主流程中进行判断,导致逻辑耦合度高,且不易扩展,从而降低数据匹配的效率。

因此,如何提升数据匹配的效率成为需要解决的问题。

发明内容

本申请实施例提供一种数据匹配的方法、装置、设备及介质,通过本申请的一些实施例至少能够降低数据匹配处理逻辑的耦合度,提高扩展性,同时提高数据匹配的效率。

第一方面,本申请提供了一种数据匹配的方法,所述方法包括:通过规则字段或运算符类型建立数据匹配分支流程,其中,所述规则字段为预先配置的待匹配字段,所述运算符类型为预设规则中的运算符的类型;在所述数据匹配分支流程中,查找审计日志中的待匹配数据;将所述待匹配数据与当前预设规则进行对比,获得数据匹配结果,以使通过所述数据匹配结果对所述审计日志进行相对应的目标操作。

因此,与相关技术中将所有的规则过滤过程均放在一个主流程中进行判断的方法不同的是,本申请在使用当前预设规则进行数据匹配之前,先建立数据匹配分支流程,然后再在分支流程中进行数据匹配的操作,能够将数据匹配的操作过程与主流程剥离开,从而能够降低数据匹配处理逻辑的耦合度,提高扩展性,同时提高数据匹配的效率。

结合第一方面,在本申请的一种实施方式中,所述通过规则字段或运算符类型建立数据匹配分支流程,包括:调用与所述规则字段相对应的字段数据获取函数,建立数据匹配分支流程;所述在所述数据匹配分支流程中,查找审计日志中的待匹配数据,包括:在所述数据匹配分支流程中,使用所述字段数据获取函数查找审计日志中与所述规则字段相对应的待匹配数据。

因此,本申请实施例通过调用规则字段相对应的函数,能够只从主流程中获取接口,通过函数的方式来查找与规则字段相对应的待匹配数据,从而能够不占用主流程中的资源,降低处理逻辑的耦合度。

结合第一方面,在本申请的一种实施方式中,所述通过规则字段或运算符类型建立数据匹配分支流程,包括:调用与所述运算符类型相对应的字段数据获取函数,建立数据匹配分支流程;所述在所述数据匹配分支流程中,查找审计日志中的待匹配数据,包括:在所述数据匹配分支流程中,使用所述字段数据获取函数查找审计日志中与所述运算符类型相对应的待匹配数据。

因此,本申请实施例通过使用运算符类型建立对应的获取函数,能够查找到审计日志中与预设规则的运算符类型相同的待匹配数据,从而能够不占用主流程中的资源,降低处理逻辑的耦合度。

结合第一方面,在本申请的一种实施方式中,所述将所述待匹配数据与当前预设规则进行对比,获得数据匹配结果,包括:调用与所述当前预设规则相对应的运算符处理函数;通过所述运算符处理函数将所述待匹配数据与所述当前预设规则进行对比,获得数据匹配结果。

因此,本申请实施例通过调用运算符处理函数,能够将待匹配数据与当前预设规则进行比较,从而能够使比对过程更加灵活,降低逻辑处理的耦合度,提升数据匹配效率。

结合第一方面,在本申请的一种实施方式中,在所述将所述待匹配数据与所述预设规则进行对比,获得数据匹配结果之后,所述方法还包括:若所述数据匹配结果为没有命中所述当前预设规则,则结束使用所述当前预设规则进行匹配,继续使用下一预设规则进行匹配。

因此,本申请实施例通过在没有命中当前预设规则的情况下,进行下一预设规则进行匹配,能够节省匹配流程,提升数据匹配效率。

第二方面,本申请提供了一种数据匹配的装置,所述装置包括:流程建立模块,被配置为通过规则字段或运算符类型建立数据匹配分支流程,其中,所述规则字段为预先配置的待匹配字段,所述运算符类型为预设规则中的运算符的类型;数据查找模块,被配置为在所述数据匹配分支流程中,查找审计日志中的待匹配数据;数据匹配模块,被配置为将所述待匹配数据与当前预设规则进行对比,获得数据匹配结果,以使通过所述数据匹配结果对所述审计日志进行相对应的目标操作。

结合第二方面,在本申请的一种实施方式中,所述流程建立模块还被配置为:调用与所述规则字段相对应的字段数据获取函数,建立数据匹配分支流程;所述数据查找模块还被配置为:在所述数据匹配分支流程中,使用所述字段数据获取函数查找审计日志中与所述规则字段相对应的待匹配数据。

结合第二方面,在本申请的一种实施方式中,所述流程建立模块还被配置为:调用与所述运算符类型相对应的字段数据获取函数,建立数据匹配分支流程;所述数据查找模块还被配置为:在所述数据匹配分支流程中,使用所述字段数据获取函数查找审计日志中与所述运算符类型相对应的待匹配数据。

结合第二方面,在本申请的一种实施方式中,所述数据匹配模块还被配置为:调用与所述当前预设规则相对应的运算符处理函数;通过所述运算符处理函数将所述待匹配数据与所述当前预设规则进行对比,获得数据匹配结果。

结合第二方面,在本申请的一种实施方式中,所述数据匹配模块还被配置为:若所述数据匹配结果为没有命中所述当前预设规则,则结束使用所述当前预设规则进行匹配,继续使用下一预设规则进行匹配。

第三方面,本申请提供了一种电子设备,包括:处理器、存储器和总线;所述处理器通过所述总线与所述存储器相连,所述存储器存储有计算机程序,所述计算机程序由所述处理器执行时可实现如第一方面任意实施例所述的方法。

第四方面,一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被执行时可实现如第一方面任意实施例所述的方法。

附图说明

图1为本申请实施例示出的一种数据匹配的系统组成示意图;

图2为本申请实施例示出的一种数据匹配的方法流程图之一;

图3为本申请实施例示出的一种数据匹配的方法流程图之二;

图4为本申请实施例示出的一种数据匹配的方法流程图之三;

图5为本申请实施例示出的一种数据匹配的装置组成示意图;

图6为本申请实施例示出的一种电子设备组成示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对附图中提供的本申请的实施例的详情描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护范围。

本申请实施例可以应用于对审计日志中的数据进行数据匹配的场景,为了改善背景技术中的问题,在本申请的一些实施例中,通过建立数据匹配分支流程,并且在该分支流程中进行数据匹配操作。例如,在本申请的一些实施例中,调用与规则字段或者运算符类型相对应的字段数据获取函数,建立数据匹配分支流程,之后在数据匹配分支流程中查找审计日志中的待匹配数据,并且将待匹配数据与当前预设规则进行对比,获得数据匹配结果。

下面结合附图详细描述本申请实施例中的方法步骤。

图1提供了本申请一些实施例中的数据匹配的系统的结构图,该系统包括客户端110和网络安全设备120。具体的,客户端110向网络安全设备120发送流量数据,网络安全设备120在接收到流量数据之后,将流量数据转换为审计日志,之后通过建立数据匹配分支流程,并且在该分支流程中对审计日志进行数据匹配操作,获得数据匹配结果。

与本申请实施例不同的是相关技术中,在对审计日志进行过滤规则匹配时是通过规则的字段从审计日志中查找获取该字段的值,再根据规则的操作符对该值和规则值做对应的比较处理,根据比较结果来确定命中和未命中。但是,相关技术中将上述所有的规则过滤过程均放在一个主流程中进行判断,导致逻辑耦合度高,且不易扩展,从而降低数据匹配的效率。而本申请在使用当前预设规则进行数据匹配之前,先建立数据匹配分支流程,然后再在分支流程中进行数据匹配的操作,从而解决了相关技术中逻辑耦合度高,且不易扩展,从而降低数据匹配的效率的问题。

需要说明的是,数据库为按照数据结构来组织、存储和管理数据的仓库。审计日志为通过对网络协议报文还原得到的自定义格式的一组数据。预设规则为通过配置得到的针对审计日志的逻辑表达式组合。

下面将描述本申请中由网络安全设备执行的一种数据匹配的方法。可以理解的是,本申请实施例的一种数据匹配的方法可以应用于任何网络安全设备上。

至少为了解决背景技术中的问题,如图2所示,本申请一些实施例提供了一种数据匹配的方法,该方法包括:

S210,通过规则字段或运算符类型建立数据匹配分支流程。

需要说明的是,规则字段为预先配置的待匹配字段,例如,相关人员需要匹配审计日志中A字段所对应的值,那么,A字段即为预先配置的待匹配字段。运算符类型为预设规则中的运算符的类型,例如,预设规则为“dbname=1000”,那么其中运算符的类型即为等于运算符,例如,预设规则为“dbname大于1000”,那么其中运算符的类型即为大于运算符。

在本申请的一种实施方式中,在S210之前,需要先注册字段数据获取函数和运算符处理函数。具体的,可以按照预设规则中的字段,一个字段对应一个字段数据获取函数,该字段数据获取函数用于在审计日志中获取与相对应字段对应的值,运算符处理函数可以按照运算符的类型进行注册,一个运算符的类型可以对应一个运算符处理函数,该运算符处理函数用于将审计日志中与规则字段相对应的值和预设规则中的值进行比对。

因此,本申请提供了数据库审计日志过滤规则匹配方法,通过提前注册字段数据获取函数和运算符处理函数,在对审计日志进行规则匹配时,直接调用统一的字段数据获取函数得到审计日志中字段的数据,再调用统一的运算符处理函数对该待匹配数据和规则值进行处理。也就是说,本申请不再将各逻辑处理分支放到主流程中,而是采用注册函数的方式,各种分支的具体逻辑各自实现,在主流程中只提供一个统一的接口,以此来降低处理逻辑的耦合度,提高扩展性。

在本申请的一种实施方式中,通过规则字段或运算符类型建立数据匹配分支流程有两种实施例,一种实施例为调用与规则字段相对应的字段数据获取函数,另一种实施为调用与运算符的类型相对应的字段数据获取函数。

作为本申请一具体实施例,调用与规则字段相对应的字段数据获取函数,建立数据匹配分支流程。例如,预设规则中的规则字段包括“dbname字段”,那么与“dbname字段”相对应的字段数据获取函数,就用于获取审计日志中与“dbname字段”相对应的值。

作为本申请另一具体实施例,调用与运算符类型相对应的字段数据获取函数,建立数据匹配分支流程。例如,预设规则中的运算符类型包括“=”,那么与“=”相对应的字段数据获取函数,就用于获取审计日志中所有与“=”相对应的值。

S220,在数据匹配分支流程中,查找审计日志中的待匹配数据。

作为本申请一具体实施例,如果调用的是与规则字段相对应的字段数据获取函数,那么,在数据匹配分支流程中,使用与规则字段相对应的字段数据获取函数,查找审计日志中的待匹配数据。

例如,与规则字段相对应的字段数据获取函数为与“dbname字段”相对应的字段数据获取函数,则使用该函数在审计日志中获取与“dbname字段”相对应的待匹配数据A。

作为本申请另一具体实施例,如果调用的是与运算符的类型相对应的字段数据获取函数,那么,在数据匹配分支流程中,使用与运算符的类型相对应的字段数据获取函数,查找审计日志中的待匹配数据。

例如,与运算符类型相对应的字段数据获取函数为与“大于号类型”相对应的字段数据获取函数,则使用该函数在审计日志中获取所有包括“大于号类型”的待匹配数据,如待匹配数据B、C和D。

S230,将待匹配数据与当前预设规则进行对比,获得数据匹配结果。

在本申请的一种实施方式中,首先,调用与当前预设规则相对应的运算符处理函数,然后,通过运算符处理函数将待匹配数据与当前预设规则进行对比,获得数据匹配结果。

也就是说,在审计日志中查找到待匹配数据之后,判断待匹配数据是否满足当前预设规则中的值。具体的,调用字段获取函数获取日志中字段数据,调用运算符处理函数处理该数据和当前预设规则值。如果数据匹配结果为满足当前预设规则值,则认为命中;如果数据匹配结果为不满足当前预设规则值,则认为未命中。可以理解的是,在获得数据匹配结果之后,可以对命中当前预设规则值的数据进行后续操作,例如,外发、告警或阻断等,可以对没有命中当前预设规则值的数据进行日志存储操作。

在本申请的一种实施方式中,在S230之后,若数据匹配结果为没有命中当前预设规则,则结束使用当前预设规则进行匹配,继续使用下一预设规则进行匹配。

也就是说,如果数据匹配结果为同一规则字段,审计日志中的值不满足预设规则中相对应的值,那么就结束对当前预设规则的匹配,进入下一预设规则继续进行数据匹配。

作为本申请一具体实施例,如图3所示,存在预设的规则1、规则2直至规则M,其中,每一个预设的规则中又包括多个表达式,例如,如图3所示的规则1中包括表达式1、表达式2以及表达式N,规则2中包括表达式1、表达式2以及表达式N,规则3中包括表达式1、表达式2以及表达式N。

以规则1为例,相关人员输入需要匹配的表达式1的规则字段ID302,并且网络安全设备获取设备中的审计日志301,之后执行S305调用注册的函数获取日志中该规则字段的值,通过运算符303执行S306获取注册的运算符处理函数,之后执行S307调用函数对规则值304与日志中的值进行对比,判断是否命中,若是,则继续进行表达式2的判断,如果表达式2也命中,则进行其他表达式的判断,直至表达式N也命中,则判断为命中规则1,若任意表达式没有命中,则执行S308结束当前规则处理下一条规则。也就是说,进行规则2的判断,基于同样的判断方式,如果规则2所有表达式全部命中,则说明命中规则2,如果存在任意一个表达式没有命中则继续进行其他规则的判断,直至判断至最后一个规则M,若规则M中所有的表达式均命中,则说明命中了规则M,此时获取所有的命中的表达式,进行后续处理,如果所有的均没有命中,则存储审计日志301。

也就是说,如图4所示,本申请中的网络安全设备首先进行S410流量采集,S420协议解析,然后,进行S430当前预设规则匹配,判断S440是否命中,最后,若命中,则执行S450外发、告警或阻断等操作,若不命中,则说明审计日志中不存在相关人员想要找到的数据,执行S460日志存储。

换句话说,本申请可应用于数据库审计系统的设计,基于数据库审计产品,使用过滤规则匹配的方法对数据库审计日志进行匹配,而实现功能模块耦合度降低,扩展性提高的目的。具体的流程如下:系统启动,加载配置,底层引流,开始解析数据库流量。对审计日志进行过滤规则匹配。根据匹配结果进行后续处理。如果命中规则,进行告警、阻断、外发等,如果未命中,进行日志存储处理。

作为本申请一具体实施例,首先,功能模块初始化时注册dbname字段的数据获取函数为get_dbname,user字段的数据的获取函数为get_user,即将这些函数存储到一个以字段ID为索引值的函数指针数组get_field_data_func_arr中。等于运算符的处理函数为op_eq,包含运算符的处理函数为op_include,即将这些函数存储到一个以运算符类型值为索引值的函数指针数组op_handle_func_arr中。

然后,对一个审计日志进行规则内容为“dbname=’samples’and user~‘root’”表达式进行匹配时,通过dbname字段ID做偏移量在函数指针数组get_field_data_func_arr中获取到get_dbname函数,调用获取日志中dbname字段的数据,再通过‘=’运算符的类型值做偏移量在函数指针数组op_handle_func_arr中获取到op_eq函数,调用运算符处理函数对该数据和规则值‘samples’进行处理。

最后,如果不满足条件,则认为未命中该规则;如果满足条件,则再对user字段进行处理。先通过user字段ID做偏移量在函数指针数组get_field_data_func_arr中获取到get_user函数,调用获取user字段的数据,再通过‘~’运算符的类型值做偏移量在函数指针数组op_handle_func_arr中获取到op_include函数,调用运算符处理函数对该数据和规则值‘root’进行处理,如果满足条件,则认为命中该规则,如果不满足条件,则认为未命该规则。

通过这种方式,将各种处理函数统一管理,使用ID或类型值来获取不同的函数来执行不同的动作,可以避免在主逻辑分支中进行过多的条件判断,降低逻辑的耦合性。遇到新的情况需要增加处理逻辑时,只需要增加ID或类型值以及对应的运算符处理函数,提高了扩展性。

因此,相关技术中,使用者已经不再满足于仅仅通过客户端IP等网络层信息来控制,其更希望根据自己的业务来做更精准的控制,例如根据数据库的用户、访问的库实例、执行的操作等元素来制定过滤规则。如何匹配包含这些元素的规则是核心的问题。本申请提前注册字段数据获取函数和运算符处理函数,等到对数据库审计事件使用过滤规则进行匹配时,调用统一接口进行处理的方法。通过使用注册字段数据获取函数和运算符处理函数的方法,将具体的处理逻辑与主流程分离,降低了逻辑的耦合度,且更易扩展。

上文描述了本申请提供的一种数据匹配的方法的具体实施例,下文将描述一种数据匹配的装置。

如图5所示,本申请的一些实施例提供一种数据匹配的装置500,该装置包括:流程建立模块510、数据查找模块520以及数据匹配模块530。

流程建立模块510,被配置为通过规则字段或运算符类型建立数据匹配分支流程,其中,所述规则字段为预先配置的待匹配字段,所述运算符类型为预设规则中的运算符的类型;数据查找模块520,被配置为在所述数据匹配分支流程中,查找审计日志中的待匹配数据;数据匹配模块530,被配置为将所述待匹配数据与当前预设规则进行对比,获得数据匹配结果,以使通过所述数据匹配结果对所述审计日志进行相对应的目标操作。

在本申请的一种实施方式中,所述流程建立模块510还被配置为:调用与所述规则字段相对应的字段数据获取函数,建立数据匹配分支流程;所述数据查找模块520还被配置为:在所述数据匹配分支流程中,使用所述字段数据获取函数查找审计日志中与所述规则字段相对应的待匹配数据。

在本申请的一种实施方式中,所述流程建立模块510还被配置为:调用与所述运算符类型相对应的字段数据获取函数,建立数据匹配分支流程;所述数据查找模块520还被配置为:在所述数据匹配分支流程中,使用所述字段数据获取函数查找审计日志中与所述运算符类型相对应的待匹配数据。

在本申请的一种实施方式中,所述数据匹配模块530还被配置为:调用与所述当前预设规则相对应的运算符处理函数;通过所述运算符处理函数将所述待匹配数据与所述当前预设规则进行对比,获得数据匹配结果。

在本申请的一种实施方式中,所述数据匹配模块530还被配置为:若所述数据匹配结果为没有命中所述当前预设规则,则结束使用所述当前预设规则进行匹配,继续使用下一预设规则进行匹配。

在本申请实施例中,图5所示模块能够实现图1至图4方法实施例中的各个过程。图5中的各个模块的操作和/或功能,分别为了实现图1至图4中的方法实施例中的相应流程。具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。

如图6所示,本申请实施例提供一种电子设备600,包括:处理器610、存储器620和总线630,所述处理器通过所述总线与所述存储器相连,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,用于实现如上述所有实施例中任一项所述的方法,具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。

其中,总线用于实现这些组件直接的连接通信。其中,本申请实施例中处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。存储器中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,可以执行上述实施例中所述的方法。

可以理解,图6所示的结构仅为示意,还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被服务器执行时实现上述所有实施方式中任一所述的方法,具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。

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

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

技术分类

06120115799845