一种大数据环境下用户异常行为检测分析方法与流程

文档序号:12493001阅读:365来源:国知局
一种大数据环境下用户异常行为检测分析方法与流程

本发明涉及一种大数据环境下用户异常行为检测分析方法。



背景技术:

大数据时代,数据作为一种资产已经成为行业共识。因此,数据安全问题上升到企业的战略高度。对于企业来说,数据安全是非常重要的,一旦数据放上去被人黑掉,后果将十分恶劣。

通常地,数据安全产品一般通过访问控制、安全隔离、数据分类、数据加密等方式保护数据不被野蛮入侵。传统小数据量的环境下,管理员依靠设置一些基础的安全策略,如单一事件执行策略(用户访问敏感数据列,或将1TB数据从安全区A移至不安全区B等)、基于窗口的策略(用户在10分钟内访问受限数据超过5次),基本上能满足数据安全保护。

在大数据环境下,已经覆盖和满足不了所有的数据安全保护情景。面对海量实时数据流和多元化用例场景,需要安全策略具备极大的灵活性和扩展性,有限数量的规则已经不能保证数据的绝对安全。



技术实现要素:

本发明的目的是提供一种在设置安全策略的基础上更自动、更智能的大数据环境下用户异常行为检测分析方法,当有一些异常行为、黑客行为、非法行为或者非授权行为时,能够以秒级的实时速度对这些行为进行阻挡,以保护Hadoop生态系统中大数据的安全。

一种大数据环境下用户异常行为检测分析方法,其特别之处在于,包括如下步骤:根据HDFS中历史一个统计周期内用户的日志记录,用户异常行为检测系统利用机器学习通过离线方式对用户访问行为进行异常分析,建立用户行为模型;基于Storm中当前实时用户操作行为,用户异常行为检测系统在线比较实时行为和历史行为的差异;若上述二者差异较大,则向Kaffka发送安全预警信息并在Stream界面中展示,否则,判断该行为是合规的安全行为。

其中利用机器学习通过离线方式具体是指,利用机器学习进行离线的Spark环境下数据安全方面的用户画像,包括:利用核密度估计建立用户访问行为模型;利用特征值分解建立用户访问行为模型。

其中在线比较实时行为和历史行为的差异具体是指,利用实时在线数据流技术,判断当前用户操作行为是否有异于历史行为规律,包括:利用当前行为计算历史核密度估计模型的差异;利用当前行为计算历史特征值分解模型的差异。

其中在Stream界面中展示具体是指,将实时在线kaffka中得到的比较结果,在Strorm中进行展示,包括:用户当前访问异常的预警信息;用户当前访问的正常信息。

其中利用核密度估计建立用户访问行为模型,具体包括:原始数据涵盖正常行为和异常行为,将原数据集分为训练集和交叉测试集;选择历史行为特征指标并标准化在一个尺度;在训练集中利用分布函数计算概率密度;根据交叉测试集的结果设置阈值。

其中利用特征值分解建立用户访问行为模型,具体包括:输入特定用户固定周期内操作行为构建特征向量矩阵;计算X的协方差矩阵,解方程求出特征根;分别求出各个特征向量;计算累积贡献率;由前k个主成分构成正常行为的子空间;剩余n-k个成分构成异常行为子空间;前述的X 代表用户操作行为,K代表X协方差矩阵的主成分,n代表X协方差矩阵的所有成分。

其中利用当前行为计算历史核密度估计模型的差异,具体包括:计算当前操作服从分布的概率值;比较历史交叉测试集设置的阈值和概率值的大小。

其中利用当前行为计算历史特征值分解模型的差异,具体包括:输入用户当前操作行为对应的特征向量;计算特征向量与正常行为、异常行为子空间的欧式距离。

其中实时在线kaffka中得到的比较结果具体是判断当前访问是否正常,包括:若核密度估计中当前概率值小于设定阈值,或者特征值分解中当前位于异常行为子空间,则发送访问异常的预警;否则,若核密度估计中当前概率值大于等于设定阈值,或者特征值分解中当前位于正常行为子空间,则发送访问正常的判断。

经由上述技术方案可知,本申请公开了一种大数据环境下的用户异常行为智能检测和分析方法。该方法基于机器学习算法对Hadoop(大数据行业通用术语,是指一种分布式系统基础架构)中用户行为习惯建立用户画像的功能。本方法中提供核密度估计和特征值分解等两种机器学习算法供管理员选择用于针对不同HDFS特征集进行建模,通过历史行为离线模型,在实时数据流中可以秒级地检测异常用户行为并产生预警。与现有技术相比,本发明通过机器学习算法支持根据用户在Hadoop平台上历史使用行为习惯来定义行为模式或用户画像的能力。默认该训练系统以每月的频率更新模型,模型粒度为一分钟。拥有了这个模型自动训练调度功能,不需要在系统中预先设置固定临界值的情况下,在用户当前实时行为模式与其对应的历史模型模式存在一定程度的差异时,也可以实现智能地检测出异常的行为。

附图说明

