基于最大频繁模式的动态规则库构建方法与流程

文档序号:14717821发布日期:2018-06-16 01:57阅读:1472来源:国知局

本发明涉及Web服务器异常检测技术领域,特别涉及一种基于最大频繁模式的动态规则库构建方法。



背景技术:

随着应用层异常检测算法的不断深入研究,针对Web服务器的异常检测已经取得一定成绩。攻击者为了更好地达到攻击目的,逃避已有的检测方法,针对Web服务器的应用层攻击方式呈现多样化、隐蔽化的趋势。而现有的Snort系统面临着需要大量的精力维护其规则库,缺乏专业知识指导建立规则的问题。WASD是分析Web用户行为的一种重要格式,一种普遍的研究方式是从WASD中挖掘出正常用户行为序列模式,再将用户行为模式与正常模式库进行比较来检测异常[52]

由于将正常用户行为序列模式作为规则库的构建基础,然而由于Web流量存在时效性,如有重大新闻发生的新闻网站流量数据必然比平时更具突发性,因此将完整的WASD作为数据基础,不仅不能体现当前Web流量的时效性,而且随着Web流量的增加,会导致系统的计算量上升。

序列模式挖掘是指从海量序列中挖掘出重复频率较高的模式,其关键是将时间属性融入关联模式。目前已提出许多序列模式挖掘算法,加拿大西蒙-弗雷泽大学裴健提出了一种基于序列模式增长策略的 PrefixSpan(Prefix-Projected Pattern Growth, 前缀投影模式挖掘)算法。该方法比传统的Apriori算法和广义序列模式算法有效。PrefixSpan算法由于将原始序列模式库转变为投影数据库从而节省了空间,然而需要更多的时间递归地构建投影数据库,时间效率低。



技术实现要素:

本发明的目的在于提供一种基于最大频繁模式的动态规则库构建方法,该方法有利于降低计算量,快速有效地构建出更加具有时效性的规则库。

为实现上述目的,本发明的技术方案是:一种基于最大频繁模式的动态规则库构建方法,包括以下步骤:

(1)输入Web日志数据集,然后对Web日志数据集进行数据过滤,将时间格式转化为时间戳并获取当前时间,将IP和URL映射为数字;

(2)进行用户识别和会话识别,构造Web用户访问序列数据库WASD;

(3)遍历WASD的每行数据,其中一行数据表示一个用户的访问序列,根据用户访问行为距当前时间的远近过滤出每个用户的近期访问行为,构成该用户的近期访问序列,进而由所有用户的近期访问序列构成动态Web用户访问序列数据库DWASD;

(4)给定最小支持度阈值θ,构造Spark运行环境变量sc,让Master主结点分配Worker从节点读取DWASD数据集,作为各Worker从结点的file变量;

(5)计算最近最小支持度min_support

(6)第一次扫描数据库,使用countPrefix(_._1)函数对前缀进行权重计数,并使用filter过滤函数来提取频繁1项集;

(7)通过得到的频繁1项集分割搜索空间序列模式,构建各频繁1项集的投影数据库;

(8)递归每一个频繁1项集为前缀的投影数据库,找出频繁2项集;

(9)判断是否继续产生频繁子序列,是则按步骤(7)、(8)的方法,继续递归构建频繁项集的投影数据库,否则得到所有的频繁序列模式;

(10)计算最大频繁项集,并将其保存到动态规则库矩阵变量DRB中,从而得到基于最大频繁模式的动态规则库。

进一步地,在步骤(3)中,根据用户访问行为距当前时间的远近过滤出用户的近期访问行为的方法为:

(31)计算用户访问每个页面的权重:

Wui = 1/(1+α*|tc-tui|)

其中,Wui表示用户u访问页面i的权重,α表示时间衰减系数,tc表示当前时间,tui表示用户u访问页面i的时间戳;

(32)判断权重Wui是否大于设定的时间阈值β,是则判定该权重对应的用户访问行为为近期访问行为;

(33)重复步骤(31)-(32),得到该用户的所有近期访问行为,进而由该用户的所有近期访问行为构成该用户的近期访问序列。

进一步地,在步骤(5)中,最近最小支持度min_support的计算方法为:

min_support = file.count()*θ

其中,file.count()是计算读入DWASD里面的数据条数,θ是最小支持度阈值。

进一步地,在步骤(7)中,通过得到的频繁1项集分割搜索空间序列模式,构建各频繁1项集的投影数据库,具体方法为:将频繁序列数据库分为n个具有不同前缀的频繁序列的子集,分割为n空间就是各频繁1项集为前缀的投影数据库,其中n是频繁1项集的数量。

进一步地,在步骤(10)中,计算最大频繁项集的具体方法为:

(101)遍历挖掘出来的频繁序列,保存到A(n)中;其中,A(n)表示频繁序列长度为n的频繁序列;

(102)遍历A(n)与A(n+1),判断这两个相邻长度里面频繁序列是否是子序列关系,删除子序列;

(103)把剩余最大频繁项集保存到DRB中;其中,DRB为动态规则库矩阵。

