掌桥专利:专业的专利平台
掌桥专利
首页

一种隐式马尔可夫链和RNN的用户画像方法及其系统

文献发布时间:2023-06-19 19:30:30


一种隐式马尔可夫链和RNN的用户画像方法及其系统

技术领域

本发明涉及信息安全技术领域,具体涉及一种隐式马尔可夫链和RNN的用户画像方法及其系统。

背景技术

目前,用户画像,就是要在用户访问信息系统时,对用户的一系列访问行为做记录,从而对其后的用户行为检测提供重要参考。特别的,对于非法用户,用户行为检测系统需要对用户在网络中一系列非法行为进行识别,从而形成此用户的最终行为集合画像。

针对信息安全的已知攻击和危险行为,传统的防火墙和入侵检测已经做的日趋完善了,但是针对非法用户进行的未知类型的攻击及危险行为的检测,当前业界还在不停的探索中,未知攻击特别是APT攻击,一直是业界当前亟待解决的热点内容之一。

当前一种流行的未知攻击检测方法和装置,是通过对网络中的流量特征进行提取,利用深度学习技术,对流量特征进行识别,对攻击行为进行识别和认定。向深度神经网络中输入流量特征集合,通过训练好的网络,输出异常行为的集合。这其实是NLP领域的一个应用,符合NLP领域中序列模型(Sequence Models)的一般定义场景,所以目前流行的技术方案是基于带有时间步的循环神经网络,对预测序列进行最大概率输出(参考专利:基于LSTM的时间序列网络异常检测的方法与装置申请号:CN201810919681.X)。

针对以上“用户画像”和“行为检测”领域,现有技术主要是对用户的行为做“分类”,此类分类器往往是输入一系列用户行为的集合,通过常用机器学习的算法(比如决策树及其变种),生成用户行为的分类。

此技术的缺点在于,难以形成用户行为的多维描述,而仅仅是“正常”或者“异常”行为,及其更多的分类特征。用户画像的根本目的并不仅仅是生成行为分类,而是要生成行为描述。换言之,用户画像中所描述的信息,不仅仅是描述此用户为“合法”还是“非法”,而且要描述其为何“合法”或者“非法”,这就要通过用户的“异常行为集合”来体现。

针对以上的“行为检测”领域,要通过输入“用户行为集合”来生成用户的实际的“非法行为”集合,当前流行深度学习中NLP的序列模型处理思路,一般是通过基于时间步的循环神经网络RNN来输出最大概率的序列,但是,RNN虽然在NLP领域中取得了巨大成功,它是以NLP中强大的训练集为基础的,训练集的强大使得RNN表示能力强的优点得到了最大程度的发挥。然而,在信息安全领域,集合并没有那么强大,特别是以APT为代表的未知攻击,普遍利用0day漏洞进行非法操作,且针对不同的网络所应用的攻击手段也随之变化,即使在同一网络的不同空间维度和不同时间维度,其攻击特征也不尽相同,而且具有持续性、智能性、高伪装性的特点。

由于未知攻击的这些特点,使得针对此类攻击的人工标记数据过少,训练集规模偏小,攻击样本获取困难,而以RNN为代表的深度学习网络是以大数据训练集为基础的,训练集规模的限制大大降低了RNN的性能发挥,使得此网络在输出“攻击行为集合序列”的时候效果不好,甚至输出的“攻击行为集合序列”不符合网络入侵的一般步骤,给“用户画像”的准确性和实用性带来了很大的挑战。

比如,用训练后网络模型,输入流量特征数据,对此训练好的模型进行测试:由于训练样本数缺乏,模型训练效果不尽人意,得出的类似这样的用户行为序列:日志文件字段非法擦除-webshell非法上传-非法权限提升-彩虹表重放攻击。这种用户行为序列显然存在问题:网络模型虽然通过流量信息识别到了“webshell上传、重放攻击、文件非法访问”等攻击行为,但是行为序列显然不对:众所周知,任何攻击必须先进行“访问控制”方面的攻击,首先要攻入系统内部,才能进行一系列的非法操作,“认证和授权”方面的攻击往往位于“攻击行为序列”比较靠前的位置。以上行为序列显然存在问题,日志文件非法擦除,进行证据销毁,显然是发生在攻击过程的收尾阶段,因为一般是作案完毕以后才去销毁证据,“认证和授权”方面攻击一般是发生在攻击的开始阶段,因为必须要攻入系统内部才能进行进一步作案。

以上所示意的例子描述的是行为序列在“时间状态”上产生错乱的情况,还有在“空间状态”产生错乱的情况:用户在访问实际的网络空间环境的时候,必然先访问到整个网络空间的外部设备,然后才能访问到网络内部设备。比如说,外层设备所采集到的流量特征,其对应的异常行为,我们称之为“异常行为A”,而位于网络空间内部的设备所采集到的流量特征,其对应的的异常行为,我们称之为“异常行为B”,那么,最终输出的用户行为序列中,A必然要排在B的前面。但是,由于训练集数据的缺乏所导致的训练不彻底性,可能会发生B排在A的前面的情况。实际上,我们在采集流量特征的时候,要在整个网络空间的不同位置埋点,进行流量采集,网络空间特有的网络拓扑结构,决定了外部用户访问网络的不同地理位置,要遵循一定的先后顺序,这就决定了最终的用户行为序列,必然也要遵循一定的先后顺序。训练数据的缺乏,也会导致最终行为序列在“空间状态”上产生错乱的情况出现。