图1为本发明方法的一种大数据环境下的用户异常行为智能检测和分析方法的流程示意图;

图2为本发明方法的离线利用核密度估计算法进行用户异常行为建模的流程示意图;

图3为本发明方法的离线利用特征值分解算法进行用户异常行为建模的流程示意图;

图4为本发明方法在线利用核密度估计算法进行用户异常行为检测的流程示意图;

图5为本发明方法的在线利用特征值分解法进行用户异常行为检测的流程示意图;

图6为本发明方法的用户正常通知和异常行为预警测的流程示意图。

具体实施方式

本发明公开了一种大数据环境下的用户异常行为智能检测和分析方法。该分析方法包括两部分内容,一部分是在线对用户访问网络行为进行监控,一部分是离线对用户访问网络行为进行训练建模分析。其中离线模型训练模式提供基于特征值分解算法和核密度估计算法等两种机器学习算法,这2种算法从HDFS审计日志中读取数据,对数据进行分割、审查、交叉分析,周期性地为每个用户依次创建行为模型文件。一旦模型生成,在线模式中的实时流策略引擎能够近乎实时地识别出异常,分辨当前用户的行为可疑的或者与他们的历史行为模型不相符。与现有技术相比,本发明提出了一种适用于用户数据行为监控和异常识别方法和装置,通过在线行为监控和离线异常识别的结合,实现用户访问行为监控、非法入侵和违法安全规则监控。

实施例1:

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1示出了本发明一个实施例公开的一种大数据环境下的用户异常行为智能检测和分析方法的流程示意图。

该方法包括:

S11:根据HDFS(HDFS为大数据行业通用术语,是指分布式文件系统)中历史一个统计周期内用户的日志记录,利用机器学习离线对用户访问行为进行异常分析,建立用户行为模型。

需要说明的是,使用分布式日志管理工具定时收集用户的操作行为日志,由HDFS日志文件中获取用户的访问行为,包括用户的属性信息:请求时间、IP地址、访问的时间周期;操作的行为信息:访问频率、是否为增加操作、是否删除操作、是否为查询操作、提交任务的资源需求、提交任务执行时长等信息;机器学习算法提供核密度估计和特征值分解等两种算法,分别单独针对每个用户建立用户的访问行为模型,且采取的是在Spark(Spark为大数据行业通用术语,是指分布式编程框架)环境下的离线的训练模式。

S12:基于Storm(Storm为大数据行业通用术语,是指流式处理框架)中当前实时用户操作行为,在线比较实时行为和历史行为的差异。

需要说明的是,在线实时的监测比较分别针对核密度估计和特征值分解两种方式进行。且每个用户的实时行为和自身的历史行为进行比较。

S13:若二者差异较大,则向Kafka(Kafka为大数据行业通用术语,是指分布式消息系统)发送安全预警信息并在Stream(Stream为大数据行业通用术语,是指流,是一组连续的数据)中界面展示。否则,预测该行为是合规的安全行为。

需要说明的是,是否异常预测分别针对核密度估计和特征值分解两种方式进行。且每个方式对应的检测方法依据自身算法特性存在差异。

参见图2示出了本发明另一个实施例公开的离线利用核密度估计算法进行用户异常行为建模的流程示意图;

S21:原始数据涵盖正常行为和异常行为,将原数据集分为训练集和交叉测试集。

需要说明的是,原数据集是用户的访问行为数据,包括每个用户的特征信息:请求时间、IP地址、访问的时间周期;操作的行为信息:访问频率、是否为增加操作、是否删除操作、是否为查询操作、提交任务的资源需求、提交任务执行时长等信息。

训练集D为原数据集样本个数的75%,交叉测试集为原始数据集样本个数的25%。记作表示第i个用户的第j个特征。

S22:选择历史行为特征指标并标准化在一个尺度。

需要说明的是,这里选择的标准化方式为z-score(z-score为行业通用术语,是一种标准化方式)。通过z-score标准化将训练数据集D转化为相

同尺度的训练数据集D′:

其中为均值,且是将所有样本对应的访问的时间周期的值进行求和,再除以样本个数即为访问的时间周期的均值。δj为方差。

S23:在训练集中利用分布函数计算概率密度。

需要说明的是,常用的函数有高斯核函数和Epanechnikov(叶帕涅奇尼科夫,俄国科学家)核函数等,考虑到易于积分和高效性,本发明选择了Epanechnikov核函数。利用LCSV计算核密度函数的bandWidth(宽度,是核函数中的一个参数,为下述公式中的H)。LCSV是基于积分平方误差(Integrated Square Error),最小准则的一种计算方法,其公式如下

其中H=(h1,h2,...,hd)

当LCSV(H)取最小值时,H即为所求,H用于控制核估计函数的平滑度。

得到训练模型多维核密度估计函数如下:

其中:

Xi∈D′是用户的访问行为数据的训练样本集,H=(h1,h2,...,hd)为第3步利用LCSV求出的不同特征上bandWidth。

S24:根据交叉测试集的结果设置阈值。

