网络流量异常检测方法及装置与流程

文档序号:16381694发布日期:2018-12-22 09:32阅读:414来源:国知局
网络流量异常检测方法及装置与流程

本发明涉及信息安全技术领域,尤其涉及一种网络流量异常检测方法及装置。

背景技术

网络流量异常是指网络的流量行为偏离正常行为的情形,例如网络业务流量突然出现不正常的重大变化等等。引起网络流量异常的原因有很多,例如网络设备异常、网络操作异常、闪现拥挤异常、网络攻击行为等。网络流量异常不仅影响网络和业务系统的正常使用,还会威胁网络用户信息安全,给网络用户造成诸多危害。

目前,涉及机器学习中无监督学习的网络流量异常检测方法通常采用聚类分析算法及离群分析算法实现,其存在缺陷如下:现有技术中采用的聚类分析算法存在对输入参数的敏感性过高、或者实现过程的时间复杂度过高同时又占据大量存储空间等问题,导致网络流量异常的检测结果准确性偏低并且检测效率偏低;现有技术中的离群分析算法在已知异常点个数的情况下具有很高的检测精度,但是在无法提前获知网络流量异常点个数的情况下,其常常会将大量正常数据当作异常数据,并且在处理较大网络数据集时,现有技术中的离群分析算法计算的时间复杂度过高,因此同样导致网络流量异常检测结果的准确性偏低并且检测效率偏低。



技术实现要素:

本发明的实施例提供一种网络流量异常检测方法及装置,用于解决现有技术中网络流量异常的检测准确性及检测效率偏低的问题。

为了达到上述目的,本发明采用如下技术方案:

第一方面,提供一种网络流量异常检测方法,包括:

获取网络流量异常检测样本以及网络流量异常检测样本的数据点分布特征;其中,网络流量检测样本包括网络流量数据以及与网络流量数据关联的网络行为特征;根据预设聚类分析算法对数据点分布特征进行聚类分析,将剔除聚类分析结果中的密集数据点之后的数据集作为初步异常检测数据集;其中,预设聚类分析算法中为每个数据点增加一个referrer域,referrer域中存储有指向信息以将数据点指向与该数据点相距最近的最相邻数据点;根据预设离群分析算法获取初步异常检测数据集的第一离群点集以及离群点数,以及根据预设离群分析算法、离群点数以及预设离群分析算法的局部离群因子调整距离参数值以获取初步异常检测数据集的第二离群点集;获取第一离群点集与第二离群点集的交集作为网络流量异常检测结果。

在本发明实施例提供的网络流量异常检测方法中,能够采用预设聚类分析算法对获取的数据点分布特征进行聚类分析,将剔除聚类分析结果中的密集数据点之后的数据集作为初步异常检测数据集,其中预设聚类分析算法中为每个数据点增加一个referrer域,referrer域中存储有指向信息以将数据点指向与该数据点相距最近的最相邻数据点,通过设置上述referrer域能够将聚类分析中远离各簇的稀疏数据点放入与该数据点相距最近的簇中,简化聚类分析的计算过程并提升聚类分析结果的准确性;在此之后通过预设离群分析算法获取初步异常检测数据集的第一离群点集以及离群点数,并根据预设离群分析算法、离群点数以及预设离群分析算法的局部离群因子对初步异常检测数据集的离群分析结果进行矫正,通过调整目标距离参数值获取初步异常检测数据集的第二离群点集,最后获取第一离群点集以及第二离群点集的交集作为网络流量异常检测结果。上述离群分析过程中无需获知异常点个数,因此采用上述过程使得网络流量异常检测结果具有较高准确性;同时初步异常检测数据集能够有效减少离群分析过程所要处理的数据量,提高检测效率。

可选地,预设聚类分析算法基于optics算法实现;根据预设聚类分析算法对数据点分布特征进行聚类分析具体包括:

根据预设聚类分析算法有序种子队列中数据点的可达距离的更新对数据点的referrer域的指向信息进行更新;以及,在聚类分析算法有序种子队列新插入数据点后对数据点的referrer域的指向信息进行更新;

