一种基于改进密度聚类的入侵检测方法及装置
技术领域
本发明属于信息安全技术领域,尤其涉及一种基于改进密度聚类的入侵检测方法及装置。
背景技术
现有应用到入侵检测中的聚类算法大致分为两种:一种是基于划分的的聚类算法,一种是基于密度的的聚类算法。
基于划分的聚类算法,如K-means,由于簇的个数K与初始聚类中心点是事先人为选定的,一旦选择不好,可能无法获得有效的聚类结果;其次,基于划分的聚类算法不能处理非球形簇、不同尺寸和不同密度的簇。
基于密度的聚类算法,如经典的DBSCAN(Density-Based Spatial Clustering ofApplications with Noise),对于高维度且数据量较大的入侵数据,运算开销会比较大,而且预先定义的密度阈值会对后面的聚类结果有明显的影响。
发明内容
鉴于此,本发明实施例提供一种基于改进密度聚类的入侵检测方法及装置,以解决现有技术存在的运算开销大,初始值的设定影响聚类结果的问题。
一方面,本发明实施例提供一种基于改进密度聚类的入侵检测方法,所述方法包括:
对原始数据集进行预处理,所述原始数据集包含多个数据记录,每个数据记录包含连续型数据和/或非数值型数据;
对预处理后的数据进行距离度量;
基于所述距离度量,计算局部点的密度指标;
基于所述距离度量和局部点的密度指标,计算局部点的距离指标;
根据计算得到的所述局部点的密度指标和所述局部点的距离指标,获得决策图;
对所述决策图进行分析,获得簇的中心点以及簇的类数,并将剩余的点分配到离其距离最近且密度指标比其高的点所属的簇中,其中所述中心点为密度指标大于第一阈值,距离指标大于第二阈值的点;
将分配后的簇按照其包含的数据的个数进行排序,将簇中数据的个数最大的簇判定为正常簇,其余的簇判定为异常簇。
另一方面,本发明实施例提供一种基于改进密度聚类的入侵检测装置,所述装置包括:
预处理单元,用于对原始数据集进行预处理,所述原始数据集包含多个数据记录,每个数据记录包含连续型数据和/或非数值型数据;
距离度量单元,用于对预处理后的数据进行距离度量;
密度指标计算单元,用于基于所述距离度量,计算局部点的密度指标;
距离指标计算单元,用于基于所述距离度量和局部点的密度指标,计算局部点的距离指标;
获取决策图单元,用于根据计算得到的所述局部点的密度指标和所述局部点的距离指标,获得决策图;
簇中心确定单元,用于对所述决策图进行分析,获得簇的中心点以及簇的类数,并将剩余的点分配到离其距离最近且密度指标比其高的点所属的簇中,其中所述中心点为密度指标大于第一阈值,距离指标大于第二阈值的点;
结果确定单元,用于将分配后的簇按照其包含的数据的个数进行排序,将簇中数据的个数最大的簇判定为正常簇,其余的簇判定为异常簇。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例预先定义两个指标,即密度指标和距离指标,在聚类过程中计算出每个点的密度指标和距离指标,根据计算得到的密度指标和距离指标自动获得簇的中心以及簇的类数,解决了现有技术人为设定初始值(如簇的中心、簇的类数、密度阈值等)影响聚类结果的问题。而且,对于高维度且数据量较大的入侵数据,相比于现有的聚类方法,无需迭代最优目标函数,明显减少了计算开销。另外,由于是基于密度的聚类算法,对于非球形簇,也有很好的聚类效果,并能自动检测出异常簇,具有较强的易用性和实用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的基于改进密度聚类的入侵检测方法的实现流程图;
图2是本发明实施例二提供的基于改进密度聚类的入侵检测装置的组成结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明实施例一提供的基于改进密度聚类的入侵检测方法的实现流程,该方法过程详述如下:
在步骤S101中,对原始数据集进行预处理,所述原始数据集包含多个数据记录,每个数据记录包含连续型数据和/或非数值型数据。
在本发明实施例中,所述原始数据集中可能既包含连续型数据又包含非数值型数据,需要对二者分别进行数据规范化预处理,具体可以是:
对原始数据集中的连续型数据,将其数据取值从[min,max]映射到范围小于预设值的区间;
对原始数据集中的非数值型数据,将其离散化后,通过编码映射成数值,或者直接在所述距离度量中进行比较。
所述原始数据集经过上述数据规范化预处理后变成高维向量组。其中,所述原始数据集可以为KDD CUP99数据集。
需要说明的是,对原始数据集的规范化处理对涉及距离度量的聚类算法,将有助于加快学习阶段的速度,并且可以帮助防止具有较大初始值域的属性与具有较小初始值域的属性相比权重过大,进而影响距离度量的准确性。
在步骤S102中,对预处理后的数据进行距离度量。
由于在密度聚类算法中,数据量较大、特征维数较多的数据在运算方面一般开销较大。因此,本实施例基于欧几里德公式对预处理后的数据进行距离度量,采用欧几里德公式的突出优点是计算简单,运行速度快,且可以支持多维空间索引,欧几里德公式具体如下:
另外,为了体现不同属性的权重,本实施例可以给不同的属性赋以不同的权值,即基于加权的欧几里德公式对预处理后的数据进行距离度量,公式具体如下:
其中,(xl1,xi2,...,xip)为数据xl的属性向量,(xj1,xj2,...,xjp)为数据xj的属性向量,wp为对应的权值,p为大于0的整数。
在步骤S103中,基于所述距离度量,计算局部点的密度指标;
在步骤S104中,基于所述距离度量和局部点的密度指标,计算局部点的距离指标。
在本发明实施例中,改进的密度聚类算法基于两个条件:1)簇的中心点被拥有较低密度的点包围,所以簇的中心点一般拥有较高的密度;2)簇的中心点与其他的较高密度的中心点之间的距离一般较大。基于所述条件,本发明实施例预先定义两个指标,一个是局部点的密度指标rho,另一个是局部点的距离指标delta。
(1)局部点的密度指标rho
rho的定义基于密度聚类算法中的思想,即针对某个点i,计算点i与其周围点之间的距离,将距离小于或等于预定截断距离dc的周围点的个数作为所述i的密度指标。
在计算rho的过程中,还可以利用Gaussian Kernel进行密度度量,即使用指数kernel来计算密度。该方法的好处在于,对于形状不是球状的簇,计算密度方面有更好的表现。
(2)局部点的距离指标delta
delta的定义是:针对某个点i,获取密度指标比i密度指标大的点Mj,并计算i与Mj的距离,将计算得到的最小距离作为所述i的距离指标,其中j大于或等于1。
在步骤S105中,基于计算得到的所述局部点的密度指标和所述局部点的距离指标,获得决策图;
在步骤S106中,对所述决策图进行分析,获得簇的中心点以及簇的类数,并将剩余的点分配到离其距离最近且密度指标比其高的点所属的簇中,其中所述中心点为密度指标大于第一阈值,距离指标大于第二阈值的点。
在本发明实施例中,以rho为横轴,delta为纵轴,根据结果进行画图。将图中密度指标rho大于第一阈值,距离指标delta大于第二阈值的点作为簇的中心点。在图中,还会存在一些局部密度较低(rho小于第三阈值),但与高密度点的距离较大(delta大于第四阈值)的点,本实施例将所述rho小于第三阈值,但delta大于第四阈值的点作为离群点。对于剩余的点,将其分配到离其距离最近且密度指标比其高的点所属的簇中。经过上述过程,所有的点都将得到合理的分配。
在步骤S107中,将分配后的簇按照其包含的数据的个数进行排序,将簇中数据的个数最大的簇判定为正常簇,其余的簇判定为异常簇。
聚类的目的是要将一个数据集划分为若干组,使得组内的相似性大于组间相似性。本发明实施例在入侵检测过程中,采用改进的密度聚类算法进行分析,即在经过计算rho与delta指标、画图、获得簇的中心点、将剩余点进行分配几个步骤后,便可以将相似的数据划分到同一组内。另外,由于入侵数据集中正常行为的簇所包含的数据在数量上远远大于非正常行为的簇所包含的数据,因此本实施例将分配后的簇按照其包含的数据的个数进行排序,将簇中数据的个数最大的簇判定为正常簇,其余的簇判定为异常簇。可选的,还可以预先设定一数值,将簇中数据的个数大于或等于所述预定数值的簇判定为正常簇,小于所述预定数值的簇判定为异常簇。
本发明实施例改进的密度聚类算法基于的条件是:簇的中心点被拥有较低密度的点包围;每个拥有高密度的簇中心点之间具有较大的距离。本发明实施例基于所述条件,通过计算局部点的密度指标与相对距离指标,得到簇的中心点,即密度较高、相对距离较大的点。然后将剩余的点按距离分配到比本身密度高的点所属的簇中,得到簇的中心与簇的类数等相关信息,进而划分出正常数据与异常数据。
实施例二:
图2示出了本发明实施例二提供的基于改进密度聚类的入侵检测装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该基于改进密度聚类的入侵检测装置可以是运行于各终端设备(例如手机、平板电脑等)内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到所述终端设备中或者运行于所述终端设备的应用系统中。
该基于改进密度聚类的入侵检测装置包括:
预处理单元21,用于对原始数据集进行预处理,所述原始数据集包含多个数据记录,每个数据记录包含连续型数据和/或非数值型数据;
距离度量单元22,用于对预处理后的数据进行距离度量;
密度指标计算单元23,用于基于所述距离度量,计算局部点的密度指标;
距离指标计算单元24,用于基于所述距离度量和局部点的密度指标,计算局部点的距离指标;
获取决策图单元25,用于根据计算得到的所述局部点的密度指标和所述局部点的距离指标,获得决策图;
簇中心确定单元26,用于对所述决策图进行分析,获得簇的中心点以及簇的类数,并将剩余的点分配到离其距离最近且密度指标比其高的点所属的簇中,其中所述中心点为密度指标大于第一阈值,距离指标大于第二阈值的点;
结果确定单元27,用于将分配后的簇按照其包含的数据的个数进行排序,将簇中数据的个数最大的簇判定为正常簇,其余的簇判定为异常簇。
进一步的,所述预处理单元21具体用于:
对原始数据集中的连续型数据,将其数据取值从[min,max]映射到范围小于预设值的区间;
对原始数据集中的非数值型数据,将其离散化后,通过编码映射成数值,或者直接在所述距离度量中进行比较。
进一步的,所述距离度量单元22具体用于:
基于加权的欧几里德公式对预处理后的数据进行距离度量。
进一步的,所述密度指标计算单元23具体用于:
计算某个点i与其周围点的距离,将距离小于或等于预定截断距离的周围点的个数作为所述i的密度指标。
进一步的,所述距离指标计算单元24具体用于:
针对某个点i,获取密度指标比i密度指标大的点Mj,并计算i与Mj的距离,将计算得到的最小距离作为所述i的距离指标,其中j大于或等于1。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
综上所述,本发明实施例预先定义两个指标,即密度指标和距离指标,在聚类过程中计算出每个点的密度指标和距离指标,根据计算得到的密度指标和距离指标自动获得簇的中心以及簇的类数,解决了现有技术人为设定初始值(如簇的中心、簇的类数、密度阈值等)影响聚类结果的问题。而且,对于高维度且数据量较大的入侵数据,相比于现有的聚类方法,无需迭代最优目标函数,明显减少了计算开销。另外,由于是基于密度的聚类算法,对于非球形簇,也有很好的聚类效果,并能自动检测出异常簇。另外,本发明实施例在实现上述过程中不需要增加额外的硬件,可有效降低成本,具有较强的易用性和实用性。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。