规则匹配和管理方法及装置与流程

文档序号:12037818阅读:321来源:国知局
规则匹配和管理方法及装置与流程

本申请属于互联网安全技术领域,具体地说,涉及一种规则匹配和管理方法及装置。



背景技术:

随着云计算的高速发展,越来越多的创业者在云上搭建自己的服务器,由于使用云服务器的人员的安全能力参差不齐,导致黑客极其容易的在云服务器上植入后门程序(后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的恶意代码),例如webshell,导致云服务器遭到入侵,造成严重的经济损失。

大型的云服务器提供商、专业的云服务器安全厂商都会推出对应的查杀产品来扫描检测这些后门程序,但是由于需要扫描检测的后门程序数增巨大,服务器的检测吞吐量、匹配的时间复杂度和匹配命中率就受到了极大的挑战。

为了提高对恶意代码等后门程序的检测效率,就必须确保基于规则匹配的检测系统所用的规则的时效性、有效性、稳定性和优化性,因此,迫切需要一种匹配规则的管理方法可以大幅度提升对恶意代码等后门程序的检测效率和命中率,同时降低匹配的时间复杂度。



技术实现要素:

有鉴于此,本申请提供一种规则匹配和管理方法及装置,可以解决现有规则在匹配过程中命中率低、时间复杂度高的问题。

为了解决上述技术问题,本申请第一方面提供一种规则匹配方法,位于客户端执行,包括:

客户端根据客户端本地规则对本地文件进行匹配,确定与客户端本地规则匹配一致的文件以及对应的匹配规则,所述客户端本地规则包括多个规则,所述匹配规则为与所述文件匹配一致的客户端本地规则,所述本地文件为所述客户端本地的文件;

将所述匹配一致的文件以及对应的匹配规则的标识发送给服务端,以使服务端根据所述客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;根据所述匹配规则的属性,过滤所述客户端上报的文件。

可选地,所述客户端从服务端获取的新的客户端规则,并根据所述新的客户端规则更新客户端本地规则,所述新的客户端规则包括服务端重新配置的客户端规则。

可选地,所述客户端本地规则中包括多个规则,每个规则中包括预先收集的文件特征,所述方法还包括:

根据每个规则中包括的文件特征对本地文件进行匹配,若本地文件的特征与其中一个规则中包括的文件特征匹配一致,则确定所述规则与所述文件匹配一致。

本申请第二方面还提供一种规则匹配方法,位于服务端执行,包括:

服务端接收客户端发送的匹配一致的文件以及对应的匹配规则的标识,所述匹配规则为与所述文件匹配一致的客户端本地规则;

根据所述客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;

根据所述匹配规则的属性,过滤所述客户端上报的文件。

可选地,所述属性包括规则的生效状态和/或规则的生效时间;

根据所述匹配规则的属性,过滤所述客户端上报的文件,包括:

若所述匹配规则的属性的生效状态为无效状态,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件;

若所述匹配规则的属性的生效状态为有效状态,且当前时间不在所述生效时间内,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所 述无效规则匹配的文件。

可选地,所述属性包括规则的灰度状态,根据所述匹配规则的属性,过滤所述客户端上报的文件,包括:

若所述匹配规则的属性为灰度状态,则获取所述匹配规则的匹配命中率,当所述匹配规则的匹配命中率大于预设的命中率阈值时,丢弃所述客户端上报的文件中与所述匹配规则匹配的文件,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数。

可选地,过滤所述客户端上报的文件之后,包括:

所述服务端根据服务端本地规则中每个规则的优先级,从优先级高到低对剩余文件逐一进行规则匹配,所述剩余文件为过滤所述客户端上报的文件之后剩余的文件;

确定所述剩余文件中与所述服务端本地规则匹配一致的文件以及对应的被匹配命中的服务端本地规则;

更新所述被匹配命中的服务端本地规则的匹配命中的次数。

可选地,更新所述被匹配命中的服务端本地规则的匹配命中的次数之后,还包括:

根据所述服务端本地规则中每个规则被匹配命中的次数,确定每个规则的匹配命中率,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数;

根据匹配命中率的高低,从高到底动态调整所述服务端本地规则中每个规则的优先级。

本申请第三方面提供一种规则管理方法,位于服务端执行,包括:

服务端触发对服务端本地当前生效规则的更新时,为所述新的生效规则分配存储空间,并将所述新的生效规则初始化到所述存储空间;

将所述当前生效规则切换到所述新的生效规则,并根据所述新的生效规则进行规则匹配。

可选地,所述方法还包括:

所述服务端触发对所述当前生效规则的部分更新时,备份所述当前生效规则;

对所述备份的当前生效规则进行部分更新;

将所述当前生效规则切换到所述部分更新后的当前生效规则。

可选地,所述方法还包括:

将所述当前生效规则以及对应的版本号备份到旧的生效规则库中。

