模型生成方法、异常流量检测方法、装置、电子设备、计算机可读存储介质与流程

文档序号:18622314发布日期:2019-09-06 22:36阅读:144来源:国知局
模型生成方法、异常流量检测方法、装置、电子设备、计算机可读存储介质与流程

本发明实施例涉及网络技术领域,尤其涉及一种模型生成方法、异常流量检测方法、装置、电子设备及计算机可读存储介质。



背景技术:

随着互联网技术走进人们生活的方方面面,各种网站和应用程序会经常组织各种各样的活动与用户进行互动,比如组织用户领取优惠券、抽奖、投票等活动。但同时,有些黑客为骗取优惠券或奖品,会利用刷量工具进行恶意刷量。网站或应用程序被刷量之后会导致后台数据不准,无法获知用户参与活动的情况,同时也会导致正常用户无法参与活动等问题。

为了避免上述问题的出现,现有技术中主要通过观察宏观指标来监控异常流量,以确定是否被刷量。比如,观察宏观的请求量、请求量集中的时段、集中的用户群体等,但这种方法过于宏观,只能监控到很明显的异常流量,容易漏掉一些精心组织策划的异常刷量行为。



技术实现要素:

本发明提供一种模型生成方法、异常流量检测方法、装置、电子设备及计算机可读存储介质,以便解决现有异常流量检测方法过于宏观,容易漏检的问题。

为了解决上述技术问题,本发明是这样实现的:

本发明实施例公开一种模型生成方法,所述方法包括:

采集多个不同时间段内的历史流量数据;

获取每个时间段内的历史流量数据中至少一个指标的占比,以作为所述至少一个指标的历史占比数据;其中,所述指标的占比包括:所述指标的每个分量的数量占分量总数量的比值的集合;

对所述不同时间段内的至少一个指标的历史占比数据进行训练,生成异常检测模型。

可选地,所述对所述不同时间段内的至少一个指标的历史占比数据进行训练,生成异常检测模型,包括:

对所述不同时间段内的至少一个指标的历史占比数据,分别利用两种算法进行训练,对应生成概率分布检测模型和聚类检测模型。

可选地,所述对所述不同时间段内的至少一个指标的历史占比数据,分别利用两种算法进行训练,对应生成概率分布检测模型和聚类检测模型,包括:

获取所述不同时间段内的每个指标的历史占比数据的均值和方差;

根据所述每个指标的历史占比数据的均值和方差构建该指标对应的概率分布函数;

根据所述至少一个指标的概率分布函数建立至少一个概率分布检测模型。

可选地,所述对所述不同时间段内的至少一个指标的历史占比数据,分别利用两种算法进行训练,对应生成概率分布检测模型和聚类检测模型,包括:

将每个时间段内的所述至少一个指标的历史占比数据作为样本点标示在坐标系中,其中,在所述坐标系中不同的样本点表示不同的时间段内的所述至少一个指标的历史占比数据;

从所述样本点中随机选择k(k≥2)个点作为第一中心点,按照所述样本点与所述第一中心点之间的距离对所述样本点进行分类,重新确定已经得到的各个类的第二中心点,并按照所述样本点与所述第二中心点的距离对所述样本点进行分类;按照上述方法迭代n(n≥1)次直至新的中心点与该次迭代前的中心点重合或两者之间的距离小于距离阈值,迭代结束;

将迭代结束时确定的所述样本点的分类及每个分类的中心点作为每个最终的聚类及聚类中心点;

获取所述每个最终的聚类中心点的坐标及每个最终的聚类中的边界点与该聚类中心点的最大边界距离;

根据所述每个最终的聚类中心点坐标和每个聚类的最大边界距离建立聚类检测模型。

本发明实施例还公开一种异常流量检测方法,所述方法包括:

采集目标时间段内的待测流量数据;

获取所述待测流量数据中至少一个指标的待测占比;其中,所述指标的待测占比包括:所述指标的每个分量的数量占分量总数量的比值的集合;

将所述至少一个指标的待测占比,输入异常检测模型进行检测,获得检测结果;其中,所述异常检测模型为利用权利要求1至4中任一项所述的模型生成方法生成的;

根据所述检测结果判断所述待测占比所在的待测流量数据是否异常。

可选地,所述将所述至少一个指标的待测占比,输入异常检测模型进行检测,获得检测结果,包括:

将每个指标的待测占比,输入与该指标对应的所述概率分布检测模型,得到所述指标的待测占比属于对应概率分布检测模型的概率值;

根据每个指标的待测占比属于对应概率分布检测模型的概率值得到所有指标的总概率值;

根据所述总概率值得出所述待测占比的概率分布检测结果。