本发明的有益效果是:(1)提出了动态Web用户访问序列数据库DWASD的构建方法,通过将考虑用户兴趣存在衰减,引入时间衰减阈值,将过期Web流量过滤,从而保留时效性强利用价值高的Web流量以提高数据处理速度。同时设计出的带有用户访问权重的DWASD,更加具有实际意义;(2)提出了基于DWASD的的分布式PrefixSpan算法,该算法利用分布式技术,通过计算用户近期访问行为影响度,用近期最大频繁模式代替全局最大频繁模式,动态更新规则库,提高了规则库的时效性。

附图说明

图1是本发明方法的实现流程图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细说明。

本发明提供一种基于最大频繁模式的动态规则库构建方法,如图1所示,主要包括构建动态Web用户访问序列数据库DWASD和使用频繁模式挖掘算法PrefixSpan获取DWASD的最大频繁模式作为动态规则库的规则两个过程,具体包括以下步骤:

(1)输入Web日志数据集,然后对Web日志数据集进行数据过滤,删除图像、声音、视频和文件等页面,将时间格式转化为时间戳并获取当前时间,将IP和URL映射为数字。

映射为数字容易表示,一般Spark机器学习源码里面也会出现对序列的映射,不如用户IP或者URL很长,如果挖掘去比较两个序列会很复杂,时间转换为时间戳可以进行时间排序,这是规则库构建算法的需要。

(2)进行用户识别和会话识别,构造Web用户访问序列数据库WASD。

(3)遍历WASD的每行数据,其中一行数据表示一个用户的访问序列,根据用户访问行为距当前时间的远近过滤出每个用户的近期访问行为,构成该用户的近期访问序列,进而由所有用户的近期访问序列构成动态Web用户访问序列数据库DWASD。具体方法为:

(31)计算用户访问每个页面的权重:

Wui = 1/(1+α*|tc-tui|)

其中,Wui表示用户u访问页面i的权重,α表示时间衰减系数,tc表示当前时间,tui表示用户u访问页面i的时间戳;

(32)判断权重Wui是否大于设定的时间阈值β,是则判定该权重对应的用户访问行为为近期访问行为;

(33)重复步骤(31)-(32),得到该用户的所有近期访问行为,进而由该用户的所有近期访问行为构成该用户的近期访问序列。

(4)给定最小支持度阈值θ,构造Spark运行环境变量sc,让Master主结点(Spark集群的主节点)分配Worker从节点(Spark集群的从节点)读取DWASD数据集,作为各Worker从结点的file变量。Spark读取到的DWASD数据集,保存到file变量里面。

(5)计算最近最小支持度min_support。其计算方法为:

min_support = file.count()*θ

其中,file.count()是计算读入DWASD里面的数据条数,θ是最小支持度阈值。

(6)第一次扫描数据库,使用countPrefix(_._1)函数对前缀进行权重计数,并使用filter过滤函数来提取频繁1项集。

countPrefix(_._1)是自定义的用于统计前缀个数的函数,前缀在第一位置这是sequence的数据结构(prefix,project),前缀统计个数;filter是spark提供的过滤函数,通过过滤前缀大于最小支持度的前缀,得到频繁1项集。

(7)通过得到的频繁1项集分割搜索空间序列模式,构建各频繁1项集的投影数据库。具体方法为:将频繁序列数据库分为n个具有不同前缀的频繁序列的子集,分割为n空间就是各频繁1项集为前缀的投影数据库,其中n是频繁1项集的数量。

(8)递归每一个频繁1项集为前缀的投影数据库,找出频繁2项集。

(9)判断是否继续产生频繁子序列,是则按步骤(7)、(8)的方法,继续递归构建频繁项集的投影数据库,否则得到所有的频繁序列模式。

频繁子序列即频繁3项集、频繁4项集、……。得到频繁项集,如果满足条件就退出,条件是长度达到或者没有扩展的频繁项集了。

频繁序列模式,由所有的通过算法挖掘出来的频繁项集构成。

(10)计算最大频繁项集,并将其保存到动态规则库矩阵变量DRB中,从而得到基于最大频繁模式的动态规则库。

其中,计算最大频繁项集的具体方法为:

(101)遍历挖掘出来的频繁序列,保存到A(n)中;其中,A(n)表示频繁序列长度为n的频繁序列;

(102)遍历A(n)与A(n+1),判断这两个相邻长度里面频繁序列是否是子序列关系,删除子序列;

(103)把剩余最大频繁项集保存到DRB中;其中,DRB为动态规则库矩阵。

本发明针对以WASD为数据基础构建的规则库不具有时效性以及PrefixSpan算法时间效率低的问题,提出了一种基于最大频繁模式的动态规则库构建方法(The Dynamic Rule Base construction method based on Maximum Frequent Patterns, DRB_MFP)。该方法对正常WASD按照时间效应进行抽取,在Spark计算平台上进行最大频繁模式挖掘,对WASD进行规则转化,最终形成动态规则库。实验证明:本发明方法能够快速有效地挖掘出WASD中的规则。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

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