可选地,所述方法还包括:

所述服务端触发对旧生效规则的回滚时,根据待回滚的版本号,从所述旧的生效规则库中获取与所述待回滚的版本号对应的旧生效规则;

将所述当前生效规则切换到回滚后的所述旧生效规则。

可选地,所述方法还包括:

在规则切换之前,锁定服务端的规则匹配;

在规则切换之后,解锁服务端的规则匹配。

本发明第四方面还提供一种规则管理方法,位于服务端执行,包括:

服务端触发对服务端本地当前生效规则的优化时,获取所述当前生效规则中每一个规则的匹配命中率,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数;

根据匹配命中率的高低,从高到底设置所述当前生效规则中每个规则的优先级,得到优化后的生效规则;

将所述当前生效规则切换到所述优化后的生效规则。

可选地,所述方法还包括:

服务端进行规则匹配时,根据所述优化后的生效规则中每个规则的优先级,从优先级高到低逐一进行规则匹配。

可选地,所述方法还包括:

所述当前生效规则中包括多个规则,所述方法还包括:

在预设的时间内,将所述当前生效规则中的每个规则与文件匹配时,根 据每个规则被匹配命中的次数,确定并记录所述规则的匹配命中率。

可选地,所述方法还包括:

在预设的时间内,若确定所述当前生效规则中的每个规则的匹配命中率高低顺序变化小于预设的变化阈值时,停止触发对所述当前生效规则的优化。

本申请第五方面提供一种规则匹配装置,位于客户端,包括:

匹配模块,用于根据客户端本地规则对本地文件进行匹配,确定与客户端本地规则匹配一致的文件以及对应的匹配规则,所述客户端本地规则包括多个规则,所述匹配规则为与所述文件匹配一致的客户端本地规则;

发送模块,用于将所述匹配一致的文件以及对应的匹配规则的标识发送给服务端,以使服务端根据所述客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;根据所述匹配规则的属性,过滤所述客户端上报的文件。

可选地,所述的装置还包括:

规则更新模块,用于从服务端获取的新的客户端规则,并根据所述新的客户端规则更新客户端本地规则,所述新的客户端规则包括服务端重新配置的客户端规则。

可选地,所述客户端本地规则中包括多个规则,每个规则中包括预先收集的文件特征,所述匹配模块具体用于:

根据每个规则中包括的文件特征对本地文件进行匹配,若本地文件的特征与其中一个规则中包括的文件特征匹配一致,则确定所述规则与所述文件匹配一致。

本申请第六方面提供一种规则匹配装置,位于服务端,包括:

接收模块,用于接收客户端发送的匹配一致的文件以及对应的匹配规则的标识,所述匹配规则为与所述文件匹配一致的客户端本地规则;

获取模块,用于根据所述客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;

过滤模块,用于根据所述匹配规则的属性,过滤所述客户端上报的文件。

可选地,所述属性包括规则的生效状态和/或规则的生效时间;

所述过滤模块具体用于:

若所述匹配规则的属性的生效状态为无效状态,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件;

若所述匹配规则的属性的生效状态为有效状态,且当前时间不在所述生效时间内,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件。

可选地,所述属性包括规则的灰度状态,根据所述匹配规则的属性,所述过滤模块具体用于:

若所述匹配规则的属性为灰度状态,则获取所述匹配规则的匹配命中率,当所述匹配规则的匹配命中率大于预设的命中率阈值时,丢弃所述客户端上报的文件中与所述匹配规则匹配的文件,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数。

可选地,所述的装置还包括:

匹配模块,用于根据服务端本地规则中每个规则的优先级,从优先级高到低对剩余文件逐一进行规则匹配,所述剩余文件为过滤所述客户端上报的文件之后剩余的文件;确定所述剩余文件中与所述服务端本地规则匹配一致的文件以及对应的被匹配命中的服务端本地规则;

匹配命中次数更新模块,用于更新所述被匹配命中的服务端本地规则的匹配命中的次数。

可选地,所述的装置还包括:

确定模块,用于根据所述服务端本地规则中每个规则被匹配命中的次数,确定每个规则的匹配命中率,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数;

优先级调整模块,用于根据匹配命中率的高低,从高到底动态调整所述服务端本地规则中每个规则的优先级。

本申请第七方面提供一种规则管理装置,位于服务端,包括:

规则更新模块,用于在触发对服务端本地当前生效规则的更新时,为所述新的生效规则分配存储空间,并将所述新的生效规则初始化到所述存储空间;

切换模块,英语将所述当前生效规则切换到所述新的生效规则,并根据所述新的生效规则进行规则匹配。

可选地,所述的装置还包括:

备份模块,用于在所述规则更新模块触发对所述当前生效规则的部分更新时,备份所述当前生效规则;

所述规则更新模块,还用于对所述备份的当前生效规则进行部分更新;