可选地,所述将所述至少一个指标的待测占比,输入异常检测模型进行检测,获得检测结果,包括:

将所述至少一个指标的待测占比作为一个待测样本点输入所述聚类检测模型;

获取所述待测样本点与所述聚类检测模型中最近的聚类中心点的距离,并将所述距离与所述待测样本点所属聚类的最大边界距离进行比较;

根据比较结果得出所述待测占比的聚类检测结果。

可选地,所述根据所述检测结果判断所述待测占比所在的待测流量数据是否异常,包括:

将各个所述检测结果按照各自的权重进行加权计算;

将加权计算的结果作为目标数值;

根据所述目标数值判断所述待测占比所在的待测流量数据是否为异常流量数据。

可选地,所述根据所述目标数值判断所述待测占比所在的待测流量数据是否为异常流量数据,包括:

将所述目标数值与设定阈值进行比较;

将所述目标数值小于或者等于所述设定阈值的待测占比所在的待测流量数据作为异常流量数据。

本发明实施例还公开一种模型生成装置,所述装置包括:

历史数据采集模块,用于采集多个不同时间段内的历史流量数据;

历史占比数据获取模块,用于获取每个时间段内的历史流量数据中至少一个指标的占比,以作为所述至少一个指标的历史占比数据;其中,所述指标的占比包括:所述指标的每个分量的数量占分量总数量的比值的集合;

模型生成模块,用于对所述不同时间段内的至少一个指标的历史占比数据进行训练,生成异常检测模型。

可选地,所述模型生成模块包括:

模型生成子模块,用于对所述不同时间段内的至少一个指标的历史占比数据,分别利用两种算法进行训练,对应生成概率分布检测模型和聚类检测模型。

可选地,所述模型生成子模块包括:

均值方差获取单元,用于获取所述不同时间段内的每个指标的历史占比数据的均值和方差;

函数构建单元,用于根据所述每个指标的历史占比数据的均值和方差构建该指标对应的概率分布函数;

概率模型建立单元,用于根据所述至少一个指标的概率分布函数建立至少一个概率分布检测模型。

可选地,所述模型生成子模块包括:

样本点标示单元,用于将每个时间段内的所述至少一个指标的历史占比数据作为样本点标示在坐标系中,其中,在所述坐标系中不同的样本点表示不同的时间段内的所述至少一个指标的历史占比数据;

聚类单元,用于从所述样本点中随机选择k(k≥2)个点作为第一中心点,按照所述样本点与所述第一中心点之间的距离对所述样本点进行分类,重新确定已经得到的各个类的第二中心点,并按照所述样本点与所述第二中心点的距离对所述样本点进行分类;按照上述方法迭代n(n≥1)次直至新的中心点与该次迭代前的中心点重合或两者之间的距离小于距离阈值,迭代结束;

聚类及中心点确定单元,用于将迭代结束时确定的所述样本点的分类及每个分类的中心点作为每个最终的聚类及聚类中心点;

最大边界距离获取单元,用于获取所述每个最终的聚类中心点的坐标及每个最终的聚类中的边界点与该聚类中心点的最大边界距离;

聚类模型建立单元,用于根据所述每个最终的聚类中心点坐标和每个聚类的最大边界距离建立聚类检测模型。

本发明实施例还公开一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述模型生成方法的步骤。

本发明实施例还公开一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述模型生成方法的步骤。

本发明实施例还公开一种异常流量检测装置,所述装置包括:

待测数据采集模块,用于采集目标时间段内的待测流量数据;

待测占比获取模块,用于获取所述待测流量数据中至少一个指标的待测占比;其中,所述指标的待测占比包括:所述指标的每个分量的数量占分量总数量的比值的集合;

检测模块,用于将所述至少一个指标的待测占比,输入异常检测模型进行检测,获得检测结果;其中,所述异常检测模型为利用权利要求1至4中任一项所述的模型生成方法生成的;

判断模块,用于根据所述检测结果判断所述待测占比所在的待测流量数据是否异常。

可选地,所述检测模块包括:

概率模型输入子模块,用于将每个指标的待测占比,输入与该指标对应的所述概率分布检测模型,得到所述指标的待测占比属于对应概率分布检测模型的概率值;

总概率值确定子模块,用于根据每个指标的待测占比属于对应概率分布检测模型的概率值得到所有指标的总概率值;

概率检测结果确定子模块,用于根据所述总概率值得出所述待测占比的概率分布检测结果。

可选地,所述检测模块包括:

聚类模型输入子模块,用于将所述至少一个指标的待测占比作为一个待测样本点输入所述聚类检测模型;

距离比较子模块,用于获取所述待测样本点与所述聚类检测模型中最近的聚类中心点的距离,并将所述距离与所述待测样本点所属聚类的最大边界距离进行比较;