根据referrer域的指向信息重新组织预设聚类分析算法的结果队列。

可选地,对数据点的referrer域的指向信息进行更新具体为:将数据点指向预设聚类分析算法的结果队列的末尾。

可选地,预设离群分析算法基于lof算法实现,则根据预设离群分析算法获取初步异常检测数据集的第一离群点集以及离群点数具体为:

根据预设离群分析算法计算预设领域参数;其中,预设领域参数包括:预设领域数据点个数、预设领域平均距离以及预设领域内数据点密度;

根据预设领域参数确定数据点密度跳变位置以获取初步异常检测数据集的离群点数以及第一离群点集;

根据预设离群分析算法、离群点数以及预设离群分析算法的局部离群因子调整距离参数值以获取初步异常检测数据集的第二离群点集具体为:

调整距离参数值以使初步异常检测数据集局部离群因子大于1的数据点个数与离群点数相等;

获取与局部离群因子对应的离群点集作为第二离群点集。

可选地,获取网络流量异常检测样本以及网络流量异常检测样本的数据点分布特征具体为:

获取网络流量异常检测样本,计算网络流量检测样本的信息熵以获取网络流量异常检测样本的数据点分布特征。

第二方面,提供一种网络流量异常检测装置,包括:

获取模块,用于获取网络流量异常检测样本以及网络流量异常检测样本的数据点分布特征;其中,网络流量检测样本包括网络流量数据以及与网络流量数据关联的网络行为特征;

聚类分析模块,用于根据预设聚类分析算法对数据点分布特征进行聚类分析,将剔除聚类分析结果中的密集数据点之后的数据集作为初步异常检测数据集;其中,预设聚类分析算法中为每个数据点增加一个referrer域,referrer域中存储有指向信息以将数据点指向与该数据点相距最近的最相邻数据点;

离群分析模块,用于根据预设离群分析算法获取初步异常检测数据集的第一离群点集以及离群点数,以及根据预设离群分析算法、离群点数以及预设离群分析算法的局部离群因子调整距离参数值以获取初步异常检测数据集的第二离群点集;

处理模块,用于获取第一离群点集与第二离群点集的交集作为网络流量异常检测结果。

可选地,预设聚类分析算法基于optics算法实现;

则聚类分析模块具体用于:

根据预设聚类分析算法有序种子队列中数据点的可达距离的更新对数据点的referrer域的指向信息进行更新;以及,在聚类分析算法有序种子队列新插入数据点后对数据点的referrer域的指向信息进行更新;

根据referrer域的指向信息重新组织预设聚类分析算法的结果队列。

可选地,聚类分析模块具体用于:将数据点指向预设聚类分析算法的结果队列的末尾。

可选地,预设离群分析算法基于lof算法实现,则离群分析模块具体用于:

根据预设离群分析算法计算预设领域参数;其中,预设领域参数包括:预设领域数据点个数、预设领域平均距离以及预设领域内数据点密度;

根据预设领域参数确定数据点密度跳变位置以获取初步异常检测数据集的离群点数以及第一离群点集;

调整距离参数值以使初步异常检测数据集局部离群因子大于1的数据点个数与离群点数相等;

获取与局部离群因子对应的离群点集作为第二离群点集。

可选地,获取模块具体用于:

获取网络流量异常检测样本,计算网络流量检测样本的信息熵以获取网络流量异常检测样本的数据点分布特征。

可以理解地,上述提供的网络流量异常检测装置用于执行上文所提供的第一方面对应的方法,因此,其所能达到的有益效果可参考上文第一方面的方法以及下文具体实施方式中对应的方案的有益效果,此处不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本邻域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a为直接可达密度的定义示意图;

图1b为密度可达的定义示意图;

图1c为密度相连的定义示意图;

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

图3为本发明一实施例提供的一种预设聚类分析方法的方法流程图;

图4为本发明一实施例提供的referrer域的更新示意图;

图5为本发明一实施例提供的采用预设聚类分析方法获取的结果队列的可达图;

图6为本发明一实施例提供的根据referrer域重新组织预设聚类分析算法的结果队列的方法流程图;