所述切换模块,还用于将所述当前生效规则切换到所述部分更新后的当前生效规则。

可选地,所述备份模块,还用于将所述当前生效规则以及对应的版本号备份到旧的生效规则库中。

可选地,所述的装置还包括:

回滚模块,用于在触发对旧生效规则的回滚时,根据待回滚的版本号,从所述旧的生效规则库中获取与所述待回滚的版本号对应的旧生效规则;

所述切换模块,还用于将所述当前生效规则切换到回滚后的所述旧生效规则。

可选地,所述的装置还包括:

锁定模块,用于在规则切换之前,锁定服务端的规则匹配;

解锁模块,用于在规则切换之后,解锁服务端的规则匹配。

本申请第八方面提供一种规则管理装置,位于服务端,包括:

获取模块,用于在优化模块触发对服务端本地当前生效规则的优化时,获取所述当前生效规则中每一个规则的匹配命中率,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数;

所述优化模块,用于根据匹配命中率的高低,从高到底设置所述当前生 效规则中每个规则的优先级,得到优化后的生效规则;

切换模块,用于将所述当前生效规则切换到所述优化后的生效规则。

可选地,所述的装置还包括:

匹配模块,用于在进行规则匹配时,根据所述优化模块优化后的生效规则中每个规则的优先级,从优先级高到低逐一进行规则匹配。

可选地,所述当前生效规则中包括多个规则,所述装置还包括:

确定模块,用于在预设的时间内,将所述当前生效规则中的每个规则与文件匹配时,根据每个规则被匹配命中的次数,确定并记录所述规则的匹配命中率。

可选地,所述确定模块,还用于在预设的时间内,若确定所述当前生效规则中的每个规则的匹配命中率高低顺序变化小于预设的变化阈值时,停止触发对所述当前生效规则的优化。

本发明实施例中,根据匹配命中率的高低,从高到底设置服务端本地规则中每个规则的优先级,从而在规则匹配的时候,将匹配命中率高的规则先进行匹配,可以加快匹配文件的检测结果,因此,可以降低规则匹配的时间复杂度,增加匹配效率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本发明实施例的一种规则匹配方法的流程示意图;

图2为本发明实施例的一种规则匹配方法的流程示意图;

图3为本发明实施例的一种规则管理方法的流程示意图;

图4为本发明实施例的一种规则管理方法的流程示意图;

图5为本发明实施例的一种规则管理方法的流程示意图;

图6为本发明实施例的一种规则管理方法的流程示意图;

图7为本发明实施例的服务端配置规则的流程示意图;

图8为本发明实施例的客户端和服务端的规则匹配流程示意图;

图9为本发明实施例对客户端上报文件进行过滤的系统架构图;

图10为本发明实施例对客户端上报文件进行过滤的流程示意图;

图11为本发明实施例服务端规则生成的功能原理图;

图12为本发明实施例服务端规则生成的流程示意图;

图13为本发明实施例服务端规则变更的流程示意图;

图14为本发明实施例服务端规则回滚的功能原理图;

图15为本发明实施例服务端规则回滚的流程示意图;

图16为本发明实施例服务端规则匹配的功能原理图;

图17为本发明实施例服务端规则匹配流程示意图;

图18为本发明实施例检测县城的检测流程示意图;

图19为本发明实施例的规则优化示意图;

图20为本发明实施例一种规则匹配装置的结构示意图;

图21为本发明实施例一种规则匹配装置的结构示意图;

图22为本发明实施例一种规则管理装置的结构示意图;

图23为本发明实施例一种规则管理装置的结构示意图。

具体实施方式

以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。 内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

图1为本发明实施例的一种规则匹配方法的流程示意图,位于客户端执 行,如图1所示,包括:

101、客户端根据客户端本地规则对本地文件进行匹配,确定与客户端本地规则匹配一致的文件以及对应的匹配规则;

具体来说,本地文件是指客户端本地的文件,这个文件可以是恶意文件,也可以是非恶意文件,上述匹配规则为与所述文件匹配一致的客户端本地规则;本发明所述的客户端本地规则包括多个规则,其中,每个规则中包括预先收集的文件特征(如恶意文件特征),具体匹配过程为:

根据每个规则中包括的文件特征对本地文件进行匹配,若本地文件的特征与其中一个规则中包括的文件特征匹配一致,则确定所述规则与所述文件匹配一致。举例来说,假设客户端本地规则包括n个规则(规则1、规则2…规则n),将规则1与本地文件进行匹配时,假设规则1中包括m个木马病毒特征点,通过提取本地文件的k个特征点,将规则1中的m个木马病毒特征点与本地文件的k个特征点进行比对,若存在大于等于预设的n个特征点是一致的,则可以确定规则1与本地文件是匹配一致的。