聚类检测结果确定子模块,用于根据比较结果得出所述待测占比的聚类检测结果。

可选地,所述判断模块包括:

加权计算子模块,用于将各个所述检测结果按照各自的权重进行加权计算;

目标数值获得子模块,用于将加权计算的结果作为目标数值;

判断子模块,用于根据所述目标数值判断所述待测占比所在的待测流量数据是否为异常流量数据。

可选地,所述判断子模块包括:

比较单元,用于将所述目标数值与设定阈值进行比较;

异常流量数据确定单元,用于将所述目标数值小于或者等于所述设定阈值的待测占比所在的待测流量数据作为异常流量数据。

本发明实施例还公开一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述异常流量检测方法的步骤。

本发明实施例还公开一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述异常流量检测方法的步骤。

本发明实施例包括以下有益效果:

本发明实施例通过采集目标时间段内的待测流量数据,获取至少一个指标的待测占比,将所述待测占比输入异常检测模型进行检测,获得检测结果;其中,所述异常检测模型为利用历史流量数据训练生成的;最终根据所述检测结果判断所述待测占比所在的待测流量数据是否异常;在本发明实施例中,利用历史流量数据训练得到的异常检测模型,将待测流量数据与历史上的占比数据的概率分布情况和整体的指标占比情况进行比较,实现了对待测流量数据的综合检测,降低了系统误差,保证了检测结果的准确性、全面性。

附图说明

图1是本发明实施例提供的一种模型生成方法的流程图;

图2是本发明实施例提供的一种异常流量检测方法的流程图之一;

图3是本发明实施例提供的一种异常流量检测方法的流程图之二;

图4是本发明实施例提供的一种异常流量检测方法的数据流图;

图5是本发明实施例提供的一种模型生成装置的结构框图;

图6是本发明实施例提供的一种异常流量检测装置的结构框图之一;

图7是本发明实施例提供的一种异常流量检测装置的结构框图之二;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。

图1示出了本发明实施例提供的一种模型生成方法的流程图,如图1所示,该方法可以包括:

步骤101,采集多个不同时间段内的历史流量数据。

在本发明实施例中,要生成检测模型,首先需要采集不同时间段内的历史流量数据,作为训练数据。

具体地,采集网站或应用程序在多个不同时间段内的流量数据作为历史流量数据,可以使用sparkstreaming(流式处理框架)大数据分析处理工具,收集网站平台或应用程序在多个不同时间段消息队列kafka(分布式发布订阅消息系统)中的日志数据。

可选地,可以只采集正常状况的历史流量数据作为训练数据。因为一般情况下正常状况的数据很多,异常状况的数据很少,并且出异常的原因通常也不尽相同,使得异常数据不适合代表历史数据。所以,可以只将正常状况的数据作为训练数据。具体地,可以通过观察网站或应用程序宏观的请求量、请求量集中的时段、集中的用户群体等识别出比较明显的异常流量数据,从而将这些异常流量数据从正常流量数据中剔除,只保留正常的流量数据作为训练数据。

步骤102,获取每个时间段内的历史流量数据中至少一个指标的占比,以作为所述至少一个指标的历史占比数据;其中,所述指标的占比包括:所述指标的每个分量的数量占分量总数量的比值的集合。

在本发明实施例中,所述指标是指包含在流量数据中的各种参数,例如,这些参数可以为用户ip地址、用户使用的设备、用户使用的网站或应用程序的版本信息等。所述指标的占比是指所述指标的每个分量的数量占分量总数量的比值的集合。

例如,若所述指标为用户ip地址,其中,ip1地址为一个分量,在一个时间段的流量数据中,ip1地址的数量占该时间段的流量数据中ip地址总数量的比值,为ip1地址的占比;计算所有不同的分量,即所有不同的ip地址各自的占比,将这些分量的占比组合起来,形成一个指标的占比。相应地,若所述指标为用户使用的设备,其中,b设备为一个分量,在一个时间段的流量数据中,b设备的数量占该时间段的流量数据中所有设备总数量的比值,为b设备的占比,计算所有不同的分量,即所有不同的设备各自的占比,将这些分量的占比组合起来,形成另一个指标的占比。

所述指标也可以是一个集合中包含的不同的元素的数目。例如,所述指标可以为同一个ip地址下包括的用户id的数目,那么,可以将每一个ip地址下包括的用户id数目占总的用户id数目的比值的集合作为一个指标的占比。具体地,在计算指标的占比时,可以只取集合中占比大小在前n名的元素,例如只取用户id数目的占比在前10名的ip地址。

具体地,可以在kafka的日志数据中,同时统计某一个时间段内多个指标的占比。

