一种基于会话特征相似性模糊聚类的异常用户检测方法与流程

文档序号:15558362发布日期:2018-09-29 01:39阅读:135来源:国知局

本发明涉及web服务异常检测技术领域,特别是一种基于会话特征相似性模糊聚类的异常用户检测方法。



背景技术:

web服务作为互联网信息服务的入口为人们带来了许多的便利,但是同时它的安全问题成为信息时代人类共同面临的巨大威胁。来自web的各种攻击已经成为全球领域最大的挑战之一。针对web服务的异常检测已经成为一个研究热点。一般来说,异常是实际应用中发生了与正常行为不一致的事件,可能是事件本身潜在的特性所决定的,也可能是由于系统错误或者测量错误所造成的,或者是客体的不当行为所导致的。对于异常检测的问题描述可以简化为如何定义异常和发现异常。

一般来说,较常见的异常检测方法大体上分为三类:(1)基于统计分析的流量异常检测;(2)基于时间序列模型的流量异常检测;(3)基于流挖掘的流量异常检测。基于统计分析的异常检测方法采用统计分析技术对时间序列进行检测。它按某一时间间隔对系统或用户的行为来描绘该行为轮廓,再将合并的最终轮廓并与正常行为轮廓比较,检测是否存在异常行为。基于时间序列模型的异常检测方法从全局角度分析,无需拆分数据,将当前时间段流量模型与前段时间流量模型的相关参数进行比较,当相差较大时认为存在异常。基于流挖掘的流量异常检测方法从网络流量中挖掘具有某种隐含的、有潜在价值的模式、信息、关联等,用以检测异常。其主要特点是可以检测已知或未知的异常流,确定异常位置,而且还能用于实时异常检测。基于流挖掘的流量异常检测方法由于其检测精度高,善于发现隐藏异常,对异常检测有着至关重要的作用。然而,随着web流量的海量化与时效化,如何利用大数据技术提出有效的web流量分析方法,准确描述用户的行为,找出有效特征,也是流挖掘方法的主要问题。

当前对异常检测进行了大量的研究,总的来说,现有的方法通常需要大量的有标记信息作为系统的训练集,需要耗费大量前期工作时间来训练模型,而这就需要专家预先判断出原始数据是否为异常并标记,这显然不利于异常检测系统的移植和推广。



技术实现要素:

本发明的目的在于提供一种基于会话特征相似性模糊聚类的异常用户检测方法,该方法有利于快速准确地检测并定位异常用户。

为实现上述目的,本发明的技术方案是:一种基于会话特征相似性模糊聚类的异常用户检测方法,包括以下步骤:

步骤s1:为每个会话建立滑动窗口,收集用户的网页访问信息;

步骤s2:对收集到的网页访问信息进行数据预处理,生成用户会话信息;

步骤s3:采用pagerank算法计算网页权重信息;

步骤s4:基于得到的用户会话信息和网页权重信息,采用simhash算法计算用户之间的相似性,建立用户相似性矩阵;

步骤s5:采用基于模糊聚类的λ-截算法对每个会话滑动窗口得到的用户相似性矩阵进行切割,得出嫌疑用户;

步骤s6:根据所有会话滑动窗口返回的嫌疑用户信息,检测并定位异常用户。

进一步地,所述步骤s2中,对收集到的网页访问信息进行数据预处理,包括以下步骤:

步骤s21:对网页访问信息进行数据清理,只保留html和htm的访问记录;

步骤s22:设定同一个ip地址为同一个用户,采用基于时间阈值的启发式方法对步骤s21处理后的访问记录进行处理,即如果单个用户在某个页面上的停留时间超过设定阈值,则将该访问记录划分为新的会话,从而得到如下的用户会话数据集:

{useri:session1,session2,…,sessionik|1≤i≤m,1≤ik≤n}

其中,useri表示第i个用户,sessionik表示第i个用户的第ik个会话,ik表示第i个用户的会话总数,m为用户总数,n表示单个用户可能达到的最大会话数。

进一步地,所述步骤s3中,将所有用户的网页访问信息输入pagerank算法,计算得到每个网页的权重信息。