针对以上问题,专利“一种APT攻击检测方法”(专利号:CN201611179208.X)给出了一种解决方案,该方案通过对少量训练集数据,按照一定的算法进行处理,从而产生大量的训练集数据,本发明要解决的也是“训练集样本少”的问题,用的却是另外一种思路:用“一种隐式马尔可夫链和RNN的用户画像分析系统及方法”去解决此问题。通过流量特征识别用户行为,符合NLP序列模型(Sequence Models)的场景范畴,NLP是将一种语言系统(比如英语)翻译成另一种语言系统(比如汉语),流量特征识别用户行为,是将一种序列数据流(流量特征)翻译成另一种序列数据流(攻击行为),所以,基于应用场景的相似性,NLP中的技术思路可以进行迁移应用。上文提及的问题,实际上是“攻击行为”不符合“攻击状态”的一般定义。在NLP领域,为了生成正确语序的句子,会添加POS(part of speech tagging)词性标注,按照语言系统的特定语法定义(比如在汉语系统中,一般是名词做主语,动词做谓语)输出正确的单词序列。由此,迁移到信息安全的“流量特征识别”领域,可以按照信息安全领域特定的“语法”,即攻击状态,对用户行为的最终序列输出产生作用。

同时,在当前信息安全“通过流量特征识别未知攻击”这一前沿领域,“未知攻击”不能完全脱离信息安全既有攻防手段的公知范畴。比如,有的未知攻击利用了0-day漏洞,0-day漏洞完了以后可能会紧跟着一个“缓冲区溢出”进行进一步攻击作业,0-day漏洞的利用可能仅仅只是打开一个攻击入口,这里的“缓冲区溢出攻击”就不再是一个未知攻击了,它属于当前业界公知的攻防范畴,实际上,即使是困扰业界的“未知攻击”,也不可能完全脱离“业界既有攻防经验”这一基础,其他的一些攻防公知范畴,比如上文提及的“攻击状态”对“攻击行为”的影响和制约,也可应用到“通过流量特征识别未知攻击”这一前沿领域,这就为下文“本专利发明内容”的可行性创造了前提。

发明内容

本发明提供一种隐式马尔可夫链和RNN的用户画像方法及其系统,用以解决上述情况。

一种隐式马尔可夫链和RNN的用户画像方法,包括:

获取原始数据集的流量特征,确定所述流量特征对应的训练数据,并通过马尔可夫模型进行数据训练,生成编码器;

通过所述编码器和预设的维特比动态规划算法,对所述原始数据进行状态标注,生成编码数据;

基于word2vector模型对预设的用户异常行为表中的异常行为进行编码,并结合所述编码数据对RNN网络进行训练,生成解码器;

获取用户流量特征数据,并依次输入所述编码器和解码器,生成用户集合序列,并在用户行为画像时加入,生成用户画像。

作为本发明的一种实施例:所述获取原始数据集的流量特征,确定所述流量特征对应的训练数据,包括:

基于原始训练集,确定流量数据的已知特征定义;

根据所述特征定义,确定流量特征;

根据所述流量特征,在大量已知攻击中,提取对应的流量特征,并确定对应流量特征的攻击行为和攻击状态,对所述流量特征进行攻击行为和攻击状态标注;

将所述攻击状态和攻击行为相对应,生成训练数据。

作为本发明的一种实施例:所述并通过马尔可夫模型进行数据训练,并生成编码器,包括:

获取通用马尔可夫模型;

通过所述训练数据对所述马尔可夫模型进行训练,生成隐式马尔可夫模型;

对所述隐式马尔可夫模型进行模型定义;其中,

所述模型定义包括:定义初始状态为π和矩阵定义:

所述矩阵定义包括:定义状态切换矩阵和定义发射矩阵;

根据所述模型定义,生成编码器。

作为本发明的一种实施例:所述对所述隐式马尔可夫模型进行模型定义,包括:

步骤1:将所述训练数据引入所述状态切换矩阵,通过下式进行状态切换矩阵赋值:

其中,C(S

步骤2:将所述训练数据引入发射矩阵,通过下式计算用户行为的发射概率,进行发射矩阵赋值:

其中,S

步骤3:根据所述状态切换矩阵赋值,确定所述状态切换矩阵中行和列的值,根据所述发射矩阵赋值,确定所述发射矩阵行和列的值。

作为本发明的一种实施例:所述对所述隐式马尔可夫模型进行模型定义还包括:

根据所述训练数据,判断计算状态切换概率的时候是否存在统计缺失,并通过下式进行拉普拉斯平滑处理:

根据所述训练数据,判断计算发射概率的时候是否存在统计缺失,并通过下式进行拉普拉斯平滑处理:

作为本发明的一种实施例:所述通过所述编码器和预设的维特比动态规划算法,对所述训练数据进行状态标注,生成编码数据,包括:

根据所述维特比动态规划算法,将所述原始数据集代入第一路径矩阵和第二路径矩阵进行赋值计算;其中,

所述维特比动态规划算法包括前向过程和后向过程;

根据所述前向过程,获取所述原始数据集的最大路径;

根据所述后向过程和最大路径,确定最优路径;

根据所述最优路径,确定每个节点的节点状态信息,并确定每个节点对应的所述原始数据集中训练样本所对应的样本状态信息;

根据所述样本状态信息对所述原始数据集的训练样本进行标注,生成编码数据。

作为本发明的一种实施例:所述根据所述维特比动态规划算法,将所述原始数据集代入第一路径矩阵和第二路径矩阵进行赋值计算包括:

根据所述状态切换矩阵和发射矩阵,构建第一路径矩阵和第二路径矩阵:其中,

所述第一路径矩阵的第一列通过下式构成:

其中,C

所述第二路径矩阵的第一列的所有元素都为0;

所述第一路径矩阵的除第一列以外的其他列通过下式构成:

其中C

所述第二路径矩阵除第一列以外的其他列通过下式构成:

其中,第二路径矩阵中元素用于记录第一路径矩阵取最大概率时,所对应的前一个状态信息。

作为本发明的一种实施例:所述基于word2vector模型对预设的用户异常行为集合中的异常行为进行编码,并结合所述编码数据对RNN网络进行训练,生成解码器,还包括:

基于word2vector模型,对原始训练集的输出序列进行表征;

用表征后的训练集输出序列,结合所述编码数据,对RNN网络进行训练,得到解码器。

作为本发明的一种实施例:基于word2vector模型,对原始训练集的输出序列进行表征,包括:

对异常行为集合中的异常行为进行one-hot编码;

建立维度空间,并将所述异常行为状态集中的每一状态作为一个维度进行语义定义;

根据所述语义定义,构建word2vector词嵌入矩阵;

将所述训练数据作为词嵌入矩阵训练集,并对所述词嵌入矩阵训练进行训练,生成词嵌入矩阵。

作为本发明的一种实施例:基于word2vector模型,对原始训练集的输出序列进行表征,还包括:

获取训练后的训练样本,并确定每一个训练样本的词嵌入属性;

通过下式获取异常行为的one-hot向量与此词嵌入矩阵的乘积,确定异常行为的词嵌入属性:

e

其中,E为训练好的词嵌入矩阵;O

根据所述词嵌入属性,构成异常行为集合。

作为本发明的一种实施例:获取用户流量特征数据,并依次输入所述编码器和解码器,生成用户集合序列,并在用户行为画像时加入,生成用户画像,包括:

获取所述编码器和解码器;

将待预测的用户流量特征数据依次输入至编码器和解码器,确定解码后的异常行为集合;

获取正在生成的用户画像,并将所述异常行为集合添加至所述正在生成的用户画像,生成用户的目标画像。

一种隐式马尔可夫链和RNN的用户画像系统,包括:

特征获取模块:用于获取原始数据集的流量特征,确定所述流量特征对应的训练数据,并通过马尔可夫模型进行数据训练,生成编码器;

编码标注模块:用于通过所述编码器和预设的维特比动态规划算法,对所述训练数据进行状态标注,生成编码数据;

RNN解码模块:用于基于word2vector模型对预设的用户异常行为集合中的异常行为进行编码,运用所述编码数据,训练RNN网络,生成解码器;

画像模块:用于获取用户流量特征数据,并依次输入所述编码器和解码器,生成用户集合序列,并在用户行为画像时加入,生成用户画像。

本发明具有以下有益效果:

1)本发明设计的马尔可夫链+RNN的架构,在原始训练集偏小的情况,针对RNN输出序列不准确的情况,对基于马尔可夫链的状态假设,向RNN追加信息,提高最终输出序列的准确程度,使得用户画像更加全面有效;

2)通过在马尔可夫编码网络中添加异常行为的状态信息,然后将添加了状态信息的训练样本输入到RNN,这样,编码网络中所学习到的“异常行为”所对应的“状态”知识可以输入进RNN网络,通过word2vector的词义表征,使得RNN在最终输出序列模型的时候,之前学习到的知识很好在RNN的最终输出产生作用,使得最终的“异常行为输出序列”更能按照之前的“行为状态”特征进行序列输出,使得产生的“异常行为序列”更加符合信息安全攻击特性,更加贴近真实攻击,以及有更高的鲁棒性;

3)只是在编码网络添加“异常行为”与“攻击状态”的对应关系知识,这种知识不会破坏或者重组对原始训练集,所以不会产生负面影响,但是这种知识却可以对RNN的最终输出序列产生正面影响,使得输出的序列更符合信息安全攻防特征,当然,如果原始训练集足够大,RNN也能输出更符合信息安全攻防特征的序列,但事实情况是训练集样本不够大,我们可以单独学习这些重要的知识,巧妙的通过隐式马尔可夫链,在编码阶段将此知识追加到RNN网络,通过word2vector的对此知识加以泛化,从而在小训练集的前提下最大限度的取得想要的效果。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。