图7为本发明一实施例提供的采用预设聚类分析算法获得的聚类分析结果示意图;

图8为本发明一实施例提供的一种预设离群分析算法的方法流程图;

图9为本发明一实施例提供的一种网络流量异常检测方法的结果示意图;

图10为本发明一实施例提供的一种网络流量异常检测装置的结构示意图;

图11为本发明一实施例提供的另一种网络流量异常检测装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本邻域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。术语“第一”和“第二”等的使用不表示任何顺序,可将上述术语解释为所描述对象的名称。在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。

本发明实施例用于网络流量异常的检测,主要实现一种基于无监督学习的网络流量异常的检测。其中,网络流量异常是指网络的流量行为偏离其正常行为的情形,实际情况中,引起网络流量异常的原因有很多,例如网络设备的软硬件异常、网络操作异常、闪现拥挤异常、网络攻击行为等等。网络流量异常会对用户设备以及网络使用造成诸多危害,例如威胁主机安全、浪费网络资源、影响用户应用等。无监督学习属于机器学习的一种学习方式,无监督学习中数据不被特别标识,学习模型是为了推断出数据的一些内在结构,因此非常适用于针对由多种原因导致的网络流量异常的检测。实际情况中,网络流量异常会对用户设备以及网络使用造成诸多危害,例如威胁主机安全、浪费网络资源、影响用户应用等等,因此为了降低用户的使用网络的安全风险并保障用户设备安全,基于无监督学习来实现一种高效且准确的网络流量异常检测很有必要。

聚类分析算法是无监督学习算法中常用的一种算法,聚类分析算法能够在没有任何先验知识的前提下发现未知攻击,通常采用基于密度的聚类分析算法进行网络流量异常的检测,如dbscan(density-basedspatialclusteringofapplicationswithnoise)算法、以及optics(orderingpointstoidentifytheclusteringstructure)算法等。其中dbscan算法能够根据用户输入的参数产生聚类结果,但是dbscan算法需要用户在没有先验知识的情况下设定参数邻域半径ε和最小密集点数minpts作为输入参数,实际情况中dbscan算法存在问题如下:首先,dbscan算法对输入参数的取值非常敏感,不同的参数值将产生完全不同的聚类结果;其次,参数的确定往往需要专家的分析或者大量的实验验证,因此若要获取准确的参数和聚类结果则需要消耗大量时间和资源,造成时间和资源的浪费,使得网络流量异常的检测效率偏低。optics算法能够从一个选定的对象出发,朝着数据最为密集的区域扩张,最终将所有对象组织成一个能够反映网络流量数据结构的可视化有序序列。实际情况中optics算法存在问题如下:optics算法虽然能够克服dbscan算法对输入参数的敏感性,但optics算法在计算时具有较高的时间复杂度,例如若选中的对象属于核心点p(如果对象p的ε邻域内的样本点数大于或等于minpts,则称对象p为核心点),则需要对核心点p的ε邻域内的对象进行扩张,然而每一次的ε邻域查询都要扫描整个网络流量数据集,假如整个网络流量数据集共有n个对象,则扫描n个数据集的时间复杂度就达到t(n)=o(n^2),其时间复杂度较高;另外optics算法还需要使用空间数据库索引,这使得optics算法对数据集进行聚类前还需要对所有数据对象建立空间索引,由此造成时间和空间上的严重浪费;同时optics算法中低密度区域的对象往往被累积在结果队列的末尾,这使得optics算法自身性能未能充分体现。

局部离群分析算法是另一种常用的对网络流量异常检测的方法,常用的局部离群分析算法为lof算法。lof算法是一种基于密度的异常点检测算法,lof算法能够考察数据对象与其周围相邻对象相比的异常程度,但不能够从全局的角度考虑数据的异常特性。lof算法在处理较大的网络流量数据集时计算k可达距离和局部可达密度(参见后续介绍中定义8和定义9)的时间复杂度t(n)=o(nk^2),其时间复杂度较高,并且需要对全部数据依次进行计算,没有针对性。同时,lof算法通过计算数据集中每个数据点的局部离群因子值来确定异常点集,通常选取局部离群因子较大的若干个点作为异常点,这种用局部离群因子来确定异常点的方法在已知异常点个数的情况下检测精确度很高。但实际应用中,通常异常点的个数无法提前获知,因此使用lof算法来确定异常点时,lof算法的参数选择将显得十分重要。当lof算法的参数选择不合适时,可能将大量正常数据点(或正常点)当作异常点,或将许多异常点归为正常点,导致网络流量异常检测的准确性偏低。

