异常检测方法、装置及设备与流程

文档序号:24250084发布日期:2021-03-12 13:28阅读:84来源:国知局
异常检测方法、装置及设备与流程

本申请涉及通信技术领域,尤其是涉及一种异常检测方法、装置及设备。



背景技术:

随着网络技术的不断发展和承载业务的逐渐增多,网络已成为人们生活和工作中不可或缺的一部分。与此同时,网络中的攻击行为越来越多,各类网络攻击活动日益猖獗,如端口扫描攻击、蠕虫病毒攻击、ddos(distributeddenialofservice,分布式拒绝服务)攻击、勒索病毒攻击等,这些攻击行为导致网络性能下降,干扰正常的网络行为,甚至引起网络中断或者瘫痪。因此,需要及时检测到网络中的异常流量(即攻击行为产生的流量),对异常流量进行控制。

为了检测到网络中的异常流量,可以根据经验配置流量阈值。在任意时刻,若网络中的流量值大于该流量阈值,就认为存在异常流量。若网络中的流量值不大于该流量阈值,就认为不存在异常流量。但是,流量值过大并不意味着一定存在异常流量,有可能只是单纯的网络繁忙,因此,仅根据流量值是否大于流量阈值判断是否存在异常流量,存在比较大的误差,检测结果不准确。



技术实现要素:

本申请提供一种异常检测方法,所述方法包括:

获取目标训练数据集,所述目标训练数据集包括多个训练数据,每个训练数据包括多个数据特征;

将所述目标训练数据集输入给第一机器学习模型,以使所述第一机器学习模型基于所述多个训练数据确定每个数据特征对应的分数值;

基于每个数据特征对应的分数值对所有数据特征进行排序,并基于排序结果选取分数值高的m个数据特征,并基于所述m个数据特征确定第一目标特征向量,所述m为正整数;

将所述第一目标特征向量输入给第二机器学习模型,通过所述第一目标特征向量对所述第二机器学习模型进行训练,得到已训练的第二机器学习模型;

基于所述已训练的第二机器学习模型检测网络数据是否为异常数据。

本申请提供一种异常检测装置,所述装置包括:

获取模块,用于获取目标训练数据集,所述目标训练数据集包括多个训练数据,每个训练数据包括多个数据特征;

处理模块,用于将所述目标训练数据集输入给第一机器学习模型,以使所述第一机器学习模型基于所述多个训练数据确定每个数据特征对应的分数值;

确定模块,用于基于每个数据特征对应的分数值对所有数据特征进行排序,并基于排序结果选取分数值高的m个数据特征,并基于所述m个数据特征确定第一目标特征向量,所述m为正整数;

所述处理模块,还用于将所述第一目标特征向量输入给第二机器学习模型,通过所述第一目标特征向量对所述第二机器学习模型进行训练,得到已训练的第二机器学习模型;

检测模块,用于基于所述已训练的第二机器学习模型检测网络数据是否为异常数据。

本申请提供一种异常检测设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;

所述处理器用于执行机器可执行指令,以实现如下步骤:

获取目标训练数据集,所述目标训练数据集包括多个训练数据,每个训练数据包括多个数据特征;

将所述目标训练数据集输入给第一机器学习模型,以使所述第一机器学习模型基于所述多个训练数据确定每个数据特征对应的分数值;

基于每个数据特征对应的分数值对所有数据特征进行排序,并基于排序结果选取分数值高的m个数据特征,并基于所述m个数据特征确定第一目标特征向量,所述m为正整数;

将所述第一目标特征向量输入给第二机器学习模型,通过所述第一目标特征向量对所述第二机器学习模型进行训练,得到已训练的第二机器学习模型;

基于所述已训练的第二机器学习模型检测网络数据是否为异常数据。

基于上述技术方案,本申请实施例中,可以使用第二机器学习模型检测网络数据是否为异常数据,即,使用机器学习方法来检测网络异常,从而提高检测是否存在异常数据的准确性,减少错误的检测结果,减少误报和漏报等情况。通过使用第一机器学习模型(如随机森林回归网络模型)从多个数据特征中选取分数值高的m个数据特征,即使用第一机器学习模型筛选最优数据特征,大大减少了特征计算量,避免大量数据特征的运算耗费机器性能。通过使用第二机器学习模型(如xgboost网络模型)得到较好的异常检测效果。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。