102、将所述匹配一致的文件以及对应的匹配规则的标识发送给服务端,以使服务端根据所述客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;根据所述匹配规则的属性,过滤所述客户端上报的文件。

具体来说,客户端在确定与客户端本地规则匹配一致的文件以及对应的匹配规则之后,获取匹配规则的标识,将所有匹配一致的文件以及对应的匹配规则的标识上报给服务端;

对应地,服务端根据客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;根据所述匹配规则的属性,过滤所述客户端上报的文件。

需要说明的是,本发明实施例中的客户端本地规则也是服务端设置的,客户端定期从服务器中获取服务端设置的客户端本地规则。其中,服务端在设置每一条客户端规则时都设置对应的属性,其中,规则的属性包括但不限于规则的标识、规则的生效状态、规则的灰度状态、规则的生效时间和/或规则的优先级等信息。因此,上述客户端在上报匹配规则的标识后,服务端可 以根据该匹配规则的标识获取对应的匹配规则的属性;

进一步地,服务端在根据所述匹配规则的属性,过滤所述客户端上报的文件时包括:

若所述匹配规则的属性的生效状态为无效状态,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件;

若所述匹配规则的属性的生效状态为有效状态,且当前时间不在所述生效时间内,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件;

若所述匹配规则的属性为灰度状态,则获取所述匹配规则的匹配命中率,当所述匹配规则的匹配命中率大于预设的命中率阈值时,丢弃所述客户端上报的文件中与所述匹配规则匹配的文件,其中,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数。

需要说明的是,本发明实施例客户端可以定期从服务端获取新的客户端规则更新客户端本地规则,以保证客户端本地规则的时效性和有效性。

本发明通过客户端本地规则对客户端本地文件进行第一次匹配,只上报与规则匹配一致的文件给服务端,通过减少上报给服务端的文件数量从而减小服务端规则匹配的工作量,进而提高服务端的匹配效率。

图2为本发明实施例的一种规则匹配方法的流程示意图,位于服务端执行,如图2所示,包括:

201、服务端接收客户端发送的匹配一致的文件以及对应的匹配规则的标识;

其中,所述匹配规则为与所述文件匹配一致的客户端本地规则,客户端发送匹配一致的文件以及对应的匹配规则的标识给服务端可以参考图1实施例中步骤101的相关描述,不再赘述;

202、根据所述客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;

需要说明的是,本发明实施例中的客户端本地规则也是服务端设置的,客户端定期从服务器中获取服务端设置的客户端本地规则。其中,服务端在 设置每一条客户端规则时都设置对应的属性,其中,规则的属性包括但不限于规则的标识、规则的生效状态、规则的灰度状态、规则的生效时间和/或规则的优先级等信息。因此,上述客户端在上报匹配规则的标识后,服务端可以根据该匹配规则的标识获取对应的匹配规则的属性;

203、根据所述匹配规则的属性,过滤所述客户端上报的文件。

具体地包括:

若所述匹配规则的属性的生效状态为无效状态,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件;

若所述匹配规则的属性的生效状态为有效状态,且当前时间不在所述生效时间内,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件;

若所述匹配规则的属性为灰度状态,则获取所述匹配规则的匹配命中率,当所述匹配规则的匹配命中率大于预设的命中率阈值时,丢弃所述客户端上报的文件中与所述匹配规则匹配的文件,其中,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数。

可选地,步骤203过滤所述客户端上报的文件之后还包括:

204、根据服务端本地规则中每个规则的优先级,从优先级高到低对剩余文件逐一进行规则匹配;

其中,所述剩余文件为过滤所述客户端上报的文件之后剩余的文件;

205、确定剩余文件中与服务端本地规则匹配一致的文件以及对应的被匹配命中的服务端本地规则;

206、更新被匹配命中的服务端本地规则的匹配命中的次数;

207、根据服务端本地规则中每个规则被匹配命中的次数,确定每个规则的匹配命中率;

其中,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数;

208、根据匹配命中率的高低,从高到底动态调整所述服务端本地规则 中每个规则的优先级。

本发明实施例中,根据匹配命中率的高低,从高到底设置服务端本地规则中每个规则的优先级,从而在规则匹配的时候,将匹配命中率高的规则先进行匹配,可以加快匹配文件的检测结果,因此,可以降低规则匹配的时间复杂度,增加匹配效率。

在实际应用中,为了提高服务端的规则匹配吞吐率(或者检测效率),本发明实施例中可以采用线程池(多个检测线程)并行检测的方式,即将客户端上报的文件和规则提交给每个检测线程同时进行匹配。每个检测线程检测完成后给出匹配命中或者所有规则匹配结束(即匹配没有命中),假设某一条规则与文件匹配一致,则该规则被匹配命中,对应地更新该规则的命中次数(即记录该规则的匹配命中率)。

图3为本发明实施例的一种规则管理方法的流程示意图;位于服务端执行,如图3所示,包括:

301、服务端触发对服务端本地当前生效规则的更新时,为所述新的生效规则分配存储空间,并将所述新的生效规则初始化到所述存储空间;

需要说明的是,步骤301中对服务端当前生效规则的更新是重新生成新规则。

为了后续进行规则回滚操作,本发明实施例中可以将当前生效规则作为旧生效规则备份到旧的生效规则库中,在备份时需要记录每个旧生效规则的版本号。

302、将所述当前生效规则切换到所述新的生效规则,并根据所述新的生效规则进行规则匹配。

需要说明的是,为了避免在规则切换时进行规则匹配出现的检测错误,在规则切换之前,锁定服务端的规则匹配;在规则切换之后,解锁服务端的规则匹配。保证服务端本地规则的时效性和有效性,从而使得服务端规则匹配的准确性得到提高。

图4为本发明实施例的一种规则管理方法的流程示意图;如图4所示,包括:

401、服务端触发对服务端本地当前生效规则的部分更新时,备份所述当前生效规则;

402、对所述备份的当前生效规则进行部分更新;

403、将所述当前生效规则切换到所述部分更新后的当前生效规则

由于服务端规则结构复杂,并且规则保存在数据库中,如果规则是小幅度的变更则不采用重新生成方式,因为若在规则只是小幅度变更而采用上述图3所示的重新生成方式则会导致资源消耗很大,因此,本发明实施例中,对规则是小幅度的变更的情况采用动态配置规则的方法。即复制(优选深度备份)出一份当前生效规则,随后对副本(即备份的当前生效规则)进行更新。

同理,为了后续进行规则回滚操作,本发明实施例中可以将当前生效规则作为旧生效规则备份到旧的生效规则库中,在备份时需要记录每个旧生效规则的版本号。

需要说明的是,为了避免在规则切换时进行规则匹配出现的检测错误,在规则切换之前,锁定服务端的规则匹配;在规则切换之后,解锁服务端的规则匹配。

图5为本发明实施例的一种规则管理方法的流程示意图;位于服务端执行,如图5所示,包括:

501、服务端触发对旧生效规则的回滚时,根据待回滚的版本号,从所述旧的生效规则库中获取与所述待回滚的版本号对应的旧生效规则;

502、将所述当前生效规则切换到回滚后的所述旧生效规则。

假设一个规则上线后出现了严重的问题,需要整体的回滚,则需要从备份的旧的生效规则库中选择出一个版本号进行整体回滚。由于回滚操作需要快速,通常备份的旧的生效规则需要常驻内存,以达到高效的回滚。

需要说明的是,为了避免在规则切换时进行规则匹配出现的检测错误,在规则切换之前,锁定服务端的规则匹配;在规则切换之后,解锁服务端的规则匹配。

图6为本发明实施例的一种规则管理方法的流程示意图;如图6所示,包括:

601、服务端触发服务端本地对当前生效规则的优化时,获取所述当前生效规则中每一个规则的匹配命中率;

具体地,本发明实施例可以设定在预设的时间内,将当前生效规则中的每个规则与文件进行匹配时,根据每个规则被匹配命中的次数,可以记录所述规则的匹配命中率,即所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数;

在实际应用中,为了提高服务端的规则匹配吞吐率(或者检测效率),本发明实施例中可以采用线程池(多个检测线程)并行检测的方式,即将客户端上报的文件和规则提交给每个检测线程同时进行匹配。每个检测线程检测完成后给出匹配命中或者所有规则匹配结束(即匹配没有命中),假设某一条规则与文件匹配一致,则该规则被匹配命中,对应地更新该规则的命中次数(即记录该规则的匹配命中率)。

602、根据匹配命中率的高低,从高到底设置所述当前生效规则中每个规则的优先级,得到优化后的生效规则;

由于优化后的生效规则是按照匹配命中率从高到低排序,服务端进行规则匹配时,根据所述优化后的生效规则中每个规则的优先级,从优先级高到低逐一进行规则匹配,将匹配命中率高的规则先进行匹配,可以加快匹配文件的检测结果,因此,可以降低规则匹配的时间复杂度,增加检测效率。

603、将所述当前生效规则切换到所述优化后的生效规则。

需要说明的是,为了避免在规则切换时进行规则匹配出现的检测错误,在规则切换之前,锁定服务端的规则匹配;在规则切换之后,解锁服务端的规则匹配。同时,服务端根据优化后的生效规则更新服务端本地规则的更新,保证服务端本地规则的时效性、有效性和优化性,从而使得服务端进行规则匹配时,根据所述优化后的生效规则中每个规则的优先级,从优先级高到低逐一进行规则匹配,将匹配命中率高的规则先进行匹配,可以加快匹配文件的检测结果,因此,可以降低规则匹配的时间复杂度,增加检测效率。

