一种异常流量检测方法、装置、电子设备及存储介质与流程

文档序号:24691071发布日期:2021-04-16 10:52阅读:99来源:国知局
一种异常流量检测方法、装置、电子设备及存储介质与流程

1.本申请涉及机器学习、监督学习和网络安全的技术领域,具体而言,涉及一种异常流量检测方法、装置、电子设备及存储介质。


背景技术:

2.监督式学习(supervised learning),又被称为有监督学习、监督学习、监督训练或者监督式训练,是机器学习的一种学习范式,可以由训练数据中学习到或建立一个学习模式(learning model)或学习函数,并依此模式推测新的实例;训练数据是由输入数据(通常是向量)和该输入数据对应预期输出的数据标签构成,一个监督式学习者的任务在观察完一些事先标记过的训练范例(输入数据和预期输出的数据标签)后,去预测这个函数对任何可能出现的输入的输出。
3.目前针对流量数据的异常检测大都是基于监督式学习的,即使用有监督神经网络模型对流量数据进行预测,从而确定该流量数据是否为异常流量;具体例如:先从经过网络防火墙的流量数据中解析出源网际协议(internet protocol,ip)地址、目的ip地址、源端口、目的端口和协议组形成的数据记录,再使用有监督神经网络模型中的特征提取网络从这些数据记录中提取出数据特征,然后使用有监督神经网络模型中的分类器对该数据特征进行分类,从而获得分类结果,该分类结果包括:异常流量和正常流量两类结果。然而在实际的过程中发现,流量数据容易随着环境发生变化,使用有监督神经网络模型对流量数据进行检测常常发生误报的情况。因此,现有技术存在着使用有监督神经网络模型对流量数据进行检测的准确率不高的问题。


技术实现要素:

4.本申请实施例的目的在于提供一种异常流量检测方法、装置、电子设备及存储介质,用于改善对流量数据进行检测的准确率不高的问题。
5.本申请实施例提供了一种异常流量检测方法,包括:获取流量数据,并根据流量数据的协议类型对流量数据进行字段提取,获得字段数据;对字段数据进行分词,获得分词后的词语,并对分词后的词语进行向量化,获得分词向量;使用预先训练的无监督神经网络模型对分词向量进行重构,获得重构向量;判断重构向量与分词向量的相似度是否小于预设阈值;若是,则将流量数据确定为异常流量。在上述的实现过程中,由于有监督神经网络模型对数据特征变化不够敏感,且无监督神经网络模型对数据特征变化更加敏感,因此,通过使用无监督神经网络模型对流量数据进行检测,能够有效地减小对流量数据进行检测发生误报的概率,也减少了误报异常检测结果的情况,从而提高了对流量数据进行检测的准确率。
6.可选地,在本申请实施例中,无监督神经网络模型包括:编码器、隐藏层和解码器;使用预先训练的无监督神经网络模型对分词向量进行重构,包括:使用编码器对分词向量进行编码运算,获得编码向量;使用隐藏层对编码向量进行随机采样,获得采样向量;使用
解码器对采样向量进行解码运算,获得重构向量。在上述的实现过程中,通过使用无监督神经网络模型来对分词向量进行重构,由于无监督模型相对于有监督模型对数据特征变化更加敏感,因此,无监督神经网络模型能够更加容易捕捉到流量数据在重构后的重构向量与重构前的分词向量之间的变化,从而减小对流量数据进行检测发生误报的概率,有效地提高了对流量数据进行检测的准确率。
7.可选地,在本申请实施例中,将流量数据确定为异常流量,包括:判断流量数据对应的数据信息是否在白名单中,流量数据是网络防火墙经过检测并确认不存在异常的数据;若否,则将流量数据发送给终端设备,并根据数据信息更新网络防火墙中的异常匹配规则。在上述的实现过程中,通过对网络防火墙经过检测并确认不存在异常的数据进行异常检测,从而减小了流量数据中存在攻击数据的可能性;进一步地,通过根据数据信息更新网络防火墙中的异常匹配规则,能够及时地根据异常检测结果更新防火墙中的异常匹配规则,从而进一步地减小了流量数据中存在攻击数据的可能性。
8.可选地,在本申请实施例中,在将流量数据发送给终端设备之后,还包括:在终端设备对应的安全人员确认流量数据不是异常流量之后,将流量数据对应的数据信息添加至白名单。在上述的实现过程中,通过在终端设备对应的安全人员确认流量数据不是异常流量之后,将流量数据对应的数据信息添加至白名单,从而能够及时地根据异常检测结果更新白名单,减少了误报异常检测结果的情况,有效地提高了对流量数据进行检测的准确率。
9.可选地,在本申请实施例中,根据数据信息更新网络防火墙中的异常匹配规则,包括:在终端设备对应的安全人员确认流量数据是异常流量之后,向网络防火墙发送数据信息,以使网络防火墙更新异常匹配规则。在上述的实现过程中,通过在终端设备对应的安全人员确认流量数据是异常流量之后,向网络防火墙发送数据信息,以使网络防火墙更新异常匹配规则,能够及时地根据异常检测结果更新防火墙中的异常匹配规则,从而减小了流量数据中存在攻击数据的可能性。
10.可选地,在本申请实施例中,在将流量数据确定为异常流量之后,还包括:根据流量数据的历史参考数据和历史参考数据对应的异常结果计算出历史参考数据的准确率和误报率;若准确率小于第一预设比例,或者,误报率大于第二预设比例,则再次对无监督神经网络模型进行训练。在上述的实现过程中,通过若准确率小于第一预设比例,或者,误报率大于第二预设比例,则再次对无监督神经网络模型进行训练,减少了无监督神经网络模型对流量数据进行异常检测出现概念漂移的情况,从而减小了流量数据中存在攻击数据的可能性。
11.可选地,在本申请实施例中,对无监督神经网络模型进行训练,包括:对历史参考数据进行字段提取和分词,获得字段分词结果;使用无监督神经网络模型中的编码器对字段分词结果进行编码,获得编码结果;使用无监督神经网络模型中的隐藏层对编码结果进行随机采样,获得采样结果;使用无监督神经网络模型中的解码器对采样结果进行解码,获得解码结果;计算编码结果与解码结果之间的损失值,并根据损失值对编码器中的参数和解码器中的参数进行更新。
12.本申请实施例还提供了一种异常流量检测装置,包括:字段数据获得模块,用于获取流量数据,并根据流量数据的协议类型对流量数据进行字段提取,获得字段数据;分词向量获得模块,用于对字段数据进行分词,获得分词后的词语,并对分词后的词语进行向量
化,获得分词向量;重构向量获得模块,用于使用预先训练的无监督神经网络模型对分词向量进行重构,获得重构向量;向量相似判断模块,用于判断重构向量与分词向量的相似度是否小于预设阈值;异常流量确定模块,用于若重构向量与分词向量的相似度小于预设阈值,则将流量数据确定为异常流量。
13.可选地,在本申请实施例中,无监督神经网络模型包括:编码器、隐藏层和解码器;重构向量获得模块,包括:向量编码运算模块,用于使用编码器对分词向量进行编码运算,获得编码向量;编码向量采样模块,用于使用隐藏层对编码向量进行随机采样,获得采样向量;向量解码运算模块,用于使用解码器对采样向量进行解码运算,获得重构向量。
14.可选地,在本申请实施例中,异常流量确定模块,包括:数据信息判断模块,用于判断流量数据对应的数据信息是否在白名单中,流量数据是网络防火墙经过检测并确认不存在异常的数据;匹配规则更新模块,用于若流量数据对应的数据信息没有在白名单中,则将流量数据发送给终端设备,并根据数据信息更新网络防火墙中的异常匹配规则。
15.可选地,在本申请实施例中,异常流量检测装置,还包括:数据信息添加模块,用于在终端设备对应的安全人员确认流量数据不是异常流量之后,将流量数据对应的数据信息添加至白名单。
16.可选地,在本申请实施例中,匹配规则更新模块,包括:数据信息发送模块,用于在终端设备对应的安全人员确认流量数据是异常流量之后,向网络防火墙发送数据信息,以使网络防火墙更新异常匹配规则。
17.可选地,在本申请实施例中,异常流量检测装置,还包括:历史数据计算模块,用于根据流量数据的历史参考数据和历史参考数据对应的异常结果计算出历史参考数据的准确率和误报率;模型再次训练模块,用于若准确率小于第一预设比例,或者,误报率大于第二预设比例,则再次对无监督神经网络模型进行训练。
18.可选地,在本申请实施例中,模型再次训练模块,包括:分词结果获得模块,用于对历史参考数据进行字段提取和分词,获得字段分词结果;编码结果获得模块,用于使用无监督神经网络模型中的编码器对字段分词结果进行编码,获得编码结果;采样结果获得模块,用于使用无监督神经网络模型中的隐藏层对编码结果进行随机采样,获得采样结果;解码结果获得模块,用于使用无监督神经网络模型中的解码器对采样结果进行解码,获得解码结果;网络参数更新模块,用于计算编码结果与解码结果之间的损失值,并根据损失值对编码器中的参数和解码器中的参数进行更新。
19.本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
20.本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
附图说明
21.为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
22.图1示出的本申请实施例提供的异常流量检测方法的流程示意图;
23.图2示出的本申请实施例提供的卷积变分自编码器的网络结构示意图;
24.图3示出的本申请实施例提供的对概念漂移进行处理的流程示意图;
25.图4示出的本申请实施例提供的异常流量检测装置的结构示意图;
26.图5示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
27.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。
28.在介绍本申请实施例提供的异常流量检测方法之前,先介绍本申请实施例中所涉及的一些概念:
29.需要说明的是,本申请实施例提供的异常流量检测方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者服务器,服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和unix服务器。
30.在介绍本申请实施例提供的异常流量检测方法之前,先介绍该异常流量检测方法适用的应用场景,这里的应用场景包括但不限于:使用该异常流量检测方法对经过路由器、交换机和硬件防火墙等设备的网络流量数据进行异常检测,或者,使用该异常流量检测方法增强软件防火墙或者硬件防火墙的异常检测功能,提高对网络流量数据进行异常检测的准确率和速度,或者,使用该异常流量检测方法增加企业内网的安全防护等等。
31.请参见图1示出的本申请实施例提供的异常流量检测方法的流程示意图;该异常流量检测方法的主要思路是,由于有监督神经网络模型对数据特征变化不够敏感,且无监督神经网络模型对数据特征变化更加敏感,因此,通过使用无监督神经网络模型对流量数据进行检测,能够有效地减小对流量数据进行检测发生误报的概率,也减少了误报异常检测结果的情况,从而提高了对流量数据进行检测的准确率;上述异常流量监测方法可以包括:
32.步骤s110:获取流量数据,并根据流量数据的协议类型对流量数据进行字段提取,获得字段数据。
33.流量数据,是指需要进行异常检测的网络流量数据,该流量数据可以是超文本传输协议(hyper text transfer protocol,http)的流量数据。
34.上述步骤s110中获取流量数据的实施方式有很多种,包括:
35.第一种实施方式,从防火墙中获取到已经确定没有异常的流量数据,并再次对流量数据进行异常检测,该实施方式包括:使用硬件防火墙或者软件防火墙对流量数据进行异常检测,获得第一次检测结果;电子设备接收并存储该流量数据和该流量数据对应的第一次检测结果至存储设备,并判断第一次检测结果是否是异常流量;若第一次检测结果不是异常流量,则从存储设备中获取该流量数据;若第一次检测结果是异常流量,则可以向硬件防火墙或者软件防火墙发送报警信号,或者,直接生成并输出报警信号。
36.第二种实施方式,从交换机或者路由器获取流量数据,从交换机获取流量数据的实施方式包括:对二层交换机或者三层交换机中确定出需要检测的源端口,并对源端口做
端口镜像,获得目标端口,然后从二层交换机或者三层交换机的目标端口获取流量数据。或者,从路由器获取流量数据的实施方式包括:从路由器经过的流量数据进行筛选,获得筛选后的流量,并对筛选后的流量进行流量镜像,获得需要异常检测的流量数据。
37.上述步骤s110中根据流量数据的协议类型对流量数据进行字段提取的实施方式有很多种,包括但不限于如下几种:
38.第一种实施方式,对http协议的流量数据进行字段提取,该实施方式包括:对http协议的流量数据进行字段提取,提取出字段内容包括:请求方式、完整的请求统一资源定位符(uniform resource locator,url)、请求版本、主机、用户代理、客户端接受编码(accept

encoding)、客户端接收语言(accept

language)、内容类型,内容长度和cookie值等等。
39.第二种实施方式,对除了http协议之外的其它协议的流量数据进行字段提取,此处其它协议包括但不限于:文件传输协议(file transfer protocol,ftp)、简单邮件传输协议(simple mail transfer protocol,smtp)、因特网消息访问协议(internet message access protocol,imap)和简单对象访问协议(simple object access protocol,soap)等等,这些协议中需要提取的字段可以根据具体协议类型的不同而不同,可以根据具体情况进行设置。
40.在步骤s110之后,执行步骤s120:对字段数据进行分词,获得分词后的词语,并对分词后的词语进行向量化,获得分词向量。
41.上述步骤s120的实施方式有很多种,包括但不限于如下几种:
42.第一种实施方式,使用机械式分词法(即基于词典)构建的分词表对字段数据进行分词,该实施方式可以包括:先将字段数据中的“<pad>”、“<unk>”、“<encrypt>”、小写字母a到z、大写字母a到z和所有的符号按照上述顺序加入到新建的词袋中;从字段数据中将每条提取出来的数据按照符号(例如#、¥、%、/等)进行拆分,将拆分后的数据去掉停止词,将词根或词缀相同的词转换成同一个词代替。根据统计拆分后所有的分词和出现频率,去掉频率过低和过高的词,将剩余的高频词加入到词袋中。最终得到词汇量为m的词袋。将词袋中的词,按照顺序,从0~m分别赋予数字编号,得到分词表。在得到分词表以后,按照分词表中的符号、加密数据、高频词和字母的顺序先后对每条数据进行拆分;其中,使用正则表达式对加密数据进行匹配搜索,搜索数据中为16位倍数的加密序列并替换成“<encrypt>”对应的数字编号;对于非加密数据,则可以使用正则表达式搜索分词表中非加密数据对应的数字编号,如果无法搜索到,则用“<unk>”的对应数字编号代替;最终,获得分词向量。
43.第二种实施方式,使用基于统计的分词方法对字段数据进行分词,该实施方式可以包括:以字符和词的形式对字段数据进行拆分,获得分词后的词语(tokenizer),并使用预先构建的分词表对分词后的词语进行向量化,获得分词向量(tokenized vector);其中,此处的分词表是通过对以前收集的流量数据分词后获得的词语(token),然后对词语进行统计去重,并为每个词语分配一个向量(也可以理解为数字编号),即可获得分词表,构建后的分词表例如:{"a":1,"b":2,

,"http":103,

};上述的分词过程也可以理解为,通过分词表将相应的字符或者词语转换成对应的数字编号形成数值型向量(numeric vectors)的过程。
44.在步骤s120之后,执行步骤s130:使用预先训练的无监督神经网络模型对分词向
量进行重构,获得重构向量。
45.无监督神经网络(unsupervised neural network),是指对网络流量数据进行重构的无监督神经网络,此处的无监督又被称为无监督训练或者无监督学习(unsupervised learning),是指需要训练的数据标签不是人工标注的,而是在大规模无监督数据中自动构造数据标签,并使用自动构造的数据标签来进行监督学习或训练;该无监督神经网络具体可以采用卷积变分自编码器等深度神经网络。
46.请参见图2示出的本申请实施例提供的卷积变分自编码器的网络结构示意图;上述卷积变分自编码器可以包括:编码器、隐藏层和解码器;此处的编码器、隐藏层和解码器的具体作用将在下面详细地介绍,上述步骤s130的实施方式可以包括:
47.步骤s131:使用编码器对分词向量进行编码运算,获得编码向量。
48.编码器(encoder),是指对分词向量进行编码运算的神经网络,该编码器可以由两个残差卷积网络块构成,此处的残差卷积网络块可以是由三个一维的卷积层加上激活函数(例如relu函数)层叠加而成,残差块的输出是由其中的第一个一维卷积层的输出矩阵和第三个的一维卷积层的输出矩阵的相加,输入一维的最大池化层、批归一化层和relu激活层。其中,各个神经网络的尺寸和参数可以根据具体情况进行设置,例如:第一个残差卷积块的三个卷积层的过滤器个数为256;核大小规格5;第二个残差卷积块的三个卷积层的过滤器个数为128;核大小规格为5。
49.上述步骤s131的实施方式例如:首先,将输入的分词向量从高维度向量转换为保留同样信息的低维向量,获得转换后的分词向量;使用编码器对转换后的分词向量进行编码运算,获得编码向量;其中,若卷积变分自编码器的数据输入要求是固定的,则可以将分词向量在尾部用预设数字编号进行填充,从而让分词向量达到卷积变分自编码器的数据输入要求。
50.步骤s132:使用隐藏层对编码向量进行随机采样,获得采样向量。
51.上述步骤s132的实施方式例如:由于编码器的输出满足高斯概率密度,因此,可以使用隐藏层对编码向量进行随机采样,获得采样向量。
52.步骤s133:使用解码器对采样向量进行解码运算,获得重构向量。
53.解码器,是指对采样向量进行解码运算的神经网络,可以理解的是,各个神经网络的尺寸和参数可以根据具体情况进行设置的,解码器的网络结构和编码器的网络结构是类似的,区别仅在于,编码器中使用的是卷积网络,而解码器中使用的是反卷积网络。
54.上述步骤s133的实施方式例如:在使用隐藏层获得采样向量之后,可以使用解码器对采样向量进行解码运算,尝试将采样向量还原为输入的分词向量,该解码器可以由两个残差反卷积网络块构成,此处的残差反卷积网络块可以是由三个一维的反卷积层加上激活函数(例如relu函数)层叠加而成,残差块的输出是由其中的第一个一维反卷积层的输出矩阵和第三个的一维反卷积层的输出矩阵的相加,输入一维的最大池化层、批归一化层和relu激活层。
55.在步骤s130之后,执行步骤s140:判断重构向量与分词向量的相似度是否小于预设阈值。
56.上述步骤s140的实施方式例如:计算重构向量与分词向量的相似度,并判断重构向量与分词向量的相似度是否小于预设阈值;其中,此处的相似度可以采用余弦(cosine)
距离、欧氏距离(euclidean distance)、汉明距离(hamming distance)或信息熵(information entropy)等等;此处的预设阈值也可以根据具体情况进行设置,例如将预设阈值设置为70%、80%或90%等。其中,假设以余弦距离为例进行计算,那么可以根据下面的公式:
[0057][0058]
计算重构向量与分词向量的余弦距离;其中,s
i
表示第i个重构向量与第i个分词向量的余弦距离相似度,x
i
表示第i个分词向量,表示第i个重构向量,n表示分词向量的个数或者重构向量的个数。
[0059]
上述步骤s140中的预设阈值可以根据具体情况进行设置,具体例如:使用均值标准差的方法和68

95

99.7规则(经验规则)如下的公式来计算:
[0060][0061]
其中,threshold表示预设阈值,表示所有相似度的平均值,可以通过公式计算获得,si表示第i个重构向量与第i个分词向量的余弦距离相似度,μ表示所有相似度的数学期望,σ表示所有相似度的方差。
[0062]
在步骤s140之后,执行步骤s150:若重构向量与分词向量的相似度小于预设阈值,则将流量数据确定为异常流量。
[0063]
其中,流量数据是网络防火墙经过检测并确认不存在异常的数据,若上述的重构向量与分词向量的相似度小于预设阈值,则将流量数据确定为异常流量;此处的预设阈值也可以根据具体情况进行设置,例如将预设阈值设置为70%、80%或90%等。
[0064]
上述步骤s150的实施方式包括:若重构向量与分词向量的相似度小于或等于预设阈值,则将流量数据确定为异常流量;若重构向量与分词向量的相似度大于预设阈值,则将流量数据确定为正常流量;在具体实践过程中,可以使用公式表示为:
[0065][0066]
其中,threshold表示预设阈值,s
i
表示第i个重构向量与第i个分词向量的余弦距离相似度,表示将流量数据确定为异常流量,表示将流量数据确定为正常流量。
[0067]
可选地,在将流量数据确定为异常流量之后,还可以根据安全人员的判断来更新白名单和防火墙中的异常匹配规则,该实施方式可以包括:判断流量数据对应的数据信息是否在白名单中;若流量数据对应的数据信息不在白名单中,则将流量数据发送给终端设备,并根据数据信息更新网络防火墙中的异常匹配规则;在终端设备对应的安全人员确认流量数据是异常流量之后,向网络防火墙发送数据信息,以使网络防火墙更新异常匹配规
则。
[0068]
可选地,在本申请实施例中,在将流量数据发送给终端设备之后,还可以让终端设备对应的安全人员确认,在确认后更新白名单,该实施方式可以包括:在终端设备对应的安全人员确认流量数据不是异常流量之后,将流量数据对应的数据信息添加至白名单,具体例如:将http流量数据中的网际协议(internet protocol,ip)地址或者域名地址添加至白名单。
[0069]
在上述的实现过程中,先根据流量数据的协议类型对流量数据进行字段提取,获得字段数据,然后对字段数据进行分词,获得分词后的词语,并对分词后的词语进行向量化,获得分词向量,再使用预先训练的无监督神经网络模型对分词向量进行重构,获得重构向量;最后判断重构向量与分词向量的相似度是否小于预设阈值;若重构向量与分词向量的相似度小于预设阈值,则将流量数据确定为异常流量。也就是说,由于有监督神经网络模型对数据特征变化不够敏感,且无监督神经网络模型对数据特征变化更加敏感,因此,通过使用无监督神经网络模型对流量数据进行检测,能够有效地减小对流量数据进行检测发生误报的概率,也减少了误报异常检测结果的情况,从而提高了对流量数据进行检测的准确率。
[0070]
请参见图3示出的本申请实施例提供的对概念漂移进行处理的流程示意图;可选地,在本申请实施例中,在将流量数据确定为异常流量之后,还可能出现概念漂移,此处的概念漂移是指随着时间的变化,对流量数据进行异常检测的准确率下降或者误报率上述的情况;对概念漂移进行处理的方式可以包括:
[0071]
步骤s210:根据流量数据的历史参考数据和历史参考数据对应的异常结果计算出历史参考数据的准确率和误报率。
[0072]
上述步骤s210的实施方式例如:获取流量数据的历史参考数据,并对历史参考数据进行人工标记,获得历史参考数据对应的异常结果,然后根据流量数据的历史参考数据和历史参考数据对应的异常结果计算出历史参考数据的准确率和误报率;其中,对历史参考数据进行人工标记的具体过程例如:首先使用传统网络防火墙对历史参考数据进行异常检测对异常的数据标记为1,对正常的数据标记为0;然后再使用人工来筛查和核对历史参考数据对应的异常结果的标记是否正确。
[0073]
步骤s220:若准确率小于第一预设比例,或者,误报率大于第二预设比例,则再次对无监督神经网络模型进行训练。
[0074]
在具体的实施过程中,由于无监督神经网络模型可能会定期出现概念漂移的情况,因此,也可以定期地对无监督神经网络模型进行训练,从而减小无监督神经网络模型出现概念漂移的概率。
[0075]
上述步骤s220中的对无监督神经网络模型进行训练的实施方式包括:
[0076]
步骤s221:对历史参考数据进行字段提取和分词,获得字段分词结果。
[0077]
其中,该步骤s221的实施原理和实施方式与步骤s110至步骤s120的实施原理和实施方式是类似的,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤s110至步骤s120的描述。
[0078]
步骤s222:使用无监督神经网络模型中的编码器对字段分词结果进行编码,获得编码结果。
[0079]
步骤s223:使用无监督神经网络模型中的隐藏层对编码结果进行随机采样,获得采样结果。
[0080]
步骤s224:使用无监督神经网络模型中的解码器对采样结果进行解码,获得解码结果。
[0081]
其中,上述步骤s222至步骤s224的实施原理和实施方式与步骤s131至步骤s133的实施原理和实施方式是类似的,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤s131至步骤s133的描述。
[0082]
步骤s225:计算编码结果与解码结果之间的损失值,并根据损失值对编码器中的参数和解码器中的参数进行更新。
[0083]
上述步骤s225的实施方式例如:根据损失函数来计算编码结果与解码结果之间的损失值,并根据损失值对编码器中的参数和解码器中的参数进行更新;其中,此处的损失函数可以采用kl散度(kullback

leibler divergence,kld)或者js散度(jensen shannon divergence,jsd)来设计。为了便于理解和说明,此处采用kl散度来计算编码结果与解码结果之间的损失值,该损失函数例如:
[0084][0085]
其中,l
i
(θ,φ)表示该损失函数,每条数据的损失函数合并的得到整体的损失可以表示为以表示为表示上述的编码器,p
φ
(x|z)表示上述的解码器,i=1,2,

,k表示第i个编码结果或者第i个解码结果,k表示第i个编码结果的数量或者第i个解码结果的数量,表示对分词向量进行重构的损失值,kl(q
θ
(z|x
i
)||p(z))表示kl散度的损失值。在具体的实践过程中,还可以使用adam的梯度下降法对编码器和解码器的对应的参数进行优化更新。
[0086]
请参见图4示出的本申请实施例提供的异常流量检测装置的结构示意图;本申请实施例提供了一种异常流量检测装置300,包括:
[0087]
字段数据获得模块310,用于获取流量数据,并根据流量数据的协议类型对流量数据进行字段提取,获得字段数据。
[0088]
分词向量获得模块320,用于对字段数据进行分词,获得分词后的词语,并对分词后的词语进行向量化,获得分词向量。
[0089]
重构向量获得模块330,用于使用预先训练的无监督神经网络模型对分词向量进行重构,获得重构向量。
[0090]
向量相似判断模块340,用于判断重构向量与分词向量的相似度是否小于预设阈值。
[0091]
异常流量确定模块350,用于若重构向量与分词向量的相似度小于预设阈值,则将流量数据确定为异常流量。
[0092]
可选地,在本申请实施例中,无监督神经网络模型包括:编码器、隐藏层和解码器;重构向量获得模块,包括:
[0093]
向量编码运算模块,用于使用编码器对分词向量进行编码运算,获得编码向量。
[0094]
采样向量获得模块,用于使用隐藏层对编码向量中的向量点进行随机采样,获得
采样向量。
[0095]
向量解码运算模块,用于使用解码器对采样向量进行解码运算,获得重构向量。
[0096]
可选地,在本申请实施例中,异常流量确定模块,包括:
[0097]
数据信息判断模块,用于判断流量数据对应的数据信息是否在白名单中,流量数据是网络防火墙经过检测并确认不存在异常的数据。
[0098]
匹配规则更新模块,用于若流量数据对应的数据信息没有在白名单中,则将流量数据发送给终端设备,并根据数据信息更新网络防火墙中的异常匹配规则。
[0099]
可选地,在本申请实施例中,异常流量检测装置,还包括:
[0100]
数据信息添加模块,用于在终端设备对应的安全人员确认流量数据不是异常流量之后,将流量数据对应的数据信息添加至白名单。
[0101]
可选地,在本申请实施例中,匹配规则更新模块,包括:
[0102]
数据信息发送模块,用于在终端设备对应的安全人员确认流量数据是异常流量之后,向网络防火墙发送数据信息,以使网络防火墙更新异常匹配规则。
[0103]
可选地,在本申请实施例中,异常流量检测装置,还可以包括:
[0104]
历史数据计算模块,用于根据流量数据的历史参考数据和历史参考数据对应的异常结果计算出历史参考数据的准确率和误报率。
[0105]
模型再次训练模块,用于若准确率小于第一预设比例,或者,误报率大于第二预设比例,则再次对无监督神经网络模型进行训练。
[0106]
可选地,在本申请实施例中,模型再次训练模块,包括:
[0107]
分词结果获得模块,用于对历史参考数据进行字段提取和分词,获得字段分词结果。
[0108]
编码结果获得模块,用于使用无监督神经网络模型中的编码器对字段分词结果进行编码,获得编码结果。
[0109]
采样结果获得模块,用于使用无监督神经网络模型中的隐藏层对编码结果进行随机采样,获得采样结果。
[0110]
解码结果获得模块,用于使用无监督神经网络模型中的解码器对采样结果进行解码,获得解码结果。
[0111]
网络参数更新模块,用于计算编码结果与解码结果之间的损失值,并根据损失值对编码器中的参数和解码器中的参数进行更新。
[0112]
应理解的是,该装置与上述的异常流量检测方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,os)中的软件功能模块。
[0113]
请参见图5示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备900,包括:处理器910和存储器920,存储器920存储有处理器910可执行的机器可读指令,机器可读指令被处理器910执行时执行如上的方法。
[0114]
本申请实施例还提供了一种存储介质930,该存储介质930上存储有计算机程序,该计算机程序被处理器910运行时执行如上的方法。
[0115]
其中,存储介质930可以由任何类型的易失性或非易失性存储设备或者它们的组
合实现,如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read

only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory,简称eprom),可编程只读存储器(programmable red

only memory,简称prom),只读存储器(read

only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
[0116]
本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以使用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0117]
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0118]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0119]
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1