图1是本申请一种实施方式中的异常检测方法的流程图;

图2是本申请一种实施方式中的异常检测方法的流程图;

图3是本申请一种实施方式中的异常检测方法的流程图;

图4a-图4e是本申请一种实施方式中的测试效果示意图;

图5是本申请一种实施方式中的异常检测装置的结构图;

图6是本申请一种实施方式中的异常检测设备的结构图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例中提出一种异常检测方法,该方法可以基于机器学习方法实现网络异常检测,即基于机器学习方法检测网络数据(如网络流量)是否为异常数据(如异常流量)。该方法可以应用于异常检测设备,该异常检测设备可以是任意类型的设备,如路由器、交换机、服务器、笔记本电脑、主机、pc(personalcomputer,个人计算机)等,对此异常检测设备的类型不做限制。

参见图1所示,为异常检测方法的流程图,该方法可以包括:

步骤101,获取目标训练数据集,该目标训练数据集可以包括多个训练数据,每个训练数据可以包括多个数据特征。此外,每个训练数据还可以包括该训练数据的第一标签信息,该第一标签信息用于表示该训练数据为正常数据或者异常数据。比如说,若第一标签信息为第一取值,则表示该训练数据为正常数据,若第一标签信息为第二取值,则表示该训练数据为异常数据。

示例性的,第一取值和第二取值可以根据经验配置,如第一取值为0,第二取值为1,或者,第一取值为1,第二取值为0,当然,上述只是示例。

在一种可能的实施方式中,可以采用如下方式获取目标训练数据集:

方式一、获取原始训练数据集,该原始训练数据集可以包括n种攻击类型的训练数据,n可以为正整数,并将该原始训练数据集确定为目标训练数据集。

示例性的,原始训练数据集是用于对网络模型(该网络模型的内容参见后续实施例)进行训练的数据集,为了区分方便,将该数据集称为原始训练数据集,对此原始训练数据集的获取方式不做限制,如该原始训练数据集可以为入侵检测评估数据集,即cicids数据集,如cicids2018或者cicids2017等。

在原始训练数据集中,可以包括n种攻击类型的训练数据,例如,端口扫描攻击类型的训练数据、蠕虫病毒攻击类型的训练数据、ddos攻击类型的训练数据、勒索病毒攻击类型的训练数据等,对此攻击类型不做限制。

针对每种攻击类型的训练数据,该训练数据可以包括多个数据特征和第一标签信息,例如,该训练数据可以为正样本训练数据或者负样本训练数据,若该训练数据为正样本训练数据,则第一标签信息用于表示该训练数据为正常数据(即不是该攻击类型的攻击数据),若该训练数据为负样本训练数据,则第一标签信息用于表示该训练数据为异常数据(即该攻击类型的攻击数据)。

数据特征是能够反映训练数据的特征,可以是任意类型的特征,如上行流量特征,下行流量特征,源ip地址特征,目的ip地址特征,协议类型特征,时间戳特征,操作系统类型特征等等,对此数据特征的类型不做限制。

在每个训练数据中,均可以包括多个数据特征,不同训练数据中的数据特征可以完全相同,也可以部分相同,还可以完全不同,对此不做限制。

示例性的,在将原始训练数据集确定为目标训练数据集后,目标训练数据集与原始训练数据集相同,目标训练数据集包括n种攻击类型的训练数据,针对每种攻击类型的训练数据,该训练数据包括多个数据特征和第一标签信息。

后续实施例中,将目标训练数据集记为目标训练数据集a,目标训练数据集a包括攻击类型1的多个训练数据和攻击类型2的多个训练数据。攻击类型1的多个训练数据包括正样本训练数据和负样本训练数据,正样本训练数据的数量可大于负样本训练数据的数量,如正样本训练数据占比为70%,负样本训练数据占比为30%。正样本训练数据的数量也可小于或等于负样本训练数据的数量。同理,攻击类型2的多个训练数据也包括正样本训练数据和负样本训练数据。

