一种Hadoop集群下的用户行为异常检测方法与流程

文档序号:11206301阅读:2188来源:国知局
一种Hadoop集群下的用户行为异常检测方法与流程

本发明涉及一种用户行为异常检测方法,尤其是一种基于hadoop集群下的用户行为异常检测方法。



背景技术:

近年来,hadoop平台作为一个优秀的分布式计算系统,在企业大规模数据处理方面扮演着越来越重要的角色。然而,由于hadoop在开发之初并未考虑安全因素,虽然后续加入了一些安全机制,但hadoop的安全审计机制、访问控制机制和身份认证机制等都属于被动的静态安全技术,不能对用户行为活动进行监控,这就导致容易遭受隐藏的安全攻击。比如:非法用户盗取合法用户的账号和密码,获得相关权限非法访问数据;在恶意入侵、维修和介质丢失时容易产生数据泄露问题,集群的数据安全难以得到保障。数据是信息的载体,一旦遭遇数据灾难,可能给用户造成不可估量的损失。因此,需要对用户的数据访问行为建立有效的监控,及时的发现异常行为,保障hadoop集群的数据安全。

在基于用户行为活动的监控方面,国内研究相对较少。ashishkamra等人提出了一种针对关系型数据库访问模式的异常检测方法,它是基于用户的sql查询日志,但这种方法只针对关系数据库,不适用于大数据平台的用户行为监控;mohiuddinsolaimani等人提出了一种基于spark的虚拟机性能异常检测框架,目的是通过对虚拟机性能异常检测发现哪些用户占用大量资源,造成资源的共享不均衡影响集群运行效率,但spark是基于内存的计算,当数据规模很大或是中间结果超过内存大小时就无法处理;刘朋提出了一个针对数据库的抽象架构和通用的异常行为检测解决方法,但却没有给出具体的算法;fredrikvaleur等人提出了一种基于机器学习的sql攻击行为检测方法,但只针对基于网络的后端数据库。

传统的用户行为异常检测方法主要是在数据库以及集群性能异常方面。数据库一般是针对关系型数据库等,在hadoop集群分布式环境下无法适用,而集群性能异常在hadoop平台本身的负载均衡等机制下,表现并不突出,异常检测的结果正确性不高。此外,hadoop集群下的数据规模通常很大,基于传统的主成分分析的模型训练算法,效率相对较低。

因此本发明的优化方法将对用户的数据访问行为建立有效的监控,及时的发现异常行为,保障hadoop集群的数据安全,并且还通过并行化主成分分析算法提高模型训练效率,解决传统模型训练效率低的问题。



技术实现要素:

本发明的目的在于克服现有的技术不足,提供一种hadoop集群下的用户行为异常检测方法,不仅能够解决在hadoop集群下针对用户访问hdfs数据的异常行为监控问题,而且还对传统的主成分分析算法进行了并行化处理,解决模型训练效率较低的问题。

本发明的目的是通过以下技术方案来实现的:一种hadoop集群下的用户行为异常检测方法,包括以下步骤:

s1:用户行为数据采集:通过hadoop日志管理服务(log4j)从集群namenode节点获得hdfs的审计日志并存储于数据库;

s2:数据预处理;

s3:模型训练:抽取其中一个用户的部分特征向量集作为训练数据并构造为样本数据矩阵,基于本发明提出的并行主成分分析算法对样本数据进行降维处理,得到样本均值和变换矩阵,存入该用户模型库。其他用户的模型训练方法相同。其中变换矩阵主要完成把样本由原空间映射到主成分子空间的功能;

s4:用户行为异常检测:针对某一个用户,把该用户当前的行为模式(特征向量)与该用户模型训练得到的历史行为模式做匹配,如果不匹配,则为异常行为。

所述的用户行为数据采集,是利用hadoop日志管理服务,并且默认hadoop已经集成了apache的开源项目log4j,通过log4j日志管理服务从集群namenode节点获得了hdfs的审计日志并存储于数据库;

所述的用户行为数据是用户访问hdfs行为时的审计记录,记录包括访问日期和时间、用户标识、文件操作命令、客户端ip地址;

所述的数据预处理,包括以下步骤:

s21:提取并统计数据,从数据库中读取审计记录,针对每一个用户的审计记录,基于一个时间窗口,统计该时间内每个文件操作命令出现的次数;

s22:构成特征向量。

所述的特征向量是基于频域属性构造特征向量,该特征向量用x=(x1,x2,…,x13)来表示,该特征向量一共有13种文件操作命令,每一维的值代表一种文件操作命令在该时间窗口内出现的次数,依次进行便得到一个特征向量集,其中,13维对应hdfs文件操作命令种类数目。该特征向量集既可以作为模型训练数据又可以作为测试数据;

所述的模型训练包括以下子步骤:

s31:根据抽取的模型训练数据,构造样本数据矩阵;

s32:基于并行化主成分分析,求方差矩阵和样本均值,对样本矩阵进行水平分割分为n块,基于mapreduce计算模型求得样本均值和协方差矩阵;

s33:计算协方差矩阵的特征值和对应的特征向量,按照方差贡献率确定主成分数量k;