进一步地,所述步骤s4中,将步骤s3得到的每个网页的权重信息作为simhash算法的权重参数,对simhash算法进行初始化,然后将步骤s2得到的所有用户的会话信息输入simhash算法,计算每个会话的simhash值,得到用户会话simhash值数据集:

{useri:session_simhash1,session_simhash2,…,session_simhashik|1≤i≤m,1≤ik≤n}

其中,session_simhashik表示第i个用户的第ik个会话的simhash值;

然后根据用户每个会话一一对应的simhash值,生成用户之间的用户相似度矩阵。

进一步地,所述步骤s5中,采用基于模糊聚类的λ-截算法对每个会话滑动窗口的用户相似性矩阵进行切割,得到与其它会话最不相似的会话,对所有不相似会话对应的用户进行统计,取前n个具有最多不相似会话的用户作为嫌疑用户。

进一步地,所述步骤s6中,根据所有会话滑动窗口返回的嫌疑用户及其对应的不相似会话信息,对相同嫌疑用户的不相似会话数进行统计,并与设定的不相似会话阈值进行比较,大于不相似会话阈值则判断该嫌疑用户为异常用户。

相较于现有技术,本发明的有益效果是:节省了大量训练模型的时间,直接基于异常信息和正常信息的不同,通过将pagerank算法和simhash算法相结合对web访问信息进行处理得到每个访问序列的签名信息,然后计算每个会话滑动窗口内的签名信息的相似性,通过模糊聚类的λ-截算法来得出嫌疑用户,根据多个会话滑动窗口的综合考虑来检测并定位异常用户,从而能够快速准确地检测并定位异常用户,具有较高的检测率和较低的误报率。

附图说明

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

具体实施方式

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

本发明提供一种基于会话特征相似性模糊聚类的异常用户检测方法,如图1所示,包括以下步骤:

步骤s1:为每个会话建立滑动窗口,收集用户的网页访问信息。

步骤s2:对收集到的网页访问信息进行数据预处理,生成用户会话信息。具体包括以下步骤:

步骤s21:对网页访问信息进行数据清理,只保留html和htm的访问记录;

步骤s22:设定同一个ip地址为同一个用户,会话识别是用户访问行为分析的基础和关键工作,会话识别准确度对于识别和发现用户的信息需求具有决定性的影响。会话是指用户在一次访问过程中所访问的页面序列,它代表了用户对服务器的一次有效访问。本发明采用基于时间阈值的启发式方法对步骤s21处理后的访问记录进行处理,即如果单个用户在某个页面上的停留时间超过设定阈值(在本实施例中,阈值设定为10min),则将该访问记录划分为新的会话,从而得到如下的用户会话数据集:

{useri:session1,session2,…,sessionik|1≤i≤m,1≤ik≤n}

其中,useri表示第i个用户,sessionik表示第i个用户的第ik个会话,ik表示第i个用户的会话总数,m为用户总数,n表示单个用户可能达到的最大会话数。

步骤s3:将所有用户的网页访问信息输入pagerank算法,计算得到每个网页的权重信息。

步骤s4:基于得到的用户会话信息和网页权重信息,采用simhash算法计算用户之间的相似性,建立用户相似性矩阵。具体方法为:

将步骤s3得到的每个网页的权重信息作为simhash算法的权重参数,对simhash算法进行初始化,然后将步骤s2得到的所有用户的会话信息输入simhash算法,计算每个会话的simhash值,得到用户会话simhash值数据集:

{useri:session_simhash1,session_simhash2,…,session_simhashik|1≤i≤m,1≤ik≤n}

其中,session_simhashik表示第i个用户的第ik个会话的simhash值;

然后根据用户每个会话一一对应的simhash值,生成用户之间的用户相似度矩阵。

步骤s5:采用基于模糊聚类的λ-截算法对每个会话滑动窗口得到的用户相似性矩阵进行切割,得出嫌疑用户。具体方法为:

采用基于模糊聚类的λ-截算法对每个会话滑动窗口的用户相似性矩阵进行切割,得到与其它会话最不相似的会话,对所有不相似会话对应的用户进行统计,取前n个具有最多不相似会话的用户作为嫌疑用户。

步骤s6:根据所有会话滑动窗口返回的嫌疑用户信息,检测并定位异常用户。具体方法为:

根据所有会话滑动窗口返回的嫌疑用户及其对应的不相似会话信息,对相同嫌疑用户的不相似会话数进行统计,并与设定的不相似会话阈值进行比较,大于不相似会话阈值则判断该嫌疑用户为异常用户。

下面对本发明涉及的相关技术内容作相应的说明。

1、pagerank算法

pagerank算法是基于网页链接分析对关键词匹配搜索结果进行处理的。它借鉴传统引文分析思想:当网页a有一个链接指向网页b,就认为b获得了a对它贡献的分值,该值的多少取决于a本身的重要程度,即网页a的重要性越大,网页b获得的贡献值就越高。由于网络中网页链接的相互指向,该分值的计算为一个迭代过程,最终网页根据所得分值进行检索排序。

一个网页的pagerank值(以下用pr表示),可由下式给出:

其中,pr(p)表示网页p的页面级别。ti(i=1,2,…,n)表示指向网页p的其他网页;d为用户随机到达一个网页的概率,介于0到1之间(通常为0.85);c(ti)为网页ti向外指出的链接数目;pr(ti)表示网页p的链入网页ti给予p的pr值。通常,我们设每个网页的初始pr值为1,由公式递归计算各个网页的pr值,直到该值趋于稳定,最终得出每个网页的权重信息。

2、simhash算法

simhash算法是一种快速估计两组序列相似度的技术。simhash算法是一种基于局部敏感的哈希算法,其思想是通过对原始数据空间的两个相邻数据点进行相同的变换投影之后,这两个点在新的数据空间中依然相邻的概率很大,而在原始数据空间中不相邻的数据点在投影之后相邻的概率很低,这就使投影在新空间的数据特征的每一维度比原来特征空间更具有局部敏感性。

simhash算法主要分为以下几个步骤:

step1.将一个f维的向量v初始化为0;f位的二进制数s初始化为0

step2.对每一个特征:用传统的hash算法对该特征产生一个f位的签名b。对i=1到f:如果b的第i位为1,则v的第i个元素加上该特征的权重;否则,v的第i个元素减去该特征的权重

step3.如果v的第i个元素大于0,则s的第i位为1,否则为0

step4.输出s作为签名。

3、基于模糊聚类的λ-截算法

模糊聚类分析是一种采用模糊数学语言对事物按一定的要求进行描述和分类的数学方法。模糊聚类分析一般是指根据研究对象本身的属性来构造模糊矩阵,并在此基础上根据一定的隶属度来确定聚类关系,即用模糊数学的方法把样本之间的模糊关系定量的确定,从而客观且准确地进行聚类。

模糊矩阵是用来表示模糊关系的矩阵。设r=(rij)mxn,0≤rij≤1,则称r为模糊矩阵。假设存在用户集合u={x1,x2,x3,x4,x5}。采用以下的模糊矩阵r表示用户之间的相似性:

应用模糊矩阵的λ-截算法比其他的聚类算法处理出来的结果要好,运算速度快,结果也容易控制,准确率也高。

λ-截矩阵的定义如下式:

这里采用各种λ对模糊矩阵进行λ-截算法。

当λ=1时,得到的聚类结果为{x1},{x2},{x3},{x4},{x5}

当λ=0.6时,得到的聚类结果为{x1,x3},{x2},{x4},{x5}

当λ=0.8时,得到的聚类结果为{x1,x3},{x2},{x4,x5}

当λ=0.5时,得到的聚类结果为{x1,x3,x4,x5},{x2}

由聚类结果可以看出,当λ越大时,聚类结果更精细。而在本发明中,模糊聚类算法并不需要去得到某一个确定的聚类结果,而是采取随机的λ去取得聚类结果,再对聚类结果进行统计,从而得到我们所需要检测和定位的异常用户。假设上述矩阵r中每一行都是一个用户与其他用户的相似度向量。我们采取模糊聚类的做法使用不同的λ去做分割,根据多次分割得出的结果,可以看出用户x2经常被单独区分出来。本发明并不需要去关心具体的聚类结果如何,而只关心哪个用户更容易被孤立出来。因为异常数据往往和正常数据本质上存在差别,所以异常数据更不容易和正常数据聚类到一起。这样我们就检测到了异常用户x2。这样就同时满足了检测与定位异常用户的需求。

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

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