方式二、获取原始训练数据集,该原始训练数据集可以包括n种攻击类型的训练数据,n可以为正整数,并获取与n种攻击类型对应的n个目标训练数据集,其中,攻击类型与目标训练数据集一一对应,且每个目标训练数据集只包括与该目标训练数据集对应的攻击类型的训练数据。

示例性的,关于原始训练数据集的内容,参见方式一,在此不再赘述。

在得到原始训练数据集后,假设原始训练数据集包括攻击类型1的训练数据和攻击类型2的训练数据,则可以获取与攻击类型1对应的目标训练数据集b1,并获取与攻击类型2对应的目标训练数据集b2。目标训练数据集b1包括攻击类型1的多个训练数据(如正样本训练数据和负样本训练数据),而不包括攻击类型2的训练数据。目标训练数据集b2包括攻击类型2的多个训练数据(如正样本训练数据和负样本训练数据),而不包括攻击类型1的训练数据。

针对目标训练数据集b1中的每个攻击类型1的训练数据,该训练数据可以包括多个数据特征和第一标签信息。针对目标训练数据集b2中的每个攻击类型2的训练数据,该训练数据可以包括多个数据特征和第一标签信息。

方式三、获取原始训练数据集,原始训练数据集包括n种攻击类型的训练数据,将原始训练数据集确定为目标训练数据集,以及,获取与n种攻击类型对应的n个目标训练数据集,攻击类型与目标训练数据集一一对应,且每个目标训练数据集只包括与该目标训练数据集对应的攻击类型的训练数据。也就是说,将原始训练数据集和n个目标训练数据集均确定为最终的目标训练数据集。

比如说,在得到原始训练数据集后,假设原始训练数据集包括攻击类型1的训练数据和攻击类型2的训练数据,则获取目标训练数据集a(与原始训练数据集相同),与攻击类型1对应的目标训练数据集b1,与攻击类型2对应的目标训练数据集b2。在目标训练数据集a中,包括攻击类型1的多个训练数据和攻击类型2的多个训练数据,在目标训练数据集b1中,包括攻击类型1的多个训练数据,在目标训练数据集b2中,包括攻击类型2的多个训练数据。

综上所述,可以得到目标训练数据集,在方式一中,得到目标训练数据集a,在方式二中,得到目标训练数据集b1和目标训练数据集b2,在方式三中,得到目标训练数据集a,目标训练数据集b1和目标训练数据集b2。

步骤102,将目标训练数据集输入给第一机器学习模型,以使第一机器学习模型基于多个训练数据确定每个数据特征对应的分数值。

示例性的,第一机器学习模型是能够为数据特征进行评分的机器学习模型,对此第一机器学习模型的类型不做限制,只要能够为数据特征进行评分即可。

示例性的,在得到目标训练数据集后,可以将目标训练数据集输入给第一机器学习模型,该目标训练数据集包括多个训练数据,每个训练数据包括多个数据特征和第一标签信息。第一机器学习模型在得到目标训练数据集后,可以基于目标训练数据集中的多个训练数据确定每个数据特征对应的分数值。

比如说,假设目标训练数据集包括1000个训练数据,针对目标训练数据集中的每个训练数据,该训练数据包括数据特征t1-数据特征t100,则将1000个101维的训练数据(100维的数据特征+1维的第一标签信息)输入给第一机器学习模型。第一机器学习模型基于1000个101维的训练数据进行处理,就可以得到数据特征t1-数据特征t100中的每个数据特征对应的分数值,对此第一机器学习模型的处理过程不做限制,只要能够得到每个数据特征对应的分数值即可。

在一种可能的实施方式中,第一机器学习模型可以包括但不限于随机森林回归网络模型,即通过随机森林回归算法得到的网络模型。当然,随机森林回归网络模型只是一个示例,对此第一机器学习模型的类型不做限制。

示例性的,本实施例采用随机森林回归网络模型确定每个数据特征对应的分数值,也就是说,随机森林回归网络模型的输入数据是目标训练数据集中的多个训练数据,每个训练数据包括多个数据特征和第一标签信息。随机森林回归网络模型的输出数据是每个数据特征对应的分数值。例如,在将1000个101维的训练数据输入给随机森林回归网络模型后,随机森林回归网络模型可以基于1000个101维的训练数据进行处理,得到数据特征t1-数据特征t100中的每个数据特征对应的分数值,对此随机森林回归网络模型的处理过程不做限制。