需要说明的是,阈值设置的方法是在训练数据集上利用交叉验证计算马修斯相关系数。

其中:

TP表示true-positive,用户的访问行为真实的是正常的,预测结果也是正常的;

TN表示true-negative,用户的访问行为真实的是异常的,预测结果也是异常的;

FP表示false-positive,用户的访问行为真实的是异常的,预测结果是正常的;

FN表示false-negative,用户的访问行为真实的是正常的,预测结果是异常的;

参见图3示出了本发明另一个实施例公开的离线利用特征值分解算法进行用户异常行为建模的流程示意图;

所述方法具体包括:

S31:输入特定用户固定周期内操作行为构建特征向量矩阵。

需要说明的是,根据用户日志提取相关信息(请求时间、IP地址、访问的时间周期、访问频率、是否增加操作、是否删除操作、是否为查询操作、提交任务的资源需求、提交任务执行时长)构建特征向量矩阵:

S32:计算X的协方差矩阵,解方程求出特征根。

需要说明的是,包括具体如下几个步骤:

首先将特征向量矩阵按列标准化处理:其中:Xi,j表示特征向量矩阵第i行第j列对应的值,μi表示第j列对应的均值,σj表示第j列对应的标准差;

其次将特征向量矩阵按行零均值化处理;其中:Yi,j表示特征向量矩阵按列标准化处理后第i行第j列对应的值,表示第i行对应的均值。

再次计算∑的协方差矩阵:

最后,将协方差矩阵∑奇异值分解:解方程|Σ-λI|=0求出特征根λ1,λ1,...λn

S33:分别求出各个特征向量。

按照特征值大小排序将特征值对应的特征向量Ui=(u1i,u2i,...,umi)T组建主成分矩阵U;

S34:计算累积贡献率。

根据排序后的特征根计算解释方差fi和累积贡献率Fi

S35:由前k个主成分构成正常行为的子空间。剩余(n-k)个成分构成异常行为子空间。

根据给定的累计贡献率阈值(在工程运用中,设定累计贡献率阈值为95%)和累计贡献率确定主成分个数k,由前k个主成分构成用户正常操作行为的子空间,剩余(n-k)个成分构成用户异常操作行为子空间;

这样,得到的用户正常操作行为的子空间和用户异常操作行为子空间构成的向量空间作为用户固定周期内操作行为识别的特征分解算法模型,保存模型;

参见图4示出了本发明又一个实施例公开的在线利用核密度估计算法进行用户异常行为检测的流程示意图;

所述方法具体包括:

S41:计算当前操作服从分布的概率值。

需要说明的是,首先对实时数据流进行预处理,保证和离线下的一致性。通过z-score标准化将用户实时行为数据转化为相同尺度的实时行为数据x=(x1,x2,...,xd),其中x表示用户,x1,x2,...,xd表示此用户的d个特征,包括请求时间、IP地址、访问的时间周期;操作的行为信息:访问频率、是否为增加操作、是否删除操作、是否为查询操作、提交任务的资源需求、提交任务执行时长等信息。然后,计算出此用户实时行为的概率:

S42:比较历史交叉测试集设置的阈值和概率值的大小。

需要说明的是此处的阈值为M阈值,比较同一个用户的当前实时操作服从的概率值即可。

参见图5示出了本发明又一个实施例公开的在线利用特征值分解法进行用户异常行为检测的流程示意图;

所述方法具体包括:

S51:输入用户当前操作行为对应的特征向量。

需要说明的是,首先对实时数据流进行预处理,保证和离线下的一致性。首先根据用户日志提取相关信息(请求时间、IP地址、访问的时间周期、访问频率、是否增加操作、是否删除操作、是否为查询操作、提交任务的资源需求、提交任务执行时长)构建实时行为的特征向量。

S52:计算特征向量与正常行为、异常行为子空间的欧式距离。

需要说明的是,用户正常操作行为的子空间和用户异常操作行为子空间构成的向量空间作为同一用户历史固定周期内操作行为识别的特征分解算法模型,保存模型;

参见图6示出了本发明又一个实施例公开的用户正常通知和异常行为预警测的流程示意图;

所述方法具体包括:

S61:若核密度估计中当前概率值小于设定阈值,或者特征值分解中当前位于异常行为子空间,则发送访问异常的预警;

需要说明的是,在利用核密度估计方法中,如果用户出现当前行为的概率低于马修斯相关系数M阈值,标识为异常预警;在利用特征值分解中,计算特征向量与正常行为、异常行为子空间的欧式距离若距离异常行为子空间的距离较小,标志位异常预警;

S62:否则,若核密度估计中当前概率值大于等于设定阈值,或者特征值分解中当前位于正常行为子空间,则发送访问正常的预测;

需要说明的是,在利用核密度估计方法中,如果用户出现当前行为的概率大于马修斯相关系数M阈值,标识为正常访问;在利用特征值分解中,计算特征向量与正常行为、异常行为子空间的欧式距离根据所求的欧氏距离判断,距离正常操作行为的子空间近的为正常操作行为。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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