首页> 中国专利> 基于改进CURE聚类算法的无监督异常检测方法和系统

基于改进CURE聚类算法的无监督异常检测方法和系统

摘要

本发明提供一种基于改进CURE聚类算法的无监督异常检测方法和系统。该检测方法包括步骤:对训练集进行聚类,将异常行为数据与正常行为数据分类;对已经分类的数据进行标记;根据标记为正常行为的数据进行建模,其建模算法为基于超矩形的建模算法;将待检测数据与正常行为模型进行对比,判断是否为异常数据。该检测系统包括:数据格式化模块、聚类模块、标类模块、模型生成模块以及检测模块;本发明很适合检测各维度之间关联性不强的数据。

著录项

  • 公开/公告号CN101561878A

    专利类型发明专利

  • 公开/公告日2009-10-21

    原文格式PDF

  • 申请/专利权人 河海大学;

    申请/专利号CN200910027374.1

  • 发明设计人 李继国;徐晨;

    申请日2009-05-31

  • 分类号G06K9/62(20060101);H04L29/06(20060101);

  • 代理机构32200 南京经纬专利商标代理有限公司;

  • 代理人许方

  • 地址 210046 江苏省南京市西康路1号

  • 入库时间 2023-12-17 22:48:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-07-20

    未缴年费专利权终止 IPC(主分类):G06K9/62 授权公告日:20121121 终止日期:20150531 申请日:20090531

    专利权的终止

  • 2012-11-21

    授权

    授权

  • 2009-12-16

    实质审查的生效

    实质审查的生效

  • 2009-10-21

    公开

    公开

说明书

技术领域:

本发明涉及一种异常检测技术,尤其涉及一种基于改进CURE聚类算法的无监督异常检测方法以及基于该方法的系统,属于计算机数据安全技术领域。

背景技术:

近年来,随着计算机技术的不断发展,网络规模的不断扩大,入侵行为已经越来越严重的威胁到了计算机系统和网络的安全。入侵就是未经授权蓄意尝试访问信息、窜改信息,使系统不可靠或不能使用。由于入侵方式越来越多样化,手段越来越先进,传统的静态安全技术如:防火墙、数据加密技术等,已经无法满足系统和网络的安全性需求。

入侵检测技术作为一种重要的动态安全技术,很好地弥补了静态安全技术的不足。入侵检测技术主要分为两类:误用入侵检测和异常入侵检测。误用入侵检测是指利用已知系统和应用软件的弱点攻击模式来检测入侵。由于该技术主要是依赖于已知的系统缺陷和入侵,所以可以准确的检测到已知的入侵,但无法检测到系统未知的攻击行为。异常入侵检测是指能够根据异常行为和使用计算机资源情况检测出来的入侵。异常入侵检测试图用定量方式描述可接受的行为特征,以区分非正常的、潜在的入侵性行为。该方法可以检测未知的入侵行为,但是由于描述的可接受行为特征可能与实际情况偏差较大导致检测的准确性不高。

在异常入侵检测中,一般都要根据正常行为数据集建立一个正常行为模型来描述可接受的行为特征。但是实际上,要获取纯净的正常行为数据集是很困难的,并且代价是高昂的。为了解决这个问题,人们提出了无监督异常检测的方法。该方法不依赖于已标记的数据,所以不需要人工或其他方法对训练集进行分类,大大提高了入侵检测系统的实用性。无监督异常检测主要基于以下两个假设:第一个假设为正常行为数据量要远远超过入侵行为数据量;第二个假设为正常行为数据与非正常行为数据之间的差异很大。第一个假设为识别正常簇与非正常簇提供了依据,基于第二个假设可以认为通过聚类能将正常行为数据与非正常行为数据很好分类。

