一种基于LSTM的网络行为异常检测方法与流程

文档序号:18797376发布日期:2019-09-29 19:54阅读:2997来源:国知局
一种基于LSTM的网络行为异常检测方法与流程

本发明属于网络安全技术领域,更为具体地讲,涉及一种基于lstm的网络行为异常检测方法。



背景技术:

随着全球网络信息产业的飞速发展,各种数据交互越来越频繁,在计算机越来越融入人们生活的今天,人们也越来越离不开网络。特别是近年来移动互联网的兴起,更是把人们拉入了网络信息化时代。然而在日益复杂的网络环境中,针对网络实体的攻击越来越频繁,攻击方式也越来越朝着多样化与复杂化的方向发展,这些网络攻击轻则影响被攻击者的服务质量,重则造成信息泄露、网络瘫痪,造成巨大的经济损失。所以,如何通过一种高效且精确地方式检测网络异常行为,对于网络服务提供方和用户都是相当重要的。

网络安全体系经过了传统的“非黑即白”的两代体系发展,目前已经发展到通过查找行为的方式来判断用户的行为是否存在异常。第一代网络安全体系是通过“黑名单”的方式来对病毒木马进行查杀。第二代网络安全体系是采用“白名单”的机制来判断用户的行为是否可信。第三代网络安全体系则是运用大数据、人工智能、机器学习等技术手段对用户的行为数据进行采集、分析和研判,对用户的异常行为进行预警。

lstm,即longshort-termmemory长短期记忆网络,是一种基于循环神经网络rnn的时间递归神经网络,适用于时间序列的分析拟合。lstm算法已经在机器翻译、情感分析、图像分析、文档摘要、语音识别和推荐系统等多个人工智能领域有了广泛的应用,是一种成熟的机器学习算法,但在网络行为异常检测领域的应用仍处于起步阶段长短期记忆网络。



技术实现要素:

本发明的目的在于克服现有技术的不足,提出了一种检测网络异常行为的方法,通过对用户行为模式进行分类,并结合lstm神经网络模型及attention机制,可以显著提升对网络异常行为检测的准确率。

为实现上述发明目的,本发明基于lstm的网络行为异常检测方法,其特征在于,包括以下步骤:

(1)、网络流量数据收集及清洗整理

用于异常检测的流量数据一般是通过部署在各主机终端的分布式代理进行收集,各分布式代理收集得到的流量数据再向上一级代理汇聚。之后再根据分析需求对收集的流量数据进行清洗。接着再针对当前的网络数据,明确在网络中用户行为的定义,并对网络数据中的每个用户抓取转换为用户行为轨迹序列。

(2)、行为序列分类

对于所有用户的行为轨迹序列,按照k-中心点算法进行聚类,将其分为k个不同类别的行为序列。对于需要进行网络行为异常检测的用户即待检测用户,将其行为序列与k个不同类别的行为序列的簇中心点进行相似性度量,取其最相似的一类作为待检测用户行为序列的类别。

(3)、建立lstm神经网络模型

将步骤二中得到的k类行为序列数据作为k个lstm神经网络的输入数据,结合attention机制对lstm神经网络进行训练,得到训练完成的k个lstm神经网络模型。其中,每个神经网络模型对应于一种用户行为类别。

(4)、网络行为异常检测

对待检测用户,将其行为序列作为对应类别的lstm神经网络模型的输入,并将模型的行为预测与真实的行为之间的差异作为网络行为的异常程度。

本发明的目的是这样实现的。

本发明一种基于lstm的网络行为异常检测方法,首先收集网络流量数据并根据用户行为的定义将其整理为用户行为轨迹序列。同时,考虑到网络用户主体行为模式之间的差异性,因此本发明通过k-中心点算法对用户行为序列进行分类。接着,将分类后的行为序列数据作为lstm长短期记忆网络的输入,结合attention机制对神经网络模型进行训练。最后通过训练完成的模型对待检测行为序列进行预测以确定其异常程度。本发明从行为的角度出发对网络流量数据进行处理,能够充分考虑内部因素之间的关联关系,并建立网络行为模式将用户的行为区分开来,然后突破传统网络异常检测采用人工提取特征的方法,结合lstm长短期记忆网络对大规模网络行为序列数据流的发展拟合效果来区分异常信息,显著提高了网络异常检测的精度和效率。

附图说明

图1是本发明一种基于lstm的网络行为异常检测方法的一种具体实施方式流程图;

图2是本发明中用户行为序列的示意图;

图3是本发明一种基于lstm的网络行为异常检测方法的lstm模型示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

图1是本发明一种基于lstm的网络行为异常检测方法的一种具体实施方式流程图。

在本实施例中,如图1所示,本发明一种基于lstm的网络行为异常检测方法包括以下步骤:

s1:网络流量数据收集及清洗整理

网络流量数据即用户在访问具体网络实体时记录的日志信息,比如访问时间、ip地址、源端口、目的端口和操作命令等。

根据用户访问的具体网络实体,明确用户行为序列的具体定义,将网络流量数据整理为用户行为序列。用户行为序列也可以叫做“基于时间序列的用户行为”,是在某一时间段内,按照时间先后顺序记录的人从事某种活动的每一步行为。