步骤103,对所述不同时间段内的至少一个指标的历史占比数据进行训练,生成异常检测模型。

在本发明实施例中,将所述历史占比数据作为训练数据,利用相应的算法对所述训练数据进行处理,随着训练数据的积累,所述算法不断对历史占比数据中的数据特征进行刻画,最终可以得到相应的检测模型。具体得到什么样的检测模型,跟所使用的算法有关。

具体地,可以使用至少两个算法模型,从不同侧重面对数据进行刻画,得到数据不同方面的特征指标。这样有利于从多个方面对流量数据进行检测,增加了检测结果的准准度、客观度。

可选地,所述对所述不同时间段内的至少一个指标的历史占比数据进行训练,生成异常检测模型,包括:

对所述不同时间段内的至少一个指标的历史占比数据,分别利用两种算法进行训练,对应生成概率分布检测模型和聚类检测模型。

在本发明实施例中,因为本方案的历史占比数据的分布符合概率分布,所以可以使用概率分布检测模型刻画样本特征,当待测样本点不符合历史占比数据的概率特征时,该点就需要被特别关注;聚类检测模型用于发现共同的群体,按照内在的相似性将数据划分为多个类别,使得组内的样本相似度高,组间的样本相似度低,当出现离群样本点时,该点就需要被特别关注。

可选地,所述对所述不同时间段内的至少一个指标的历史占比数据,分别利用两种算法进行训练,对应生成概率分布检测模型和聚类检测模型,包括:

获取所述不同时间段内的每个指标的历史占比数据的均值和方差;

根据所述每个指标的历史占比数据的均值和方差构建该指标对应的概率分布函数;

根据所述至少一个指标的概率分布函数建立至少一个概率分布检测模型。

在本发明实施例中,因为历史占比数据是不同时间段内的占比数据,且每个占比数据又包括多种指标的占比,所以历史占比数据包括不同的指标维度,其是多维的。在使用概率分布算法训练数据的时候,可以以每一个指标在不同时间段内的占比作为样本数据计算该指标对应的概率分布,多个指标就形成多个概率分布。

首先,获取所述不同时间段内的每个指标的历史占比数据的均值和方差。在本发明实施例中,将每一个指标在不同时间段内的占比作为样本数据,确定这些样本数据的均值和方差。其中,均值是指在一组数据中所有数据之和再除以这组数据的个数,用μ表示。方差是每个样本值与全体样本值的平均数之差的平方值的平均数,用σ表示。

其次,根据所述每个指标的历史占比数据的均值和方差构建该指标对应的概率分布函数。在本发明实施例中,用均值μ和方差σ确定的概率分布函数如下:

其中,x是变量,p(x)表示x的出现概率,μ是均值,σ是方差。在本发明实施例中,x可以表示某一个待测的占比。

然后,根据所述至少一个指标的概率分布函数建立至少一个概率分布检测模型。即将多个指标的概率分布函数综合起来,形成一个概率分布检测模型。

可选地,所述对所述不同时间段内的至少一个指标的历史占比数据,分别利用两种算法进行训练,对应生成概率分布检测模型和聚类检测模型,包括:

将每个时间段内的所述至少一个指标的历史占比数据作为样本点标示在坐标系中,其中,在所述坐标系中不同的样本点表示不同的时间段内的所述至少一个指标的历史占比数据;

从所述样本点中随机选择k(k≥2)个点作为第一中心点,按照所述样本点与所述第一中心点之间的距离对所述样本点进行分类,重新确定已经得到的各个类的第二中心点,并按照所述样本点与所述第二中心点的距离对所述样本点进行分类;按照上述方法迭代n(n≥1)次直至新的中心点与该次迭代前的中心点重合或两者之间的距离小于距离阈值,迭代结束;

将迭代结束时确定的所述样本点的分类及每个分类的中心点作为每个最终的聚类及聚类中心点;

获取所述每个最终的聚类中心点的坐标及每个最终的聚类中的边界点与该聚类中心点的最大边界距离;

根据所述每个最终的聚类中心点坐标和每个聚类的最大边界距离建立聚类检测模型。

在本发明实施例中,将同一时间段内的所述至少一个指标的占比作为一个多维向量,使用聚类算法直接对该多维向量进行聚类分析。

具体地,首先,将每个时间段内的所述至少一个指标的历史占比数据作为样本点标示在坐标系中,其中,在所述坐标系中不同的样本点表示不同的时间段内的所述至少一个指标的历史占比数据。在本发明实施例中,每个时间段内的历史占比数据包括至少一个指标,即可以包括多个指标,该多个指标的占比形成一种多维向量,从而坐标系中的每个样本点就是该多维向量。不同的样本点刻画了不同时间段内的该多维向量。当新的时间段内的占比数据到来时,根据其内包含的该多维向量的数值,确定其在所述坐标系中位置。