步骤103,基于每个数据特征对应的分数值对所有数据特征进行排序,基于排序结果选取分数值高的m个数据特征(即从所有数据特征中选取分数值高的m个数据特征),并基于m个数据特征确定第一目标特征向量,m为正整数。

示例性的,第一目标特征向量可以包括m个数据特征及该第一目标特征向量的第二标签信息,第二标签信息用于表示该第一目标特征向量是正常数据的特征向量或者异常数据的特征向量。比如说,若第二标签信息为第一取值,则表示该第一目标特征向量是正常数据的特征向量,若第二标签信息为第二取值,则表示该第一目标特征向量是异常数据的特征向量。第一取值和第二取值根据经验配置,如第一取值为0,第二取值为1,或,第一取值为1,第二取值为0。

示例性的,由于第一机器学习模型能够输出每个数据特征对应的分数值,因此,可以基于分数值高的m个数据特征确定第一目标特征向量。比如说,按照分数值从高到低的顺序对所有数据特征进行排序,基于排序结果,选取排序靠前的m个数据特征(即分数值高的m个数据特征),并基于选取的m个数据特征确定第一目标特征向量。或者,按照分数值从低到高的顺序对所有数据特征进行排序,基于排序结果,选取排序靠后的m个数据特征(即分数值高的m个数据特征),并基于选取的m个数据特征确定第一目标特征向量。

例如,以m的取值是4为例,第一机器学习模型能够输出数据特征t1-数据特征t100中每个数据特征对应的分数值,第一目标特征向量可以包括分数值高的数据特征t50、数据特征t88、数据特征t91、数据特征t92。

示例性的,在得到第一目标特征向量后,基于第一目标特征向量包括的m个数据特征,还可以确定第一目标特征向量的第二标签信息。比如说,若第一目标特征向量包括的数据特征是正常数据的数据特征,则第二标签信息用于表示第一目标特征向量是正常数据的特征向量,如第二标签信息为第一取值。若第一目标特征向量包括的数据特征是异常数据的数据特征,则第二标签信息用于表示第一目标特征向量是异常数据的特征向量,如第二标签信息为第二取值。

在一种可能的实施方式中,针对上述方式一,将目标训练数据集a输入给第一机器学习模型,基于步骤102和步骤103,可以得到与目标训练数据集a对应的目标特征向量k1,目标特征向量k1可以包括m1个数据特征。针对上述方式二,将目标训练数据集b1输入给第一机器学习模型,可以得到与目标训练数据集b1对应的目标特征向量k2,目标特征向量k2可以包括m2个数据特征。将目标训练数据集b2输入给第一机器学习模型,可以得到与目标训练数据集b2对应的目标特征向量k3,目标特征向量k3可以包括m3个数据特征。针对上述方式三,将目标训练数据集a输入给第一机器学习模型,得到目标特征向量k1,将目标训练数据集b1输入给第一机器学习模型,得到目标特征向量k2,将目标训练数据集b2输入给第一机器学习模型,得到目标特征向量k3。

示例性的,m1、m2和m3的取值均可以根据经验配置,对m1、m2和m3不做限制。比如说,m2和m3可以相同,也可以不同,以m2和m3相同为例。m1和m2可以相同,也可以不同,以m1和m2不同为例,如m1大于m2。

步骤104,将第一目标特征向量输入给第二机器学习模型,通过该第一目标特征向量对该第二机器学习模型进行训练,得到已训练的第二机器学习模型。示例性的,已训练的第二机器学习模型可以用于检测网络数据是否为异常数据。

示例性的,第二机器学习模型是能够检测网络数据是否为异常数据的机器学习模型,对此不做限制,只要能够检测网络数据是否为异常数据即可。

在得到第一目标特征向量后,可以将第一目标特征向量输入给第二机器学习模型,该第一目标特征向量可以包括m个数据特征和第二标签信息。第二机器学习模型在得到第一目标特征向量后,可以基于m个数据特征和第二标签信息对本第二机器学习模型的网络参数进行训练,对此训练过程不做限制。

