首页> 中国专利> 基于用户访问序列的异常行为检测方法

基于用户访问序列的异常行为检测方法

摘要

本发明公开了基于用户访问序列的异常行为检测方法:步骤1、从本地网络抓取数据,对数据进行预处理,对得到的数据进行序列化处理;步骤2、将步骤1形成的序列存入序列数据库,并基于时间生成每个用户的行为序列;步骤3、通过每个用户的行为序列计算用户之间的行为相似度和相关系数,比较相关系数进行异常行为检测,寻找用户异常行为。该方法基于序列模式挖掘,充分考虑时间及用户自身行为特征等因素,并使用经过改进的更准确的用户行为相似度算法计算,有效地提取出用户访问的序列规则,使得分析结果更加准确,弥补其他分析方法的不足。此外,该方法基于用户行为相似度算法,在噪声干扰上具有明显的优势,使用资源少,运行效率高。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-26

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/08 变更前: 变更后: 变更前: 变更后: 申请日:20170228

    专利权人的姓名或者名称、地址的变更

  • 2018-04-03

    授权

    授权

  • 2017-06-06

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20170228

    实质审查的生效

  • 2017-05-10

    公开

    公开

说明书

技术领域

本发明涉及基于用户访问序列的异常行为检测方法。

背景技术

用户行为分析是指从网站或者网络端口得到相关网络流数据,并用统计分析的方法对数据进行处理。通过得到的结果,发现用户访问网站的规律,总结用户的行为习惯。能够掌握用户的行为习惯,对于预测用户上网行为及异常行为发现具有重要的意义。

目前,各种异常行为检测算法主要分为两类:

(1)基于数据流行为分析的方法,现有专利包括:专利号为201110083016.X的基于数据流行为分析的网络访问异常检测装置及方法,专利号为201110371820.8的网络异常行为检测方法及装置。

(2)基于网络日志及访问列表的方法,现有专利包括:专利号为201310222685.X的一种基于WEB日志的异常访问行为检测方法与系统,专利号为201510227895.7的一种大流量环境下主机网络异常行为检测及分类方法。

上述方法存在着一定的局限性,如何定义网络流量行为,如何尽可能的将描述网络行为的维度降低,如何从大数据中有效的分析单个用户行为等问题并没有得到很好的解决。由于用户访问行为是动态可变的,导致分析结果不够准确、运行效率低。

发明内容

针对上述问题,本发明提供基于用户访问序列的异常行为检测方法,从用户行为分析及异常行为检测的角度出发,通过对用户上网行为的分析方法的研究,设计一个有效的异常行为检测方法,快速发现用户异常行为,使得分析结果更加准确,弥补其他分析方法的不足。

为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:

基于用户访问序列的异常行为检测方法,包括如下步骤:

步骤1、从本地网络抓取数据,对数据进行预处理,对得到的数据进行序列化处理;

步骤2、将步骤1形成的序列存入序列数据库,并基于时间生成每个用户的行为序列;

步骤3、通过每个用户的行为序列计算用户之间的行为相似度和相关系数,比较相关系数进行异常行为检测,寻找用户异常行为。

优选,步骤1中,对数据进行预处理包括如下步骤:

101、将网络数据出现的冗余信息、错误信息,以及缺失属性的数据直接删除;

102、对所有的IP地址进行统计,并按照连接数生成IP连接分布图,区分用户主机IP与服务器IP,去除连接数少于设定值的用户主机IP,得到最终的用户主机IP集合。

优选,步骤2中,对目的主机IP进行序列化编号:

若用户1在按时间先后顺序t11,t12,t13,t14时刻分别访问目的主机α,β,δ,γ,则用户1访问的行为序列为α,β,δ,γ;用户2在t21,t22,t23时刻分别访问的目的主机为β,α,γ,则用户2访问的行为序列为β,α,γ。

优选,假定有时间窗t1,t2,...t3,在某个时间窗t内有用户序列A及用户序列B,len()为相对应序列的长度,序列C为用户序列A和用户序列B的最长公共子序列,则用户A和用户B的行为相似度αcj为:

优选,用户A和用户B的相关系数RC的计算步骤如下:

A、设有n个时间窗t1,t2...,tn,分别计算每个时间窗内A,B两个用户的行为相似度,记为α1,α2,...,αn