其次,从所述样本点中随机选择k(k≥2)个点作为第一中心点,按照所述样本点与所述第一中心点之间的距离对所述样本点进行分类。分类之后,在每个类中,再重新确定第二中心点,并按照每个类中样本点与该类第二中心点的距离对每个类中的样本点进行分类;按照上述方法迭代n(n≥1)次,直至新的中心点与该次迭代前的中心点重合或两者之间的距离小于距离阈值,则迭代结束。在本发明实施例中,通过上述的聚类过程,使相似的样本点逐渐聚集,随着迭代次数的增加,聚类的精度越来越高,当新的中心点与该次迭代前的中心点重合或两者之间的距离小于距离阈值时,聚类的精度达到最高,此时确定迭代结束。

再次,将迭代结束时确定的所述样本点的分类及每个分类的中心点作为每个最终的聚类及聚类中心点。这样,与每个最终的聚类中心点距离较近的若干样本点形成一个最终的聚类,同一个聚类里的样本点距离较近,而在不同聚类里的样本点距离较远。

再者,获取所述每个最终的聚类中心点的坐标及每个最终的聚类中的边界点与该聚类中心点的最大边界距离。此处的最大边界距离应为该聚类中边界距离的阈值,如果新的样本点与中心点的距离超出该阈值,则说明该新的样本点是离群样本点。

最后,根据所述每个最终的聚类中心点坐标和每个聚类的最大边界距离建立聚类检测模型。也就是说,包含每个最终的聚类中心点坐标和每个聚类的最大边界距离的坐标系称之为一个聚类检测模型。

当然,在本发明实施例中,还可以利用其他算法对历史占比数据进行训练,从而生成其他检测模型,本发明实施例对此不做具体限定。

综上所述,在本发明实施例中,采集多个不同时间段内的历史流量数据;获取每个时间段内的历史流量数据中至少一个指标的占比,以作为所述至少一个指标的历史占比数据;对所述不同时间段内的至少一个指标的历史占比数据进行训练,生成异常检测模型。上述方法根据历史占比数据的数据特征,利用相应的算法刻画该历史占比数据,得出异常检测模型,为检测某一段时间内的占比数据提供了检测依据。

图2示出了本发明实施例提供的一种异常流量检测方法的流程图之一,如图2所示,该方法可以包括:

步骤201、采集目标时间段内的待测流量数据。

在本发明实施例中,首先采集网站或应用程序某目标时间段内的流量数据作为待测流量数据,以检测该时间段内的流量数据是否异常。具体地,可以使用sparkstreaming(流式处理框架)大数据分析处理工具,收集网站平台或应用程序某一时间段消息队列kafka(分布式发布订阅消息系统)中的日志数据。

步骤202、获取所述待测流量数据中至少一个指标的待测占比;其中,所述指标的待测占比包括:所述指标的每个分量的数量占分量总数量的比值的集合。

在本发明实施例中,所述指标是指包含在流量数据中的各种参数,例如,这些参数可以为用户ip地址、用户使用的设备、用户使用的网站或应用程序的版本信息等。所述指标的占比是指所述指标的每个分量的数量占分量总数量的比值的集合。例如,若所述指标为用户ip地址,其中,ip1地址为一个分量,在一个时间段的流量数据中,ip1地址的数量占该时间段的流量数据中ip地址总数量的比值,为ip1地址的占比;计算所有不同的分量,即所有不同的ip地址各自的占比,将这些分量的占比综合起来,形成一个指标的占比。

所述指标也可以是一个集合中包含的不同的元素的数目。例如,所述指标可以为同一个ip地址下包括的用户id的数目,那么,可以将每一个ip地址下包括的用户id数目占总的用户id数目的比值的集合作为一个指标的占比。具体地,在计算指标的占比时,可以只取集合中占比大小在前n名的元素,例如只取用户id数目的占比在前10名的ip地址。

在本发明实施例中,在选择指标计算待测占比时,要选取在检测模型中包括的指标计算,这样才能使用检测模型进行相应指标的检测。

可选地,获取所述待测流量数据中多个指标的待测占比。因为某一种单一指标的占比情况并不能完全反映一段时间内待测流量的总体情况,将多个指标的占比综合起来进行分析,就能得到更为准确的判断结果。所以,在本发明实施例中,可以在待测流量数据中获取多个指标的占比,形成一种多维向量,作为待测的目标对象。

具体地,可以在kafka的日志数据中,同时统计某一个时间段多个指标的占比。