在附图中:

图1为本发明实施例中一种隐式马尔可夫链和RNN的用户画像方法的方法流程图;

图2为本发明实施例中一种隐式马尔可夫链和RNN的用户画像系统的系统组成图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

首先:用户画像的定义为:在用户访问系统的时候,对用户的访问信息进行记录,生成记录日志,并随时可以根据记录的日志信息进行用户行为的识别,判断用户是非法用户还是合法用户的方式。

原始数据集:以流量特征作为输入、以异常行为作为输出的样本集合;流量特征:系统在受到攻击时数据的流量状态。编码器:马尔可夫模型训练后得到的对用户行为进行编码的编码网络。word2vector:一种把用户异常行为转为数值的数字空间。

攻击状态:系统在攻击行为下的实时状态。攻击行为:系统在受到攻击时,攻击的类型。

异常状态:系统在异常行为下的实时状态。异常行为:影响系统正常运行的行为。

通常来讲,异常行为包括攻击行为,还包括除攻击行为之外的所有影响系统正常运行的行为。

异常状态包括攻击状态,还包括除攻击状态之外的所有系统非正常运行的状态。

one-hot编码:一种将异常行为状态转换为二进制向量的编码模型。

维特比动态规划算法:一种动态规划算法用于寻找最有可能产生观测事件序列的-维特比路径-隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。术语“维特比路径”和“维特比算法”也被用于寻找观察结果最有可能解释相关的动态规划算法。

实施例1:

而在本发明中,具体的技术方案如下所示:

附图1为一种隐式马尔可夫链和RNN的用户画像方法,包括:

获取原始数据集的流量特征,确定所述流量特征对应的训练数据,并通过马尔可夫模型进行数据训练,生成编码器;

通过所述编码器和预设的维特比动态规划算法,对所述原始数据进行状态标注,生成编码数据;

基于word2vector模型对预设的用户异常行为表中的异常行为进行编码,并结合所述编码数据对RNN网络进行训练,生成解码器;

获取用户流量特征数据,并依次输入所述编码器和解码器,生成用户集合序列,并在用户行为画像时加入,生成用户画像。。

上述技术方案的原理在于:

在对本发明的技术原理进行阐述之前,需要先确定一下现有技术的缺陷,本发明适用于用户画像的技术领域,主要是针对现有技术中训练集偏小情况下,画像不准确的现象,现有技术中,在进行画像的时候,还存在对用户的行为很难以多维描述的方式表示,只能表示异常和正常,简而言之就是只能判断用户的行为是“合法或非法”。其次,在现有技术中,当训练集的规模偏小的时候,在RNN网络中,其输出的:“攻击行为序列”的效果不好,因为其准确性不足。

基于上述现有技术的缺陷,本发明的提出了解决其缺陷的方式,具体的原理如下:

本发明为了解决训练集比较小的问题采用了马尔可夫链+RNN的解决思路,本发明通过马尔可夫模型充当RNN“行为序列翻译”的编码器的思想,在生成用户行为画像的时候,先基于马尔可夫模型生成一个编码器,其马尔科夫模型的训练集可以在攻防演练过程中大量抓取网络数据获得:首先获取原始数据集的流量特征定义,然后在攻防演练中大量的抓取这些对应的流量特征,并且实时记录抓取这些流量特征时所对应的攻击行为和攻击状态,得到大量“流量特征-攻击行为-攻击状态”对应关系的训练集,基于所述训练集,去训练马尔科夫模型,最终生成编码器。本发明在生成编码器的时候,其内部已经设置维特比动态规划算法,而在后续对训练数据进行状态标注的时候,才会通过标注的方式生成编码数据。

首先,通过训练好的马尔可夫模型,即编码网络,运用viterbi算法(维特比算法),对原训练集数据中的流量特征进行状态标注,获得训练集中每个流量特征的状态信息,并将此基于“状态”信息作为新的特征添加到原训练集中,作为编码网络的最终输出,至此,编码阶段已经完成。

其次,对原始数据集中的标签输出数据进行词嵌入表征,采用word2vector模型,基于词嵌入矩阵,定义异常行为的属性集合,特别的,此异常行为的属性集合须要包含所述“异常状态”集合,采用CBOW模型(Continuous Bag-of-Word Model,连续词袋模型)对此词嵌入矩阵进行训练,训练完成以后,基于此模型对原始训练集的标签输出进行词嵌入表征。

至此,原始训练集的输入部分已经添加好状态信息,原始训练集的标签输出部分已经进行了词嵌入表征;然后,将此改造后的新训练集输入到RNN网络,进行训练,得到解码器。

最后,获取待预测的用户流量特征数据,将其依次输入至编码器和解码器,确定解码后的异常行为集合;

获取正在生成的用户画像,并将所述异常行为集合添加至所述正在生成的用户画像,生成用户的目标画像。

在上述过程中:马尔可夫模型,通过攻防演练的数据进行训练;词嵌入矩阵,通过原始数据和攻防演练数据进行训练;而解码器,则是通过添加状态的原始数据进行训练;而原始训练集的监督标签数据,则是通过词嵌入技术进行语义表征。