B、计算A,B两个用户在n个时间窗内行为相似度的平均值αavg和方差αdx

C、计算用户A和用户B的相关系数RC:

优选,异常行为检测具体步骤如下:

a)取前n个时间窗t1,t2,...,tn的数据作为训练集,第n+1个时间窗tn+1的数据作为测试集;

b)计算训练集中所有用户之间的相关系数以及彼此两个用户之间的行为相似度;

c)计算训练集中所有用户的平均相关系数RCavg,所有用户的相关系数的方差值RCdx

d)计算测试集两两用户之间的相关系数,记为RCn+1,若:

RCn+1∈[RCavg-RCdx,RCavg+RCdx]

则视为稳定用户组合,否则,视为疑似异常用户组合;

e)对于疑似异常用户组合,分别将这两个用户与其余用户比较行为相似度的方差:

若组合中某一用户与其他用户之间行为相似度的方差大于设定值,则判定为异常用户,加入到异常用户集中;

若组合中两个用户与其他用户之间行为相似度的方差均大于设定值,则判定两个用户均为异常用户,加入到异常用户集中。

本发明的有益效果是:

该方法基于序列模式挖掘,充分考虑时间及用户自身行为特征等因素,并使用经过改进的更准确的用户行为相似度算法计算,有效地提取出用户访问的序列规则,使得分析结果更加准确,弥补其他分析方法的不足。此外,该方法基于用户行为相似度算法,在噪声干扰上具有明显的优势,使用资源少,运行效率高。

附图说明

图1是本发明基于用户访问序列的异常行为检测方法的示意图。

具体实施方式

下面结合附图和具体的实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

基于用户访问序列的异常行为检测方法,如图1所示,包括如下步骤:

步骤1、对应数据预处理模块:从本地网络抓取数据,对数据进行预处理,对得到的数据进行序列化处理;

步骤2、对应序列模式挖掘模块:将步骤1形成的序列存入序列数据库,并基于时间生成每个用户的行为序列;

步骤3、对应异常行为检测模块:通过每个用户的行为序列计算用户之间的行为相似度和相关系数,比较相关系数进行异常行为检测,寻找用户异常行为。

下面进行详细介绍:

对数据进行预处理包括如下步骤:

101、数据清理:

首先将网络数据出现的冗余信息、一些错误的信息,还有一些属性缺失的数据直接删除。在删减一些记录以后,多余的属性也可以进行删减。针对大部分网络流量数据,最终主要选用的属性是记录序号ID、开始时间STARTTIME、结束时间ENDTIME、用户主机IP(源IP,即用户主机)和目的主机IP(目的主机IP)。删除其余的属性信息,这样可以降低模型算法的维度,减少计算复杂度,提高计算效率。

102、用户识别:

对所有的IP地址进行统计,并按照连接数生成IP连接分布图,区分用户主机IP与服务器IP,用户异常行为分析并不需要考虑服务器,同时因为存在有些用户主机与某些服务器的连接数很少,这种用户主机和其他主机的相似关系难以计算。基于此,需要再对主机的地址进行筛选,去除连接数少于设定值的用户主机IP,从而得到最终的用户主机IP集合。

步骤2中,用户行为序列可定义为:

若用户1在按时间先后顺序t11,t12,t13,t14时刻分别访问目的主机α,β,δ,γ,则用户1访问的行为序列为α,β,δ,γ;用户2在t21,t22,t23时刻分别访问的目的主机为β,α,γ,则用户2访问的行为序列为β,α,γ。以此类推,形成用户访问行为的时间序列,是整个模型的输入基础。

目的主机出现的点分十进制的IP地址形式,可以通过python字典的方式对目的主机IP进行序列化编号。假设存在n个IP地址:192.168.0.1,192.168.0.2,...,192.168.0.n,对以上数据进行序列化,对每个第一次出现的目的IP进行依次编号。伪代码可以表示如下:

字典的键值key为序列化前的IP地址,value值为序列化后的值:

创建一个字典,设定计数值i=1,

对每一个IP:

如果字典中没有这个IP的键:

创建这个IP的键,键值=i;

i=i+1;

对数据进行序列化处理后,便可针对数据中的数据包发送的路径进行序列化处理,同时还可以生成单个用户的访问的序列。