比如说,针对上述方式一,可以将目标特征向量k1输入给第二机器学习模型,目标特征向量k1包括m1个数据特征和1个第二标签信息。第二机器学习模型基于目标特征向量k1进行训练,得到已训练的第二机器学习模型,对此第二机器学习模型的训练过程不做限制。针对上述方式二,可以将目标特征向量k2和目标特征向量k3输入给第二机器学习模型,第二机器学习模型基于目标特征向量k2和目标特征向量k3进行训练,得到已训练的第二机器学习模型。针对上述方式三,可以将目标特征向量k1、目标特征向量k2和目标特征向量k3输入给第二机器学习模型,第二机器学习模型基于目标特征向量k1、目标特征向量k2和目标特征向量k3进行训练,得到已训练的第二机器学习模型。

示例性的,基于已训练的第二机器学习模型,能够拟合出特征向量与标签值的映射关系,该标签值用于表示存在异常或者不存在异常,如该标签值为第一取值时,可以表示存在异常,该标签值为第二取值时,可以表示不存在异常。

在此基础上,若网络数据对应的特征向量对应的标签值为第一取值,则检测出该网络数据是正常数据,即不为异常数据。若网络数据对应的特征向量对应的标签值为第二取值,则检测出该网络数据是异常数据。综上所述,基于已训练的第二机器学习模型,可以检测出网络数据是否为异常数据。

在一种可能的实施方式中,第二机器学习模型可以包括但不限于xgboost(extremegradientboosting,极端梯度提升)网络模型,即通过xgboost算法得到的网络模型。当然,xgboost网络模型只是示例,对此第二机器学习模型的类型不做限制,如gbdt(gradientboostingdecisontree,梯度提升树)等。

示例性的,本实施例采用xgboost网络模型检测网络数据是否为异常数据,也就是说,xgboost网络模型的输入数据是第一目标特征向量,第一目标特征向量包括m个数据特征和第二标签信息,利用第一目标特征向量对xgboost网络模型进行训练,对此训练过程不做限制,已训练的xgboost网络模型能够拟合出特征向量与标签值的映射关系,该标签值用于表示存在异常或者不存在异常,继而使得xgboost网络模型能够检测出网络数据是否为异常数据。

在一种可能的实施方式中,针对n个目标训练数据集中的每个目标训练数据集可以对应m个数据特征。在此基础上,可以基于n个目标训练数据集对应的所有数据特征,确定第二目标特征向量,并将第二目标特征向量输入给第二机器学习模型,以对第二机器学习模型进行训练。也就是说,将第一目标特征向量和第二目标特征向量一起输入给第二机器学习模型,通过第一目标特征向量和第二目标特征向量对第二机器学习模型进行训练。

比如说,对n个目标训练数据集对应的所有数据特征(即n*m个数据特征)进行去重操作(即去除重复的数据特征)后,假设去重操作后剩余p个数据特征,则可以基于p个数据特征确定第二目标特征向量,即,第二目标特征向量可以包括p个数据特征以及第二目标特征向量的第二标签信息。

比如说,针对方式二和方式三,可以得到目标训练数据集b1和目标训练数据集b2,目标训练数据集b1对应m2个数据特征,目标训练数据集b2对应m3个数据特征。对m2个数据特征和m3个数据特征进行去重操作,得到p个数据特征,基于p个数据特征确定目标特征向量k4,将目标特征向量k4输入给第二机器学习模型,第二机器学习模型基于目标特征向量k4进行训练,得到已训练的第二机器学习模型。综上所述,可以将目标特征向量k1、目标特征向量k2、目标特征向量k3和目标特征向量k4输入给第二机器学习模型,第二机器学习模型基于这些目标特征向量进行训练,得到已训练的第二机器学习模型。

步骤105,基于已训练的第二机器学习模型检测网络数据是否为异常数据。

在一种可能的实施方式中,步骤101-步骤104是训练过程的示意图,在训练过程中,可以得到已训练的第二机器学习模型。由于已训练的第二机器学习模型用于检测网络数据是否为异常数据,因此,可以使用已训练的第二机器学习模型检测网络数据是否为异常数据,以下结合具体实施例,对网络数据的检测过程进行说明,参见图2所示,为异常检测方法的流程图,该方法可以包括:

步骤201,获取网络数据,该网络数据包括多个网络特征。