需要说明的是,频繁的规则顺序变化会降低检测效率,为了克服频繁的规则顺序变化带来的问题,本发明实施例可以在预设的时间内,若确定所述当前生效规则中的每个规则的匹配命中率高低顺序变化小于预设的变化阈 值时,停止触发对所述当前生效规则的优化。也就是说,本发明实施例优化后的生效规则的自适应优先级也可以配置成稳定后就停止规则顺序的交换(此时线上规则已经达到稳定高效的状态)。

下面通过具体实现方式对本发明上述实施例所述的方法进行详细的说明:

本发明所述的规则分为客户端规则和服务端规则,其中,客户端规则主要对文件进行初步的匹配判断,用于控制上报文件样本量。服务端规则进一步对客户端上报的文件样本进行精确的匹配判断。

其中,服务端在配置每一条规则时都配置其对应的属性(如生效状态、正式上线状态,灰度状态以及优先级等)。图7为本发明实施例的服务端配置规则的流程示意图,如图7所示,运营人员在配置每一条规则的时候服务端会提示当前服务端规则匹配的实时情况,随后合理设置规则的这些属性,如配置规则的优先级(不配置则使用默认,服务端会根据实际情况进行调整),或者快速下线/回滚某些规则,或者配置灰度规则,当配置灰度规则时,需要配置该灰度规则的匹配命中率阈值,例如当该灰度规则的匹配命中率大于预设的命中率阈值时,丢弃上报的文件中与该灰度规则匹配的文件。

图8为本发明实施例的客户端和服务端的规则匹配流程示意图,如图8所示,客户端会上报文件样本到服务端,服务端过滤客户端上报的文件样本,并根据文件样本类型选择不同类型的规则,之后,根据实时规则匹配状态选择相应的规则(如按照优先级匹配,直到得出匹配命中或者无规则可匹配的结果),统计最新的规则匹配情况,触发规则优先级的变动(服务端会选择规则对客户端上报的样本文件进行匹配,并且记录下规则的匹配命中率,服务端会根据规则的匹配命中率动态的调整规则的优先级)。

图9为本发明实施例对客户端上报文件的进行过滤的系统架构图,图10为本发明实施例对客户端上报文件的进行过滤的流程示意图,如图9和图10所示,客户端维护一套比较松的规则(用crx表示),主要功能是对上报文件进行初步的筛选,避免全量样本的上报。首先,客户端会根据规则(crx)初步筛选出可疑文件,并且把匹配命中的规则上报server,上报信息包括(crx,文件信息)。客户端上报的信息首先到达服务端的过滤器(filter模块),filter模块在服务端的控制器(处理器)的控制下会判断规则crx 是否有效,判断的依据可以是规则crx是否已经废弃、规则crx是否在灰度状态并且命中次数超过阈值、规则crx是否是灰度状态并且短时间内命中次数超过阈值。如果判断结果是crx已经无效、或者crx是灰度规则且命中次数超过阈值,则filter模块会丢弃这条上报的文件样本。

其中,控制器的策略可以有运营人员设置,当客户端的某规则crx需要下线,但是客户端规则文件不能及时更新,可以在控制器中配置拦截丢弃命中这一条规则而上报的样本,filter模块则会丢弃符合策略的文件样本。

对于客户端灰度规则,控制器则提供不同的策略,控制器会统计一个灰度规则的总匹配命中次数,或者一段时间内的匹配命中次数。根据控制器对灰度规则的策略,当统计数量超过阈值的时候,自动进行拦截,并且通知运营人员查看规则的灰度状态。

其中,规则过滤策略可以配置成如下:

cr1matchtypematchcounteffectivetimeenabledeadtime

cr2matchtypematchcounteffectivetimeenabledeadtime

matchtype:命中方式,命中次数超过阈值则丢弃文件、短时间内命中次数超过阈值则丢弃文件、废弃规则则丢弃文件。

matchcount:规则的命中次数。

effectivetime:规则的生效时间。

enable:规则是否生效。

deadtime:规则的有效期,但超过有效期后,规则将不再生效。

本发明实施例规则的过滤策略不限于上述举例说明,上述规则的过滤策略还可以配置有其他方式。

图11为本发明实施例服务端规则生成的功能原理图,图12为本发明实施例服务端规则生成的流程示意图,如图11和图12所示,服务端规则(使用srx表示)的管理主要需要有时效性、稳定性、高效性。

服务端在触发规则更新的时候,会重新分配一个内存空间,随后从数据库中读取每一个版本的所有规则,新规则会初始化到新的内存空间中。在初始化过程完成后,会对旧的规则进行备份。锁定规则管理器,暂停匹配工作,切换规则,生效新规则,释放对规则管理器的锁,重新开始检测任务。