为了克服上述算法的缺陷,本发明提供一种网络流量异常检测方法,该方法基于无监督学习实现,能够高效且准确地针对网络流量异常进行检测。接下来对本发明提供的网络流量异常检测方法进行介绍。

具体地,参见图2,图2为本发明实施例提供的一种网络异常检测方法的方法流程图,该方法包括步骤如下:

步骤s201:获取网络流量异常检测样本以及网络流量异常检测样本的数据点分布特征。

其中,网络流量检测样本可以包括网络流量数据以及与网络流量数据关联的网络行为特征。网络流量数据可以为从原始网络数据流中获取的一系列网络流量的相关字段,例如源ip、源端口、目标ip、目标端口、字节数、数据包数以及协议类型等类似的相关字段。

网络流量数据关联的网络行为特征可以为根据网络流量数据引入的与网络流量数据关联的其它间接有效的网络行为特征。例如可以引入“入度”、“出度”等表现网络流量流向的度量等信息作为上述网络行为特征。其中入度为以x(x为网络访问地址)为目的地址进行通信的不同ip的数量,出度为以x为源地址连接到不同目的ip的数量。

获取网络流量异常检测样本之后,可以通过计算网络流量异常检测样本的信息熵来获取网络流量异常检测样本的数据点(即数据对象)分布特征。具体实施中,可以计算预设时间内网络流量数据以及网络行为特征中各字段的信息熵,并将上述全部字段或者部分字段的信息熵的计算结果作为网络流量异常检测样本的数据点分布特征。优选地,可以根据上述信息熵的计算结果以及实际情况设置的字段选取条件(例如根据网络流量的业务经验设置的字段选取条件),以从上述各字段中选取部分字段作为最终字段,并将最终字段的数据点分布特征作为网络流量异常检测样本的数据点分布特征。例如,可以计算60秒内网络流量数据中源ip、源端口、目标ip、目标端口、字节数、数据包数及协议类型、以及网络行为特征中入度、出度等字段的信息熵,然后根据上述各字段信息熵的计算结果以及字段选取条件选取源ip、目标端口、入度、协议类型的数据点分布特征作为网络流量异常检测样本的数据点分布特征。可以理解的是,上述预设时间及字段选取条件可以由本领域技术人员根据实际情况进行设置,本发明对此不作限定。

步骤s202:根据预设聚类分析算法对数据点分布特征进行聚类分析,将剔除聚类分析结果中的密集数据点之后的数据集作为初步异常检测数据集。

其中,预设聚类分析算法可以根据数据点分布特征将一个给定的数据点集合分成不同的簇,同一簇中的数据点具有相似性,不同簇之间的数据点相异。预设聚类分析算法中为每个数据点增加一个referrer域,referrer域中存储有指向信息以将数据点指向与该数据点相距最近的最相邻数据点。referrer域可以用于重新组织预设聚类分析算法的结果队列,以将预设聚类分析结果队列中的稀疏点放入与其相距最近的最相邻数据点所属的簇中。其中对referrer域的更新无需引入额外的计算代价和时间代价,简化聚类分析的计算过程并提升聚类分析结果的准确性。

步骤s203:根据预设离群分析算法获取初步异常检测数据集的第一离群点集以及离群点数,以及根据预设离群分析算法、离群点数以及预设离群分析算法的局部离群因子调整距离参数值以获取初步异常检测数据集的第二离群点集。

步骤s204:获取第一离群点集与第二离群点集的交集作为网络流量异常检测结果。