近年来,无监督异常检测已成为入侵检测领域中的热点,该领域的研究工作者试着将数据挖掘和机器学习中的方法应用于无监督异常检测,目前已经取得了一定的进展。Jiang、Song等人提出了一种新的无监督聚类检测方法CBUID,该方法在标记簇时考虑了簇的偏离程度(the deviation degree),并且在聚类时使用了INN(improved nearestneighbor)算法,该算法有效的提高了聚类的质量。Eskin等人提出了一个无监督异常检测的几何框架。该框架将未标记的数据映射到特征空间,如果数据点在特征空间的稀疏区域中,则判断该点为异常点。Leung和Leckie提出了一种基于密度和网格的聚类算法fpMAFIA。该算法基于pMAFIA算法并通过FP树对其进行优化。他们将fpMAFIA算法用于无监督异常检测中,实验表明取得了良好的效果。但是,这些无监督异常检测方法所使用的聚类算法有的因为不能对任意形状的簇聚类,导致建立的正常行为模型不理想,从而影响了检测效果。基于密度的聚类算法、神经网络的算法虽然可以对任意形状的簇聚类,但是在处理含有大规模数据量的训练集时要耗费大量时间,使得正常行为模型得不到及时的更新,导致网络或主机状况发生改变时不能很好的检测入侵行为。

发明内容:

本发明的目的是基于上述现有技术的缺陷,提供一种新的异常检测方法及基于该方法的监测系统,本发明能够高效的检测出入侵行为。

根据本发明的目的,采用如下技术方案:

本发明的基于改进CURE聚类算法的无监督异常检测方法,包括步骤:

A:通过改进的CURE聚类算法对训练集进行聚类,将异常行为数据与正常行为数据分类,生成簇集;

B:根据事先估计的正常数据所占整个数据集的百分比对簇集进行标记;

C:根据标记为正常行为的簇进行建模,其建模算法为基于超矩形的建模算法;

D:将待检测数据与正常行为模型进行对比,判断是否为异常数据。

本发明的基于改进CURE聚类算法的无监督异常检测方法,在步骤A中,改进的CURE算法是以原有CURE聚类算法的基础,将其聚类停止条件改为相邻最近的两个簇间距离大于某个阈值。

本发明的基于改进CURE聚类算法的无监督异常检测方法,在步骤B中,先根据每个簇包含的数据量从大到小排序,再依次标记簇为正常簇,直到所有标记为正常簇所包含的数据量总和所占整个数据集的百分比大于等于根据事先估计的正常数据所占整个数据集的百分比。

本发明的基于改进CURE聚类算法的无监督异常检测系统,包括:

数据格式化模块,用于格式化原始数据;

聚类模块,用基于改进的CURE聚类算法对格式化好的数据进行聚类,生成簇集;

标类模块,根据事先估计的正常数据所占整个数据集的百分比对簇集进行标记;

模型生成模块,根据标记为正常行为的簇进行建模,其建模算法为基于超矩形的建模算法;

检测模块,根据超矩形模型检测检测数据。

本发明的有益效果是:与基于特征匹配的入侵检测方法相比,该方法无需对训练数据进行标记,并且能够检测未知入侵。而与基于异常检测的方法相比,由于采用改进的CURE聚类算法,所以能够方便的从未标记的数据中较为准确的分离出正常行为数据,并生成正常行为模型,通过该模型能够对于各维度之间关联性不强的待检测数据能够做出迅速准确的判断。

附图说明:

图1显示了本发明的异常检测系统结构图。

图2显示了聚类模块的工作流程。

图3显示了模型生成模块的工作流程。

图4显示了检测模块的工作流程。

具体实施方式:

如图1-图4所示,本发明的基于改进CURE聚类算法的无监督异常检测方法,包括步骤:

A:通过改进的CURE聚类算法对训练集进行聚类,将异常行为数据与正常行为数据分类,生成簇集;

B:根据事先估计的正常数据所占整个数据集的百分比对簇集进行标记;

C:根据标记为正常行为的簇进行建模,其建模算法为基于超矩形的建模算法;

D:将待检测数据与正常行为模型进行对比,判断是否为异常数据。

依照本发明的异常检测系统包括数据格式化模块、聚类模块、标类模块、模型生成模块、检测模块。

数据格式化模块通过对原始数据进行预处理生成格式化数据,然后将其输出到聚类模块。接着聚类模块根据改进的CURE算法对格式化数据进行聚类。在生成簇集之后,便把簇集输出到标类模块。标类模块识别出哪些是正常行为数据簇,将正常行为数据簇输出到模型生成模块。最后由模型生成模块根据正常数据簇生成正常行为模型。而检测模块的职责的就是根据正常行为模型判断输入的格式化的待检测数据是正常行为数据还是异常行为数据。