图13为本发明实施例服务端规则变更的流程示意图,如图13所示,服 务端规则结构复杂,并且规则保存在数据库中,如果有小幅度的变更不采用重新生成方式,因为重新生成消耗大,因此要有一种动态配置规则的方法。在需要临时变更规则的时候,从当前规则数据库中复制(必须是深度拷贝)出一份当前生效的规则,随后对副本进行更新时,锁定规则管理器,暂停匹配工作,切换规则,生效新规则,释放对规则管理器的锁,重新开始检测任务。

图14为本发明实施例服务端规则回滚的功能原理图,图15为本发明实施例服务端规则回滚的流程示意图,如图14和15所示,当一个规则上线后出现了严重的问题,需要整体的回滚,则需要从备份的规则中选择出一个版本进行整体回滚。避免大量的误报出现。由于回滚操作需要快速,所以备份的规则需要常驻内存,达到高效的回滚。

本发明实施例中,服务端srx规则的字段主要包括:

enable:规则是否生效

matchcount:规则命中次数

effectivetime:规则生效时间

isgray:是否是灰度规则

图16为本发明实施例服务端规则匹配的功能原理图,图17为本发明实施例服务端规则匹配流程示意图,如图16和图17所示,服务端规则匹配文件样本是逐一匹配的方法,直到匹配命中或者没有匹配到规则。

本发明实施例可以采用规则优先级的方式动态对规则的匹配顺序进行调整,把命中率高的规则位置放在靠前的位置,可以进一步降低匹配的时间复杂度。

在每次样本命中某一条规则时,规则管理器则会更新某一条规则的命中次数,在触发规则调整策略后则会对规则顺序进行调整。

为了进一步提升服务端的检测吞吐率,checkmanager维护一个线程池,检测使用多线程并行检测的方式,checkmanager从客户端上报文件样本的缓 存中获取文件样本进行检测,同时从规则管理器中获取规则,提交到检测线程池进行匹配检测。

结果管理器会接收检测结果,会根据检测结果判断是否需要重新检测(如判断当前规则版本号是否发生改变,若改变则需要重新检测)。同时通知规则管理器更新命中状态,最后把检测结果置入结果缓存中,等待后续操作。规则管理器负责规则的更新、备份、回滚等操作,在规则管理器被更新时会被锁定,checkmanager是无法获取规则而阻塞。同时规则管理器维护每条规则的命中次数,提供像过滤客户端样本中filter模块一样的灰度方法(这里就不再赘述)。

需要注意的是,checkmanager负责获取规则管理器中的规则。图18为本发明实施例检测线程的检测流程示意图,如图18所示,如果在检测线程检测过程中,规则管理器中规则发生顺序的调整或者删除修改等操作,则可能会出现检测线程的检测出现失效(规则重复检测,规则漏检测)。检测线程把检测结果推送给结果管理器。结果管理器需要判断规则版本发生变化,如果发生过变化则需要把未能成功检测完毕的结果重新交给样本缓存等待重新检测。

需要注意的是,图19为本发明实施例的规则优化示意图,如图19所示,为了避免频繁改变规则顺序而降低检测效率的问题,本发明实施例可以设置每6个小时,服务端会触发一次规则优化的任务。按照规则的命中次数进行优先级排序,对规则列表进行重新组织。组织后的规则表,规则按照命中次数从高到低排序,在检测的时候,规则的命中率可以得到大幅度地提高,降低时间复杂度,增加检测吞吐量。

由于规则在线上生效一段时间后会趋于稳定,本发明的规则自适应优先级调整也可以配置成稳定后就停止规则顺序的交换(直到下一次规则的变动),此时线上规则已经达到稳定高效的状态。

图20为本发明实施例一种规则匹配装置的结构示意图;位于客户端,如图20所示,包括:

匹配模块21,用于根据客户端本地规则对本地文件进行匹配,确定与客户端本地规则匹配一致的文件以及对应的匹配规则,所述客户端本地规则包 括多个规则,所述匹配规则为与所述文件匹配一致的客户端本地规则;

发送模块22,用于将所述匹配一致的文件以及对应的匹配规则的标识发送给服务端,以使服务端根据所述客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;根据所述匹配规则的属性,过滤所述客户端上报的文件。

其中,所述的装置还包括:

规则更新模块23,用于从服务端获取的新的客户端规则,并根据所述新的客户端规则更新客户端本地规则,所述新的客户端规则包括服务端重新配置的客户端规则。

其中,所述匹配模块21具体用于:

根据每个规则中包括的文件特征对本地文件进行匹配,若本地文件的特征与其中一个规则中包括的文件特征匹配一致,则确定所述规则与所述文件匹配一致。

图20所示装置可以执行图1所示实施例所述的方法,实现原理和技术效果不再赘述,可以参考上述实施例中的相关描述。

图21为本发明实施例一种规则匹配装置的结构示意图;位于服务端,如图21所示,包括:

接收模块31,用于接收客户端发送的匹配一致的文件以及对应的匹配规则的标识,所述匹配规则为与所述文件匹配一致的客户端本地规则;

获取模块32,用于根据所述客户端上报的匹配规则的标识,获取与所述匹配规则的标识对应的匹配规则的属性;

过滤模块33,用于根据所述匹配规则的属性,过滤所述客户端上报的文件。

其中,所述属性包括规则的生效状态和/或规则的生效时间;

所述过滤模块33具体用于:

若所述匹配规则的属性的生效状态为无效状态,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件;

若所述匹配规则的属性的生效状态为有效状态,且当前时间不在所述生效时间内,则所述匹配规则为无效规则,丢弃所述客户端上报的文件中与所述无效规则匹配的文件。

其中,所述属性包括规则的灰度状态,根据所述匹配规则的属性,所述过滤模块33具体用于:

若所述匹配规则的属性为灰度状态,则获取所述匹配规则的匹配命中率,当所述匹配规则的匹配命中率大于预设的命中率阈值时,丢弃所述客户端上报的文件中与所述匹配规则匹配的文件,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数。

其中,所述的装置还包括:

匹配模块34,用于根据服务端本地规则中每个规则的优先级,从优先级高到低对剩余文件逐一进行规则匹配,所述剩余文件为过滤所述客户端上报的文件之后剩余的文件;确定所述剩余文件中与所述服务端本地规则匹配一致的文件以及对应的被匹配命中的服务端本地规则;

匹配命中次数更新模块35,用于更新所述被匹配命中的服务端本地规则的匹配命中的次数。

其中,所述的装置还包括:

确定模块36,用于根据所述服务端本地规则中每个规则被匹配命中的次数,确定每个规则的匹配命中率,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数;

优先级调整模块37,用于根据匹配命中率的高低,从高到底动态调整所述服务端本地规则中每个规则的优先级。

图21所示装置可以执行图2所示实施例所述的方法,实现原理和技术效果不再赘述,可以参考上述实施例中的相关描述。

图22为本发明实施例一种规则管理装置的结构示意图;位于服务端,如图22所示,包括:

规则更新模块41,用于在触发对服务端本地当前生效规则的更新时,为所述新的生效规则分配存储空间,并将所述新的生效规则初始化到所述存储 空间;

切换模块42,英语将所述当前生效规则切换到所述新的生效规则,并根据所述新的生效规则进行规则匹配。

其中,所述的装置还包括:

备份模块43,用于在所述规则更新模块触发对所述当前生效规则的部分更新时,备份所述当前生效规则;

所述规则更新模块41,还用于对所述备份的当前生效规则进行部分更新;

所述切换模块42,还用于将所述当前生效规则切换到所述部分更新后的当前生效规则。

所述备份模块43,还用于将所述当前生效规则以及对应的版本号备份到旧的生效规则库中。

其中,所述的装置还包括:

回滚模块44,用于在触发对旧生效规则的回滚时,根据待回滚的版本号,从所述旧的生效规则库中获取与所述待回滚的版本号对应的旧生效规则;

所述切换模块42,还用于将所述当前生效规则切换到回滚后的所述旧生效规则。

其中,所述的装置还包括:

锁定模块45,用于在规则切换之前,锁定服务端的规则匹配;

解锁模块46,用于在规则切换之后,解锁服务端的规则匹配。

图22所示装置可以执行图3-图5中任一实施例所述的方法,实现原理和技术效果不再赘述,可以参考上述实施例中的相关描述。

图23为本发明实施例一种规则管理装置的结构示意图,位于服务端,如图23所示,包括:

获取模块51,用于在优化模块52触发对服务端本地当前生效规则的优化时,获取所述当前生效规则中每一个规则的匹配命中率,所述匹配命中率是一定时间内同一个规则被匹配一致或匹配命中的次数;

所述优化模块52,用于根据匹配命中率的高低,从高到底设置所述当前生效规则中每个规则的优先级,得到优化后的生效规则;

切换模块53,用于将所述当前生效规则切换到所述优化后的生效规则。

其中,所述的装置还包括:

匹配模块54,用于在进行规则匹配时,根据所述优化模块优化后的生效规则中每个规则的优先级,从优先级高到低逐一进行规则匹配。

其中,所述当前生效规则中包括多个规则,所述装置还包括:

确定模块55,用于在预设的时间内,将所述当前生效规则中的每个规则与文件匹配时,根据每个规则被匹配命中的次数,确定并记录所述规则的匹配命中率。

所述确定模块55,还用于在预设的时间内,若确定所述当前生效规则中的每个规则的匹配命中率高低顺序变化小于预设的变化阈值时,停止触发对所述当前生效规则的优化。

图23所示装置可以执行图6所示实施例所述的方法,实现原理和技术效果不再赘述,可以参考上述实施例中的相关描述。

上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1