s34:根据方差贡献率确定主成分并构造变换矩阵,根据前k大特征值对应的特征向量构造变换矩阵,样本矩阵与变换矩阵的乘积即为主成分矩阵;

s35:把得到的样本均值和变换矩阵存入模型数据库,供异常检测使用。

所述的用户行为异常检测包括以下子步骤:

s41:针对某一个用户,从测试数据提取出一个特征向量,进行均值调整处理;

s42:计算经过均值调整处理的向量与该向量的主成分重构之间的欧氏距离,如果距离大于预先设定的阈值,则为异常行为;否则,为正常行为;

所述的经均值调整过的向量的主成分重构,是把均值调整过的向量经过训练得到变换矩阵,再映射到主成分子空间,随后利用变换矩阵的转置,把映射后的新向量重构回原来的空间得到的向量;

所述的用户行为异常检测方法,将用户行为的异常检测分为两种情况进行测试:

(1)如果要测试检测方法的误检率,则把一个用户的特征向量数据抽取部分数据作为训练数据,剩下的部分作为测试数据;

(2)如果要测试检测方法的检测率,则把一个用户的特征向量数据抽取部分数据作为训练数据,抽取另外其他用户的部分作为测试数据。

本发明的有益效果是:为hadoop集群下的hdfs文件数据访问行为提供了一种有效的、正确的异常行为检测方法,该方法克服了传统异常检测方法在hadoop集群环境下不适用的问题,并且对本方法使用的主成分分析算法进行了并行化改进处理,提高了模型训练的效率。

附图说明

图1为本发明的流程图;

图2为本发明的模型训练流程图;

图3为本发明的用户行为异常检测流程图;

图4为本发明的主成分分析并行化处理过程图。

具体实施方式

下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。

如图1所示,一种hadoop集群下的用户行为异常检测方法,包括以下步骤:

s1:用户行为数据采集,hadoop默认集成了apache的开源项目log4j,通过log4j日志管理服务从集群namenode节点获得hdfs的审计日志并存储于数据库;

s2:数据的预处理。从数据库中读取审计记录,针对每一个用户的审计记录,基于一个时间窗口,统计该时间内每个文件操作命令出现的次数,并组合构成一个特征向量,该特征向量用x=(x1,x2,…,x13)来表示,一共有13种文件操作命令,每一维的值代表一种文件操作命令在该时间窗口内出现的次数,依次进行便得到一个特征向量集,即待检测模式。该特征向量集可以作为模型训练数据和测试数据;

s3:模型训练:抽取其中一个用户的部分特征向量集作为训练数据并构造为样本数据矩阵,基于本发明提出的并行主成分分析算法对样本数据进行降维处理,得到样本均值和变换矩阵,存入该用户模型库。其他用户的模型训练方法相同。其中变换矩阵主要完成把样本由原空间映射到主成分子空间的功能;

s4:用户行为异常检测:针对某一个用户,把该用户当前的行为模式(特征向量)与该用户模型训练得到的历史行为模式做匹配,如果不匹配,则为异常行为。

如图2所示,模型训练的步骤为:

s31:根据抽取的模型训练数据(特征向量集),构造样本数据矩阵;

s32:如图4所示,基于并行化主成分分析,求方差矩阵和样本均值,对样本矩阵进行水平分割分为n块,基于mapreduce计算模型求得样本均值和协方差矩阵;抽取其中一个用户的部分特征向量集作为训练数据并构造为样本数据矩阵,基于本发明提出的并行主成分分析算法对样本数据进行降维处理,得到样本均值和变换矩阵,存入该用户模型库。其他用户的模型训练方法相同。其中变换矩阵主要完成把样本由原空间映射到主成分子空间的功能;

具体并行化主成分分析公式为:得到特征向量矩阵xi,xi=[x1,x2,...,x13]t,x的均值矩阵和协方差矩阵分别记为μ=e(x)和σ=d(x)。

s33:计算协方差矩阵的特征值和对应的特征向量,按照方差贡献率确定主成分数量k;

s34:根据方差贡献率确定主成分并构造变换矩阵,根据前k大特征值对应的特征向量构造变换矩阵,样本矩阵与变换矩阵的乘积即为主成分矩阵;

s35:根据变换矩阵得到主成分矩阵,把得到的样本均值和变换矩阵存入模型数据库,供异常检测使用。

如图3所示,用户行为异常检测,针对某一个用户,把该用户当前的行为模式(特征向量)与该用户模型训练得到的历史行为模式做匹配,如果不匹配,则为异常行为,具体步骤如下:

s41:把当前用户的行为特征向量作为测试数据;

s42:在mapreduce框架下,将当前用户的行为特征向量并均值调整为待检测数据;

s43:计算待检测特征向量和主成分重构后的特征向量之间的距离;

s44:判断阈值:若距离大于阈值,将当前用户行为划归为异常行为记录,未超过阈值,则将当前用户行为划归为正常行为;

s45:判断是否还存在测试数据:若还存在测试数据,则重新进行均值调整,等到没有测试数据存在时结束测试。

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

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