该异常检测方法基于两个假设:第一个假设为正常行为数据量要远远超过入侵行为数据量;第二个假设为正常行为数据与非正常行为数据之间的差异很大。第一个假设为标类模块能够正确的识别正常行为数据提供依据。第二个假为聚类模块能够将训练数据中的异常数据与正常数据分离提供依据。

下面对各个模块的功能进行详细的说明:

数据格式化模块:主要是对二元变量、序数变量和区间标度变量的数据进行格式化。对于二元变量e,即:e取值范围是0或1,如果e=0,e′←0;如果e=1,e′←c,c>0。e′为规范化之后的数据变量,c为某个实数常量。

对于序数变量f∈{a1,a2,…,an},则转换成n个变量来处理,具体过程如下:用变量f′1,f′2,…,f′n对应于数值a1,a2,…,an,如果f=ai,则f′i←c,f′j←0,j∈{1,2,…,i-1,i+1,…,n}。例如:f表示颜色,且f∈{红色,黄色,蓝色},f′1,f′2,f′3分别对应红色,黄色,蓝色。当f=黄色时,f′1=0,f′2=c,f′3=0;当f=蓝色时,f′1=0,f′2=0,f′3=c。

对于区间标度变量g主要采用如下方法对其变换:(1)计算变量g的均值绝对偏差avedev(g):avedev(g)=1n(|z1-mg|+|z2-mg|+...+|zn-mg|).其中,z1…,zn是g的n个度量值,mg=1n(z1+z2+...+zn).(2)计算标准度量值或z-score:oi=zi-mgavedev(g).

聚类模块:该模块的职责是根据训练数据集生成簇集,聚类流程如图2。设训练数据集合D由n个x维数据点di组成,D={d1,d2,…,dn},S为簇C1,C2,…,Cm的集合。Q(Ci)为簇Ci的代表点集合,即:Q(Ci)={r1,r2,...,rpi},pi≤λ,λ为最大簇代表点数。收缩因子为α,0≤α≤1,合并簇之间的最大距离为w。

定义dist(para1,para2)表示对象para1和para2之间的距离,其距离度量可以是欧几里得距离、曼哈顿距离、以及闵可夫斯基距离等。当para1和para2都是簇时,定义dist(para1,para2)为两簇中相隔最近的两个代表点之间的距离,即:dist(para1,para2)=MIN{dist(ri,rj),ri∈Q(para1),rj∈Q(para2)}。

步骤1:初始化S。根据每一个向量di创建一个簇Ci。即:S={C1,C2,…,Cn},Ci={di},Q(Ci)={di}。

步骤2,如果|S|>2,执行下一步,否则执行终止。

步骤3,找出簇集S中代表点距离最近的两个簇Cu、Cv,即:dist(Cu,Cv)=MIN{dist(Ci,Cj),Ci∈S,Cj∈S,i≠j}。如果dist(Cu,Cv)<w,执行下一步,否则执行终止。

步骤4,合并簇Cu、Cv。Cnew←Cu∪Cv,计算Cnew的质心:hnew=ΣdiCnewdi|Cnew|.

步骤5,从Cnew中选择di。如果则使di满足条件:dist(di,hnew)=MAX{dist(dj,hnew),dj∈Cnew}。否则使di满足条件:dist(di,tmpSet)=MAX{dist(dj,tmpSet),dj∈Cnew},其中dist(dj,tmpSet)=MIN{dist(dj,dk),dk∈tmpSet}。最后将di并入tmpSet,即:tmpSet←tmpSet∪{di}。

步骤6,如果|tmpSet|<MIN{|Cnew|,λ},执行步骤5。

步骤7,收缩代表点:Q(Cnew)←{dk*(hnew-dk),dk∈tmpSet}。更新簇集:S←S-Cu-Cv+Cnew。执行步骤2。

其中步骤4到步骤7的工作主要是为了合并最近邻簇,同时计算新簇的代表点。