在本发明实施例提供的网络流量异常检测方法中,能够采用预设聚类分析算法对获取的数据点分布特征进行聚类分析,将剔除聚类分析结果中的密集数据点之后的数据集作为初步异常检测数据集,其中预设聚类分析算法中为每个数据点增加一个referrer域,referrer域中存储有指向信息以将数据点指向与该数据点相距最近的最相邻数据点,通过设置上述referrer域能够将预设聚类分析结果队列中的稀疏点放入与其相距最近的最相邻数据点所属的簇中,简化聚类分析的计算过程并提升聚类分析结果的准确性;在此之后通过预设离群分析算法获取初步异常检测数据集的第一离群点集以及离群点数,并根据预设离群分析算法、离群点数以及预设离群分析算法的局部离群因子对初步异常检测数据集的离群分析结果进行矫正,通过调整目标距离参数值获取初步异常检测数据集的第二离群点集,最后获取第一离群点集以及第二离群点集的交集作为网络流量异常检测结果。上述离群分析过程中无需获知异常点个数,因此采用上述过程使得网络流量异常检测结果具有较高准确性;同时筛选出初步异常检测数据集能够有效减少离群分析过程所要处理的数据量,提高检测效率。

具体实施中,步骤s202中预设聚类分析算法可以基于optics算法实现,涉及定义如下:

定义1:直接密度可达(directlydensity-reachable):参见图1a所示,如果p为核心点,q在p的ε邻域,则p直接密度可达q。

定义2:密度可达(density-reachable):参见图1b所示,如果存在序列p1,p2,p3……pn,其中p1=p,pn=q,并且对于任意1≤i<n,pi直接密度可达pi+1,则p密度可达q。

定义3:密度相连(density-connected):参见图1c所示,如果o密度可达p,且o密度可达q,则p和q密度相连。

定义4:核心距离(core-distance):假定点p包含minpts个邻居(近邻的点)的最小半径为minpts-distance(p),那么p的核心距离定义为:

也就是说,当p≠core-object即p不是核心点时,p的核心距离无意义;当p=core-object即p是核心点时,p的核心距离为p包含的minpts个邻居(近邻的点)的最小半径minpts-distance(p)。

定义5:可达距离(reachability-distance):假定p是某点o的ε邻域中的点,那么p与o相关的可达距离定义为:

也就是说,当p≠core-object即p不是核心点时,p与o相关的可达距离无意义;当p=core-object即p是核心点时,p与o相关的可达距离为使“p为核心点”且“o从p直接密度可达”同时成立的最小邻域半径。

其中,由上述定义可知,p与o相关的可达距离即从o直接密度可达p的最小距离,该距离与数据点的空间密度直接相关,即如果数据点在空间上的空间密度越大,则该数据点与相邻点的直接密度可达的距离越小,反之亦然。因此基于optics算法的预设聚类分析算法用一个可达距离升序排列的有序种子队列(orderseeds)存储待扩张的数据点,以迅速定位稠密空间的数据对象。具体参见图3所示,基于optics算法的预设聚类分析算法包括如下步骤:

步骤s301:有序种子队列初始为空,结果队列初始为空。

步骤s302:判断所有数据点是否处理完毕,若是,则算法结束;若否则执行步骤s303。

步骤s303:选择一个未处理数据点放入有序种子队列,判断有序种子队列是否为空,若是,在执行步骤s302;若否,则执行步骤s304。

步骤s304:选择一个对象数据点p进行扩张,判断p是否为核心点,若是,则执行步骤s308;若否则执行步骤s305。

步骤s305:对于p的ε邻域内任一未扩张的数据点q,判断q是否在有序种子队列中,若是,则执行步骤s306;若否,则执行步骤s307。

步骤s306:若q在有序种子队列中且从p到q的可达距离小于旧的可达距离,则更新q的可达距离,并调整q到相应位置以保证有序种子队列的有序性,更新q的referrer域的指向信息。

步骤s307:若q不在有序种子队列中,则根据p到q的可达距离将q插入有序种子队列,更新q的referrer域的指向信息。

步骤s308:从有序种子队列中删除p,将p写入结果队列,返回执行步骤s303。

