1.本技术涉及通信技术领域,尤其涉及一种规则库优化方法和装置。
背景技术:2.深度报文检测(deep packet inspection,dpi)是一种报文检测技术。dpi技术不仅利用ip报文中的包括源因特网协议(internet protocol,ip)地址、目的ip地址、源端口、目的端口在内的会话信息(ip包层4以下数据)进行检测分析,还对ip报文中的荷载(payload),例如应用层数据,进行深入分析,从而能够更准确、有效地识别出网络上的各种应用。目前,dpi技术已广泛应用于流量识别、内容计费和网络安全等领域。
3.在dpi技术应用中,以流量识别为例,dpi依赖于一个规则库(或称之为流量规则库、流量指纹库、应用规则库、应用规则库等等)对现网应用进行流量识别。
4.随着网络应用数量的持续快速增加以及应用版本的频繁更新,上述规则库中规则的数量快速增长,因此dpi的存储资源和计算资源开销越来越大,系统效率逐渐降低。与此同时,不同型号、不同版本的检测设备在计算资源、存储资源差异性可能比较大,尤其是新老硬件配置并存的情况下。这样,可能导致老型号、老版本的检测设备的系统资源无法满足新规则库在存储和计算方面的资源需求,即无法加载上述规则库中的全部规则。在典型资源受限场景(例如低端网络防火墙,家庭网关等),检测设备的系统资源只能支持加载全部规则的1%或10%。但是,如果检测设备只加载的全部规则中的一部分规则,可能造成检测设备对流经的流量识别能力较低。因此,检测设备如何加载合适的规则,实现有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量成为一个急需解决的问题。
技术实现要素:5.本技术提供一种规则库优化方法和装置,以使检测设备加载合适的规则,实现有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。
6.第一方面,本技术实施例提供一种规则库优化方法,可选地,该方法由优化设备执行,该方法包括如下步骤:首先,优化设备确定检测设备的系统资源是否满足预定的规则运行要求,其中,可选地,检测设备是实体设备或虚拟设备,具体根据实际情况确定。上述预定的规则运行要求为上述检测设备加载规则库(例如上述规则库,或称之为流量规则库、流量指纹库、应用规则库、应用规则库等等)所有规则所需最低系统资源,例如所需最低计算资源和/或存储资源等。如果上述检测设备的系统资源不满足上述预定的规则运行要求,则优化设备获取上述检测设备的候选规则集,该候选规则集中包括至少一个规则。进而,优化设备根据上述候选规则集中至少一个规则分别对应的流量命中值,从上述候选规则集中选择目标规则,获得目标规则集。其中,上述流量命中值指示在第一时间段对应的样本流量中根据对应规则识别出的流量的计数值。这里,对应指的是规则与识别出的流量的计数值对应,例如在上述第一时间段对应的样本流量中,一个规则识别出一个流量的计数值。可选地,该计数值是在上述第一时间段对应的样本流量中一个规则识别出的流量与上述第一时间段
对应的样本流量的比值,或者,在上述第一时间段对应的样本流量中一个规则识别出的流量的字节数或流的数量。上述第一时间段是从上述候选规则集中选择上述目标规则之前的时间段,上述检测设备的系统资源满足上述目标规则的运行要求。最后,优化设备在上述检测设备上加载上述目标规则集,以使用上述目标规则集对流经上述检测设备的流量进行识别。
7.本技术实施例通过确定检测设备的系统资源是否满足预定的规则运行要求,在不满足该预定的规则运行要求时,即系统资源受限时,获取检测设备的候选规则集,进而,根据该候选规则集中至少一个规则对应的流量命中值,从上述候选规则集中选择目标规则,获得目标规则集,并在检测设备上加载上述目标规则集,实现业务规则集在检测设备上的动态自适应加载,使得检测设备基于上述目标规则集对流经检测设备的流量进行识别,解决资源受限场景下,检测设备加载全部规则中的一部分规则,对流经检测设备的流量识别能力较低的问题。本技术实施例实现了有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。另外,本技术实施例避免了无效规则加载带来的系统资源消耗,降低了资源占用,提升了系统效率。
8.这里,以上述系统资源包括内存资源为例,上述预定的规则运行要求包括预设内存阈值,该预设内存阈值是指满足规则运行的最低内存量。上述优化设备在确定检测设备的系统资源是否满足预定的规则运行要求时,首先获取上述检测设备的剩余内存资源。进而,根据该剩余内存资源和预设内存阈值,确定上述检测设备的系统资源是否满足预定的规则运行要求。
9.示例性的,上述优化设备将上述剩余内存资源与上述预设内存阈值进行比较。如果上述剩余内存资源大于或等于上述预设内存阈值,则上述优化设备确定上述检测设备的系统资源满足上述检测设备加载运行规则所需最低内存量,即满足预定的规则运行要求。如果上述剩余内存资源小于上述预设内存阈值,则上述优化设备确定上述检测设备的系统资源不满足上述检测设备加载运行规则所需最低内存量,即不满足预定的规则运行要求,上述检测设备资源受限,上述优化设备获取检测设备的候选规则集,进而,根据该候选规则集中至少一个规则对应的流量命中值,从上述候选规则集中选择目标规则,获得目标规则集,在检测设备上加载上述目标规则集,实现业务规则集在检测设备上的动态自适应加载,使得检测设备基于上述目标规则集对流经上述检测设备的流量进行识别,解决资源受限场景下,检测设备加载全部规则中的一部分规则,对流经检测设备的流量识别能力较低的问题。
10.一种可能设计,上述候选规则集中包括已加载规则以及未加载规则。
11.其中,上述已加载规则为上述候选规则集中已被上述优化设备加载的规则。
12.可选地,上述候选规则集中包括每个规则对应的优先级,该优先级根据上述每个规则对应的流量命中值确定,该流量命中值指示在第二时间段对应的样本流量中根据对应的规则识别出的流量的计数值,该第二时间段是获取上述检测设备的候选规则集之前的时间段。
13.上述优化设备加载上述已加载规则的方式根据上述候选规则集中每个规则对应的优先级确定。例如上述候选规则集中包括m条规则,m为大于0的整数。上述优化设备基于上述优先级,由高到低对上述候选规则集中每个规则进行排序,从排序后的规则中加载前
m1条规则作为上述已加载规则,m1小于m。
14.其中,m1是根据上述检测设备的系统资源所支持的规则数量确定的。例如m1等于上述检测设备的系统资源所支持的规则数量的最大值。
15.上述未加载规则为上述候选规则集中除上述已加载规则外剩余的规则。
16.一种可能设计,上述优化设备从上述候选规则集中选择目标规则,获得目标规则集,包括:
17.启动定时器,获取上述候选规则集中上述已加载规则中的每一规则针对子时间段中样本流量的流量命中值,并根据获取的流量命中值,确定上述已加载规则中的过期规则。这里,上述第一时间段为上述定时器启动至上述定时器到期的时间段,上述子时间段属于上述第一时间段,上述过期规则对应的流量命中值低于预设的更新要求。进而,利用上述候选规则集中上述未加载规则,替换上述过期规则,获得待加载规则集,并获取该待加载规则集中每一规则针对上述子时间段中样本流量的流量命中值,直至上述定时器到期为止,获得上述待加载规则集作为上述目标规则集,上述待加载规则集中包括未被替换的已加载规则以及用来替换上述过期规则的规则。
18.这里,上述优化设备设置定时器,在定时器开启后,对上述候选规则集中的规则进行交替轮换学习,直至定时器到期为止。即上述优化设备在一段时间内,基于规则针对子时间段中样本流量的流量命中值,对上述候选规则集中的规则进行优化,获得一个优化的规则集,作为上述目标规则集,从而,在检测设备上加载上述目标规则集,实现业务规则集在检测设备上的动态自适应加载,使得检测设备基于上述目标规则集对流经检测设备的流量进行识别,解决资源受限场景下,检测设备加载全部规则中的一部分规则,对流经检测设备的流量识别能力较低的问题。
19.其中,以上述第一时间段为当前一周(即从该周星期一到星期日)为例,如果上述第一时间段被平均分为多个时间段,例如以1天为单位,上述第一时间段被平均分为7个时间段,即上述星期一、星期二、星期三、星期四、星期五、星期六和星期日。上述子时间段为上述星期一、星期二、星期三、星期四、星期五、星期六或星期日。示例性的,上述优化设备启动定时器,获取上述候选规则集中已加载规则中的每一规则针对子时间段中样本流量的流量命中值,这里,可选地,该子时间段为上述星期一。上述优化设备根据已加载规则中的每一规则针对上述星期一中样本流量的流量命中值,确定已加载规则中的过期规则,进而,利用上述候选规则集中未加载规则,替换上述过期规则,获得待加载规则集,并获取该待加载规则集中每一规则针对子时间段中样本流量的流量命中值,其中,可选地,该子时间段为上述星期二。上述优化设备重复执行上述确定过期规则,利用上述候选规则集中未加载规则,替换上述过期规则的步骤,直至定时器到期为止,即上述第一时间段结束为止,最后获得待加载规则集作为上述目标规则集。
20.可选地,上述过期规则对应的流量命中值低于预设的更新要求,为针对上述子时间段中样本流量上述过期规则识别出的流量与上述子时间段中样本流量的比值低于预设比值阈值,或者,为针对上述子时间段中样本流量上述过期规则识别出的流量的字节数低于预设字节数阈值,或者,为上述针对上述子时间段中样本流量上述过期规则识别出的流量的流的数量低于预设流的数量阈值。
21.在本技术实施例中,避免了无效规则的加载,即上述过期规则的加载带来的系统
资源的消耗,降低了资源占用,提升了系统效率。
22.另外,上述优化设备设置定时器,对上述候选规则集中的规则进行交替轮换学习,即上述优化设备在一段时间内,基于规则针对子时间段中样本流量的流量命中值,对上述候选规则集中的规则进行优化,获得的优化的规则集有可能是一个优化结果较差的规则集,即上述检测设备基于上述优化的规则集对流经检测设备的流量进行识别,可能还是存在识别能力较低的问题。这里,出现上述问题的原因可能是上述定时器启动至到期的时间段较短,导致上述候选规则集中的规则只进行了短时间的交替轮换学习,即上述候选规则集中的规则只有一部分进行了交替轮换学习,还有一部分未进行交替轮换学习。
23.因此,为了解决上述问题,示例性的,上述优化设备从上述候选规则集中选择目标规则,获得目标规则集,包括:
24.获取上述候选规则集中已加载规则中的每一规则针对上述第一时间段中样本流量的流量命中值,并根据获取的流量命中值,确定上述已加载规则中的过期规则,该过期规则对应的流量命中值低于预设的更新要求。利用上述候选规则集中未加载规则,替换上述过期规则,获得待加载规则集,并获取上述待加载规则集中每一规则针对上述第一时间段中样本流量的流量命中值,直至获得上述候选规则集中的每一规则针对上述第一时间段中样本流量的流量命中值为止,获得上述待加载规则集作为上述目标规则集,上述待加载规则集中包括未被替换的已加载规则以及用来替换上述过期规则的规则。
25.其中,上述优化设备持续性地根据第一时间段中样本流量,对上述候选规则集中的规则进行优化,直至获得上述候选规则集中的每一规则针对上述第一时间段中样本流量的流量命中值为止,即优化设备对上述候选规则集中的所有规则都进行了交替轮换学习,获得一个最优的规则集,作为上述目标规则集,从而,上述检测设备基于上述优化的规则集对流经检测设备的流量进行识别,识别能力较好,实现了有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。
26.可选地,上述优化设备获取上述候选规则集中已加载规则中的每一规则针对上述第一时间段中样本流量的流量命中值,采用在线学习的方式,或者,采用离线流量库学习的方式。
27.对于在线学习的方式,上述第一时间段中样本流量根据上述从候选规则集中选择目标规则之前的时间段中样本流量确定,随着时间实时变化。对于离线流量库学习的方式,上述第一时间段中样本流量根据离线流量库中样本流量确定,不随时间实时变化,仅与离线流量库中样本流量有关。
28.这里,除上述获得目标规则集的方式外,对于首次部署规则集的检测设备,即上述检测设备先前未加载任何规则集,现需要加载规则集,对流经检测设备的流量进行识别,上述优化设备获得目标规则集包括:
29.从上述检测设备对应的规则库中获取部分规则,并将上述部分规则作为上述目标规则集。
30.可选地,服务器预存检测设备与规则库的对应关系,该对应关系为不同检测设备与其对应的规则库之间的关系。例如检测设备a和检测设备b为不同的检测设备,上述服务器预存的上述对应关系包括检测设备a与检测设备a对应的规则库之间的关系,以及检测设备b与检测设备b对应的规则库之间的关系。
31.上述优化设备在从上述检测设备对应的规则库中获取部分规则之前,根据上述服务器获取预存的检测设备与规则库的对应关系,从上述服务器获取上述检测设备对应的规则库,进而,从该规则库中获取部分规则。
32.可选地,上述检测设备与规则库的对应关系中,对于同一检测设备与其对应的规则库之间的关系,例如检测设备a与检测设备a对应的规则库之间的关系,包括同一检测设备与其对应的不同版本的规则库之间的关系,例如检测设备a对应的规则库a*,规则库a*有版本1、版本2和版本3,版本2为在版本1上更新的版本,版本3为在版本2上更新的版本。上述服务器预存检测设备a与版本1、版本2和版本3规则库a*的对应关系。
33.在本技术实施例,为了实现业务规则集在检测设备上的动态自适应加载,实现有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。上述优化设备在从上述检测设备对应的规则库中获取部分规则之前,要获取上述检测设备对应的最新版本的规则库。示例性的,上述优化设备根据上述服务器预存的检测设备与规则库的对应关系,获取上述检测设备对应的最新版本的规则库,将该最新版本的规则库作为上述检测设备对应的规则库,从该规则库中获取部分规则。
34.这里,由上述可知,上述检测设备的系统资源不满足上述预定的规则运行要求,即上述检测设备的系统资源受限,上述优化设备在从上述检测设备对应的规则库中获取部分规则时,需要根据上述检测设备的系统资源,从上述检测设备对应的规则库中获取上述部分规则。
35.示例性的,以上述系统资源包括内存资源为例。上述优化设备获取上述检测设备的剩余内存资源,进而,根据该剩余内存资源,确定一规则数目。例如,如果上述检测设备对应的规则库中平均每条规则占内存10kb,上述优化设备获取的上述检测设备的剩余内存资源为20mb,则上述优化设备确定上述规则数目为20mb/10kb条,即200条。
36.可选地,上述优化设备根据上述规则数目,从上述检测设备对应的规则库中获取上述部分规则,上述部分规则的数目等于上述规则数目。示例性的,上述优化设备从上述检测设备对应的规则库中随机获取上述规则数目的规则,并将获取的规则作为上述部分规则,例如上述以上述系统资源包括内存资源为例,上述优化设备从上述检测设备对应的规则库中随机获取200条规则,并将该200条规则作为上述部分规则。
37.另外,上述检测设备对应的规则库中还包括每个规则对应的优先级,该优先级根据上述每个规则对应的流量命中值确定,该流量命中值指示在第三时间段对应的样本流量中根据对应的规则识别出的流量的计数值,该第三时间段是从检测设备对应的规则库中获取部分规则之前的时间段。
38.上述检测设备对应的规则库中以包括n条规则为例,n为大于0的整数。上述优化设备从上述检测设备对应的规则库中获取上述部分规则时,首先基于上述n条规则对应的优先级,由高到低对上述n条规则进行排序,进而,从排序后的n条规则中获取前n1条规则,并将该前n1条规则作为上述部分规则,其中,上述n1小于n,n1等于上述检测设备的系统资源所支持的规则数量的最大值。例如上述系统资源包括内存资源,上述检测设备对应的规则库中平均每条规则占内存10kb,上述优化设备获取的上述检测设备的剩余内存资源为20mb,上述检测设备的系统资源所支持的规则数量的最大值n=20mb/10kb=200条。上述优化设备从排序后的n条规则中获取前n1条规则,n1等于200条。对于资源受限的场景,上述优
化设备自动加载优先级高的规则,提升了流量识别率,实现了有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。
39.在本技术实施例中,上述优化设备在从上述候选规则集中选择目标规则,获得目标规则集之前,需要获取上述检测设备的候选规则集。对于不是首次部署规则集的检测设备,即上述检测设备先前已加载一个或多个规则集,现需要再加载规则集,对流经检测设备的流量进行识别。上述优化设备获取上述检测设备的候选规则集,包括:
40.获取在上述检测设备上已加载的规则,并从上述检测设备对应的规则库中获取部分规则,进而,根据上述已加载的规则和部分规则,确定上述候选规则集。
41.可选地,上述优化设备在获取在上述检测设备上已加载的规则,并从上述检测设备对应的规则库中获取部分规则后,在该部分规则中去除与上述已加载的规则相同的规则,得到上述部分规则中的剩余规则,从而,将该剩余规则和上述已加载规则,进行合并,将合并后的规则作为上述候选规则集。
42.这里,上述优化设备去除上述部分规则与上述已加载规则相同的规则,避免后续加载重复规则带来的资源消耗,降低资源占用。
43.其中,上述优化设备如何从上述检测设备对应的规则库中获取部分规则参照上述描述,在此不再赘述。
44.另外,需要注意的是,在上述检测设备对应的规则库中还包括每个规则对应的优先级时,上述检测设备对应的规则库中以包括n条规则为例,n为大于0的整数。上述优化设备从上述检测设备对应的规则库中获取上述部分规则时,首先基于上述n条规则对应的优先级,由高到低对上述n条规则进行排序,进而,从排序后的n条规则中获取前n1条规则,并将该前n1条规则作为上述部分规则,其中,上述n1小于n,n1小于上述检测设备的系统资源所支持的规则数量的最大值。例如上述系统资源包括内存资源,上述检测设备对应的规则库中平均每条规则占内存10kb,上述优化设备获取的上述检测设备的剩余内存资源为20mb,上述检测设备的系统资源所支持的规则数量的最大值n=20mb/10kb=200条。上述优化设备从排序后的n条规则中获取前n1条规则,n1小于200条。
45.由上述可知,上述检测设备对应的规则库是上述优化设备从服务器获取的。因此,在上述获得目标规则集之后,上述优化设备还确定流经上述检测设备的流量中已识别流量的统计数据,和/或确定流经上述检测设备的流量中未识别流量的统计数据。其中,上述已识别流量是指已被上述检测设备加载的上述目标规则集中的规则识别出的流量,上述未识别流量为未被上述检测设备加载的上述目标规则集中的规则识别出的流量。进而,上述优化设备向上述服务器发送上述已识别流量的统计数据,和/或上述未识别流量的统计数据,以构建新版本规则库。
46.这里,上述已识别流量的统计数据包括上述已识别流量的所属行业领域和/或所属地区等。同理,上述未识别流量的统计数据包括上述未识别流量的所属行业领域和/或所属地区等。上述优化设备在获得目标规则集之后,反馈服务器流经上述检测设备的流量中已识别流量的统计数据,和/或未识别流量的统计数据,以使服务器根据上述优化设备反馈的信息构建规则库,例如构建单一检测设备特定区域(比如区域a、区域b)或单一检测设备特定行业领域(银行,教育)等多粒度的规则库,并在构建完成后,将构建的规则库通过预设渠道进行发布,供不同检测设备下载,满足不同的规则库下载要求。
47.第二方面,本技术实施例提供一种规则库优化装置,该装置包括:
48.确定模块,用于确定检测设备的系统资源是否满足预定的规则运行要求;
49.获取模块,用于若上述检测设备的系统资源不满足上述预定的规则运行要求,则获取上述检测设备的候选规则集;
50.选择模块,用于根据上述候选规则集中至少一个规则分别对应的流量命中值,从上述候选规则集中选择目标规则,获得目标规则集,其中,上述流量命中值指示在第一时间段对应的样本流量中根据对应的规则识别出的流量的计数值,上述第一时间段是从上述候选规则集中选择上述目标规则之前的时间段,上述检测设备的系统资源满足上述目标规则的运行要求;
51.加载模块,用于在上述检测设备上加载上述目标规则集,以使用上述目标规则集对流经上述检测设备的流量进行识别。
52.一种可能设计,上述候选规则集中包括已加载规则以及未加载规则。
53.上述选择模块,具体用于:
54.启动定时器,获取上述候选规则集中上述已加载规则中的每一规则针对子时间段中样本流量的流量命中值,并根据获取的流量命中值,确定上述已加载规则中的过期规则,上述第一时间段为上述定时器启动至上述定时器到期的时间段,上述子时间段属于上述第一时间段,上述过期规则对应的流量命中值低于预设的更新要求;
55.利用上述候选规则集中上述未加载规则,替换上述过期规则,获得待加载规则集,并获取上述待加载规则集中每一规则针对上述子时间段中样本流量的流量命中值,直至上述定时器到期为止,获得上述待加载规则集作为上述目标规则集,上述待加载规则集中包括未被替换的已加载规则以及用来替换上述过期规则的规则。
56.一种可能设计,上述选择模块,具体用于:
57.获取上述候选规则集中上述已加载规则中的每一规则针对上述第一时间段中样本流量的流量命中值,并根据获取的流量命中值,确定上述已加载规则中的过期规则,该过期规则对应的流量命中值低于预设的更新要求;
58.利用上述候选规则集中未加载规则,替换上述过期规则,获得待加载规则集,并获取上述待加载规则集中每一规则针对上述第一时间段中样本流量的流量命中值,直至获得上述候选规则集中的每一规则针对上述第一时间段中样本流量的流量命中值为止,获得上述待加载规则集作为上述目标规则集,上述待加载规则集中包括未被替换的已加载规则以及用来替换上述过期规则的规则。
59.一种可能设计,上述获取模块,具体用于:
60.获取在上述检测设备上已加载的规则,并从上述检测设备对应的规则库中获取部分规则;
61.根据上述已加载的规则和上述部分规则,确定上述候选规则集。
62.一种可能设计,上述获取模块,具体用于:
63.在上述部分规则中去除与上述已加载的规则相同的规则,得到上述部分规则中的剩余规则;
64.将上述剩余规则和上述已加载规则,进行合并;
65.将合并后的规则作为上述候选规则集。
66.一种可能设计,上述检测设备对应的规则库中还包括每个规则对应的优先级,上述检测设备对应的规则库中包括n条规则,n为大于0的整数。
67.上述获取模块,具体用于:
68.基于上述n条规则对应的优先级,由高到低对上述n条规则进行排序;
69.从排序后的n条规则中获取前n1条规则,并将上述前n1条规则作为上述部分规则,其中,上述n1小于n,n1小于上述检测设备的系统资源所支持的规则数量的最大值。
70.一种可能设计,上述获取模块,还用于:
71.获取上述检测设备对应的最新版本的规则库,并将上述最新版本的规则库作为上述检测设备对应的规则库。
72.一种可能设计,上述检测设备对应的规则库是从服务器获取的。
73.上述选择模块在获得目标规则集之后,还用于:
74.确定流经上述检测设备的流量中已识别流量的统计数据,和/或确定流经上述检测设备的流量中未识别流量的统计数据。其中,已识别流量是指已被上述检测设备加载的上述目标规则集中的规则识别出的流量,上述未识别流量为未被上述检测设备加载的上述目标规则集中的规则识别出的流量;
75.向上述服务器发送上述已识别流量的统计数据,和/或上述未识别流量的统计数据,以构建新版本规则库。
76.一种可能设计,上述系统资源包括内存资源,上述预定的规则运行要求包括预设内存阈值,该预设内存阈值是指满足规则运行的最低内存量。
77.上述确定模块,具体用于:
78.获取上述检测设备的剩余内存资源;
79.比较上述剩余内存资源和上述预设内存阈值,如果上述剩余内存资源大于或等于上述预设内存阈值,则确定上述检测设备的上述系统资源满足上述预定的规则运行要求。
80.第三方面,本技术提供一种计算设备,该计算设备包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法,使得该计算设备部署上述第二方面或者第二方面的各种可能设计提供该规则库优化装置。
81.第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令指示该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法,或者该计算机指令指示该计算设备部署上述第二方面或者第二方面的各种可能设计提供该规则库优化装置。
82.第五方面,本技术提供一种计算机程序产品,该计算机程序产品包括计算机指令。可选地,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法,使得该计算设备部署上述第二方面或者第二方面的各种可能设计提供该规则库优化装置。
83.第六方面,本技术实施例提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
附图说明
84.图1为本技术实施例提供的一种应用场景的示意图;
85.图2为本技术实施例提供的另一种应用场景的示意图;
86.图3为本技术实施例提供的再一种应用场景的示意图;
87.图4为本技术实施例提供的一种规则库优化系统的架构示意图;
88.图5为本技术实施例提供的另一种规则库优化系统的架构示意图;
89.图6为本技术实施例提供的一种规则库优化方法的流程示意图;
90.图7为本技术实施例提供的另一种规则库优化方法的流程示意图;
91.图8为本技术实施例提供的再一种规则库优化方法的流程示意图;
92.图9为本技术提供的一种规则库优化装置的结构示意图;
93.图10为本技术提供的一种计算设备的基本硬件架构示意图。
具体实施方式
94.下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
95.在dpi技术应用中,以流量识别为例,dpi依赖于一个规则库(或称之为流量规则库、流量指纹库、应用规则库、应用规则库等等)对现网应用进行流量识别。
96.其中,上述规则库中的规则包含用于识别网络应用的一个条件、或者多个条件的组合,规则中可选包含针对命中此规则时检测设备所采取的动作,如记录日志,丢弃,放行,限流等。下表给出多个规则内容示例。
[0097][0098]
随着网络应用数量的持续快速增加以及应用版本的频繁更新,上述规则库中规则的数量快速增长,因此dpi的存储资源和计算资源开销越来越大,系统效率逐渐降低。与此同时,不同型号、不同版本的检测设备在计算、存储资源差异性可能比较大,尤其是新老硬件配置并存的情况下。这样,可能导致老型号、老版本的检测设备的系统资源无法满足新规则库在存储和计算方面的资源需求,即无法加载上述规则库中的全部规则。在典型资源受限场景(例如低端网络防火墙,家庭网关等),检测设备的系统资源只能支持加载全部规则的1%或10%。
[0099]
相关技术中,在检测设备资源受限时,不同检测设备通常根据自身业务需求,例如检测设备a根据自身业务需求,对规则库中的全部规则进行裁剪,从而得到检测设备a的子规则库。其中,上述裁剪包括两个层面,第一个层面是检测设备总体层面,针对检测设备特点及用户需求等从全量规则库筛选一个较大的子规则库,第二个层面是检测设备内部层面,即剪裁出同一检测设备对应的一个版本或几个版本的子规则库。
[0100]
然而,检测设备通过上述剪裁方式剪裁得到的子规则库是检测设备的全部规则中的一部分规则。如果检测设备加载上述剪裁得到的子规则库,对流经检测设备的流量进行识别,可能存在流量识别能力较低的问题。示例性的,检测设备a资源受限,例如检测设备a的剩余内存资源有限,剩余内存资源为20mb。检测设备a对应的全量规则库中平均每条规则占内存10kb。检测设备a针对上述剩余内存资源从全量规则库裁剪出一个子规则库,最大裁剪出一个包括20mb/10kb条规则,即200条规则的子规则库。由于这200条规则的流量识别情况不清楚,如果检测设备a基于该200条规则,可能对流经检测设备的流量识别能力较低。另
外,上述不同检测设备对应的规则库可能不同,同一检测设备对应的规则库也可能不同,这样,降低了规则库的维护效率和自动化水平,不利于精细化构建规则库。
[0101]
为了进一步提高检测设备对流经检测设备的流量识别能力。现有研究还提供一种检测设备基于规则命中统计加载规则的方法。其中,检测设备在加载规则时,考虑各规则的命中情况,划分为高、中、低、无4个命中程度,其中“低”“无”对应规则进入预删除状态,“高”和“中”规则进入预加载状态。
[0102]
然而,上述各规则的命中情况指的是上述检测设备的各规则对某一具体流量样本的识别情况,该流量样本是不变的。如果上述检测设备在加载规则加载上述“高”和“中”规则,对流经上述检测设备的流量进行识别,可能还会存在流量识别能力较低的问题。因为,流经上述检测设备的流量是实时变化的,而上述“高”和“中”规则却是针对某一固定不变流量样本的识别能力高。
[0103]
因此,本技术实施例提供一种规则库优化方法,在检测设备资源受限时,通过检测设备的候选规则集中至少一个规则对应的流量命中值,从上述候选规则集中获得目标规则集,并在检测设备上加载该目标规则集。其中,上述流量命中值指示在第一时间段对应的样本流量中根据对应规则识别出的流量的计数值,该第一时间段是从候选规则集中获得目标规则之前的时间段。第一时间段对应的样本流量是指在第一时间段流经所述检测设备的样本流量。即本技术实施例在获取目标规则集时考虑流经上述检测设备的流量的实时变化,实现了有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。
[0104]
本技术实施例提供的规则库优化方法可应用在家庭网关(如家庭路由器)、防火墙、企业网关等具备流量分析功能的设备,以及服务器和移动终端类设备。
[0105]
可选地,本技术实施例提供的规则库优化方法应用于如图1、图2和图3所示的应用场景中。图1、图2和图3只是以示例的方式描述了本技术实施例提供的规则库优化方法的三种可能的应用场景,本技术实施例提供的规则库优化方法的应用场景不限于图1、图2和图3所示的应用场景。
[0106]
图1为本技术实施例提供的规则库优化方法应用在家庭路由器的示意图。在图1中,本技术实施例提供的规则库优化方法应用于家庭路由器,增强对家庭接入网络设备的流量识别能力,例如增强对家庭成员手机、笔记本、台式机等的流量识别能力,支持游戏加速,儿童上网保护、家长控制、应用控制策略等。上述路由器通过数据反馈接口反馈与本技术实施例相关的数据。示例性的,上述路由器通过数据反馈接口和互联网,向数据收集服务器反馈对上述家庭成员手机、笔记本、台式机等的流量的识别情况。规则库构建服务器基于上述数据收集服务器收集的信息,构建规则库。规则库发布服务器发布上述规则库构建服务器构建的规则库,以供其它设备下载更新。
[0107]
可选地,上述数据收集服务器、规则库构建服务器和规则库发布服务器的功能集成在一个服务器中。上述路由器通过数据反馈接口和互联网,向该服务器反馈对上述家庭成员手机、笔记本、台式机等的流量的识别情况。进而,该服务器基于上述信息,构建规则库,并发布构建的规则库。
[0108]
图2为本技术实施例提供的规则库优化方法应用在防火墙的示意图。在图2中,以企业防火墙为例,本技术实施例提供的规则库优化方法应用于企业防火墙。该防火墙对企业网络内设备的流量分析识别进行增强,支持服务质量(quality of service,qos)、服务
体验(quality of experience,qoe)应用策略,对基于流量分析的安全功能提供基础支持。该防火墙通过网络反馈流量分析识别数据。示例性的,该防火墙连接企业路由器,通过互联网,向数据收集服务器反馈对上述企业网络内设备的流量分析识别情况。规则库构建服务器基于上述数据收集服务器收集的信息,构建规则库。规则库发布服务器发布上述规则库构建服务器构建的规则库,以供其它设备下载更新。
[0109]
其中,上述防火墙可部署于企业路由器的两侧的任意一侧。上述防火墙能够被替换为其他类似功能的设备,比如入侵防护系统,企业安全网关,流量审计设备等。
[0110]
图3为本技术实施例提供的规则库优化方法应用在企业网关的示意图。在图3中,本技术实施例上述技术方案的防火墙等设备可能无法访问互联网,或者处基于网络隔离、安全隐私等要求不允许数据与互联网产生交互,则数据收集、规则库构建和规则发布服务部署在企业网络内部实现闭环。即数据收集、规则库构建和规则发布服务由企业内部技术运维人员完成,从而避免任何数据从企业内部网络传输到企业外部网络的潜在风险,提升数据安全合规和隐私保护能力。典型的企业网络实例包括运营商网络,该运营商网络具有多个办公区域等。
[0111]
示例性的,如图3所示,上述运营商网络的每一办公区域均设有一个防火墙和一个路由器,每一办公区域的防火墙与该区域的路由器连接,每一办公区域的路由器均与大型路由器连接。每一办公区域的防火墙通过该区域的路由器,以及上述大型路由器反馈流量分析识别数据。示例性的,每一办公区域的防火墙,通过该区域的路由器和上述大型路由器,向数据收集服务器反馈对上述每一办公区域内设备的流量分析识别情况。规则库构建服务器基于上述数据收集服务器收集的信息,构建规则库。规则库发布服务器发布上述规则库构建服务器构建的规则库,以供其它设备下载更新。
[0112]
这里,本技术实施例提供的规则库优化方法采用集成部署的方式或者独立部署的方式,应用在上述家庭网关(如家庭路由器)、防火墙、企业网关等具备流量分析功能的设备。集成部署是指执行上述方法的软件或硬件模块作为集成在家庭路由器、企业网关、或防火墙中的一个功能模块,使得包含该功能模块的家庭路由器、企业网关、防火墙作为上述方法的执行主体。可替换地,上述规则库优化方法也能够独立部署在另一个与家庭路由器、企业网关、或防火墙等具备流量分析功能的设备存在直接或间接通信连接的服务器中,比如规则库构建服务器。例如,这个规则库构建服务器或者部署于上述具备流量分析功能的设备所在的网络,或者部署于互联网中(即通常所说的“云端”),通过加密连接与上述具备流量分析功能的设备进行通信,以许可的方式向家庭路由器、企业网关、或防火墙等设备提供服务。具体根据实际情况确定,本技术实施例对此不做特别限制。
[0113]
对于上述集成部署的方式,上述优化设备部署在上述家庭网关(如家庭路由器)、防火墙或企业网关等设备中,或者部署在上述服务器或移动终端类设备中。可选地,如图4所示,图4为本技术实施例提供的一种规则库优化系统的架构示意图,以上述优化设备部署在上述防火墙为例。在该防火墙中,除部署上述优化设备外,还部署规则集单元、规则加载单元、流量识别单元,以及识别结果输出单元。
[0114]
在具体实现过程中,上述优化设备在上述防火墙资源受限时,通过上述防火墙的候选规则集中至少一个规则对应的流量命中值,从上述候选规则集中获得目标规则集。其中,上述流量命中值指示在第一时间段对应的样本流量中根据对应规则识别出的流量的计
数值,该第一时间段是从候选规则集中获得目标规则之前的时间段。上述规则集单元存储上述优化设备获得的上述目标规则集。上述规则加载单元加载上述规则集单元存储的目标规则集。上述流量识别单元根据上述规则加载单元加载的目标规则集,对流经上述防火墙的流量进行识别。上述识别结果输出单元输出上述流量识别单元的识别结果。
[0115]
可选地,上述防火墙的候选规则集是上述优化设备根据服务器中规则库存储的规则集获取的。该服务器中包括规则库和规则库构建单元。该规则库存储多个检测设备的规则集。上述优化设备根据上述规则库存储的多个检测设备的规则集,获取上述防火墙的候选规则集,并从上述候选规则集中获得目标规则集。上述流量识别单元在根据该目标规则集,对流经上述防火墙的流量进行识别后,还把识别结果发送至上述优化设备。进而,上述优化设备将上述识别结果发送至上述规则库构建单元,上述规则库构建单元根据上述识别结果,构建规则库,以供其它设备下载更新。
[0116]
对于上述独立部署的方式,上述优化设备部署在上述家庭网关(如家庭路由器)、防火墙或企业网关等设备外部,或者部署在上述服务器或移动终端类设备外部。可选地,如图5所示,图5为本技术实施例提供的另一种规则库优化系统的架构示意图,还以上述优化设备部署在上述防火墙为例。上述优化设备部署在上述防火墙外部。上述防火墙中部署规则集单元、规则加载单元、流量识别单元,以及识别结果输出单元。
[0117]
其中,上述优化设备、规则集单元、规则加载单元、流量识别单元,以及识别结果输出单元的功能描述参照图4描述,在此不再赘述。
[0118]
同样,上述防火墙的候选规则集是上述优化设备根据服务器中规则库存储的规则集获取的。该服务器中包括规则库和规则库构建单元。该规则库存储多个检测设备的规则集。上述优化设备根据上述规则库存储的多个检测设备的规则集,获取上述防火墙的候选规则集,并从上述候选规则集中获得目标规则集。上述流量识别单元在根据该目标规则集,对流经上述防火墙的流量进行识别后,还把识别结果发送至上述优化设备。进而,上述优化设备将上述识别结果发送至上述规则库构建单元,上述规则库构建单元根据上述识别结果,构建规则库,以供其它设备下载更新。
[0119]
这里,本技术实施例将上述优化设备从防火墙剥离,从而降低防火墙的资源开销。同时,该部署方式更加灵活,对防火墙的改动非常小,易扩展,允许一个大型网络内集中或分布式部署一个或多个优化设备进行规则优化,进一步改善流量识别效果。
[0120]
可选地,上述优化设备通过读取存储器中的指令并执行指令的方式实现,或者,通过芯片电路实现。
[0121]
应理解,本技术实施例描述的系统的架构以及应用场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
[0122]
下面以几个实施例为例对本技术的技术方案进行描述,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0123]
图6为本技术实施例提供了一种规则库优化方法的流程示意图,可选地,本实施例的执行主体为图4或图5所示的优化设备,具体执行主体根据实际应用场景确定,本技术实施例对此不做特别限制。如图6所示,该方法包括如下步骤。
[0124]
s601:确定检测设备的系统资源是否满足预定的规则运行要求。
[0125]
可选地,上述检测设备是实体设备或虚拟设备,具体根据实际情况确定,例如上述家庭网关(如家庭路由器)、防火墙、企业网关等设备,以及服务器和移动终端类设备。
[0126]
上述预定的规则运行要求为运行规则库(例如上述图4或图5所示规则库,该规则库存储多个检测设备的规则集)所有规则所需最低系统资源,例如所需最低计算资源和/或存储资源等。上述优化设备确定上述检测设备的系统资源是否满足预定的规则运行要求,即确定上述检测设备的系统资源是否满足上述检测设备加载运行规则所需最低系统资源。
[0127]
这里,以上述系统资源包括内存资源为例,上述预定的规则运行要求包括预设内存阈值,该预设内存阈值是指满足规则运行的最低内存量。上述优化设备在确定上述检测设备的系统资源是否满足预定的规则运行要求时,首先获取上述检测设备的剩余内存资源。进而,根据该剩余内存资源和预设内存阈值,确定上述检测设备的系统资源是否满足预定的规则运行要求。
[0128]
示例性的,上述优化设备将上述剩余内存资源与上述预设内存阈值进行比较。如果上述剩余内存资源大于或等于上述预设内存阈值,则上述优化设备确定上述检测设备的系统资源满足上述检测设备加载运行规则所需最低内存量,即满足预定的规则运行要求。如果上述剩余内存资源小于上述预设内存阈值,则上述优化设备确定上述检测设备的系统资源不满足上述检测设备加载运行规则所需最低内存量,即不满足预定的规则运行要求,上述检测设备资源受限,上述优化设备执行后续操作,以解决资源受限场景下,检测设备加载全部规则中的一部分规则,对流经检测设备的流量识别能力较低的问题。
[0129]
s602:若上述检测设备的系统资源不满足上述预定的规则运行要求,则获取上述检测设备的候选规则集。
[0130]
在本技术实施例中,对于首次部署规则集的检测设备,即检测设备先前未加载任何规则集,现需要加载规则集,对流经检测设备的流量进行识别。如果上述检测设备的系统资源不满足上述预定的规则运行要求,则上述优化设备获得目标规则集。
[0131]
示例性的,上述优化设备从上述检测设备对应的规则库中获取部分规则,并将上述部分规则作为上述目标规则集。
[0132]
可选地,服务器预存检测设备与规则库的对应关系,该对应关系为不同检测设备与其对应的规则库之间的关系。例如检测设备a和检测设备b为不同的检测设备,上述服务器预存的上述对应关系包括检测设备a与检测设备a对应的规则库之间的关系,以及检测设备b与检测设备b对应的规则库之间的关系。
[0133]
上述优化设备在从上述检测设备对应的规则库中获取部分规则之前,根据上述服务器获取预存的检测设备与规则库的对应关系,从上述服务器获取上述检测设备对应的规则库,进而,从该规则库中获取部分规则。
[0134]
这里,同一检测设备能够对应一个统一的规则库,提高了规则库维护的整体效率和自动化水平,也有助于精细化构建针对性的规则库。
[0135]
其中,上述优化设备能够通过网络远程下载更新方式,从上述服务器获取与上述检测设备对应的规则库。上述更新方式包括周期性检查更新,例如每天或每周检查更新。
[0136]
上述检测设备对应的规则库中包括基础规则集(例如基础承载协议http和tls规则等)。
[0137]
可选地,上述检测设备与规则库的对应关系中,对于同一检测设备与其对应的规则库之间的关系,例如检测设备a与检测设备a对应的规则库之间的关系,包括同一检测设备与其对应的不同版本的规则库之间的关系,例如检测设备a对应的规则库a*,规则库a*有版本1、版本2和版本3,版本2为在版本1上更新的版本,版本3为在版本2上更新的版本。上述服务器预存检测设备a与版本1、版本2和版本3规则库a*的对应关系。
[0138]
在本技术实施例,为了实现业务规则集在检测设备上的动态自适应加载,实现有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。上述优化设备在从上述检测设备对应的规则库中获取部分规则之前,要获取上述检测设备对应的最新版本的规则库。示例性的,上述优化设备根据上述服务器预存的检测设备与规则库的对应关系,获取上述检测设备对应的最新版本的规则库,将该最新版本的规则库作为上述检测设备对应的规则库,从该规则库中获取部分规则。
[0139]
这里,由上述可知,上述检测设备的系统资源不满足上述预定的规则运行要求,即上述检测设备的系统资源受限,上述优化设备在从上述检测设备对应的规则库中获取部分规则时,需要根据上述检测设备的系统资源,从上述检测设备对应的规则库中获取上述部分规则。
[0140]
示例性的,以上述系统资源包括内存资源为例。上述优化设备在根据上述检测设备的系统资源,从上述检测设备对应的规则库中获取上述部分规则时,获取上述检测设备的剩余内存资源,进而,根据该剩余内存资源,确定一规则数目。例如,如果上述检测设备对应的规则库中平均每条规则占内存10kb,上述优化设备获取的上述检测设备的剩余内存资源为20mb,则上述优化设备确定上述规则数目为20mb/10kb条,即200条。
[0141]
可选地,上述优化设备根据上述规则数目,从上述检测设备对应的规则库中获取上述部分规则,上述部分规则的数目等于上述规则数目。示例性的,上述优化设备从上述检测设备对应的规则库中随机获取上述规则数目的规则,并将获取的规则作为上述部分规则,例如上述以上述系统资源包括内存资源为例,上述优化设备从上述检测设备对应的规则库中随机获取200条规则,并将该200条规则作为上述部分规则。
[0142]
另外,上述检测设备对应的规则库中还包括每个规则对应的优先级,该优先级根据上述每个规则对应的流量命中值确定,该流量命中值指示在第三时间段对应的样本流量中根据对应的规则识别出的流量的计数值,该第三时间段是从检测设备对应的规则库中获取部分规则之前的时间段。
[0143]
上述检测设备对应的规则库中以包括n条规则为例,n为大于0的整数。上述优化设备从上述检测设备对应的规则库中获取上述部分规则时,首先基于上述n条规则对应的优先级,由高到低对上述n条规则进行排序,进而,从排序后的n条规则中获取前n1条规则,并将该前n1条规则作为上述部分规则,其中,上述n1小于n,n1等于上述检测设备的系统资源所支持的规则数量的最大值。例如上述系统资源包括内存资源,上述检测设备对应的规则库中平均每条规则占内存10kb,上述优化设备获取的上述检测设备的剩余内存资源为20mb,上述检测设备的系统资源所支持的规则数量的最大值n=20mb/10kb=200条。上述优化设备从排序后的n条规则中获取前200条规则。对于资源受限的场景,上述优化设备自动加载优先级高的规则,提升了流量识别率,实现了有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。
[0144]
在本技术实施例中,上述优化设备在从上述候选规则集中选择目标规则,获得目标规则集之前,需要获取上述检测设备的候选规则集。对于不是首次部署规则集的检测设备,即上述检测设备先前已加载一个或多个规则集,现需要再加载规则集,对流经检测设备的流量进行识别。上述优化设备获取上述检测设备的候选规则集,包括:
[0145]
获取在上述检测设备上已加载的规则,并从上述检测设备对应的规则库中获取部分规则,进而,根据上述已加载的规则和部分规则,确定上述候选规则集。
[0146]
可选地,上述优化设备在获取在上述检测设备上已加载的规则,并从上述检测设备对应的规则库中获取部分规则后,在该部分规则中去除与上述已加载的规则相同的规则,得到上述部分规则中的剩余规则,从而,将该剩余规则和上述已加载规则,进行合并,将合并后的规则作为上述候选规则集。
[0147]
这里,上述优化设备去除上述部分规则与上述已加载规则相同的规则,避免后续加载重复规则带来的资源消耗,降低资源占用。
[0148]
同样,上述优化设备获取上述检测设备对应的最新版本的规则库,并将该最新版本的规则库作为上述检测设备对应的规则库,进而,从该规则库中获取上述部分规则。
[0149]
可选地,上述检测设备对应的规则库中还包括每个规则对应的优先级。上述检测设备对应的规则库中以包括n条规则为例,n为大于0的整数。上述优化设备从上述检测设备对应的规则库中获取上述部分规则时,基于上述n条规则对应的优先级,由高到低对所述n条规则进行排序,进而,从排序后的n条规则中获取前n1条规则,并将该前n1条规则作为上述部分规则,其中,上述n1小于n,n1小于上述检测设备的系统资源所支持的规则数量的最大值。例如上述系统资源包括内存资源,上述检测设备对应的规则库中平均每条规则占内存10kb,上述优化设备获取的上述检测设备的剩余内存资源为20mb,上述检测设备的系统资源所支持的规则数量的最大值n=20mb/10kb=200条。上述优化设备从排序后的n条规则中获取前n1条规则,n1小于200条。
[0150]
s603:根据上述候选规则集中至少一个规则分别对应的流量命中值,从上述候选规则集中选择目标规则,获得目标规则集,其中,上述流量命中值指示在第一时间段对应的样本流量中根据对应的规则识别出的流量的计数值,上述第一时间段是从所述候选规则集中选择上述目标规则之前的时间段,上述检测设备的系统资源满足上述目标规则的运行要求。
[0151]
这里,上述对应指的是规则与识别出的流量的计数值对应,例如在上述第一时间段对应的样本流量中,一个规则识别出一个流量的计数值。
[0152]
可选地,上述计数值是在上述第一时间段对应的样本流量中一个规则识别出的流量与上述第一时间段对应的样本流量的比值,或者,在上述第一时间段对应的样本流量中一个规则识别出的流量的字节数或流的数量。
[0153]
上述优化设备根据上述候选规则集中至少一个规则分别对应的流量命中值,例如上述比值、上述流量的字节数或流的数量,从上述候选规则集中选择目标规则,获得目标规则集。
[0154]
s604:在上述检测设备上加载所述目标规则集,以使用上述目标规则集对流经所述检测设备的流量进行识别。
[0155]
由上述可知,上述检测设备对应的规则库是上述优化设备从服务器获取的。因此,
在上述获得目标规则集之后,上述优化设备还确定流经上述检测设备的流量中已识别流量的统计数据,和/或确定流经上述检测设备的流量中未识别流量的统计数据。其中,上述已识别流量是指已被上述检测设备加载的上述目标规则集中的规则识别出的流量,上述未识别流量为未被上述检测设备加载的上述目标规则集中的规则识别出的流量。进而,上述优化设备向上述服务器发送上述已识别流量的统计数据,和/或上述未识别流量的统计数据,以构建新版本规则库。
[0156]
这里,上述已识别流量的统计数据包括上述已识别流量的所属行业领域和/或所属地区等。同理,上述未识别流量的统计数据包括上述未识别流量的所属行业领域和/或所属地区等。上述优化设备在获得目标规则集之后,反馈服务器流经上述检测设备的流量中已识别流量的统计数据,和/或未识别流量的统计数据,以使服务器根据上述优化设备反馈的信息构建规则库,例如构建单一检测设备特定区域(比如区域a、区域b)或单一检测设备特定行业领域(银行,教育)等多粒度的规则库,并在构建完成后,将构建的规则库通过预设渠道进行发布,供不同检测设备下载,满足不同的规则库下载要求。
[0157]
本技术实施例,通过确定检测设备的系统资源是否满足预定的规则运行要求,在不满足该预定的规则运行要求时,即系统资源受限时,获取检测设备的候选规则集,进而,根据该候选规则集中至少一个规则对应的流量命中值,从上述候选规则集中选择目标规则,获得目标规则集,并在检测设备上加载上述目标规则集,实现业务规则集在检测设备上的动态自适应加载,使得检测设备基于上述目标规则集对流经上述检测设备的流量进行识别,解决资源受限场景下,检测设备加载全部规则中的一部分规则,对流经检测设备的流量识别能力较低的问题。本技术实施例实现了有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。另外,本技术实施例避免了无效规则加载带来的系统资源消耗,降低了资源占用,提升了系统效率。
[0158]
可选地,上述优化设备在根据上述候选规则集中至少一个规则分别对应的流量命中值,从上述候选规则集中选择目标规则,获得目标规则集时,采用如下图7或图8所述实施例。
[0159]
其中,上述候选规则集中包括已加载规则以及未加载规则。这里,该已加载规则为上述候选规则集中已被上述优化设备加载的规则。
[0160]
可选地,上述候选规则集中包括每个规则对应的优先级,该优先级根据上述每个规则对应的流量命中值确定,该流量命中值指示在第二时间段对应的样本流量中根据对应的规则识别出的流量的计数值,该第二时间段是获取上述检测设备的候选规则集之前的时间段。
[0161]
示例性的,上述优化设备加载上述已加载规则的方式根据上述候选规则集中每个规则对应的优先级确定。例如上述候选规则集中包括m条规则,m为大于0的整数。上述优化设备基于上述优先级,由高到低对上述候选规则集中每个规则进行排序,从排序后的规则中加载前m1条规则作为上述已加载规则,m1小于m。
[0162]
其中,m1是根据上述检测设备的系统资源所支持的规则数量确定的。例如m1等于上述检测设备的系统资源所支持的规则数量的最大值。
[0163]
上述未加载规则为上述候选规则集中除上述已加载规则外剩余的规则。
[0164]
图7为本技术实施例提出的另一种规则库优化方法的流程示意图,可选地,本实施
例的执行主体为图4或图5所示的优化设备,具体执行主体根据实际应用场景确定,本技术实施例对此不做特别限制。如图7所示,该方法包括:
[0165]
s701:确定检测设备的系统资源是否满足预定的规则运行要求。
[0166]
s702:若上述检测设备的系统资源不满足上述预定的规则运行要求,则获取上述检测设备的候选规则集。
[0167]
其中,步骤s701-s702与上述步骤s601-s602的实现方式相同,此处不再赘述。
[0168]
s703:启动定时器,获取上述候选规则集中所述已加载规则中的每一规则针对子时间段中样本流量的流量命中值,并根据获取的流量命中值,确定上述已加载规则中的过期规则,上述第一时间段为上述定时器启动至上述定时器到期的时间段,上述子时间段属于上述第一时间段,上述过期规则对应的流量命中值低于预设的更新要求,上述第一时间段是从上述候选规则集中选择上述目标规则之前的时间段。
[0169]
s704:利用上述候选规则集中上述未加载规则,替换上述过期规则,获得待加载规则集,并获取上述待加载规则集中每一规则针对上述子时间段中样本流量的流量命中值,直至上述定时器到期为止,获得上述待加载规则集作为目标规则集,上述待加载规则集中包括未被替换的已加载规则以及用来替换上述过期规则的规则,上述检测设备的系统资源满足上述目标规则的运行要求。
[0170]
这里,上述优化设备设置定时器,在定时器开启后,对上述候选规则集中的规则进行交替轮换学习,直至定时器到期为止。即上述优化设备在一段时间内,基于规则针对子时间段中样本流量的流量命中值,对上述候选规则集中的规则进行优化,获得一个优化的规则集,作为上述目标规则集,从而,在检测设备上加载上述目标规则集,实现业务规则集在检测设备上的动态自适应加载,使得检测设备基于上述目标规则集对流经检测设备的流量进行识别,解决资源受限场景下,检测设备加载全部规则中的一部分规则,对流经检测设备的流量识别能力较低的问题。
[0171]
其中,以上述第一时间段为当前一周(即从该周星期一到星期日)为例,如果上述第一时间段被平均分为多个时间段,例如以1天为单位,上述第一时间段被平均分为7个时间段,即上述星期一、星期二、星期三、星期四、星期五、星期六和星期日。上述子时间段为上述星期一、星期二、星期三、星期四、星期五、星期六或星期日。示例性的,上述优化设备启动定时器,获取上述候选规则集中已加载规则中的每一规则针对子时间段中样本流量的流量命中值,这里,可选地,该子时间段为上述星期一。上述优化设备根据已加载规则中的每一规则针对上述星期一中样本流量的流量命中值,确定已加载规则中的过期规则,进而,利用上述候选规则集中未加载规则,替换上述过期规则,获得待加载规则集,并获取该待加载规则集中每一规则针对子时间段中样本流量的流量命中值,其中,可选地,该子时间段为上述星期二。上述优化设备重复执行上述确定过期规则,利用上述候选规则集中未加载规则,替换上述过期规则的步骤,直至定时器到期为止,即上述第一时间段结束为止,最后获得待加载规则集作为上述目标规则集。
[0172]
可选地,上述过期规则对应的流量命中值低于预设的更新要求,为针对上述子时间段中样本流量上述过期规则识别出的流量与上述子时间段中样本流量的比值低于预设比值阈值,或者,为针对上述子时间段中样本流量上述过期规则识别出的流量的字节数低于预设字节数阈值,或者,为上述针对上述子时间段中样本流量上述过期规则识别出的流
量的流的数量低于预设流的数量阈值。
[0173]
在本技术实施例中,避免了无效规则的加载,即上述过期规则的加载带来的系统资源的消耗,降低了资源占用,提升了系统效率。
[0174]
s705:在上述检测设备上加载上述目标规则集,以使用上述目标规则集对流经上述检测设备的流量进行识别。
[0175]
其中,步骤s705与上述步骤s604的实现方式相同,此处不再赘述。
[0176]
本技术实施例中,在资源受限场景,上述优化设备在一段时间内,基于上述候选规则集中的规则针对子时间段中样本流量的流量命中值,对上述候选规则集中的规则进行优化,获得一个优化的规则集,该优化的规则集与较好地上述检测设备的本地环境相适应。检测设备加载上述优化的规则集,而不是直接加载上述检测设备的候选规则集,较好地解决了检测设备加载的规则集与本地环境不适应的问题。而且,上述优化设备设置定时器,在定时器开启后,对上述候选规则集中的规则进行交替轮换学习,基于学习结果确定上述检测设备要加载的目标规则集,降低了对发布上述检测设备的规则库的约束,允许同一检测设备对应一个统一的规则库,提高了规则库维护的整体效率和自动化水平,也有助于精细化构建针对性的规则库。另外,上述优化设备实现业务规则集在检测设备上的动态自适应加载,使得检测设备基于上述目标规则集对流经上述检测设备的流量进行识别,解决资源受限场景下,检测设备加载全部规则中的一部分规则,对流经检测设备的流量识别能力较低的问题。
[0177]
另外,上述优化设备设置定时器,对上述候选规则集中的规则进行交替轮换学习,即上述优化设备在一段时间内,基于规则针对子时间段中样本流量的流量命中值,对上述候选规则集中的规则进行优化,获得的优化的规则集有可能是一个优化结果较差的规则集,即上述检测设备基于上述优化的规则集对流经检测设备的流量进行识别,可能还是存在识别能力较低的问题。这里,出现上述问题的原因可能是上述定时器启动至到期的时间段较短,导致上述候选规则集中的规则只进行了短时间的交替轮换学习,即上述候选规则集中的规则只有一部分进行了交替轮换学习,还有一部分未进行交替轮换学习。
[0178]
因此,为了解决上述问题,示例性的,本技术实施例提供再一种规则库优化方法。图8为本技术实施例提出的再一种规则库优化方法的流程示意图,可选地,本实施例的执行主体为图4或图5所示的优化设备,具体执行主体根据实际应用场景确定,本技术实施例对此不做特别限制。如图8所示,该方法包括:
[0179]
s801:确定检测设备的系统资源是否满足预定的规则运行要求。
[0180]
s802:若上述检测设备的系统资源不满足上述预定的规则运行要求,则获取上述检测设备的候选规则集。
[0181]
其中,步骤s801-s802与上述步骤s601-s602的实现方式相同,此处不再赘述。
[0182]
s803:获取上述候选规则集中已加载规则中的每一规则针对上述第一时间段中样本流量的流量命中值,并根据获取的流量命中值,确定上述已加载规则中的过期规则,该过期规则对应的流量命中值低于预设的更新要求。
[0183]
s804:利用上述候选规则集中未加载规则,替换上述过期规则,获得待加载规则集,并获取上述待加载规则集中每一规则针对上述第一时间段中样本流量的流量命中值,直至获得上述候选规则集中的每一规则针对上述第一时间段中样本流量的流量命中值为
止,获得上述待加载规则集作为上述目标规则集,上述待加载规则集中包括未被替换的已加载规则以及用来替换上述过期规则的规则,上述检测设备的系统资源满足上述目标规则的运行要求。
[0184]
这里,上述优化设备持续性地根据第一时间段中样本流量,对上述候选规则集中的规则进行优化,直至获得上述候选规则集中的每一规则针对上述第一时间段中样本流量的流量命中值为止,即优化设备对上述候选规则集中的所有规则都进行了交替轮换学习,获得一个最优的规则集,作为上述目标规则集,从而,上述检测设备基于上述优化的规则集对流经检测设备的流量进行识别,识别能力较好,实现了有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。
[0185]
可选地,上述优化设备获取上述候选规则集中已加载规则中的每一规则针对上述第一时间段中样本流量的流量命中值,采用在线学习的方式,或者,采用离线流量库学习的方式。
[0186]
对于在线学习的方式,上述第一时间段中样本流量根据上述从候选规则集中选择目标规则之前的时间段中样本流量确定,随着时间实时变化。对于离线流量库学习的方式,上述第一时间段中样本流量根据离线流量库中样本流量确定,不随时间实时变化,仅与离线流量库中样本流量有关。
[0187]
s805:在上述检测设备上加载上述目标规则集,以使用上述目标规则集对流经上述检测设备的流量进行识别。
[0188]
其中,步骤s805与上述步骤s604的实现方式相同,此处不再赘述。
[0189]
本技术实施例中,在资源受限场景,上述优化设备对上述候选规则集中的所有规则都进行了交替轮换学习,获得一个最优的规则集,作为上述目标规则集,从而,上述检测设备基于上述优化的规则集对流经检测设备的流量进行识别,识别能力较好,实现了有限资源条件下近似最优的流量识别能力,尽可能识别更多业务流量。而且,上述目标规则集更好地与上述检测设备的本地环境相适应。检测设备加载上述目标规则集,更好地解决了检测设备加载的规则集与本地环境不适应的问题。另外,上述优化设备对上述候选规则集中的所有规则都进行了交替轮换学习,基于学习结果确定上述检测设备要加载的目标规则集,降低了对发布上述检测设备的规则库的约束,允许同一检测设备对应一个统一的规则库,提高了规则库维护的整体效率和自动化水平,也有助于精细化构建针对性的规则库。
[0190]
图9为本技术提供的一种规则库优化装置的结构示意图,该装置包括:确定模块901、获取模块902、选择模块903和加载模块904。可选地,这里的规则库优化装置是上述优化设备本身,或者是实现上述优化设备的功能的芯片或者集成电路。这里需要说明的是,确定模块、获取模块、选择模块和加载模块的划分只是一种逻辑功能的划分,物理上两者是集成的,或者独立的。
[0191]
其中,确定模块901,用于确定检测设备的系统资源是否满足预定的规则运行要求。
[0192]
获取模块902,用于若上述检测设备的系统资源不满足上述预定的规则运行要求,则获取上述检测设备的候选规则集。
[0193]
选择模块903,用于根据上述候选规则集中至少一个规则分别对应的流量命中值,从上述候选规则集中选择目标规则,获得目标规则集,其中,上述流量命中值指示在第一时
间段对应的样本流量中根据对应的规则识别出的流量的计数值,上述第一时间段是从上述候选规则集中选择上述目标规则之前的时间段,上述检测设备的系统资源满足上述目标规则的运行要求。
[0194]
加载模块904,用于在上述检测设备上加载上述目标规则集,以使用上述目标规则集对流经上述检测设备的流量进行识别。
[0195]
一种可能设计,上述候选规则集中包括已加载规则以及未加载规则。
[0196]
上述选择模块903,具体用于:
[0197]
启动定时器,获取上述候选规则集中上述已加载规则中的每一规则针对子时间段中样本流量的流量命中值,并根据获取的流量命中值,确定上述已加载规则中的过期规则,上述第一时间段为上述定时器启动至上述定时器到期的时间段,上述子时间段属于上述第一时间段,上述过期规则对应的流量命中值低于预设的更新要求;
[0198]
利用上述候选规则集中上述未加载规则,替换上述过期规则,获得待加载规则集,并获取上述待加载规则集中每一规则针对上述子时间段中样本流量的流量命中值,直至上述定时器到期为止,获得上述待加载规则集作为上述目标规则集,上述待加载规则集中包括未被替换的已加载规则以及用来替换上述过期规则的规则。
[0199]
一种可能设计,上述选择模块903,具体用于:
[0200]
获取上述候选规则集中上述已加载规则中的每一规则针对上述第一时间段中样本流量的流量命中值,并根据获取的流量命中值,确定上述已加载规则中的过期规则,该过期规则对应的流量命中值低于预设的更新要求;
[0201]
利用上述候选规则集中未加载规则,替换上述过期规则,获得待加载规则集,并获取上述待加载规则集中每一规则针对上述第一时间段中样本流量的流量命中值,直至获得上述候选规则集中的每一规则针对上述第一时间段中样本流量的流量命中值为止,获得上述待加载规则集作为上述目标规则集,上述待加载规则集中包括未被替换的已加载规则以及用来替换上述过期规则的规则。
[0202]
一种可能设计,上述获取模块902,具体用于:
[0203]
获取在上述检测设备上已加载的规则,并从上述检测设备对应的规则库中获取部分规则;
[0204]
根据上述已加载的规则和上述部分规则,确定上述候选规则集。
[0205]
一种可能设计,上述获取模块902,具体用于:
[0206]
在上述部分规则中去除与上述已加载的规则相同的规则,得到所述部分规则中的剩余规则;
[0207]
将所述剩余规则和上述已加载规则,进行合并;
[0208]
将合并后的规则作为上述候选规则集。
[0209]
一种可能设计,上述检测设备对应的规则库中还包括每个规则对应的优先级,上述检测设备对应的规则库中包括n条规则,n为大于0的整数。
[0210]
上述获取模块902,具体用于:
[0211]
基于上述n条规则对应的优先级,由高到低对上述n条规则进行排序;
[0212]
从排序后的n条规则中获取前n1条规则,并将上述前n1条规则作为上述部分规则,其中,上述n1小于n,n1小于上述检测设备的系统资源所支持的规则数量的最大值。
[0213]
一种可能设计,上述获取模块902,还用于:
[0214]
获取上述检测设备对应的最新版本的规则库,并将上述最新版本的规则库作为上述检测设备对应的规则库。
[0215]
一种可能设计,上述检测设备对应的规则库是从服务器获取的。
[0216]
上述选择模块903在获得目标规则集之后,还用于:
[0217]
确定流经上述检测设备的流量中已识别流量的统计数据,和/或确定流经上述检测设备的流量中未识别流量的统计数据。其中,已识别流量是指已被上述检测设备加载的上述目标规则集中的规则识别出的流量,上述未识别流量为未被上述检测设备加载的上述目标规则集中的规则识别出的流量;
[0218]
向上述服务器发送上述已识别流量的统计数据,和/或上述未识别流量的统计数据,以构建新版本规则库。
[0219]
一种可能设计,上述系统资源包括内存资源,上述预定的规则运行要求包括预设内存阈值,上述预设内存阈值是指满足规则运行的最低内存量。
[0220]
上述确定模块901,具体用于:
[0221]
获取上述检测设备的剩余内存资源;
[0222]
比较上述剩余内存资源和上述预设内存阈值,如果上述剩余内存资源大于或等于上述预设内存阈值,则确定上述检测设备的上述系统资源满足上述预定的规则运行要求。
[0223]
本实施例的装置,对应地可用于执行上述方法所示实施例中的技术方案,其实现原理、实现细节和技术效果类似,此处不再赘述。
[0224]
可选地,图10示意性地提供本技术所述计算设备的一种可能的基本硬件架构。
[0225]
参见图10,计算设备1000包括处理器1001、存储器1002、通信接口1003和总线1004。可选地,这里的计算设备是上述优化设备。
[0226]
其中,计算设备1000可以是计算机或服务器,本技术对此不作特别限制。计算设备1000中,处理器1001的数量可以是一个或多个,图10仅示意了其中一个处理器1001。可选地,处理器1001,可以是中央处理器(central processing unit,cpu)。如果计算设备1000具有多个处理器1001,多个处理器1001的类型可以不同,或者可以相同。可选地,计算设备1000的多个处理器1001还可以集成为多核处理器。
[0227]
存储器1002存储计算机指令和数据;存储器1002可以存储实现本技术提供的上述规则库优化方法所需的计算机指令和数据,例如,存储器1002存储用于实现上述规则库优化方法的步骤的指令。存储器1002可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(read-only memory,rom)、固态硬盘(solid state disk,ssd)、硬盘(hard disk drive,hdd)、光盘),易失性存储器。
[0228]
通信接口1003可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
[0229]
通信接口1003用于计算设备1000与其它计算设备或者终端进行数据通信。
[0230]
图10用一条粗线表示总线1004。总线1004可以将处理器1001与存储器1002和通信接口1003连接。这样,通过总线1004,处理器1001可以访问存储器1002,还可以利用通信接口1003与其它计算设备或者终端进行数据交互。
[0231]
在本技术中,计算设备1000执行存储器1002中的计算机指令,使得计算设备1000
实现本技术提供的上述规则库优化方法,或者使得计算设备1000部署上述的规则库优化装置。
[0232]
另外,上述的规则库优化装置除了可以像上述图10通过软件实现外,也可以作为硬件模块,或者作为电路单元,通过硬件实现。
[0233]
本技术提供一种计算机可读存储介质,所述计算机程序产品包括计算机指令,所述计算机指令指示计算设备执行本技术提供的上述规则库优化方法。
[0234]
本技术提供一种芯片,包括至少一个处理器和通信接口,所述通信接口为所述至少一个处理器提供信息输入和/或输出。进一步,所述芯片还可以包含至少一个存储器,所述存储器用于存储计算机指令。所述至少一个处理器用于调用并运行该计算机指令,以执行本技术提供的上述规则库优化方法。
[0235]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0236]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0237]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。