示例性的,在设备运行过程中,可以获取到网络数据,如异常数据(即攻击数据)或者正常数据,该网络数据包括多个网络特征,网络特征的实质为数据特征,这里只是为了区分方便,将网络数据的数据特征称为网络特征,如上行流量特征,下行流量特征,源ip地址特征,目的ip地址特征,协议类型特征,时间戳特征,操作系统类型特征等等,对此网络特征的类型不做限制。

步骤202,从多个网络特征中选取至少一个目标网络特征。

示例性的,可以从多个网络特征中选取与m个数据特征的特征类型匹配的目标网络特征,目标网络特征的特征类型与m个数据特征的任一特征类型相同。

参见上述实施例,针对方式一,可以得到m1个数据特征,并记录m1个数据特征的特征类型,如x11、x12…、x1m1,在此基础上,步骤202中,基于网络数据包括多个网络特征,判断是否存在与特征类型x11对应的网络特征,如果存在,则将该网络特征作为目标网络特征,比如说,特征类型x11表示上行流量特征,则从多个网络特征中选取上行流量特征作为目标网络特征。然后,判断是否存在与特征类型x12对应的网络特征,以此类推。综上所述,可以从网络数据的多个网络特征中选取与x11、x12…、x1m1对应的网络特征作为目标网络特征。

针对方式二,可以得到m2个数据特征和m3个数据特征,并记录m2个数据特征和m3个数据特征的特征类型,如x21、x22…、x2m2,以及x31、x32…、x3m3。在此基础上,步骤202中,可以从网络数据的多个网络特征中选取与x21、x22…、x2m2,x31、x32…、x3m3对应的网络特征作为目标网络特征。

针对方式三,可以得到m1个数据特征,m2个数据特征和m3个数据特征,并记录m1个数据特征,m2个数据特征和m3个数据特征的特征类型,如x11、x12…、x1m1,x21、x22…、x2m2,以及x31、x32…、x3m3。在此基础上,步骤202中,可以从网络数据的多个网络特征中选取与x11、x12…、x1m1,x21、x22…、x2m2,x31、x32…、x3m3对应的网络特征作为目标网络特征。或者,从网络数据的多个网络特征中选取与x11、x12…、x1m1对应的网络特征作为目标网络特征。

上述记录的特征类型是去重后的特征类型,即不存在重复的特征类型。

步骤203,基于至少一个目标网络特征确定检测特征向量,该检测特征向量可以包括所述至少一个目标网络特征,即包括所有目标网络特征。

步骤204,将检测特征向量输入给已训练的第二机器学习模型,由第二机器学习模型确定与该检测特征向量对应的标签值,该标签值用于表示该检测特征向量是正常数据的特征向量或者异常数据的特征向量。

步骤205,基于该标签值检测该网络数据是否为异常数据。

示例性的,已训练的第二机器学习模型能够拟合出特征向量与标签值的映射关系,该标签值用于表示存在异常或者不存在异常,如该标签值为第一取值时,表示存在异常,该标签值为第二取值时,表示不存在异常。基于此,在将检测特征向量输入给已训练的第二机器学习模型后,第二机器学习模型可以对该检测特征向量进行处理,得到与该检测特征向量对应的标签值。

进一步的,若该标签值为第一取值,则表示该检测特征向量是正常数据的特征向量,因此,基于该标签值检测到该网络数据是正常数据,即该网络数据不是异常数据。若该标签值为第二取值,则表示该检测特征向量是异常数据的特征向量,因此,基于该标签值检测到该网络数据是异常数据。

示例性的,上述执行顺序只是为了方便描述给出的示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。

基于上述技术方案,本申请实施例中,可以使用第二机器学习模型检测网络数据是否为异常数据,即,使用机器学习方法来检测网络异常,从而提高检测是否存在异常数据的准确性,减少错误的检测结果,减少误报和漏报等情况。通过使用第一机器学习模型(如随机森林回归网络模型)从多个数据特征中选取分数值高的m个数据特征,即使用第一机器学习模型筛选最优数据特征,大大减少了特征计算量,避免大量数据特征的运算耗费机器性能。通过使用第二机器学习模型(如xgboost网络模型)得到较好的异常检测效果。

以下结合具体应用场景,对本申请实施例的上述技术方案进行说明。