上述技术方案的有益效果在于:

本发明设计的马尔可夫链+RNN的架构,在原始训练集偏小的情况,针对RNN输出序列不准确的情况,对基于马尔可夫链的状态假设,向RNN追加信息,提高最终输出序列的准确程度,使得用户画像更加全面有效;

通过在马尔可夫编码网络中添加异常行为的状态信息,然后将添加了状态信息的训练样本输入到RNN,这样,编码网络中所学习到的“异常行为”所对应的“状态”知识可以输入进RNN网络,通过word2vector的词义表征,使得RNN在最终输出序列模型的时候,之前学习到的知识很好在RNN的最终输出产生作用,使得最终的“异常行为输出序列”更能按照之前的“行为状态”特征进行序列输出,使得产生的“异常行为序列”更加符合信息安全攻击特性,更加贴近真实攻击,以及有更高的鲁棒性;

只是在编码网络添加“异常行为”与“攻击状态”的对应关系知识,这种知识不会破坏或者重组对原始“未知攻击”训练集,所以不会产生负面影响,但是这种知识却可以对RNN的最终输出序列产生正面影响,使得输出的序列更符合信息安全攻防特征,当然,如果原始“未知攻击”训练集足够大,RNN也能输出更符合信息安全攻防特征的序列,但事实情况是训练集样本不够大,我们可以单独学习这些重要的知识,巧妙的通过隐式马尔可夫链,在编码阶段将此知识追加到RNN网络,通过word2vector的对此知识加以泛化,从而在小训练集的前提下最大限度的取得想要的效果。

实施例2:

优选的,所述获取原始数据集的流量特征,确定所述流量特征对应的训练数据,包括:

基于原始训练集,确定流量数据的已知特征定义;

根据所述特征定义,确定流量特征;

根据所述流量特征,在大量已知攻击中,提取对应的流量特征,并确定对应流量特征的攻击行为和攻击状态,对所述流量特征进行攻击行为和攻击状态标注;

将所述攻击状态和攻击行为相对应,生成训练数据。

上述技术方案的原理在于:本发明在建立训练数据的步骤中,主要是解决少量数据集的现有技术缺陷,因此本发明首先根据原始训练集对流量数据的特征定义,按照原始训练集中的流量特征定义,大量抓取网路中对应的流量特征信息,同时记录对应的攻击行为和攻击状态,从而得到流量特征跟攻击状态的对应关系,生成大量“流量特征-攻击行为-攻击状态”的训练数据,从而去训练马尔科夫模型。

上述技术方案的有益效果在于:本发明具体实施时,因为已知攻击所产生的大量数据是很容易获取的,应用所述方法,可以为后续马尔科夫模型的训练创造十分便利的条件。另外,本发明能够得到流量特征跟攻击状态的对应关系,这也是后续马尔科夫模型训练所必须的条件。综上,本发明马尔可夫链+RNN的架构,可以在原始训练集偏小的情况,针对RNN输出序列不准确的情况,对基于马尔可夫链的状态假设,向RNN追加信息,提高最终输出序列的准确程度,使得用户画像更加全面有效。

实施例3:

优选的,所述并通过马尔可夫模型进行数据训练,并生成编码器,包括:

获取通用马尔可夫模型;

通过所述训练数据对所述马尔可夫模型进行训练,生成隐式马尔可夫模型;

对所述隐式马尔可夫模型进行模型定义;其中,

所述模型定义包括:定义初始状态为π和矩阵定义:

所述矩阵定义包括:定义状态切换矩阵和定义发射矩阵;

根据所述模型定义,生成编码器。

上述技术方案的原理在于:在进行马尔可夫模型构建的阶段,本发明连通过训练数据中对应的“状态和行为”信息,去训练隐式马尔可夫模型,训练完成后,模型可以学习到这样的知识:“流量特征”跟对应的“状态”之间的关系信息。但是,在模型训练的阶段,还需要进行初始化设置,而本发明的初始设置就是对初始状态进行定义,并对训练过程中的状态切换进行定义,还会对行为状态到用户行为的发射概率(即在特定状态下某一异常行为发生的概率)进行定义,在模型定义后用实施例2中所述的训练数据,对此马尔科夫模型进行训练,生成编码器。

上述技术方案的有益效果在于:

本发明能够通过对马尔可夫模型的定义,生成马尔可夫模型对应的编码网络,通过模型定义,可以给马尔可夫模型带来初始参数,通过这些初始参数可以进行矩阵演化,为后续的解码器生成特定的行为序列。

实施例4:

优选的,所述对所述隐式马尔可夫模型进行模型定义,包括:

步骤1:将所述训练数据引入所述状态切换矩阵,通过下式进行状态切换矩阵赋值:

其中,C(S

步骤2:将所述训练数据引入发射矩阵,通过下式计算用户行为的发射概率,进行发射矩阵赋值:

其中,S

步骤3:根据所述状态切换矩阵赋值,确定所述状态切换矩阵中行和列的值,根据所述发射矩阵赋值,确定所述发射矩阵行和列的值。

上述技术方案的原理在于:本发明在进行实施的时候,首先是构建状态切换矩阵,在这个矩阵建立的过程中,是基于上述状态切换的公式,分别计算的是不同状态组合下的值,首先,分子部分C(S

而发射矩阵和状态切换矩阵类似,

上述技术方案的有益效果在于:定义状态切换矩阵和定义发射矩阵,通过这两个定义,可以实现对状态切换,以及特定状态下某一异常行为的发生概率进行数学表达,通过此数学表达,可以在矩阵构建的过程中进行元素赋值。

实施例5:

所述对所述隐式马尔可夫模型进行模型定义还包括:

根据所述训练数据,判断计算状态切换概率的时候是否存在统计缺失,并通过下式进行拉普拉斯平滑处理:

根据所述训练数据,判断计算发射概率的时候是否存在统计缺失,并通过下式进行拉普拉斯平滑处理:

上述技术方案的原理在于:本发明在进行训练的时候,由于统计缺失,会导致C(s

上述技术方案的有益效果在于:本发明能够计算状态切换矩阵和发射矩阵中的所有可能情况,而不至于出现概率计算结果等于0的情况。

实施例6:

优选的所述通过所述编码器和预设的维特比动态规划算法,对所述训练数据进行状态标注,生成编码数据,包括:

根据所述维特比动态规划算法,将所述原始数据集代入第一路径矩阵和第二路径矩阵进行赋值计算;其中,

所述维特比动态规划算法包括前向过程和后向过程;

根据所述前向过程,获取所述原始数据集的最大路径;

根据所述后向过程和最大路径,确定最优路径;

根据所述最优路径,确定每个节点的节点状态信息,并确定每个节点对应的所述原始数据集中训练样本所对应的样本状态信息;

根据所述样本状态信息对所述原始数据集的训练样本进行标注,生成编码数据。

上述技术方案的原理在于:本发明在进行数据状态标注的时候,是基于维特比动态规划算法,这包括前向计算和后向计算两个过程,前向过程中适用于进行第一路径矩阵和第二路径矩阵的赋值,而后向过程中是确定路径。这个过程如下:

进行viterbi算法的forward(前向)过程:

如表,计算C

同时,记录从V

按照以上方法,基于公式:

对输入序列所有元素进行相同处理,对第一路径矩阵和第二路径矩阵中的每个元素进行赋值填入。

进行viterbi算法的backward(后向)过程:也既是对异常行为序列进行状态标注的过程。

经过viterbi前向算法生成的第一路径矩阵和第二路径矩阵,我们假设生成的数据如下表所示:

第一路径矩阵:

第二路径矩阵:

查找第一路径矩阵中最后一列中数值最大的元素,如表中的第1行的元素数值最大。

查找第二路径矩阵中对应的位置,取出此位置中元素,此元素记录了得到此最大路径时,此最大路径对应的上一个节点信息,本实施例中,上一个节点的状态信息上表中所示的为S

继续对上一个特征节点执行以上过程,重复以上过程,查找相对于此元素的最大路径所对应的前一个V

依次在backward算法中重复以上过程,直至找到初始状态π为止,得出V

为了帮助于读者理解viterbi后向算法,这里再举一例,直观展示viterbi后向算法所生成的最优路径信息。

此例中我们假设异常行为序列中共有5个异常行为,记为V

假设攻击状态有4个,记为S

假设生成的第一路径矩阵和第二路径矩阵的数据如下:

第一路径矩阵:

第二路径矩阵:

按照上文所述,先找到第一路径矩阵中列V

依次重复以上过程,直至找到初始状态π所对应的标记“0”为止。

最终形成V

其中V

对应π←S

图中黑线标记出了最优路径,路径所对应的第一路径矩阵的元素,则记录了到达此行为节点所对应的概率值。

至此,最优路径搜寻完毕,流量特征在样本空间中所对应的最优状态信息已经获取完毕,此状态信息是最优路径中每个节点所对应的状态信息,将此状态附加为原始样本的新特征,形成原始样本的新编码,下一步输入到解码RNN网络。

实施例7:

在一个实施例中:所述根据所述维特比动态规划算法,将所述原始数据集代入第一路径矩阵和第二路径矩阵进行赋值计算包括:

根据所述状态切换矩阵和发射矩阵,构建第一路径矩阵和第二路径矩阵:其中,

所述第一路径矩阵的第一列通过下式构成:

其中,C

所述第二路径矩阵的第一列的所有元素都为0;

所述第一路径矩阵的除第一列以外的其他列通过下式构成:

其中C

上述技术方案的原理在于:本发明要对原始训练集中的流量特征序列进行编码,还需要进行维特比动态规划的前向过程,在此过程中,我们要确定从初始状态π,到达异常行为序列中特定异常行为的概率最大值,同时要记录此最大值所对应的前一个状态信息,即是对第一路径矩阵和第二路径矩阵进行的所有元素进行赋值操作,所经过步骤如下:

步骤1,对第一路径矩阵第一列的所有元素进行赋值操作;

在建立第一路径矩阵的时候,本发明针对矩阵第一路径矩阵第一列所有元素的描述,如下表格所示:

第一矩阵中第一列所有元素统一描述公式为:

其中b代表B矩阵,也就是发射矩阵;在对第一路径矩阵赋值的时候,本发明会通过计算初始状态到所有行为状态S

步骤2,对第二路径矩阵中第一列的所有元素进行赋值;

第一路径矩阵主要适用于确定每个异常行为的最大概率,而第二路径矩阵适用于记录第一路径矩阵中,针对每一个行为节点,其前一个状态信息。

本发明针对第二路径矩阵第一列所有元素的描述,如下表格所示:

第二矩阵中第一列所有元素统一描述公式为:

D

由于第二路径矩阵第一列的所有元素的前一个行为节点都为初始状态π,所以第二路径矩阵中此列所有的元素都初始化为0。

步骤3,本发明还包括对所述第一路径矩阵中除第一列外其余列的所有元素进行赋值;即是计算从初始状态π到任意异常行为V

比如,在对矩阵第二列第一行元素C

其中,maxC

由此,扩展到第一路径矩阵中除第一列外其余列的所有元素的赋值,其统一描述公式为:

其中,maxC

对第一路径矩阵中的所有元素赋值完毕后得到的矩阵表格如下所示:

步骤4,本发明还包括对所述第二路径矩阵中除第一列外其余列的所有元素进行赋值;

第二路径矩阵中的每一个元素,用于记录第一路径矩阵中相同位置的元素,所对应的前一个状态信息;

在步骤3计算第一路径矩阵中,计算从初始状态π到任意异常行为V

操作完毕后,得到第二路径矩阵中,所有元素赋值完毕后的矩阵表格如下所示:

上述技术方案的有益效果在于:通过确定两个路径矩阵,针对训练数据集中某一训练样本的异常行为序列,本发明可以确定其在不同状态下的最优路径,通过后向过程,可以对训练样本中的异常行为序列进行状态标注。

实施例8:

在一个实施例中:所述基于word2vector模型对预设的用户异常行为集合中的异常行为进行编码,并结合所述编码数据对RNN网络进行训练,生成解码器,还包括:

基于word2vector模型,对原始训练集的输出序列进行表征;

用表征后的训练集输出序列,结合所述编码数据,对RNN网络进行训练,得到解码器。

上述技术方案的原理在于:本发明在获取解码器的过程中,会对训练集样本中标签输出的异常行为序列进行词嵌入表征,结合训练集样本中,添加状态标注后的流量特征信息,去训练RNN网络,生成解码器,然后获取待预测的流量特征数据并输入此解码器,得到最终的异常行为序列。

上述技术方案的有益效果在于:解码器的作用是对待预测的用户流量特征数据进行解码,在这个过程中,通过解码器,可以确定待预测的用户特征流量到底会产生什么行为,生成对应的表征序列。

实施例9:

在一个实施例中:所述基于word2vector模型,对原始训练集的输出序列进行表征,包括:

对异常行为集合中的异常行为进行one-hot编码;

建立维度空间,并将所述异常行为状态集中的每一状态作为一个维度进行语义定义;

根据所述语义定义,构建word2vector词嵌入矩阵;

将所述训练数据作为词嵌入矩阵训练集,并对所述词嵌入矩阵训练进行训练,生成词嵌入矩阵。

上述技术方案的原理在于:在本发明中,采用连续词袋模型(CBOW)对词嵌入矩阵进行训练,故需要建立词嵌入矩阵的维度空间,建立维度空间的作用是为了让每一种异常行为都有与之对应的词嵌入属性,能够使词嵌入矩阵得到更合适的表征输出。在构建词嵌入“属性集合”时,本发明将“异常状态”作为“属性集合”的一部分,单就此“异常状态”而言,词嵌入属性代表着用户行为对应每一种状态的权重,例如:某一个用户行为,对应三种状态具有0.5、0.2、0.1三种状态权重时,其在第一种状态时,具有0.5的权重,因此其词嵌入属性更贴合第一种状态。通过这种方式实现对词嵌入矩阵的训练,生成最终的词嵌入矩阵。因为异常行为或者说用户行为是可能存在多种状态的,也可以理解为存在多种词嵌入属性,因此本发明在进行词嵌入计算的时候,是基于维度进行语义定义,每一个维度对应一种词嵌入属性,而多个用户行为的时候就更是包括非常多的词嵌入属性了,而在构建词嵌入“属性集合”时,需要囊括除“异常状态属性”之外的多种属性,这样得到更加全面有效的词嵌入表征。

上述技术方案的有益效果在于:本发明能够增加集合中异常行为对“异常状态”的泛化能力,增加输出序列顺序的正确性。

实施例10:

优选的,所述基于word2vector模型,对原始训练集的输出序列进行表征,还包括:

获取训练后的训练样本,并确定每一个训练样本的词嵌入属性;

通过下式获取异常行为的one-hot向量与此词嵌入矩阵的乘积,确定异常行为的词嵌入属性:

e

其中,E为训练好的词嵌入矩阵;O

根据所述词嵌入属性,构成异常行为集合。

上述技术方案的原理在于:在对异常行为的词嵌入属性获取的时候,本发明是以one-hot向量与词嵌入矩阵乘积得到异常行为的词嵌入属性,将行为和向量对应起来,因此使得词嵌入属性具有指向性,在进行解码的时候,能够非常明确的确定每一个异常行为的词嵌入属性,也就是其输出表征语义能够更加贴合异常行为的特性,更加具有鲁棒性。

实施例11:

优选的,获取所述编码器和解码器;

将待预测的用户流量特征数据依次输入至编码器和解码器,确定解码后的异常行为集合;

获取正在生成的用户画像,并将所述异常行为集合添加至所述正在生成的用户画像,生成用户的目标画像。

上述技术方案的原理在于:在最终的预测过程中,本发明将待预测的流量特征数据输入编码器和RNN解码器,实现编码后再进行解码,从而确定具体的异常行为,得到用户异常行为序列,进而再添加到用户画像的程序中时,最终形成用户画像。

上述技术方案的有益效果在于:用于让生成的目标画像更加符合信息安全攻击特性,更加贴近真实攻击,以及有更高的鲁棒性

实施例12:

入附图2所示,一种隐式马尔可夫链和RNN的用户画像系统,包括:

特征获取模块:用于获取原始数据集的流量特征,确定所述流量特征对应的训练数据,并通过马尔可夫模型进行数据训练,生成编码器;

编码标注模块:用于通过所述编码器和预设的维特比动态规划算法,对所述训练数据进行状态标注,生成编码数据;

RNN解码模块:用于基于word2vector模型对预设的用户异常行为集合中的异常行为进行编码,运用所述编码数据,训练RNN网络,生成解码器;

画像模块:用于获取用户流量特征数据,并依次输入所述编码器和解码器,生成用户集合序列,并在用户行为画像时加入,生成用户画像。

上述技术方案的原理在于:

在对本发明的技术原理进行阐述之前,需要先确定一下现有技术的缺陷,本发明适用于用户画像的技术领域,主要是针对现有技术中训练集偏小情况下,画像不准确的现象,现有技术中,在进行画像的时候,难以对用户进行多维描述,只能表示异常和正常,简而言之就是只能判断用户的行为是“合法或非法”。其次,在现有技术中,当训练集的规模偏小的时候,在RNN网络中,其输出的:“异常行为序列”的效果不好,因为其准确性不足。

在现有技术的技术缺陷确定之后,本发明的原理如下:

本发明为了解决训练集比较小的问题采用了马尔可夫链+RNN的解决思路,本发明通过马尔可夫链充当RNN“行为序列翻译”的编码网络的思想,在生成用户行为画像的时候,将训练集的数据输入马尔可夫链,通过训练好的马尔可夫模型,运用viterbi算法(维特比算法),对原训练集数据中的特征集合的流量特征进行状态标注,获得每个特征的状态信息,并将此基于“状态”信息作为新的特征添加到原训练集中,作为编码网络的最终输出,至此,编码阶段已经完成。在这个过程中,因为训练集比较小,本发明首先采用了流量数据的特征定义,将用户行为和行为状态对应,及攻击行为和攻击结果对应。并将攻击行为和攻击状态作为训练数据代入马尔可夫模型训练,得到编码器,用所述编码器对原始流量特征数据进行编码,生成编码数据。

然后,将所述编码数据输入到RNN解码网络进行训练,得到解码器。

最后,获取待预测的用户流量特征数据,依次输入所述编码器和解码器,生成最终的用户行为集合序列,并最终添加到用户行为画像中去。

上述技术方案的有益效果在于:

本发明设计的马尔可夫链+RNN的架构,在原始训练集偏小的情况,针对RNN输出序列不准确的情况,对基于马尔可夫链的状态假设,向RNN追加信息,提高最终输出序列的准确程度,使得用户画像更加全面有效;

通过在马尔可夫编码网络中添加异常行为的状态信息,然后将添加了状态信息的训练样本输入到RNN,这样,编码网络中所学习到的“异常行为”所对应的“状态”知识可以输入进RNN网络,通过word2vector的词义表征,使得RNN在最终输出序列模型的时候,之前学习到的知识很好在RNN的最终输出产生作用,使得最终的“异常行为输出序列”更能按照之前的“行为状态”特征进行序列输出,使得产生的“异常行为序列”更加符合信息安全攻击特性,更加贴近真实攻击,以及有更高的鲁棒性;

只是在编码网络添加“异常行为”与“攻击状态”的对应关系知识,这种知识不会破坏或者重组对原始“未知攻击”训练集,所以不会产生负面影响,但是这种知识却可以对RNN的最终输出序列产生正面影响,使得输出的序列更符合信息安全攻防特征,当然,如果原始“未知攻击”训练集足够大,RNN也能输出更符合信息安全攻防特征的序列,但事实情况是训练集样本不够大,我们可以单独学习这些重要的知识,巧妙的通过隐式马尔可夫链,在编码阶段将此知识追加到RNN网络,通过word2vector的对此知识加以泛化,从而在小训练集的前提下最大限度的取得想要的效果。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种基于隐式马尔可夫链的危险跟驰行为识别方法
  • 一种基于隐马尔科夫链的非侵入式电器负荷辨识方法
技术分类

06120115930994