更新q的referrer域的指向信息具体可以为:根据预设聚类分析算法有序种子队列中数据点的可达距离的更新对数据点的referrer域的指向信息进行更新;以及,在预设聚类分析算法有序种子队列新插入数据点后对数据点的referrer域的指向信息进行更新。具体地,假定两个数据点距离越近,其属于同一簇的概率越大。由上述optics算法的计算过程可知,有序种子队列中每个数据点的可达距离可以动态更新(对应步骤s306),其更新后的可达距离具体为该数据点到所有已扩张的数据点的最小可达距离。因此,如果存在数据点的可达距离发生更新,则说明存在距该数据点更近的新的数据点,即距该数据点最近的最相邻数据点发生改变。由于referrer域的指向信息为将数据点指向与该数据点相距最近的最相邻数据点,因此当存在数据点的可达距离发生更新时,需要对该数据点的referrer域进行更新。在当前状态下,若结果队列中存在数据点的可达距离发生改变,由于导致上述可达距离发生改变的数据点一定是刚完成扩张的数据点,上述刚完成扩张的应该被放置在结果队列的末尾,则将可达距离改变的数据点的referrer域指向信息更新为指向预设聚类分析算法的结果队列的末尾即可。类似地,若在预设聚类分析算法的有序种子队列中新插入数据点(对应步骤s307),也可以按照上相同的方式对数据点的referrer域的指向信息进行更新,即将新插入有序种子队列referrer域的指向信息更新为指向预设聚类分析算法的结果队列的末尾。

具体可以参见图4,图4中包含三行队列,由上而下依次分别为有序种子队列l1、有序种子队列中各数据点的referrer域的队列l2以及结果队列l3。其中,有序种子队列l1包括已扩结数据点及未扩结数据点,斜线阴影所示区域的数据点为已扩结并已挪入结果队列数据点,其余部分为未扩结数据点;在未扩结数据点中,数据点41和数据点42为可达距离发生改变的数据点。由图4可以看出,当数据点的可达距离发生改变时,将可达距离发生改变的数据点的referrer域指向结果队列的末尾,以对可达距离发生改变的数据点的referrer域进行更新。

具体实施中,referrer域的更新过程仅是加入将可达距离改变的数据点referrer域指向结果队列队尾的操作,该过程中并未引入额外的计算代价。

在完成上述针对有序种子队列的处理过程后,将全部数据点的referrer域与网络流量数据点一并存入结果队列中,获取结果队列的可达图。如图5所示,图5为以结果队列中数据点序列为横坐标,可达距离为纵坐标所得到的可达图。其中,图5中可达距离的波谷区域代表网络流量数据稠密簇内的数据点,波峰区域代表数据稀疏的边界点。在利用referrer域将聚类分析所得的稀疏点移入与其最相邻的所属簇的过程中,通过遍历和辨别可达图中的陡峭下降区域和陡峭上升区域来提取对应簇。

为提取可达图中的潜在簇,预设聚类分析算法在运行完成后通常需要进行extractclusters操作,在本发明中,可以在extractclusters操作根据referrer域的指向信息重新组织所述预设聚类分析算法的结果队列。

参见图6所示,根据referrer域的指向信息重新组织预设聚类分析算法的结果队列具体包括如下步骤:

步骤s601:将待处理指针指向结果队列队首。

步骤s602:判断待处理指针是否指向结果队列队尾,若是,则执行步骤s608,若否,则执行步骤s603。

步骤s603:后移指针。

步骤s604:判断是否出现陡峭下降区域,若是,则执行步骤s605;若否则重新执行本步骤。

步骤s605:开始新簇提取,将从陡峭下降区域开始的数据点存入新簇中并后移指针,当出现陡峭上升区域时结束新簇提取,获取由上述陡峭下降区域以及陡峭上升区域之间的数据点组成的新簇,并重新执行步骤s602。

其中,在本步骤中,对于当前待处理数据点p,进一步判断p的referrer域所指向的最相邻数据点q是否属于上述新簇,若是,则将p插入到上述新簇中;否则将p插入q所属簇的簇尾。

陡峭下降区域以及陡峭上升区域的判定方式由本领域技术人员根据实际情况进行设置,本发明对此不作限定。

步骤s606:将所有簇中的数据点首尾拼接,形成新的可达图。