步骤203、将所述至少一个指标的待测占比,输入异常检测模型进行检测,获得检测结果;其中,所述异常检测模型为利用上述模型生成方法生成的。

在本发明实施例中,所述异常检测模型是利用图1中的模型生成方法生成的。将上述步骤102中获取的所述至少一个指标的待测占比,输入异常检测模型中,检测所述至少一个指标的待测占比是否满足历史数据的分布规律,具体地,检测是否满足历史概率分布和/或整体聚类的规律,获得检测结果。

可选地,可以使用至少两种异常检测模型进行检测。这样,可以避免一种检测模型可能带来的结果偏差。

步骤204,根据所述检测结果判断所述待测占比所在的待测流量数据是否异常。

在本发明实施例中,根据异常检测模型的检测结果判断待测流量数据的异常性。

具体地,在某一段目标时间的待测流量中,若ip1地址与检测模型中该指标的占比相比,数值过大,则说明ip1地址的用户进行了频繁操作,为该段流量数据贡献了较大流量,其极有可能是在进行刷量操作,则ip地址这个指标的异常检测结果为异常;同样的,若设备号为b的设备与检测模型中该指标的占比相比,数值过大,也可能是使用b设备的用户在进行刷量操作,则设备号这个指标的异常检测结果也为异常。相反地,若某个指标的占比与检测模型中该指标的占比相比,数值比较吻合,则说明该指标的异常检测结果为正常。

另外,若使用多个异常检测模型进行检测,则需要将多个检测结果综合起来进行分析。

综上所述,本发明实施例通过采集目标时间段内的待测流量数据,获取所述待测流量数据中至少一个指标的待测占比,将所述至少一个指标的待测占比,输入异常检测模型进行检测,获得检测结果,根据所述检测结果判断所述待测占比所在的待测流量数据是否异常。在本发明实施例中,通过获取待测流量数据的至少一个指标的待测占比,对待测流量数据包含的占比成分进行量化,再利用异常检测模型,判断上述获取的待测占比是否满足历史概率分布和整体聚类的规律,从而实现了对待测流量数据的综合检测,保证了检测结果的准确性、全面性。

图3是本发明实施例提供的一种异常流量检测方法的流程图之二。图3中的方法是图2中的异常流量检测方法的优选实施例。如图3所示,该方法可以包括:

步骤301、采集目标时间段内的待测流量数据;

步骤302,获取所述待测流量数据中至少一个指标的待测占比;其中,所述指标的待测占比包括:所述指标的每个分量的数量占分量总数量的比值的集合。

在本发明实施例中,步骤301和步骤302可以参照图2中的步骤201和步骤202,此处不再赘述。

步骤303,将每个指标的待测占比,输入与该指标对应的所述概率分布检测模型,得到所述指标的待测占比属于对应概率分布检测模型的概率值。

在本发明实施例中,目标时间段内的至少一个指标的待测占比为该目标时间段内的所有指标的待测占比的集合,当指标是多个时,则所述至少一个指标的待测占比是一种多维数据,而单个概率分布模型是单一的指标的概率分布模型,所以首先需要将所述至少一个指标的待测占比进行降维处理,即按照不同指标的占比进行分类,每一类代表一种指标在该时间段内的占比,得到每个指标的待测占比。然后,将每个指标的待测占比,输入与该指标对应的概率分布函数,进而得到所述待测占比属于对应概率分布函数的概率值,具体地,即得到公式

中p(x)的的具体数值。一般情况下,所述概率值在0-1之间,具体数值越大,说明该待测占比属于对应概率分布的几率越大。

步骤304,根据每个指标的待测占比属于对应概率分布检测模型的概率值得到所有指标的总概率值。

在本发明实施例中,在步骤303中会得到多个指标的待测占比属于对应概率分布的概率值,此处通过所述多个概率值,确定所述待测占比的总概率值。确定总概率值的方法可以是多样的,例如,可以为所述多个概率值赋予权重,并进行加权求和。若加权求和结果小于0.5,则认为总概率值为0,若加权求和结果大于0.5,则认为总概率值为1;也可以采用大多数投票原则,例如,如果有过半数指标的概率值小于0.5,则认为总概率值为0,反之为1;也可以采用一票否决原则,例如,只要有一个指标的概率值小于0.5,就认为总概率值为0,若所有概率值都大于0.5,则认为总概率值为1。具体采用哪种方法,本发明实施例不做具体限定。

步骤305,根据所述总概率值得出所述待测占比的概率分布检测结果。

在本发明实施例中,可以根据步骤304中计算得到的总概率值确定概率分布检测结果。例如,若总概率值为0,则认为概率分布检测结果为0,若总概率值为1,则认为概率分布检测结果为1。

