一种基于多维行为模型的用户风险评估与分析方法
技术领域
本发明是关于网络信息安全领域,特别涉及一种基于多维行为模型的用户风险评估与分析方法。
背景技术
网络时代,互联网承载了我们生活的方方面面,从学习到工作,从生活到娱乐,不管是网购还是在线娱乐都给我们带来了极大的便利,但与此同时,也潜藏着许多的网络陷阱和不安全因素。
在网络安全中最薄弱的环节是用户安全。互联网用户的安全意识薄弱,对安全的管控能力比较差。
鉴于网络安全现状,大多数的网络安全产品均会对用户风险进行预警。但是,大多数的网络安全产品,对用户风险的评估,是基于单一庞大机器学习模型。
基于单一庞大机器学习模型,得到一个用户模型。所有的用户都是用此模型进行风险判定,因此用户风险的判定准确率低。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供一种根据多维的行为数据,为每一个用户建立相应的用户风险评估和分析模型的方法。为解决上述技术问题,本发明的解决方案是:
提供一种基于多维行为模型的用户风险评估与分析方法,用于对具备日志的应用程序的用户风险进行评估,所述基于多维行为模型的用户风险评估与分析方法具体包括下述步骤:
步骤一:定义用户维度:
为用户定义维度集合V,形成用户画像:
V={V1,V2,V3,...,Vj-1,Vj}
其中,所述V是指构建用户画像所包含的维度集合,集合V中的元素为用户画像的某个维度,且1≤j≤10;
步骤二:定义用户行为:
用户维度集中定义某个维度Vk所包含的行为集Bk,Vk∈V,1≤k≤j;
其中,所述Bk是指维度集合V中某个维度Vk所包含的行为集合,集合Bk中的元素为用户维度Bk中的某个行为,且1≤m≤10;
步骤三:采集用户:
读取应用程序的日志并进行解析,采集该应用程序的用户信息集;
U={user1,user2,user3,...,usern-1,usern}
其中,所述U是指在日志中采集的用户集合,集合U中的元素为产品日志出现的某个用户,n是日志中采集到的用户个数(其大小取决于产品用户个数);
步骤四:采集用户行为数据,形成样本数据:
在应用程序的日志中,设集合U中某个用户为useri,i∈n,用户useri由维度集合V进行用户画像,该用户useri的维度集合V中,某个维度Vk(k∈j)采集到的行为集Bk的行为数据具体如下述行为数据表:
其中,所述表中元素是指某个用户useri的某个维度Vk所对应行为集Bk中所有行为元素的行为数据;1≤m≤10;所述s表示行为数据的条数(s的取值范围与产品日志大小相关,在本专利中不做限制,由于采集到的日志可能有成千上万条,因此采集到的行为数据也会巨大,本专利是通过大量的数据样本分析得到模型);
步骤五:采用birch进行无监督聚类学习:
针对用户useri,对步骤(4)中采集的行为数据表进行无监督聚类学习;具体包括下述步骤:
(5.1)扫描行为数据
其中1≤t≤m,建立初始化的CF树,把稠密数据(稠密数据是原始数据集经聚类后分布密集的数据)分成簇,稀疏数据(稀疏数据是原始数据集经聚类后分布稀疏的数据)作为孤立点对待;
所述CF树是具有两个参数的高度平衡树,用来存储层次聚类的聚类特征;其中一个参数是指定子节点的最大数目,另一个参数阈值T指定存储在叶节点的子簇的最大直径,阈值T能改变CF树的大小(阈值T的大小可自定义,一般是依据专家经验,根据采集到的数据样本大小不同,阈值T、子节点CF树的大小都不同因此做不了限定的, birch公知算法会根据样本数据和环境作自适应调整);
(5.2)在步骤(5.1)建立的CF树的基础上(步骤(5.1)建立的CF树巨大), (为达到速度与质量的要求)通过增大阈值建立一颗较小的CF树(由于阈值增大叶节点的子簇存储的数据越多,这样使得CF树节点变少,从而使得CF树变小,对于CF树的大小,算法会根据样本数据,环境作自适应调整);
(5.3)对步骤(5.2)中的CF树叶节点,进一步利用全局算法,采用与中心点的直径阈值T′(阈值T′的大小可自定义,一般是依据专家经验,根据采集到的数据样本大小不同,阈值T′会不同因此做不了限定的,全局算法根据样本数据和环境作自适应调整)对全部叶节点(叶节点里包含步骤5.1扫描的数据)进行聚类;
所述全局算法是一种优化算法,在全部叶节点数据找到中心点后,依照规则对全部叶节点进行聚类;全局算法能自动找到叶节点数据的中心点即种子,并根据阈值T′将数据进行分配;
(5.4)把步骤(5.3)的中心点作为种子,将数据点重新分配到最近的种子上,保证重复数据分到同一个簇中,同时添加簇标签,得到簇集合;
所述簇标签分为两类:正常行为簇标签、异常行为簇标签;其中,正常行为簇标签是指在阈值T′范围内的数据标签,异常行为簇标签是指超过阈值T′的数据标签(异常行为簇数据偏离中心较远且少);
(5.5)在簇标签中,选择添加了正常行为簇标签的正常行为簇数据Lt1≤t≤m;
(5.6)对步骤(4)中采集的行为数据表的所有列数据,重复步骤(5.1)~步骤(5.5),每列数据都能够得到一个添加了正常行为簇标签的正常行为簇数据;由行为数据表中每列数据的正常行为簇数据,组成一个正常行为簇集合L:
L={L1,L2,L3,...Lm-1,Lm}
步骤六:利用高斯混合模型训练行为模型,具体包括以下步骤:
(6.1)对步骤(5.6)中正常行为簇集合L的每个簇中所有数据建立单高斯模型,得到单高斯模型集合;
GSM={GSM1,GSM2,GSM3,...,GSMm-1,GSMm}
其中,所述GSM是指单高斯模型集合,其中元素为簇集合L中的每个元素所包含数据建立的单高斯模型;1≤m≤10;
(6.2)将单高斯模型集合GSM进行混合成一个高斯混合模型GMM:
其中,a
i是系数,a
i≥0,
为单高斯模型集合中的第i个GSM 模型;
步骤七:随机抽取步骤四中的样本数据,对步骤(6.2)中的高斯混合模型进行训练,对系数ai进行调优,得到最优的高斯混合模型GMM(最优的高斯混合模型GMM,是指将样本数据导入至模型中得到的结果是符合预期);
步骤八:重复步骤四至步骤七,对用户维度集V中的每个维度均训练出一个最优的高斯混合模型GMM,获得的最优的高斯混合模型GMM组合成一个用户多维的行为模型集 G:
G={GMM1,GMM2,GMM3,...,GMMj-1,GMMj}
其中,所述G是指用户维度集V中的每个维度训练出来的混合高斯模型集合,其中元素为针对某个维度训练出来的混合高斯模型;
步骤九:对用户多维的行为模型集G中所有元素进行贝叶斯线性回归,具体包括以下步骤:
(9.1)对步骤八的用户多维的行为模型集G中所有元素,即用户每个维度的高斯混合模型进行线性回归:
其中,所述y(x,w)是一种线性回归模型;所述参数集W={W0,W1,W2,...,Wj},参数集W里的元素W0,W1,W2,...,Wj,为用户设置或系统推荐的参数;GMMi即指行为模型集G 中的元素;
(9.2)利用步骤八中的高斯混合模型GMM,得到用户每个维度的先验概率;
(9.2)随机抽取步骤四中的样本数据,将样本数据导入到y(x,w)中进行机器学习,对步骤(9.1)的参数集W进行验证并调优,得到最佳的线性回归模型(最佳的线性回归模型是参数集进行调优后,会在样本数据中再随机挑选数据导入至模型中进行验证,符合预期的模型则为最佳模型并得到确认);
步骤十:对用户进行评估,具体包括以下步骤:
(10.1)在步骤三的用户集信息U中,针对任一用户经过步骤四至步骤九,分别训练得到一个最佳的线性回归模型;
(10.2)根据用户的最佳的线性回归模型,设定用户的行为概率阈值pmax、pmin(根据得到的用户行为线性回归模型,能够得到用户行为的分布图,概率低的行为是可疑行为,以实现用户正常行为概率区间的划分,根据具体情况设定行为概率阈值pmax、pmin);
(10.3)实时采集在线用户信息、用户行为、行为数据;
(10.4)将(10.3)采集的数据导入至(10.1)获得的对应用户的线性回归模型内,计算其行为概率pnow;
(10.5)当pnow不在(pmin,pmax)概率区间内,则认为具备风险。
与现有技术相比,本发明的有益效果是:
本发明利用产品日志采集用户,针对每个用户、搜集其行为特征、行为数据形成样本数据,采用birch得到正常行为的簇,最后通过混合高斯模型得到用户正常行为概率分布,再采用贝叶斯线性回归,得到能够精确概括用户正常行为线性模型。本发明能够精准、高效、智能地对在线用户状态进行风险评估。
附图说明
图1为本发明的实现流程图。
具体实施方式
首先需要说明的是,本发明是计算机技术在信息安全技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明,凡本发明申请文件提及的软件功能模块均属此范畴,申请人不再一一列举。
下面结合附图与具体实施方式对本发明作进一步详细描述:
如图1所示的一种基于多维行为模型的用户风险评估与分析方法,具体实现方式如下:
(1)定义用户维度:定义用户维度集。
V={流量特征,应用程序,...}
(2)定义用户行为:用户维度集中,针对某个维度Vk,所包含行为集。
流量特征={IP,IP所在地,时间,时长,...,大小,频次}
应用程序={应用名称,登陆时间,...,流量大小,使用时间}
(3)采集用户:在产品的日志中,采集产品用户信息集。
U={A1,A2,A3,...,An-1,An}
所述产品是指应用程序。
(4)采集用户行为数据,形成样本数据:在产品的日志中,采集用户行为数据。针对某个A1,对流量特征属性,其在日志中采集到的行为数据集为:
流量发生时间 |
IP所在地 |
起止时间 |
… |
频次大小 |
20171021 |
192.168.31.22内网 |
8:30-17:50 |
… |
每十分钟200 |
20171022 |
192.168.31.22内网 |
8:30-17:50 |
… |
每五分钟200 |
20171023 |
192.168.31.22内网 |
8:30-17:50 |
… |
每十分钟200 |
… |
… |
… |
… |
… |
20171027 |
202.31.66.81异地 |
8:30-18:00 |
… |
每1秒200 |
(5)采用birch进行无监督聚类学习:针对某个useri,对步骤4中维度Vk行为集及对应的行为数据集Dk(示例:流量特征)进行无监督聚类学习。具体包括下述步骤:
(5.1)扫描行为特征集Vk和行为数据集Dk(示例:流量特征),建立初始化的CF 树,把稠密数据分成簇,稀疏数据作为孤立点对待。
(5.2)步骤5.1建立的CF数巨大,为达到速度与质量的要求,通过增大阈值在步骤3.1的基础上,建立一颗较小的CF树。
(5.3)对5.2中的CF树叶节点,进一步利用全局/半全局算法对全部叶节点进行聚类。
(5.4)把步骤5.3的中心点作为种子,将数据点重新分配到最近的种子上,保证重复数据分到同一个簇中,同时添加簇标签。得到簇集合:
L={L1,L2,L3,...,Lk-1,LK}
(5.5)将簇集合L中,剔除异常行为簇标签,得到正常行为簇集合L′。
所述簇标签分为两类:正常行为簇标签、异常行为簇标签。
所述异常行为簇标签是指数据点少的种子。
(6)利用高斯混合模型训练行为模型:具体包括以下步骤
(6.1)对步骤5.4中正常行为簇集合L′的所有元素建立单高斯模型。得到单高斯模型集合:
GSM={GSM1,GSM2,GSM3,...,GSMk-1,GSMk}
示例:流量特征,将得到流量特征的单高斯模型集合。
(6.2)将单高斯模型集合GSM进行混合成一个高斯混合模型GMM。
(7)随机抽取步骤(4)中的样本数据,对步骤(6.2)中的高斯混合模型进行训练,对系数ak进行调优,得到最优的高斯混合模型GMM。
示例:流量特征,将得到流量特征的高斯混合模型GMM流量特征°
(8)重复步骤4-7,对用户维度集V中的每个维度均训练出一个最优的高斯混合模型GMM,其组合成一个用户多维的行为模型集G
G={GMM流量特征,GMM应用程序,...}
(9)对用户行为高斯混合模型集合G中所有元素进行线性回归,具体包括以下步骤:
(9.1)对步骤(八)的高斯混合模型集合G中所有元素即用户每个维度的混合高斯模型进行线性回归:
其中,参数集W={W0,W1,W2,...,Wj},文中所涉及的公式参数为用户设置或系统推荐的参数。所述y(x,w)是一种线性回归模型,里面的参数文中已经进行说明。
(9.2)随机抽取步骤四中的样本数据,将样本数据导入到y(x,w)中进行机器学习,对步骤(9.1)的参数集W进行验证并调优,得到最佳的线性回归模型;
(10)对用户进行评估:具体包括以下步骤
(10.1)在步骤(1)的用户集U中,针对任一用户经过步骤(2)至步骤(9) 都能训练得到一个最优的、与该用户相匹配的用户行为线性模型。
(10.2)根据用户行为线性模型,定义用户的行为概率阈值Pmin、Pmax。
(10.3)实时采集在线用户信息、用户行为、行为数据。
(10.4)将10.3数据导入至10.1所述相应在线用户模型内,计算其行为概率Pnow。
(10.5)当Pnow不在(Pmin,Pmax)概率区间内,则认为具备风险。
最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。