参见图3所示,为异常检测方法的流程图,该方法可以包括:

步骤301,获取原始训练数据集(如cicids2018),原始训练数据集包括n种攻击类型的训练数据,如攻击类型1的训练数据和攻击类型2的训练数据。

步骤302,将原始训练数据集确定为目标训练数据集a。

步骤303,将目标训练数据集a输入给随机森林回归网络模型,基于随机森林回归网络模型确定数据特征对应的分数值,并从多个数据特征中选取分数值高的m1个数据特征,假设m1的取值为12,则选取分数值高的12个数据特征。

步骤304,基于m1个数据特征确定目标特征向量k1,目标特征向量k1包括m1个数据特征,并将目标特征向量k1输入给xgboost网络模型。

步骤305,基于原始训练数据集获取与攻击类型1对应的目标训练数据集b1,并获取与攻击类型2对应的目标训练数据集b2,目标训练数据集b1包括攻击类型1的训练数据,目标训练数据集b2包括攻击类型2的多个训练数据。

对于原始训练数据集,可以将每种攻击类型的训练数据分离出来,如ddos攻击、dos攻击和僵尸攻击等,每种攻击类型的训练数据对应一个目标训练数据集。在每种攻击类型对应的目标训练数据集中,可以包括正样本训练数据和负样本训练数据,如70%的正样本训练数据和30%的负样本训练数据。

步骤306,将目标训练数据集b1输入给随机森林回归网络模型,基于随机森林回归网络模型确定数据特征对应的分数值,并从多个数据特征中选取分数值高的m2个数据特征,假设m2的取值为4,则选取分数值高的4个数据特征。以及,将目标训练数据集b2输入给随机森林回归网络模型,基于随机森林回归网络模型确定数据特征对应的分数值,并从多个数据特征中选取分数值高的m3个数据特征,假设m3的取值为4,则选取分数值高的4个数据特征。

步骤307,基于m2个数据特征确定目标特征向量k2,并将目标特征向量k2输入给xgboost网络模型。以及,基于m3个数据特征确定目标特征向量k3,并将目标特征向量k3输入给xgboost网络模型。

示例性的,由于训练数据包括的数据特征的种类过多,对于不同的攻击类型来说,不是所有的数据特征都是有效的,在将所有数据特征均输入给xgboost网络模型时,大大增加了算法耗时,还需要强大的算力,因此,可以使用随机森林回归网络模型对不同的数据特征进行打分,对每一种攻击类型,筛选出分数值高的4个数据特征,从而只将4个数据特征输入给xgboost网络模型。

步骤308,基于已得到的m2个数据特征和m3个数据特征,对m2个数据特征和m3个数据特征进行去重操作,得到p个数据特征,基于p个数据特征确定目标特征向量k4,并将目标特征向量k4输入给xgboost网络模型。

步骤309,基于目标特征向量k1、目标特征向量k2、目标特征向量k3和目标特征向量k4对xgboost网络模型进行训练,得到已训练的xgboost网络模型,已训练的xgboost网络模型能够实现网络设备的异常检测。

基于上述技术方案,本申请实施例中,通过使用随机森林回归网络模型从多个数据特征中选取分数值高的数据特征,筛选最优数据特征,避免使用全体数据特征,大大减少特征计算量,避免大量数据特征的运算耗费机器性能。通过使用xgboost网络模型得到较好的异常检测效果。比如说,在得到已训练的xgboost网络模型后,对xgboost网络模型的效果进行测试,测试结果如下:

检测方式1、对于每一种攻击类型来说,可以使用xgboost网络模型处理10次,计算平均准确率。检测方式2、对于原始训练数据集来说,使用随机森林回归网络模型对所有数据特征进行打分,每种攻击类型都挑选分数值高的4个数据特征,再将这些数据特征放一起再去重,得到最终的16个数据特征,然后,使用xgboost网络模型处理10次,计算平均正确率为98%,参见图4a所示。检测方式3、对于原始训练数据集来说,使用随机森林回归网络模型对所有数据特征进行打分,得到分数值高的12个数据特征,然后,使用xgboost网络模型处理10次,计算平均正确率为97%,参见图4b所示。