以上步骤303-步骤305为将所述至少一个指标的待测占比输入概率分布检测模型进行检测的过程,最终获得概率分布检测结果。

步骤306、将所述至少一个指标的待测占比作为一个待测样本点输入所述聚类检测模型。

在本发明实施例中,所述聚类检测模型可以检测多维数据,所以不需要将所述至少一个指标的待测占比进行降维处理,直接将所述至少一个指标的待测占比作为一个待测样本点输入聚类检测模型。

步骤307、获取所述待测样本点与所述聚类检测模型中最近的聚类中心点的距离,并将所述距离与所述待测样本点所属聚类的最大边界距离进行比较。

在本发明实施例中,所述聚类检测模型根据所述样本点自身的数据特征,为所述待测样本点确定其在坐标系中的位置。进而,可以确定所述待测样本点与所述聚类检测模型中最近的聚类中心点的距离,再根据所述聚类中心点的最大边界距离确定所述待测样本点是否是离群样本点。

步骤308、根据比较结果得出所述待测占比的聚类检测结果。

在本发明实施例中,若所述样本点与最近的中心点的距离大于该中心点的最大边界距离,则说明该待测样本点不在任何聚类中,其是一个离群样本点,即异常样本点;反之,则说明该待测样本点属于聚类中,是一个正常样本点。

具体地,可以将异常样本点的聚类检测结果置为0,将正常样本点的聚类检测结果置为1。

以上步骤306-步骤308为将所述至少一个指标的待测占比输入聚类检测模型进行检测的过程,最终获得聚类检测结果。

需要注意的是,将所述至少一个指标的待测占比输入概率分布模型检测和输入聚类模型检测的先后顺序是随意的,即步骤306-步骤308也可以位于步骤303-步骤305之前,本发明实施例对此顺序不做具体限定。

步骤309、将各个所述检测结果按照各自的权重进行加权计算。

在本发明实施例中,可以为各个检测结果赋予一定的权重,将检测结果按照各自的权重进行加权计算。

例如,可以使用公式r=c1*j1+c2*j2+……+cn*jn进行加权计算。其中,c1,c2,……cn表示不同异常检测模型的权重,且c1+c2+…+cn=1;而j1,j2,…,jn分别表示不同异常检测模型的检测结果,从而得出最终的数值r。

步骤310、将加权计算的结果作为目标数值。

若使用上述步骤309中的公式进行加权计算,则目标数值即为公式中的r。例如,若概率分布检测结果为0,其权重为0.3,而聚类检测结果为1,其权重为0.7,那么,根据公式,可以得出目标数值r为0.7。

步骤311、将所述目标数值与设定阈值进行比较。

在本发明实施例中,所述设定阈值需要根据具体的指标或数值的情况预先设定,用来检测目标数值。

步骤312,将所述目标数值小于或者等于所述设定阈值的待测占比所在的待测流量数据作为异常流量数据。

在本发明实施例中,将所述目标数值小于或者等于所述设定阈值的待测占比所在的待测流量数据作为异常流量数据。例如,若所述目标数值大于设定阈值,则说明该指标的待测占比正常,反之,则说明该指标的待测占比异常。

具体地,所述设定阈值可以被设为0.5,当所述目标数值r小于或等于0.5时,判断该指标的待测占比异常;否则,认为正常。

例如,上述目标数值为0.7,大于预设阈值0.5,则判断该待测占比正常,即该时间段的流量数据是正常的。

可选地,在确定出异常流量数据之后,发送报警提示。

综上所述,在本发明实施例中,最终根据目标数值确定出异常流量数据后,发送报警提示。所述报警提示可以是发送报警邮件进行提醒。当然,在现实场景中也可以当任意一个检测模型检测到异常时,都可以报警出来,由人工完成最终的攻击确认。本发明实施例对于报警的时机和报警的方式,不做具体限定。

另外,在完成对待测占比检测的同时,可以将所述至少一个指标的待测占比数据同时作为历史数据存入异常检测模型,以对异常检测模型进行持续的训练,保证检测精准度的逐步提高。

综上所述,在本发明实施例中,通过采集待测流量数据,获取所述至少一个指标的待测占比,然后将所述待测占比分别输入概率分布检测模型和聚类检测模型,将得出的两个检测结果进行加权计算,获得目标数值,最终根据所述目标数值判断所述待测流量数据是否异常。在上述方法中,利用概率分布检测模型和聚类检测模型,从单维和多维两个维度对待测流量数据进行充分、全面的成分分析与检测,提高了检测结果的准确性、全面性,并且将两个检测结果进行加权融合,确保了检测结果的客观性。

图4是本发明实施例提供的一种异常流量检测方法的数据流图。