为了便于查找相邻最近的两个数据点,一般用KD树来存放数据点,然后用小顶堆来存放簇,并将簇按照与其最近邻簇之间的距离升序排序,这样在最坏情况下该算法的时间复杂性为:O(n2logn)。

标类模块:

标类模块主要负责在聚类之后需要对簇进行标记。该算法首先按照簇的大小降序排列,然后标记前θ个簇为正常簇。由于θ没有合适的计算方法,所以我们假设训练集中含有的正常行为数据比率为l,然后不断递增θ,直到Σi=1θ|Ci|nl.该算法在最坏情况下的时间复杂度为O(|S|)。其详细描述如下:

步骤A、如果则执行终止。

步骤B、将集合s中的簇按照其大小降序排列,θ←1。

步骤C、如果θ>=|S|或者Σi=1θ|Ci|n>=l,则执行步骤E。

步骤D、θ←θ+1,执行步骤C。

步骤E、标记C1,…,Cθ为正常簇,并输出。

模型生成模块:

如图3,该模块根据一种基于超矩形的建模算法进行建模。在对数据进行检测之前,该模块首先根据正常簇{C1,…,Cθ}建立一个超矩形的检测模型M={R1,R2,…,Rθ},Ri表示对应簇Ci的超矩形。超矩形的创建是根据正常簇Ci中的数据点确定Ri在每一个维度σj(j=1,2,…,x)上的上界U(Ri,σj)和下界L(Ri,σj)。其详细描述如下:

步骤1、初始化i←1。

步骤2、k←1,如果i>θ,执行终止。

步骤3、初始化Ri:U(Ri,σj)←I(dk,σj),L(Ri,σj)←I(dk,σj),dk∈Ci,j∈{1,2,…,x}。I(dk,σj)表示为dk在维度σj上的值。

步骤4、如果k≥|Ci|,则i←i+1,执行STEP2。否则k←k+1。

步骤5、如果U(Ri,σj)<I(dk,σj),j∈{1,2,…,x},则 U(Ri,σj)←I(dk,σj);如果L(Ri,σj)>I(dk,σj),j∈{1,2,…,x},则L(Ri,σj)←I(dk,σj)。然后执行STEP4。

基于超矩形的算法通过正常簇中的数据来计算出正常行为数据在每一个维度上的正常值域。

检测模块:

如图4,该模块以正常行为模型为参照,判断待检测数据是否为异常数据。

步骤1、初始化i←1。

步骤2、对于任意维σj,j∈{1,2,…,x},如果U(Ri,σj)<I(d,σj)或者L(Ri,σj)>I(d,σj),则i←i+1。否则判断d为正常行为数据,执行终止。

步骤3、如果i>θ,判断d为异常行为数据,执行终止。否则执行STEP2。

下面将对如上所述的依照本发明的异常检测系统应用于公司中的过程进行具体说明。

首先要建立一个正常行为模型,这需要在公司局域网网关处搜集5万条训练数据,数据的格式为:网络层协议(protocol)、应用层协议(service)、源主机地址(src_ip)、源端口(src_port)、目标主机地址(dst_ip)、目标端口(dst_port)、生存时间(ttl)。由于该数据集的用途是建立正常行为模型,所以尽可能在网络处于正常状态的情况下或是分成多个时间段搜集。然后将设定各个模块的参数值,格式化实数常量c←10、最大簇代表点数λ←30、收缩因子α←0.1、簇之间的最大距离w←30、正常行为数据比率为l←98。然后在依次经过数据格式化模块、聚类模块、标类模块、模型生成模块的处理之后,就可以获得正常行为模型。检测模块再根据该模型判断输入数据是否是异常行为数据。

所以,本项发明带来的有益效果是:本发明能够更加准确、快速的自动对训练数据进行标记,不管是已知还是未知入侵数据只要不符合正常行为模型就能够检测出来。

在不背离本发明宗旨的范围内,本领域普通技术人员可以根据上述具体实施例通过各种等同替换所得到的技术方案,但是这些技术方案均应该包含在本发明的权利要求的范围及其等同的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号