如果在预设聚类分析算法运行的同时实时记录已处理数据点到该数据点对应簇的映射,则上述查找q所属簇并将p插入q所属簇的簇尾将在常数时间内完成。

在完成上述步骤之后,获取采用上述预设聚类分析算法所得的聚类分析结果,并将剔除聚类分析结果中的密集数据点之后的数据集作为初步异常检测数据集。具体实施中,采用上述预设聚类分析算法获取的聚类分析结果如图7所示。其中,图7中圆形所标示的数据点为网络流量正常的数据点,三角形所标示的数据点为网络流量异常的数据点。

具体实施中,步骤s203可以基于lof算法实现,具体涉及定义如下:

定义6:k距离:数据对象l的k距离定义为数据集d中到数据对象l距离最近的第k个点到l的距离(欧氏距离即直线距离),记作k-distance(l)。

定义7:k距离邻域:数据集中与数据对象l的距离不大于k距离的数据点组成的集合,即:

nk-distance(l)(h)={h∈d\{l}|d(l,h)≤k-distance(l)}

定义8:k可达距离:l和h为数据集中任意两点,l到h的可达距离reach-distk(l,h)定义为:

reach-distk(1,h)=max{d(1,h),k-distance(l)}

其中,d(l,h)表示点l和h之间的欧氏距离。

定义9:局部可达密度:l的局部可达密度指l到其邻域内的所有点的平均可达距离的倒数,局部可达密度lrd(l)采用如下公式计算:

其中nk为l的k邻域内的点的个数。并且,由于可能存在若干个点到1的距离相等,因此k近邻的点可能为一个或多个,则有|nk(l)≥k|。若lrd(q)越大,则表明l的密度越大,l点越正常。

定义10:局部离群因子:表征数据的离散程度,局部离群因子lofk(l)采用如下公式计算:

其中,若lofk(l)值远远大于1,则表明l点的密度与整体数据的密度差异较大,可以将l视作离群点(异常点);反之,若lofk(l)值越接近1,则表明l点的密度与整体数据的密度差异越小,l点越正常。

定义11:r领域:以数据点l为中心,r为半径所构成的区域。

定义12:r领域平均距离distr(l):r领域内的数据点到数据点l距离的平均值,计算公式如下:

定义13:r领域内数据点密度ρl:r领域内数据点个数与r领域平均距离的比值,计算公式如下:

其中|nr(l)|为r领域内数据点个数。

参见图8,步骤s203具体包括如下步骤:

步骤s801:根据预设离群分析算法计算预设领域参数。

具体地,预设领域即定义11-定义13中的r领域。根据定义11-定义13可知预设领域参数可以包括:预设领域数据点个数即r领域内数据点个数|nr(l)|;预设领域平均距离以及预设领域内数据点密度。

步骤s802:根据预设领域参数确定数据点密度跳变位置以获取初步异常检测数据集的离群点数以及第一离群点集。

根据上述预设领域参数绘制密度个数分布图,找到密度个数分布图中密度跳变较大或者密度对应的数据点个数跳变较大的位置,将该位置确定为数据点密度跳变位置,获取全部密度跳变位置的数据点集作为第一离群点集、以及获取全部密度跳变位置的数据点个数作为离群点数。

当然,可以理解的是,上述获取离群点数以及第一离群点集的方式仅仅是示例性的,具体实施中,本领域技术人员还可以采用除上述所列举方式以外的其它方式获取离群点数以及第一离群点集,本发明对获取离群点数以及第一离群点集具体方式不作限定。

步骤s803:调整距离参数值以使初步异常检测数据集的局部离群因子大于1的数据点个数与所述离群点数相等。

具体地,调节预设离群分析算法中的距离参数值(即定义8中的距离k),使初步异常检测数据集的局部离群因子大于1的数据点的个数与步骤s802中获取的离群点数相等。

步骤s804:获取与上述局部离群因子对应的离群点集作为第二离群点集。

获取局部离群因子大于1的数据点的个数与上述离群点数相等时对应的离群点集作为第二离群点集。