例如图2中所示,在网站上,一段时间内,一个用户从进入网站到离开网站过程中的每一步行为的记录,记录为一条用户行为序列。

s2:行为序列分类

一般来说,用户通常是在网络上进行一系列活动的行为主体。因为每个人的身份以及生活习惯的差异,用户之间的行为模式是有差异的,所以需要将用户行为序列进行分类,以此来提高异常检测的准确性。

首先需要对行为序列之间进行相似性度量,为了能够更加清晰的描述本发明中的用户行为序列相似度度量方法给出如下几个定义:

定义一:子序列。若给定行为序列x=(x1,x2,…xm),则另一序列z=(z1,z2,…zm)为x的子序列是指存在一个严格递增的下标序列(i1,i2,…im),使得对于所有的j=1,…,k,有设起始下标为1。

定义二:公共子序列。有给定两个个行为序列x和y,当另一个序列z既是x的子序列又是y的子序列,则z是序列x和y的公共子序列。其中z最长的序列是x和y的最长公共子序列。

有了子序列和公共子序列的定义后,就可以通过动态规划算法求出两个用户行为序列之间的最长公共子序列。用c[i][j]保存x=(x1,x2,…xm)和y=(y1,y2,…yn)的最长公共子序列,则:

由此可以求得两个用户行为序列之间的最长的公共子序列。

有了每个用户的行为序列之后,就可以通过计算用户之间的相似度来表示两个用户行为之间的相似程度和关系。用户行为序列相似度通过用户行为模式相似度实现。为了计算行为模式的相似度,首先计算行为模式距离。下面介绍行为模式距离的计算方法。

行为模式距离计算过程中需要计算行为序列之间的距离,因此首先定义行为序列之间的距离。为了使两个行为序列的公共子序列更长、相似度更大、两个行为序列之间的距离更小,将行为序列间的距离定义如下:

其中|x|和|y|表示行为序列x和行为序列y的长度,lcs(x,y)为两个行为序列x和y的最长公共子序列。

实际上,上式中的后半部分可以用来衡量两个行为序列x和y的相似性。当x和y完全相同时,d(x,y)=0;当x和y没有任何公共子序列时,d(x,y)=1。

有了行为模式的距离定义后,就可以对用户行为序列进行聚类,从而用户行为模式区分开来以提高异常检测的准确性。为了快速检测异常行为,需要一种快速的聚类算法来完成聚类任务,在聚类算法中,k-中心点方法简单、快速,能满足需要,并且在面对存在“噪声”和孤立点的网络数据时健壮,因此选用k-中心点方法。

k-中心点方法的基本策略是:首先任意为每个聚类找到一个代表行为序列对象,其他对象则根据他们与这些聚类代表对象的距离分别将它们归属到各相应聚类中心(按照上步中的距离计算方法),而如果替换一个聚类代表能够改善所获聚类质量的话,那么就可以用一个新代表对象替换老聚类代表对象。迭代下去,就可以将所以行为序列分类到k个不同的类别。

s3:建立lstm神经网络模型

首先针对k个不同类别的用户行为序列分别建立k种不同的lstm神经网络模型,每个网络的输入是该类网络对应的行为序列数据。所述模型的运行流程为:将对应的行为序列的前n-1个行为编码为隐变量作为神经网络的输入层,使用attention机制,通过对隐变量分配注意力权重系数,将隐变量生成包含整条行为序列数据流信息的上下文变量;lstm长短期记忆网络层数越多,其对行为序列的学习预测能力越强。但层数过高时会使模型的训练难以收敛,因此本发明中使用3层的lstm网络。同时,在最后加一层全连接层用于输出结果的降维,如图3所示。最后使用softmax函数作为神经网络的输出层,对应的标签信息为该行为序列最后一个行为的类别。通过梯度下降反向传播损失训练神经网络模型,并不断对模型的参数进行调整,最终获得训练完成的lstm神经网络模型。

s4:网络行为异常检测

对收集到的待检测的网络流量数据,首先进行数据预处理,然后根据用户访问的具体网络实体,明确用户行为序列的具体定义,将预处理后的网络流量数据整理为用户行为序列。

对该用户行为序列,按照步骤二中的方法将其与其他k个簇中心行为序列对象进行相似性度量,找到相似性最大的中心行为序列对象,将待检测用户行为序列标记为中心行为序列对象对应的类别。

将该行为序列除去最后一个行为后作为输入数据,输入该类别对应的训练完成的lstm神经网络模型。模型将这段行为序列编码为隐变量,并通过attention机制,将隐变量生成包含整条行为序列数据流信息的上下文变量,预测该行为序列下一个行为的类别并通过softmax函数输出归一化后的离散概率分布。

将lstm神经网络预测出的下个行为的概率分布向量x1与真实的下个行为类别的one-hot向量x2按下式计算曼哈顿距离,其距离的大小作为异常检测指标,距离越大,认为该网络行为的异常可能越大:

其中,d12表示向量x1与x2的距离,m为概率分布向量的维度,也即网络行为的类别数。

本发明中,针对传统网络异常检测方法中的不足提出了一种基于lstm的网络行为异常检测方法。本发明中在网络行为序列分类和lstm网络异常检测等关键技术上做出了创新。

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

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