基于聚类算法k-means的异常检测系统
2018-02-23王晨曦
王晨曦
摘要 文章首先对聚类算法k-means的原理进行简要分析,在此基础上对基于聚类算法k-means的异常检测系统进行论述。期望通过本文的研究能够对促进k-means聚类算法的推广应用有所帮助。
【关键词】聚类算法 k-means 异常检测
1 聚类算法k-means的原理分析
在对聚类算法k-means的基本原理进行阐释前,需要先对聚类分析技术有一个初步的了解。聚类归属于数据挖掘的范畴,主要用于数据集问题的解决,它是一个数据整理过程,核心是数据的相似程度,通过对数据集进行聚类之后,可以得到簇。在聚类分析技术中,k-means是一种较为常用的聚类方法,这种方法具有动态性的特征,被广泛应用于科研领域,其可将若干个(可以用n来表示若干)数据,划分成K个聚类,在这一前提下得到的聚类能够满足以下条件:同一个聚类中的数据将会具有非常高相似度,不同聚类中数据的相似度相对较低。k-means的基本原理是从一个数据集当中,任意选出K个数据,可将这些被随机选中的数据作为初始的聚类中心,对其余的数据计算出它们到达聚类中心的距离,随后,将数据分配到就近的聚类中心当中,完成初始聚类。在这一过程中,若是聚类中心保持不变,则可输出聚类结果。
2 基于聚类算法k-means的异常检测系统构建
在计算机网络当中,异常检测是一项较为重要的手段,其最为突出的特点是能够快速检测出未知的攻击,这在一定程度上确保了网络的运行安全性。下面对基于k-means的异常检测系统的构建进行论述。
2.1 聚类分析
这是k-means在异常检测系统构建过程的关键环节,具体是指通过对相关的数据集进行训练,进而得到分类模型与阈值。聚类分析过程如下:
Stepl:在进行聚类分析之前,需要先获取如下条件:源IP地址、源端口、目的IP地址、目的端口、连接时间等。为使整个聚类分析过程能够在相对较短的时间内完成,可将获取到的连接时间作为基础,对时间段进行自定义,然后对其余几个条件的信息熵进行计算,从而得到训练所需的数据集;
Step2:当得到相关的训练数据集之后,对其中各个样本的距离进行计算,据此确定出距离最远的两个样本,并将之作为初始的聚类中心:
Step3:对训练数据集中的数据对象到达中心的距离进行计算,并将分类数据归入到最近的簇中。此时可能存在这样一种情况,即数据对象到达各个初始聚类中心的距离均超过阈值,一旦这种情况出现时,便可将这个数据对象视作为新类,同时,需要为其增加K值,并以该数据作为聚类中心;
Step4:按照上述步骤对聚类中心进行重新计算,直至不再出现新类为止,此时的聚类中心即为最终的聚类中心。
由于所有的训练数据集均未进行任何标记,如果其中只含有少量的攻击,那么可将这部分攻击视作正常,同时可将聚类后获得的相关模型,在异常检测中进行应用,完成对数据集的异常检测。
2.2 异常检测
为使异常检测过程变得更加真实,可在该阶段对攻击进行模拟,并借助网络封包分析软件对检测数据进行采集,然后对聚类分析前获取的几个条件的信息熵进行计算,同时,对检测数据与聚类中心之间的距离值进行计算,并将这些数据对象全部归类到最近的聚类中心当中。若是检测数据到达聚类中心的距离超过系统预先设定好的阈值,则可将该数据判定为一种新的攻击类型,此时需要对K值进行修改,并将代表这个新攻击类型的数据作为新聚类的中心点。具体的异常检测过程如下:
Stepl:对检测数据的特征属性的信息熵值进行计算,随后按照模拟攻击对检测数据的攻击类型进行标定,由此可以与检测有关的数据集,这个数据集是进行异常检测的重要前提和基础:
Ste2:得到检测数据集之后,可以利用聚类分析过程中输出的聚类中心作为异常检测的初始聚类中心,并对数据集中的检测对象进行距离计算,依据计算所得的结果进行聚类;
Step3:对检测数据至聚类中心之间的距离进行计算,并以该计算结果与阈值进行比较,若是距离超过阈值,则可该检测数据判定为新的入侵,同时对聚类进行更新,在原有K值的基础上加l,并将之作为新簇的聚类中心。若是距离在阈值以内,则可将该检测数据归入到与之距离最近的一个簇中;
Step4:当异常检测系统将某个检测数据归类成入侵类型的数据之后,系统便会自行启动异常相应模块,此时检测过程开始重新循环,从Stepl开始对其它检测数据进行检测,直至所有数据全部检测完毕后,会将聚类结果输出,根据该结果系统便可以完成对异常数据的检测。
在本次研究中,为使聚类过程得以简化,对训练数据集进行了如下假设:所有数据集均为常态数据,在这样的前提条件下,数据之间可以达到非常高的相似度。同时,检测数据集中的数据与训练数据集中的数据相似性较低,由此便可在聚类分析时,快速检测出异常行为。实践证明,基于k-means的异常检测系统能够在较短的时间内检测到异常。
3 结论
綜上所述,为确保网络安全,需要进行异常检测,本文对基于聚类算法k-means的异常检测系统进行分析研究,结果表明,k-means在异常检测系统的应用,可以提高异常数据的检测效率,具有一定的推广使用价值。
参考文献
[1]凤祥云,基于K-Means聚类算法入侵检测系统研究[J].电脑知识与技术:学术交流,2016,12 (16):49-51.
[2]陈丽珊,基于K-means聚类算法的入侵检测系统研究[J],昆明学院学报,2017,39 (03): 58-62.
[3]周迈,基于聚类算法的入侵检测系统的研究[J].中外企业家,2017 (01):173-174.
[4]毛嘉莉,基于K-means的文本聚类算法[J].计算机系统应用,2009,18 (10):85- 87.