无论是作用于每一种攻击类型,还是作用于原始训练数据集,三种检测方式的结果,xgboost网络模型的效果都优于其它网络模型(如随机森林网络模型作为第二机器学习模型使用),参见图4c、图4d和图4e所示。图4c是采用检测方式1时,xgboost网络模型和随机森林网络模型的比较结果,图4d是采用检测方式2时,xgboost网络模型和随机森林网络模型的比较结果,图4e是采用检测方式3时,xgboost网络模型和随机森林网络模型的比较结果。

基于与上述方法同样的申请构思,本申请实施例中提出一种异常检测装置,参见图5所示,为所述异常检测装置的结构示意图,所述装置可以包括:

获取模块51,用于获取目标训练数据集,所述目标训练数据集包括多个训练数据,每个训练数据包括多个数据特征;处理模块52,用于将所述目标训练数据集输入给第一机器学习模型,以使所述第一机器学习模型基于所述多个训练数据确定每个数据特征对应的分数值;确定模块53,用于基于每个数据特征对应的分数值对所有数据特征进行排序,并基于排序结果选取分数值高的m个数据特征,并基于所述m个数据特征确定第一目标特征向量,所述m为正整数;所述处理模块52,还用于将所述第一目标特征向量输入给第二机器学习模型,通过所述第一目标特征向量对所述第二机器学习模型进行训练,得到已训练的第二机器学习模型;检测模块54,用于基于所述已训练的第二机器学习模型检测网络数据是否为异常数据。

示例性的,所述获取模块51获取目标训练数据集时具体用于:

获取原始训练数据集,所述原始训练数据集包括n种攻击类型的训练数据;

获取与所述n种攻击类型对应的n个目标训练数据集,所述n为正整数;其中,每个目标训练数据集只包括与该目标训练数据集对应的攻击类型的训练数据;或者,将所述原始训练数据集确定为目标训练数据集;或者,将所述原始训练数据集和所述n个目标训练数据集均确定为最终的目标训练数据集。

示例性的,所述n个目标训练数据集中的每个目标训练数据集对应m个数据特征;所述确定模块53还用于基于所述n个目标训练数据集对应的所有数据特征,确定第二目标特征向量;所述处理模块52将所述第一目标特征向量输入给第二机器学习模型,通过所述第一目标特征向量对所述第二机器学习模型进行训练时具体用于:将所述第一目标特征向量和所述第二目标特征向量输入给第二机器学习模型,通过所述第一目标特征向量和所述第二目标特征向量对所述第二机器学习模型进行训练。

示例性的,所述检测模块54具体用于:

获取网络数据,所述网络数据包括多个网络特征;

从所述多个网络特征中选取至少一个目标网络特征;

基于所述至少一个目标网络特征确定检测特征向量;

将所述检测特征向量输入给已训练的第二机器学习模型,由第二机器学习模型确定与所述检测特征向量对应的标签值,所述标签值用于表示所述检测特征向量是正常数据的特征向量或者异常数据的特征向量;

基于所述标签值检测所述网络数据是否为异常数据。

示例性的,所述检测模块54从所述多个网络特征中选取至少一个目标网络特征时具体用于:从所述多个网络特征中选取与所述m个数据特征的特征类型匹配的目标网络特征。

基于与上述方法同样的申请构思,本申请实施例中提出一种异常检测设备,参见图6所示,所述异常检测设备包括:处理器61和机器可读存储介质62,所述机器可读存储介质62存储有能够被所述处理器61执行的机器可执行指令;所述处理器61用于执行机器可执行指令,以实现如下步骤:

获取目标训练数据集,所述目标训练数据集包括多个训练数据,每个训练数据包括多个数据特征;

将所述目标训练数据集输入给第一机器学习模型,以使所述第一机器学习模型基于所述多个训练数据确定每个数据特征对应的分数值;

基于每个数据特征对应的分数值对所有数据特征进行排序,并基于排序结果选取分数值高的m个数据特征,并基于所述m个数据特征确定第一目标特征向量,所述m为正整数;

将所述第一目标特征向量输入给第二机器学习模型,通过所述第一目标特征向量对所述第二机器学习模型进行训练,得到已训练的第二机器学习模型;

基于所述已训练的第二机器学习模型检测网络数据是否为异常数据。

基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的异常检测方法。

其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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