图9示出了在基于图7所示的聚类分析结果基础上采用本发明实施例提供的预设离群分析算法获得的网络流量异常检测的检测结果图,即本发明提供的网络流量异常检测方法所获得的最终检测结果图。图9中圆形所标示的数据点为网络流量正常的数据点,三角形所标示的数据点为网络流量异常的数据点。对比图9和图7可以明显看出,采用本发明提供的网络流量异常检测方法能够更为准确地从大量的网络流量数据点中筛选出网络流量异常数据点。

表1示出了根据本发明提供的网络流量异常检测方法与现有技术中采用其它算法进行网络流量异常检测的效果对比,从表1中可以明显看出,本发明提供的网络流量异常检测方法在精确率、召回率以及运行时间等参数上远远优于其它算法。

表1

图10示出了本发明提供的一种网络流量异常检测装置的结构框图。本发明提供的网络流量异常检测装置基于无监督学习实现,包括:

获取模块11,用于获取网络流量异常检测样本以及网络流量异常检测样本的数据点分布特征;其中,网络流量检测样本包括网络流量数据以及与网络流量数据关联的网络行为特征。

可选地,获取模块11具体用于:

获取网络流量异常检测样本,计算网络流量检测样本的信息熵以获取网络流量异常检测样本的数据点分布特征。

聚类分析模块12,用于根据预设聚类分析算法对数据点分布特征进行聚类分析,将剔除聚类分析结果中的密集数据点之后的数据集作为初步异常检测数据集;其中,预设聚类分析算法中为每个数据点增加一个referrer域,referrer域中存储有指向信息以将数据点指向与数据点相距最近的最相邻数据点。

可选地,预设聚类分析算法基于optics算法实现,

则聚类分析模块12具体用于:

根据预设聚类分析算法有序种子队列中数据点的可达距离的更新对数据点的referrer域的指向信息进行更新;以及,在聚类分析算法有序种子队列新插入数据点后对数据点的referrer域的指向信息进行更新;

根据referrer域的指向信息重新组织预设聚类分析算法的结果队列。

可选地,聚类分析模块12具体用于:将数据点指向预设聚类分析算法的结果队列的末尾。

离群分析模块13,用于根据预设离群分析算法获取初步异常检测数据集的第一离群点集以及离群点数,以及根据预设离群分析算法、离群点数以及预设离群分析算法的局部离群因子调整距离参数值以获取初步异常检测数据集的第二离群点集。

可选地,预设离群分析算法基于lof算法实现,则离群分析模块13具体用于:

根据预设离群分析算法计算预设领域参数;其中,预设领域参数包括:预设领域数据点个数、预设领域平均距离以及预设领域内数据点密度;

根据预设领域参数确定数据点密度跳变位置以获取初步异常检测数据集的离群点数以及第一离群点集;

调整距离参数值以使初步异常检测数据集的局部离群因子大于1的数据点个数与离群点数相等;

获取与局部离群因子对应的离群点集作为第二离群点集。

处理模块14,用于获取第一离群点集与第二离群点集的交集作为网络流量异常检测结果。

上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,其作用在此不再赘述。

在采用集成的模块的情况下,网络流量异常检测装置包括:存储单元、处理单元以及接口单元。处理单元用于对网络流量异常检测装置的动作进行控制管理,例如,处理单元用于支持网络流量异常检测装置执行图2、图3、图6、以及图8中的各步骤。接口单元用于支持网络流量异常检测装置与其他装置的交互;存储单元,用于存储网络流量异常检测装置程序代码和数据。

其中,以处理单元为处理器,存储单元为存储器,接口单元为通信接口为例。其中,网络流量异常检测装置参照图11中所示,包括通信接口1101、处理器1102、存储器1103和总线1104,通信接口1101、处理器1102通过总线1104与存储器1103相连。

处理器1102可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本申请方案程序执行的集成电路。

存储器1103可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器1103用于存储执行本申请方案的应用程序代码,并由处理器1102来控制执行。通讯接口1101用于支持网络流量异常检测装置与其他装置的交互。处理器1102用于执行存储器1103中存储的应用程序代码,从而实现本申请实施例中的网络流量异常检测方法。

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

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

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

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