子序列可定义为:

若给定序列X=(x1,x2,…xm),则另一序列Z=(Z1,Z2,…Zk)为X的子序列是指存在一个严格递增的下标序列(i1,i2,…ik),使得对于所有的j=1,…,k,有zj=xij。设起始下标为1。

最长公共子序列可定义为:

给定两个序列X和Y,当另一个序列Z既是X的子序列又是Y的子序列,则Z是序列X和Y的公共子序列。其中Z最长的序列是X和Y的最长公共子序列。

最长公共子序列的最优子结构特性:

设Xm=(x1,x2,…xm)、Yn=(y1,y2,…yn)两个序列,Zk=(Z1,z2,...zk)是它们最长公共子序列,则:

(1)若xm=yn,则zk=xm=yn,且Zk-1是Xm-1和Yn-1的最长公共子序列;

(2)若xm≠yn且zk≠xm,且Zk是Xm-1和Yn的最长公共子序列;

(3)若xm≠yn且Zk≠yn,且Zk是Xm和Yn-1的最长公共子序列。

由最优子结构的特性,可以求解公共子序列:

用c[i][j]保存Xi=(x1,x2,...,xi)和Yj=(y1,y2,...,yj)的最长公共子序列,则有下列公式:

通过这样的算法,可以求得两个用户之间的最长的公共子序列。

步骤3中,用户行为相似度可定义为表示两个用户行为之间的相似程度,假定有时间窗t1,t2,...t3,在某个时间窗t内有用户序列A及用户序列B,len()为相对应序列的长度,序列C为用户序列A和用户序列B的最长公共子序列,则用户A和用户B的行为相似度αcj为:

基于此算法,可以得到任意两个用户访问行为序列在时间窗t内的行为相似度。

用户A和用户B的相关系数RC的计算步骤如下:

A、设有n个时间窗t1,t2,…,tn,分别计算每个时间窗内A,B两个用户的行为相似度,记为α1,α2,…,αn

B、计算A,B两个用户在n个时间窗内行为相似度的平均值αavg和方差αdx

C、计算用户A和用户B的相关系数RC:

αavg能够反映在n个时间窗内用户相似度的整体情况,αdx能够反映用户在n个时间窗内相似度变化的幅度,可以看出,平均相似度(αavg)越大,相似度变化αdx越小,则这两个用户关系越相近。

即两个用户之间相关系数RC越大,则这两个用户的行为关系越为相近。有了相似度和相关系数,就能够更精确的描述用户之间行为的关系及相似程度。

异常行为检测具体步骤如下:

a)取前n个时间窗t1,t2,...,tn的数据作为训练集,第n+1个时间窗tn+1的数据作为测试集;

b)计算训练集中所有用户之间的相关系数以及彼此两个用户之间的行为相似度;

c)计算训练集中所有用户的平均相关系数RCavg,所有用户的相关系数的方差值RCdx

d)计算测试集两两用户之间的相关系数,记为RCn+1,若:

RCn+1∈[RCavg-RCdx,RCavg+RCdx]

则视为稳定用户组合,否则,视为疑似异常用户组合;

e)对于疑似异常用户组合,分别将这两个用户与其余用户比较行为相似度的方差:

若组合中某一用户与其他用户之间行为相似度的方差大于设定值,则判定为异常用户,加入到异常用户集中;

若组合中两个用户与其他用户之间行为相似度的方差均大于设定值,则判定两个用户均为异常用户,加入到异常用户集中。

假设步骤d)中初步判定的疑似异常用户组合为用户C和用户D,则比较用户C和其他所有用户,以及用户D和其他所有用户的之间的相似度;分别以C和D为研究对象,计算相似度。若计算出C,D与其他用户的相似度变化幅度较大,则可以判定C,D为异常用户。找到异常用户。

该方法基于序列模式挖掘,充分考虑时间及用户自身行为特征等因素,并使用经过改进的更准确的用户行为相似度算法计算,有效地提取出用户访问的序列规则,使得分析结果更加准确,弥补其他分析方法的不足。此外,该方法基于用户行为相似度算法,在噪声干扰上具有明显的优势,使用资源少,运行效率高。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或者等效流程变换,或者直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号