如图4所示,来自网站或应用程序的kafka(分布式发布订阅消息系统)数据流进入sparkstreaming(流式处理框架)401进行实时数据流处理,之后对数据流进行存储和异常检测。具体地,通过以下步骤进行检测:首先,将从所述kafka数据流中提取的至少一个指标的待测占比,放入mysql(数据库)402进行存储;然后,将存储的数据输入概率分布检测模型403和聚类检测模型404进行异常检测,上述两个检测模型将各自的检测结果存入缓存405,再将检测结果输入检测与融合平台406,获得目标数值,将目标数值小于或等于设定阈值的待测占比所在的流量数据确定为异常流量数据。最终,在确定出异常流量数据后,通过api(applicationprogramminginterface,应用程序编程接口)发送报警请求至统一报警平台407。

图5示出了本发明实施例提供的一种模型生成装置的结构框图,如图5所示,所述模型生成装置500包括:

历史数据采集模块501,用于采集多个不同时间段内的历史流量数据;

历史占比数据获取模块502,用于获取每个时间段内的历史流量数据中至少一个指标的占比,以作为所述至少一个指标的历史占比数据;其中,所述指标的占比包括:所述指标的每个分量的数量占分量总数量的比值的集合;

模型生成模块503,用于对所述不同时间段内的至少一个指标的历史占比数据进行训练,生成异常检测模型。

上述图5中的模型生成装置500能够实现如图1所示的方法实施例的各个过程,此处不再赘述。

本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述模型生成方法中的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述模型生成方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

图6示出了本发明实施例提供的一种异常流量检测装置的结构框图之一,如图6所示,所述异常流量检测装置600包括:

待测数据采集模块601,用于采集目标时间段内的待测流量数据;

待测占比获取模块602,用于获取所述待测流量数据中至少一个指标的待测占比;其中,所述指标的待测占比包括:所述指标的每个分量的数量占分量总数量的比值的集合;

检测模块603,用于将所述至少一个指标的待测占比,输入异常检测模型进行检测,获得检测结果;其中,所述异常检测模型为利用权利要求1至4中任一项所述的模型生成方法生成的;

判断模块604,用于根据所述检测结果判断所述待测占比所在的待测流量数据是否异常。

在图6的基础上,图7示出了本发明实施例提供的一种异常流量检测装置的结构框图之二,其是图6中的异常流量检测装置的优选实施例。如图7所示,所述异常流量检测装置600包括:

所述检测模块603包括:

概率模型输入子模块6031,用于将每个指标的待测占比,输入与该指标对应的所述概率分布检测模型,得到所述指标的待测占比属于对应概率分布检测模型的概率值;

总概率值确定子模块6032,用于根据每个指标的待测占比属于对应概率分布检测模型的概率值得到所有指标的总概率值;

概率检测结果确定子模块6033,用于根据所述总概率值得出所述待测占比的概率分布检测结果。

可选地,所述检测模块603包括:

聚类模型输入子模块6034,用于将所述至少一个指标的待测占比作为一个待测样本点输入所述聚类检测模型;

距离比较子模块6035,用于获取所述待测样本点与所述聚类检测模型中最近的聚类中心点的距离,并将所述距离与所述待测样本点所属聚类的最大边界距离进行比较;

聚类检测结果确定子模块6036,用于根据比较结果得出所述待测占比的聚类检测结果。

可选地,所述判断模块604包括:

加权计算子模块6041,用于将各个所述检测结果按照各自的权重进行加权计算;

目标数值获得子模块6042,用于将加权计算的结果作为目标数值;

判断子模块6043,用于根据所述目标数值判断所述待测占比所在的待测流量数据是否为异常流量数据。

可选地,所述判断子模块6043包括:

比较单元60431,用于将所述目标数值与设定阈值进行比较;

异常流量数据确定单元60432,用于将所述目标数值小于或者等于所述设定阈值的待测占比所在的待测流量数据作为异常流量数据。

上述图6、图7中的异常流量检测装置600分别能够实现如图2、图3所示的方法实施例的各个过程,此处不再赘述。

本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述异常流量检测方法中的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述异常流量检测方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

综上所述,本发明实施例通过采集目标时间段内的待测流量数据,获取所述待测流量数据中至少一个指标的待测占比,将所述至少一个指标的待测占比,输入异常检测模型进行检测,获得检测结果,根据所述检测结果判断所述待测占比所在的待测流量数据是否异常。在本发明实施例中,通过获取待测流量数据的至少一个指标的待测占比,对待测流量数据包含的占比成分进行量化,再利用异常检测模型,判断上述获取的待测占比是否满足历史概率分布和整体聚类的规律,从而实现了对待测流量数据的综合检测,保证了检测结果的准确性、全面性。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

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