一种异常访问检测方法及设备
技术领域
本申请涉及互联网技术领域,特别涉及一种异常访问检测方法。本申请同时还涉及一种异常访问检测设备。
背景技术
数据挖掘是从大规模的数据集中提取潜在的、隐含的、有价值的知识、模式或规则的过程。从大规模的数据集中挖掘的模式一般可以分为五类:关联规则、分类和预测、聚类、演变分析以及异常点检测等。异常点数据的挖掘包括异常点数据检测和异常点数据分析两个部分。异常点数据是与数据的一般行为或模型不一致的数据,它们是数据集中与众不同的数据,这些数据并非随机偏差,而是产生于完全不同的机制。异常点数据挖掘有着广泛的应用,如欺诈检测,用异常点检测来探测不寻常的信用卡使用或者电信服务;预测市场动向;在市场分析中分析客户的流失等异常行为;或者在医疗分析中发现对多种治疗方式的不寻常的反应等等;通过对这些数据进行研究,发现不正常的行为和模式,实现异常数据挖掘功能。
如图1所示,为现有的异常点监测技术手段解决服务响应问题的示意图,异常点监测技术手段目前有着广泛的应用。在该问题中,多个用户会向服务器提交相应的服务申请,在这些申请中,有的申请是正常申请,有的申请是异常申请。如果服务器接受了异常申请,那么将会严重影响服务器工作,也会对其他正常的申请造成一定的影响。
为解决上述技术问题,现有技术中使系统根据用户的请求以及用户的信息记录决定是否响应用户请求。在判定过程中,会引入一些机器学习的算法进行学习,现在常用的方法包括根据用户属性构造马氏距离挖掘处于离群点的用户、以及根据用户提交请求的频率进行异常点判别等方法,具体判别过程如下:
(1)在根据马氏距离进行异常点判别的过程中,首先计算用户属性间的协方差矩阵,其定义如下:
Σ=E{(X-E[X])(X-E[X])T}
随后根据该协方差矩阵计算马氏距离,其定义如下:
Ma=(X-μ)TΣ-1(X-μ)
最后根据该距离的大小进行判别,一些距离过大的点将被判定为离群点。
(2)在根据用户提交请求的频率进行异常点判别的方法中,用户单位时间提交请求的次数超过一定阈值之后,将会直接被判定为异常点。
因此如何利用已有的访问数据和用户信息,更加准确地鉴别出异常请求,并采取相应措施,切实关系到服务资源分配的稳定性和经济性,是服务响应策略中的一个非常重要的问题。
然而,发明人在实现本申请的过程中发现,现有带时序数据的异常点检测算法或者只利用了访问用户本身的特征数据,进行聚类,只能反映访问用户属性上的特征;或者只利用了访问的时序数据,手动设置阈值来发现一些异常点(即确认当前的访问为异常)。这两种方式都没有充分发挥数据的价值,得出的结果往往并不十分的准确以及有效。
发明内容
本申请提供了一种异常方法检测方法,用以提高针对异常访问的检测效率以及准确性。该方法包括以下步骤:
获取待检测的访问请求的属性数据;
根据所述属性数据以及检测参数生成与所述访问请求对应的异常概率,所述检测参数根据各个样本访问请求对应的标签的取值以及属性数据生成;
判断所述异常概率是否大于预设的异常阈值;
若是,确认所述访问请求为异常访问请求;
若否,确认所述访问请求为正常访问请求。
优选地,在获取待检测的访问请求的属性数据之前,还包括:
根据各所述样本访问请求的访问频次信息确定各所述样本访问请求是否异常;
分别为正常样本访问请求以及异常样本访问请求赋予不同取值的标签;
根据各个样本访问请求对应的标签的取值以及属性数据生成原始检测参数;
根据所述原始检测参数生成所述检测参数。
优选地,所述访问频次信息包括所述样本访问请求对应的用户标识以及访问时间,根据各所述样本访问请求的访问频次信息确定各所述样本访问请求是否异常,具体为:
根据所述用户标识获取在所述访问时间之前的时间窗口内由相同用户提交的样本访问请求的第一数量,以及获取在所述访问时间之后的所述时间窗口内由相同用户提交的样本访问请求的第二数量;
判断所述第一数量与所述第二数量之和是否大于预设的次数阈值;
若是,确认所述样本访问请求为异常样本访问请求;
若否,确认所述样本访问请求为正常样本访问请求。
优选地,具体根据以下公式生成原始检测参数:
其中,为所述原始检测参数的取值函数,w为所述原始检测参数,且w为求和项对应的最小值,N为所述样本访问请求的个数,为各所述样本访问请求的标签的取值。
优选地,所述异常阈值具体通过以下方式生成:
获取异常样本访问请求占所有样本访问请求的百分比;
根据所述检测参数获取与各所述样本访问请求对应的异常概率;
将各所述样本访问请求对应的异常概率从小至大进行排序处理;
根据所述排序结果确定与所述百分比对应的异常概率,并将所述异常概率作为所述异常阈值。
相应地,本申请还提出了一种异常访问检测设备,其特征在于,包括:
获取模块,获取待检测的访问请求的属性数据;
第一生成模块,根据所述属性数据以及检测参数生成与所述访问请求对应的异常概率,所述检测参数根据各个样本访问请求对应的标签的取值以及属性数据生成;
判断模块,判断所述异常概率是否大于预设的异常阈值;
若是,所述判断模块确认所述访问请求为异常访问请求;
若否,所述判断模块确认所述访问请求为正常访问请求。
优选地,还包括:
确定模块,根据各所述样本访问请求的访问频次信息确定各所述样本访问请求是否异常;
分配模块,分别为正常样本访问请求以及异常样本访问请求赋予不同取值的标签;
第二生成模块,根据各个样本访问请求对应的标签的取值以及属性数据生成原始检测参数;
第三生成模块,根据所述原始检测参数生成所述检测参数。
优选地,所述访问频次信息包括所述样本访问请求对应的用户标识ID以及访问时间,所述确定模块具体用于:
根据所述用户ID获取在所述访问时间之前的时间窗口内由相同用户提交的样本访问请求的第一数量,以及获取在所述访问时间之后的所述时间窗口内由相同用户提交的样本访问请求的第二数量;
判断所述第一数量与所述第二数量之和是否大于预设的次数阈值;
若是,确认所述样本访问请求为异常样本访问请求;
若否,确认所述样本访问请求为正常样本访问请求。
优选地,具体根据以下公式生成原始检测参数:
其中,argminw为所述原始检测参数的取值函数,w为所述原始检测参数,且w为求和项对应的最小值,N为所述样本访问请求的个数,Vi为各所述样本访问请求的标签的取值。
优选地,所述异常阈值具体通过以下方式生成:
获取异常样本访问请求占所有样本访问请求的百分比;
根据所述检测参数获取与各所述样本访问请求对应的异常概率;
将各所述样本访问请求对应的异常概率从小至大进行排序处理;
根据所述排序结果确定与所述百分比对应的异常概率,并将所述异常概率作为所述异常阈值。
由此可见,通过应用本申请的技术方案,在获取待检测的访问请求的属性数据之后,根据属性数据以及检测参数生成与访问请求对应的异常概率,由于检测参数根据各个样本访问请求对应的标签的取值以及属性数据生成,因此在判断异常概率是否大于预设的异常阈值之后,即可基于二者的大小确认访问请求是否为异常访问请求。从而能够在海量的访问请求中准确地针对异常访问请求进行识别处理,保证了网络的稳定性与安全性。
附图说明
图1为现有技术中异常检测在服务响应上的应用示意图;
图2为本申请提出的一种异常访问检测方法的流程示意图;
图3为本申请具体实施例中基于时序特征提取的异常点检测流程图;
图4为本申请具体实施例中时序数据的特征提取示意图;
图5为本申请具体实施例中阈值计算流程示意图;
图6为本申请提出的一种异常访问检测设备的结构示意图。
具体实施方式
如背景技术所述,针对含时序申请数据的特点,进一步提高异常点检测的准确性以及有效性,是关系到系统准确有效运行的一个关键问题,也是本申请所要解决的技术问题。
为解决上述技术问题,本申请提出了一种异常点检测方法,将用户统计数据和时序访问数据结合起来,通过时序数据按规则给出一个初步的标签并采用逻辑回归的方法对初步标签和用户属性进行训练来得出最终结果,从而使异常点判定的结果得以进一步提高。
如图2所示,为本申请提出的一种异常点检测方法的流程示意图,包括以下步骤:
S201获取待检测的访问请求的属性数据。
在本申请的实施方式中,在模型以及检测参数生成之后,对于每一次新访问请求预测的过程中,即在判断访问请求是否异常的过程中,仅由该次访问请求的属性决定,异常检测问题转化成为分类问题,对于该分类问题,仅需获取待检测的访问请求的属性数据得到全部属性向量即可,也就是说,在此步骤中不需要再获取新访问请求的时序数据。
因此本申请的实施方式在进行新访问请求异常预测之前,还需要通过对各所述样本访问请求对应的初步标签和用户属性进行逻辑回归训练,来获得分类模型并得到检测参数,进而可以实现将用户数据和时序访问数据结合起来的目的。本申请逻辑回归训练以及检测参数获取的方式具体如下:
a)根据各所述样本访问请求的访问频次信息确定各所述样本访问请求是否异常;
b)分别为正常样本访问请求以及异常样本访问请求赋予不同取值的标签;
c)根据各个样本访问请求对应的标签的取值以及属性数据生成原始检测参数;
d)根据所述原始检测参数生成所述检测参数。
另外,通过上述步骤可以看出,如何准确判断样本访问请求是否异常是决定分类模型以及检测参数精度的重要参数,故本申请具体实施方式提出了确定各所述样本访问请求是否异常的具体步骤:
a)根据所述用户标识获取在所述访问时间之前的时间窗口内由相同用户提交的样本访问请求的第一数量,以及获取在所述访问时间之后的所述时间窗口内由相同用户提交的样本访问请求的第二数量;
b)判断所述第一数量与所述第二数量之和是否大于预设的次数阈值;
c)若是,确认所述样本访问请求为异常样本访问请求;
d)若否,确认所述样本访问请求为正常样本访问请求。
在本申请的实施方式中,所述访问频次信息包括所述样本访问请求对应的用户标识以及访问时间。其中,用户标识是作为区分不同用户的凭证,只要保证不同用户对应有不同的用户标识即可,故可能会出现多种形式和内容。举例来说,用户标识可以为用户对应终端的MAC地址,也可以为用户在服务终端的注册ID。访问时间为由服务器记录的该访问请求的访问时间点。
需要说明的是,以上用户标识的具体实例仅为本申请优选实施例提出的示例,在此基础上还可以选择其他类型的用户标识,以使本申请适用于更多的应用领域,这些改进都属于本发明的保护范围。
需要说明的是,以上确定样本访问请求是否异常的方法仅为本申请具体实施例提出的一种优选方案,在保证具有一定确定精度的前提下,本领域技术人员也可以采用其他方式进行确定,这些都属于本申请的保护范围。
S202根据所述属性数据以及检测参数生成与所述访问请求对应的异常概率,所述检测参数根据各个样本访问请求对应的标签的取值以及属性数据生成。
在本申请的实施方式中,异常阈值应该根据长期的经验进行调整,以达到一个合适的数值范围。如果异常阈值的取值较大,则会将部分异常点其判断为正常访问,故可能会漏掉很多异常点;相反的,如果异常阈值的取值过小,则会将部分正常点判断为异常点,影响正常用户的使用。因此如何通调整获得合适的异常阈值对以提高异常点检测的精度是至关重要的,故本申请通过以下方式来生成异常阈值:
a)获取异常样本访问请求占所有样本访问请求的百分比;
b)根据所述检测参数获取与各所述样本访问请求对应的异常概率;
c)将各所述样本访问请求对应的异常概率从小至大进行排序处理;
d)根据所述排序结果确定与所述百分比对应的异常概率,并将所述异常概率作为所述异常阈值。
在本申请的具体实施例中,生成原始检测参数一个参考公式如下:
其中,argminw为所述原始检测参数的取值函数,w为所述原始检测参数,且w为求和项对应的最小值,N为所述样本访问请求的个数,Vi为各所述样本访问请求的标签的取值。
通过上述生成原始检测参数的参考公式,计算结果是参数w就是所述原始检测参数。在后续过程中即可利用原始检测参数w对所有新访问请求进行计算,通过对计算结果与异常阈值进行判断,进而实现对新访问请求是否异常进行预测。
需要说明的是,以上公式仅为本申请具体实施例提出的一种优选方案,然而,在保证计算结果能够作为原始检测参数的前提下,本领域技术人员也可以对该公式进行修改或者变形,这些都属于本申请的保护范围。
S203判断所述异常概率是否大于预设的异常阈值。
在本申请的实施方式中,在新访问请求到达时,通过分类模型来预测新访问请求是否为异常访问请求。具体的,首先通过将新访问请求的属性数据代入分类模型,可以得到该次访问为异常访问请求的概率,即异常概率,通过将该常访问请求的异常概率与预设的异常阈值进行比较,判断所述异常概率是否大于预设的异常阈值。若该新访问请求的异常概率大于异常阈值时,则判定为异常访问请求,即执行S204;若该新访问请求的异常概率小于异常阈值时,则判定为正常访问请求,即执行S205。
S204若是,确认所述访问请求为异常访问请求。
S205若否,确认所述访问请求为正常访问请求。
由此可见,通过应用以上技术方案,在获取待检测的访问请求的属性数据之后,根据属性数据以及检测参数生成与访问请求对应的异常概率,由于检测参数根据各个样本访问请求对应的标签的取值以及属性数据生成,因此在判断异常概率是否大于预设的异常阈值之后,即可基于二者的大小确认访问请求是否为异常访问请求。从而能够在海量的访问请求中准确地针对异常访问请求进行识别处理,保证了网络的稳定性与安全性。
为了进一步阐述本申请的技术思想,现结合如图2所示的具体的应用场景,对本申请的技术方案进行说明。该基于时序特征提取的异常点检测流程通过时序序列分析、线性分类器训练和预测三个步骤实现了异常点的检测,这三个不同步骤的具体介绍如下:
(1)通过时序序列生成标签
根据时序序列的特点,在训练集中,首先将所有用户访问数据按照时间顺序进行排序,排序完成之后,我们对比每次一访问的用户ID,设定一个滑动窗口向后移动,按序遍历每一次访问。对于每一次访问,如果在它的前半个窗口和后半个窗口中由相同用户提交的访问次数大于一定阈值则标记为异常点。那么异常点的标签的集合可记作:
其中,Vi表示第i个访问的标签,
w为窗口大小参数,
t
h是阈值参数,其示意图如图3所示。
(2)线性分类器训练
在所有访问标签生成完毕之后,对于每一次访问,我们认为该次访问是否是异常的,完全由该次访问的属性所决定,问题转化为一个分类问题,对于该分类问题来讲,不需要在使用时序的数据。根据每次访问的其他属性特征和标签,进行逻辑回归训练,得到一个分类模型。该模型的结果是参数w,满足:
其中,argminw是一个参数w的取值函数,w的值使得右边求和项取最小值。N代表总的学习样本个数,Vi表示上一步的异常点标签。wT表示w的转置。在实际进行逻辑回归训练的时候,采用L-BFGS算法对其进行加速。
(3)新访问预测
当有新的访问到达时,能通过分类模型来预测新的访问是否是异常点。将新的访问数据代入分类模型后,能得到该次访问是异常点的概率,设定一个阈值,当该访问为异常的概率大于该阈值时,则判定为异常点,所有异常新访问的集合表示为:
{Vi|wTxi>pt}
其中Vi表示第i次访问,xi表示该次访问的所有属性向量,pt为判断异常点的阈值。在这里,阈值应该根据长期的经验进行调整,直到一个合适的数字。如果该阈值取值太大,则会漏掉很多异常点,将其判为正常访问;如果该阈值取值太小,则会将很多正常点判定为异常点,影响正常用户使用。因此调节一个合适的阈值是非常必要的,在这里可以根据百分比的方式来设置,首先找到异常点占总体训练数据的百分比,然后将训练数据带入模型按模型计算出概率,接着对该概率进行排序,找到在异常点占总体百分比位置的概率,将其设为阈值。具体示意图如图5所示。
上述应用场景的技术方案,通过样本数据的时序特征为分类模型提供训练标签,再根据各个样本访问请求对应的标签的取值以及属性数据生成检测参数;在获取待检测的访问请求的属性数据之后,根据属性数据以及检测参数生成与访问请求对应的异常概率,因此在判断异常概率是否大于预设的异常阈值之后,即可基于二者的大小确认访问请求是否为异常访问请求。从而能够在海量的访问请求中准确地针对异常访问请求进行识别处理,保证了网络的稳定性与安全性。
为达到以上技术目的,本申请还提出了一种异常访问检测设备,如图6所示,包括以下模块:
获取模块610,获取待检测的访问请求的属性数据;
第一生成模块620,根据所述属性数据以及检测参数生成与所述访问请求对应的异常概率,所述检测参数根据各个样本访问请求对应的标签的取值以及属性数据生成;
判断模块630,判断所述异常概率是否大于预设的异常阈值;
若是,所述判断模块630确认所述访问请求为异常访问请求;
若否,所述判断模块630确认所述访问请求为正常访问请求。
在具体的应用场景中,还包括:
确定模块,根据各所述样本访问请求的访问频次信息确定各所述样本访问请求是否异常;
分配模块,分别为正常样本访问请求以及异常样本访问请求赋予不同取值的标签;
第二生成模块,根据各个样本访问请求对应的标签的取值以及属性数据生成原始检测参数;
第三生成模块,根据所述原始检测参数生成所述检测参数。
在具体的应用场景中,所述访问频次信息包括所述样本访问请求对应的用户标识ID以及访问时间,所述确定模块具体用于:
根据所述用户ID获取在所述访问时间之前的时间窗口内由相同用户提交的样本访问请求的第一数量,以及获取在所述访问时间之后的所述时间窗口内由相同用户提交的样本访问请求的第二数量;
判断所述第一数量与所述第二数量之和是否大于预设的次数阈值;
若是,确认所述样本访问请求为异常样本访问请求;
若否,确认所述样本访问请求为正常样本访问请求。
在具体的应用场景中,具体根据以下公式生成原始检测参数:
其中,argminw为所述原始检测参数的取值函数,w为所述原始检测参数,且w为求和项对应的最小值,N为所述样本访问请求的个数,Vi为各所述样本访问请求的标签的取值。
在具体的应用场景中,所述异常阈值具体通过以下方式生成:
获取异常样本访问请求占所有样本访问请求的百分比;
根据所述检测参数获取与各所述样本访问请求对应的异常概率;
将各所述样本访问请求对应的异常概率从小至大进行排序处理;
根据所述排序结果确定与所述百分比对应的异常概率,并将所述异常概率作为所述异常阈值。
通过应用本申请的技术方案,在获取待检测的访问请求的属性数据之后,根据属性数据以及检测参数生成与访问请求对应的异常概率,由于检测参数根据各个样本访问请求对应的标签的取值以及属性数据生成,因此在判断异常概率是否大于预设的异常阈值之后,即可基于二者的大小确认确认访问请求是否为异常访问请求。从而能够在海量的访问请求中准确地针对异常访问请求进行识别处理,保证了网络的稳定性与安全性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。