一种基于机器学习的网络行为分析方法与流程

    专利2022-07-08  101


    本发明涉及网络行为分析技术领域,具体涉及一种基于机器学习的网络行为分析方法。



    背景技术:

    当前网络环境中,网络实体在身份认证、网络资源访问、业务系统操作等过程中,会产生大量的日志信息,这些日志信息包含了整个服务访问过程中的网络行为,通过已有安全系统可以采集并形成格式化的网络行为数据。

    随着信息系统的迅速发展,网络规模日益庞大,同时随着网络需求的不断增加,业务应用系统也日益复杂。而网络安全事件的层出不穷,也使得信息系统面临着越来越严峻的安全形势,仅依靠安全防御检测与网络行为审计手段已无法满足信息系统的安全需求。

    基于大量日志数据的网络行为分析,需要采用数据挖掘等技术,从无序数据中发现潜在的规则和变化轨迹。数据关联分析是数据挖掘领域常用的一类算法,主要用于发现隐藏在大型数据集中有意义的联系。

    目前,网络安全系统更多关注事件记录和基于规则的异常分析,无法识别海量异构行为数据的潜在安全威胁行为;其次,传统的基于策略模型的信任度量方法不适用于海量高维的动态网络行为数据的信任分析识别;第三,缺少智能化的方法实现对未知可疑、威胁行为的及时发现和预警。



    技术实现要素:

    针对现有技术中的上述不足,本发明提供的一种基于机器学习的网络行为分析方法能够有效解决无法识别海量异构行为数据的潜在安全威胁行为的问题。

    为了达到上述发明目的,本发明采用的技术方案为:一种基于机器学习的网络行为分析方法,包括以下步骤:

    s1、采集数据源网络实体日志数据,并将日志数据处理为网络行为数据;

    s2、对网络行为数据采用聚类算法自动分类为k种行为模式,在每一种行为模式中随机选取若干行为数据序列,对当前行为模式分析并合理命名,利用行为模式名称标记整个数据集,得到网络行为分析识别数据池;

    s3、将卷积神经网络和长短期记忆网络对接,利用网络行为分析识别数据池中的训练数据对初始化的神经网络进行有监督学习,直到分类精度达到目标值,得到网络行为分析识别模型;

    s4、将新数据通过数据采集后,处理为网络行为数据,将其输入到网络行为分析识别模型进行预测分析,将分析结果添加到网络行为分析识别数据池中,当数据池中的新数据到达阈值时,将新数据与旧数据随机混合均匀,对于卷积神经网络进行调参,直到网络准确度达到规定值,得到最终的网络行为分析识别模型,通过最终的网络行为分析识别模型进行网络行为分析。

    进一步地:所述步骤s1中日志数据包括用户日志、设备日志和系统日志。

    进一步地:所述步骤s1中日志数据的处理流程为:

    s11、将日志数据存储到服务器,并分批次将日志数据文件进行去重、补齐操作;

    s12、将日志数据文件转化为json格式状的键值对文件,并根据设备id分组存放;

    s13、将分组好的json文件利用词向量技术word2vec进行降维和映射操作,格式化为可直接用于机器学习的网络行为数据。

    进一步地:所述步骤s2的具体步骤为:

    s21、根据设备id排序各个行为数据样本集,按序处理每个样本集,从当前样本集中随机选取k个初始均值向量,作为各个簇划分的均值向量与其他向量进行计算;

    s22、对于在样本集中的每个样本,分别计算与各个均值向量的欧式距离,将距离最近的均值向量作为当前向量的簇标记,将该样本添加到对应的簇划分中;

    s23、计算每个簇划分中所有向量的均值向量,若该均值向量与均值向量不同,则将该均值向量更新为新的均值向量;

    s24、返回步骤s22,重新计算各个样本与新的均值向量的距离,依次更新,直到所有均值向量不再更新,则开始处理下一个行为数据样本集;

    s25、处理完所有的行为数据样本集后,对于各个簇划分,随机选取若干序列进行定义,并标记所有行为数据,得到网络行为分析识别数据池。

    进一步地:所述步骤s3中卷积神经网络的构建方法为:

    输入数据到卷积层,和若干个卷积核进行卷积操作产生特征向量,将特征向量输入到池化层,通过池化层采用不同的策略对特征向量进行池化操作,输出相等数量的特征向量,通过非线性激活函数得到映射结果,将映射结果依次通过卷积层和池化层,得到卷积神经网络。

    进一步地:所述步骤s3中长短期记忆网络的构建方法为:

    使用长短期记忆网络的当前输入和上一个状态传递下来的隐层拼接得到四个状态,将其中三个状态利用sigmoid激活函数转化为0到1之间的数值,作为一种门控状态,将剩下的一个状态利用tanh激活函数转化为-1到1之间的值,作为输入数据,得到长短期记忆网络。

    进一步地:所述步骤s4中的网络行为分析具体为:将行为数据序列按照时间步通过卷积神经网络提取数据特征生成处理过后的数据,再按照时间步移到长短期记忆网络,通过长短期记忆网络在时间轴上提取时间依赖特征,最后得到行为分析结果。

    本发明的有益效果为:

    (1)本发明提出的网络行为分析识别方法不仅适用于网络行为的分析识别,也适用于设备、应用系统等实体的行为分析识别,都具有较广阔的应用价值;

    (2)本发明构建了一套从数据采集、数据处理、模型训练到分析识别模型更新的完整流程方法,采用机器学习方法自动构建;

    (3)本发明使用了词向量技术,在不丢失特征的前提下降低了数据维度,提高流程处理速度;

    (4)本发明使用了卷积神经网络,该网络可以很好的处理二维行为数据,自动提取特征;

    (5)本发明使用了长短期记忆网络,该网络对于时间线上的网络行为序列可以高效的提取时间特征,更适用于海量网络行为数据的分析识别。

    附图说明

    图1为本发明总工作流程图;

    图2为卷积神经网络的结构原理图;

    图3为长短期记忆网络的模型示意图;

    图4为卷积神经网络和长短期记忆网络的连接示意图。

    具体实施方式

    下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

    如图1所示,一种基于机器学习的网络行为分析方法,包括以下步骤:

    s1、采集数据源网络实体日志数据,并将日志数据处理为网络行为数据;日志数据包括用户日志、设备日志和系统日志。日志数据的处理流程为:

    s11、将日志数据存储到服务器,并分批次将日志数据文件进行去重、补齐操作;

    s12、将日志数据文件转化为json格式状的键值对文件,并根据设备id分组存放;

    s13、将分组好的json文件利用词向量技术word2vec进行降维和映射操作,格式化为可直接用于机器学习的网络行为数据。

    s2、对网络行为数据采用聚类算法自动分类为k种行为模式,在每一种行为模式中随机选取若干行为数据序列,对当前行为模式分析并合理命名,利用行为模式名称标记整个数据集,得到网络行为分析识别数据池;

    模型输入某一设备的未标记的所有行为数据,输出是不同网络行为模式的聚类结果。通过对结果进行分析,分别给类定义行为名称。在这些数据中,以设备id作为唯一标识,处理为多簇同一设备下的按时间排序的一系列行为数据。但同一个设备下的各种行为数据分为多种类型,海量的数据已然不适合人工分析,采用一种聚类算法自动地、智能地为行为数据进行分类。具体步骤为:

    s21、根据设备id排序各个行为数据样本集,按序处理每个样本集,从当前样本集中随机选取k个初始均值向量,作为各个簇划分的均值向量与其他向量进行计算;

    s22、对于在样本集中的每个样本,分别计算与各个均值向量的欧式距离,将距离最近的均值向量作为当前向量的簇标记,将该样本添加到对应的簇划分中;

    s23、计算每个簇划分中所有向量的均值向量,若该均值向量与均值向量不同,则将该均值向量更新为新的均值向量;

    s24、返回步骤s22,重新计算各个样本与新的均值向量的距离,依次更新,直到所有均值向量不再更新,则开始处理下一个行为数据样本集;

    s25、处理完所有的行为数据样本集后,对于各个簇划分,随机选取若干序列进行定义,并标记所有行为数据,得到网络行为分析识别数据池。

    s3、将卷积神经网络和长短期记忆网络对接,利用网络行为分析识别数据池中的训练数据对初始化的神经网络进行有监督学习,直到分类精度达到目标值,得到网络行为分析识别模型;

    输入是聚类后的有标记网络行为分析识别训练数据集,输出是一个训练好的深度学习模型,用于新数据的正确分类。由于本发明在单个时间帧上的网络行为数据是信息量比较大的二维数据,区别于二维数组,数据内部具有很强的关联性,数据元素之间又有着较强的特征关联,所以可以用二维卷积神经网络来对单个网络行为时间帧进行特征提取。由于行为数据往往是一个时间序列,所以可以用长短期记忆网络来对行为数据序列进行特征提取。因为长短期记忆网络在循环神经网络的基础上加入了门结构,可以控制信息流的走向,防止循环神经网络在长时间依赖上的梯度消失现象,特别适合处理时间序列问题。

    卷积神经网络的构建方法为:

    如图2所示,输入数据到卷积层,和若干个卷积核进行卷积操作产生特征向量,将特征向量输入到池化层,通过池化层采用不同的策略对特征向量进行池化操作,池化操作可以有效降低数据的尺寸,还不会对结果有重大影响。输出相等数量的特征向量,通过非线性激活函数得到映射结果,将映射结果依次通过卷积层和池化层,得到卷积神经网络。以此类推。从cnn输出的数据不能直接用于下一层输入,所以利用一层神经元将cnn输出维数转化成下一层需要的维度。

    长短期记忆网络的构建方法为:

    如图3所示,使用长短期记忆网络的当前输入和上一个状态传递下来的隐层拼接得到四个状态,将其中三个状态利用sigmoid激活函数转化为0到1之间的数值,作为一种门控状态,将剩下的一个状态利用tanh激活函数转化为-1到1之间的值,作为输入数据,得到长短期记忆网络。通过内部的三个阶段分别是忘记阶段、选择性记忆阶段和输出阶段来控制传输,记住需要长时间记忆的信息,忘记不重要的信息,输出需要输出的信息。

    将cnn与lstm拼接,通过堆叠多个卷积层和lstm层,建立了一个适用于网络行为分析识别的深度学习模型,由卷积神经网络模型和长短期记忆网络模型组成,如图4所示。

    s4、将新数据通过数据采集后,处理为网络行为数据,将其输入到网络行为分析识别模型进行预测分析,将分析结果添加到网络行为分析识别数据池中,当数据池中的新数据到达阈值时,将新数据与旧数据随机混合均匀,对于卷积神经网络进行调参,直到网络准确度达到规定值,得到最终的网络行为分析识别模型,通过最终的网络行为分析识别模型进行网络行为分析。

    网络行为分析具体为:将行为数据序列按照时间步通过卷积神经网络提取数据特征生成处理过后的数据,再按照时间步移到长短期记忆网络,通过长短期记忆网络在时间轴上提取时间依赖特征,最后得到行为分析结果。

    具体实施方式:

    网络实体数据采集实施

    日志数据清洗:分批次存储终端返回的日志文件log。利用hdf5这种跨平台数据存储工具,分组存放日志文件。当某个设备的数据logi到达,打开缓冲池hi,接受日志文件,同时去除掉重复的数据,对于缺失的数据,用空白占位符补齐,然后按序将logi中的日志数均转化为h5文件。当此设备数据全部读取完成时,关闭hi,再创建一个h5文件缓冲池hi 1,进行同样的操作,直到所有日志数据存储完毕。

    日志文本转换:从h5中读取日志数据,然后将其转化为json格式状的键值对文件,键值为设备id、账号、ip、url、攻击者、服务器,客户端、地理位置、时间、协议、业务操作、流量方向、流量大小、特定区域访问、特定时段访问、登录(成功/失败)等关键特征,然后利用json文件替换掉日志文件并存储于h5文件原来的位置分组。

    数据格式化:从h5中读取json文件,将已分组处理好的json文件利用词向量技术word2vec进行降维、映射操作,处理成m个n维的词向量,以便于更好的用来之后的机器学习以及深度学习。然后利用词向量数据替换json数据并存储起来。这里,把每一个m×n矩阵称之为行为数据。其中,m表示特征个数,n表示词向量维数。

    网络行为模式聚类实施

    根据设备id排序各个行为样本集,按序处理每个样本集。行为样本集d={x1,x2,…xn},其中n为当前样本集元素个数,x为行为数据,是一个m×n矩阵,同时设定聚类簇数k。期望输出是簇划分c={c1,c2,…ck}。

    假定聚类簇数k=3,样本数为10。算法开始时随机选取三个样本xi,xj,xt作为初始均值向量,即为μ1,μ2,μ3。观察样本x1,根据矩阵二范式算出与均值向量的欧式距离分别为d1,d2,d3,假定d3最小,那将x1划入到簇c3中,依次推类,对数据集中的所有样本考察一遍后,可得当前簇划分c1,c2,c3。再次计算出新的均值向量得到μ′1,′2,′3。更新当前均值向量后,不断重复上述过程,直到结果不再更新,算法终止,得到最终簇划分。

    得到簇划分后,可以人为的从划分中随机挑出一些序列,以时间排序,观察和分析数据,人工为这些不同的簇命名,然后标记所有的序列,得到有标记的用户行为分析识别训练数据集,用于下一步基于深度学习的异常行为分析识别模型的构建。例如分析出,当前序列是同一个用户在某一个设备上不间断地登录失败,而且之前较长时间有登陆成功过,则可以将其标记为忘记密码,否则标记为非法登录。

    网络行为分析识别实施:

    基于tensorflow的keras框架实现神经网络模块:

    cnn(卷积神经网络)模块的构建。如图2所示,先构建二维张量输入层input(m,n),此层用来从行为数据池中读取数据,在内部变成专用于神经网络层处理的张量数据。然后构建二维卷积层conv2d(卷积核数,卷积核大小,滑动窗口步长,激活函数),此层为卷积神经网络的核心层,接受上一层的数据,利用设置好的卷积层参数来对数据进行卷积操作,解释二维数据的滑动窗口区域。然后添加一个batchnormalization层用来归一化层间数据,使得各个层的输入输出独立同分布。接着构建二维池化层maxpooling2d(池化规格,激活函数),此层会将集合解释为规模较小的块,将输出减少并合并。然后添加一个batchnormalization层,作用同上所述。将conv2d、batchnormalization、maxpooling2d、batchnormalization作为一个整体,可以叠加两到三层,不过相应的卷积核参数和池化规格参数也要调整。最后构建flatten层将来自上层的输出转换为一维张量,准备作为lstm的输入。

    lstm(长短期记忆网络)模块的构建。如图3所示,keras框架对于lstm层的实现比较简单,内部门控状态实现细节不需要复写,只需要构建一个lstm(序列步长,输入维度,激活函数)即可实现。然后同样需要添加一个batchnormalization层,用来归一化层间数据。

    cnn与lstm的结合。如图4所示,行为序列中的每个序列顺序输入到cnn中,通过卷积层提取数据特征,然后通过池化层简化数据,删除冗余数据,并保留主要特征。将此输出作为单个时间步传递给lstm,最后输出结果。这可以通过将整个cnn模块(一层或多层)包装在timedistributed层中来实现。通过timedistributed层,多个时间步长的卷积层可以共享同一组参数,以便cnn层和lstm层可以正确匹配。首先构建一个或多个cnn层,将它们包装在timedistributed层中,然后构造lstm模块和输出层,在keras中建立了一个深度网络模型。

    深度神经网络的训练。利用反向传播算法(bptt)训练网络。首先初始化第l层的偏置向量bl=0,初始化临时偏置向量cl=0和临时权值矩阵vl=0,从均匀分布(-a,a)中随机初始化l层权值矩阵wl,其中定义第l层隐藏层的输出ul(x)=sigmoid(bl wlul-1(x)),定义第l层的临时输出层的预测fl(x)=vlul(x) cl,计算网络输出。从第一层开始,通过输入ui-1(x)计算ui(x),所有层算完后,通过输入ul(x)计算fl(x),接着通过模型临时输出fl(x)和真实标签y计算预测误差c,并计算偏导数其中ω=(wl,bl,vl,cl),用更新各层参数,直到两次更新相差不大或预测值达到预期的要求,结束训练。

    本发明针对网络行为信任分析识别设计了如上所述的深度模型。该模型可以从网络行为数据下手,进行特征挖掘,然后再利用一系列行为序列推断最后的信任度量值,是一种可靠的分类模型。通过神经网络,可以适应海量高维数据,在今天这种网络大环境下,表现出一定的优越性。


    技术特征:

    1.一种基于机器学习的网络行为分析方法,其特征在于,包括以下步骤:

    s1、采集数据源网络实体日志数据,并将日志数据处理为网络行为数据;

    s2、对网络行为数据采用聚类算法自动分类为k种行为模式,在每一种行为模式中随机选取若干行为数据序列,对当前行为模式分析并合理命名,利用行为模式名称标记整个数据集,得到网络行为分析识别数据池;

    s3、将卷积神经网络和长短期记忆网络对接,利用网络行为分析识别数据池中的训练数据对初始化的神经网络进行有监督学习,直到分类精度达到目标值,得到网络行为分析识别模型;

    s4、将新数据通过数据采集后,处理为网络行为数据,将其输入到网络行为分析识别模型进行预测分析,将分析结果添加到网络行为分析识别数据池中,当数据池中的新数据到达阈值时,将新数据与旧数据随机混合均匀,对于卷积神经网络进行调参,直到网络准确度达到规定值,得到最终的网络行为分析识别模型,通过最终的网络行为分析识别模型进行网络行为分析。

    2.根据权利要求1所述的基于机器学习的网络行为分析方法,其特征在于,所述步骤s1中日志数据包括用户日志、设备日志和系统日志。

    3.根据权利要求1所述的基于机器学习的网络行为分析方法,其特征在于,所述步骤s1中日志数据的处理流程为:

    s11、将日志数据存储到服务器,并分批次将日志数据文件进行去重、补齐操作;

    s12、将日志数据文件转化为json格式状的键值对文件,并根据设备id分组存放;

    s13、将分组好的json文件利用词向量技术word2vec进行降维和映射操作,格式化为可直接用于机器学习的网络行为数据。

    4.根据权利要求1所述的基于机器学习的网络行为分析方法,其特征在于,所述步骤s2的具体步骤为:

    s21、根据设备id排序各个行为数据样本集,按序处理每个样本集,从当前样本集中随机选取k个初始均值向量,作为各个簇划分的均值向量与其他向量进行计算;

    s22、对于在样本集中的每个样本,分别计算与各个均值向量的欧式距离,将距离最近的均值向量作为当前向量的簇标记,将该样本添加到对应的簇划分中;

    s23、计算每个簇划分中所有向量的均值向量,若该均值向量与均值向量不同,则将该均值向量更新为新的均值向量;

    s24、返回步骤s22,重新计算各个样本与新的均值向量的距离,依次更新,直到所有均值向量不再更新,则开始处理下一个行为数据样本集;

    s25、处理完所有的行为数据样本集后,对于各个簇划分,随机选取若干序列进行定义,并标记所有行为数据,得到网络行为分析识别数据池。

    5.根据权利要求1所述的基于机器学习的网络行为分析方法,其特征在于,所述步骤s3中卷积神经网络的构建方法为:

    输入数据到卷积层,和若干个卷积核进行卷积操作产生特征向量,将特征向量输入到池化层,通过池化层采用不同的策略对特征向量进行池化操作,输出相等数量的特征向量,通过非线性激活函数得到映射结果,将映射结果依次通过卷积层和池化层,得到卷积神经网络。

    6.根据权利要求1所述的基于机器学习的网络行为分析方法,其特征在于,所述步骤s3中长短期记忆网络的构建方法为:

    使用长短期记忆网络的当前输入和上一个状态传递下来的隐层拼接得到四个状态,将其中三个状态利用sigmoid激活函数转化为0到1之间的数值,作为一种门控状态,将剩下的一个状态利用tanh激活函数转化为-1到1之间的值,作为输入数据,得到长短期记忆网络。

    7.根据权利要求1所述的基于机器学习的网络行为分析方法,其特征在于,所述步骤s4中的网络行为分析具体为:将行为数据序列按照时间步通过卷积神经网络提取数据特征生成处理过后的数据,再按照时间步移到长短期记忆网络,通过长短期记忆网络在时间轴上提取时间依赖特征,最后得到行为分析结果。

    技术总结
    本发明公开了一种基于机器学习的网络行为分析方法。本发明提出的网络行为分析识别方法不仅适用于网络行为的分析识别,也适用于设备、应用系统等实体的行为分析识别,都具有较广阔的应用价值;本发明构建了一套从数据采集、数据处理、模型训练到分析识别模型更新的完成流程方法,采用机器学习方法自动构建;本发明使用了词向量技术,在不丢失特征的前提下降低了数据维度,提高流程处理速度;本发明使用了卷积神经网络,该网络可以很好的处理二维行为数据,自动提取特征;本发明使用了长短期记忆网络,该网络对于时间线上的网络行为序列可以高效的提取时间特征,更适用于海量网络行为数据的分析识别。

    技术研发人员:卿昱;张春杨;周吉;李小花;余双波;杨雷
    受保护的技术使用者:中国电子科技集团公司第三十研究所
    技术研发日:2020.12.02
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21068.html

    最新回复(0)