1、融合布谷鸟搜索和 K 均值算法的入侵检测方案 魏万云 兰州资源环境职业技术学院 摘 要: 针对传统 K 均值聚类算法全局搜索能力差、需要设定初始聚类个数等问题, 提出一种结合新型布谷鸟搜索 (CS) 算法和自适应 K 均值算法的入侵检测模型 (NCS-AKM) , 为提高布谷鸟搜索算法的种群多样性, 引入类似差分进化策略有选择地对种群进行变异重组。利用 KDD Cup99 数据集构造训练数据和包含 4 个阶段的在线测试数据, 在第 3、4 阶段分别引入新的攻击。结果表明, 该检测模型能够准确地识别出新入侵, 对测试集中 4 种攻击类型的总体检测率高达 83.4% (各阶段:70.8% 89.9
2、%) , 误报率为 6.3% (各阶段:3.0% 11.5%) , 具有较高的检测性能和具有说服力的聚类结果。关键词: 布局鸟搜索算法; K 均值聚类算法; 入侵在线检测; 自动聚类数; 差分进化; 作者简介:魏万云 (1971-) , 女, 甘肃景泰人, 兰州资源环境职业技术学院副教授, 学士, 研究方向:电子技术, 通信技术。收稿日期:2017-02-27基金:国家 863 计划项目 (2012AA010904) Construction of Automatic Intrusion Detection Model Using K-means Algorithm Based on Nove
3、l Cuckoo Search OptimizationWEI Wan-yun Lanzhou Resources Abstract: In consideration of the shortcomings of traditional K-means clustering algorithm, such as poor global search ability and artificial initial cluster number, an intrusion detection system using adaptive K-means algorithm optimized by
4、novel Cuckoo Search algorithm (NCS-AKM) was proposed.In order to increase the diversity of CS algorithm, a similar differential evolution strategy was introduced to complete the individual variation.The KDD Cup99 dataset was applied to rebuild the training data and the fourphase testing data where a
5、 new attack was introduced respectively in third and fourth phase.The experiment indicates that NCSAKM system is sensitive to new attacks, obtaining satisfied detection performance as well as convincing clustering result, and the overall detection rate of four attacks is as high as 83.4% (range:70.8
6、%89.9%) , while the false positive rate is 6.3% (range:3.0% 11.5%) .Keyword: cuckoo search (CS) algorithm; K-means; intrusion online detection; automatic clusters number; differential evolution; Received: 2017-02-270 引言近年来, 网络安全问题伴随着网络的广泛应用而日渐突出, 入侵数量迅猛增长, 入侵危害不断扩大, 为了及时有效地发现入侵行为, 大量的入侵检测系统 (Intrusi
7、on Detection System, IDS) 也相继出现1。入侵检测技术通常分为误用检测和异常检测 2 类。误用检测方法基于已知攻击的特征信息对入侵行为进行检测, 难以识别未知攻击;异常检测技术通过学习用户行为习惯特征建立特征库, 根据用户当前行为与特征库中样本之间的相似性判断是否入侵, 能够检测未知攻击类型。对于大量的网络数据, 若要实现入侵检测, 根据数据之间的相似性对数据进行聚类很有必要。自适应 K 均值 (Adaptive K-means, AKM) 聚类算法是一种在入侵检测中应用广泛的异常检测技术2, 该方法根据数据的相似程度将数据划分到不同类中, 从而标明网络数据是否正常。然
8、而, 该算法对初始聚类中心敏感, 全局寻优能力较弱。因此, 学者将各类优化算法与 K 均值算法相融合来构建入侵检测系统, 以此提高 K 均值算法的速度。常用的优化算法有遗传算法3、粒子群算法4-5、人工鱼群算法6和模拟退火算法7等。然而, 这些优化算法都具有一些自身的缺陷, 且运算量较大, 不能很好地应用在实时入侵检测系统中。布谷鸟搜索算法 (Cuckoo Search, CS) 是 Yang 和 Deb 提出的一种新兴的元启发式算法8, 通过模拟布谷鸟寻窝产卵的行为而快速寻得最优解, 具有结构简单、全局寻优能力强、控制参数少等优点, 在工程和自然科学领域中有着广泛应用9。本文针对传统的布谷鸟
9、算法在收敛速度和精度等方面存在的不足, 提出基于类似差分进化算法的新型布谷鸟算法, 然后结合样本归类加速算法和自动决定聚类数算法并应用到在线入侵检测中。仿真实验表明, 该方法能有效避免早熟收敛问题, 其局部搜索能力显著提高, 对新攻击的识别能力大幅提升, 极大改善了入侵检测的效果。1 K 均值算法和布谷鸟搜索算法1.1 K 均值算法对于聚类样本 X=XiR, i=1, 2, , n, K 均值算法把其划分为多个不同类别 C=C1, C2, , Ck, 使得如下目标函数最小:其中, M j为类 Cj的聚类中心, d (X i, Mj) 为样本 Xi到聚类中心 Mj的距离, J为所有样本到对应聚类
10、中心的距离 (类内距离) 之和。1.2 CS 算法CS 算法初始时, 一定数量的鸟巢位置随机落在目标函数的可行解空间中, 迭代进化时, 适应度值最优的鸟巢位置得以保留, 鸟巢位置按照莱维机制进行更新得到新的鸟巢位置, 在此过程中, 有一定概率的鸟巢会被抛弃并另建新巢。设 Yl= (yl1, yl2, , ylp) (l=1, 2, , N) (p 为优化问题的维数) 为第 l 个鸟巢在第 t 次进化时的鸟巢位置, 每一次迭代中, 鸟巢位置按下式更新:其中, 为步长调节因子, 通常情况下取 =1。符号 为点对点乘法, L () 为服从莱维分布的随机搜索向量, 即:进而可得:其中, Y best为
11、当前时刻最优的鸟巢位置, u 和 v 为正态分布随机数, 即 uN (0, u) , vN (0, 1) , 且:位置更新后, 会随机生成一个随机数 r0, 1, 与鸟窝的主人发现外来鸟的概率 Pa对比, 若 rPa, 则对 Yl进行随机改变, 否则不变。本文中, 设定概率Pa=0.25。2 NCS-AKM 入侵检测模型本文基于自适应 K 均值算法 (AKM) 和一种新型 CS 算法 (NCS) 提出用于在线入侵检测的 NCS-AKM 模型, 其基本流程如图 1 所示。该模型主要包含样本归类加速算法和 NCS-AKM 算法 2 部分, 具体描述如下。图 1 NCS-AKM 入侵检测模型流程图
12、下载原图2.1 样本归类加速算法传统 K 均值算法通过计算样本到各聚类中心的距离从而划分样本到不同类中, 事实上, 若已知任意 2 个聚类中心的距离, 则仅需计算样本到其中任意一个类中心的距离, 即可推出该样本一定不属于的那个类, 即:推论 1 对于样本 X 和 2 个聚类中心 Ma, Mb, 若 d (Ma, Mb) d (X, Mb) 。算法的实现步骤为:1) 从已有聚类中心中随机选取聚类中心 Mc, 计算样本 X 到 Mc的距离 d (X, Mc) ;2) 计算其他类的聚类中心 M 到 Mc的距离 d (M, Mc) , 若 d (M, Mc) 2d (X, Mc) , 则舍弃该类;3)
13、 重复步骤 1步骤 2, 直到找出聚类中心离样本 X 最近的类 Cbest;4) 将 X 归为此类并重新计算类 Cbest的聚类中心。2.2 NCS-AKM 算法本文提出的入侵检测模型的核心是 NCS-AKM 算法, 该算法对传统 CS 算法进行改进, 并结合 K 均值聚类个数自动确定算法10。2.2.1 改进型 CS 算法 (NCS) 传统 CS 算法受随机行走策略影响较大, 存在后期收敛速度慢、精度低、易陷入局部极小等不足11。为此, 文献12引入相应的变异机制可以提高其全局搜索的能力, 但是其引入的变异、交叉和选择操作过程较为复杂, 不利于提高算法执行效率。本文受到差分进化方法的启发,
14、采用一种简化方式, 即在构建新鸟巢位置公式中融入其他鸟巢位置, 以此实现类似交叉变异的操作, 来提高种群的多样性。另外, 引入一个惯性权重 w 来降低迭代次数, 提高全局寻优的速度。在 t 次迭代时, 随机选取 q (qm) 个鸟巢Y j, j=1, 2, , q, 对于鸟巢 Yj, 在所有鸟巢中随机选取 4 个与之不同的鸟巢 Yr1, Yr2, Yr3, Yr4, 用于构建新巢, 其位置为:其中, rand (0, 1) 为0, 1上服从均匀分布的随机数, Y best为当前最优鸟巢位置, 。惯性权重 w 的引入, 可使 CS 算法有扩展搜索空间的趋势, 有能力搜索新的区域, 实验表明, 较
15、大的惯性权重 w 有利于跳出局部最优, 进行全局寻优;较小的 w 值有利于局部寻优, 加速算法收敛。为了平衡算法的全局和局部搜索能力, 惯性权重 w 的值应随着迭代次数的增加而递减。然而, CS 算法在实际搜索过程中是非线性的, 惯性权重线性递减策略不能反映实际的优化搜索过程。因此, 本文设定惯性权重根据迭代次数非线性递减: , 其中 iter 为当前迭代次数。然后, 对选取的种群Y j及其变异种群 进行个体间交叉操作:其中 CR0, 1为交叉概率, 本文设定交叉概率 CR=0.85。令备选鸟巢, 利用下式通过适应度值评估备选鸟巢是否优于 Yj:2.2.2 NCS 算法中的个体编码和适应度函数
16、本文中鸟巢位置由 k 个聚类中心构成, 为 kp 维矩阵, 每个鸟巢有一个适应度函数。鸟巢的编码结构为:其中, z ij为第 i 个聚类中心的第 j 维变量。为寻求最优聚类结果, 要同时实现类中距离最小和类间距离最大, 故本文选用的适应度函数为:其中, J 为 K 均值算法的目标函数, 表示类内距离。d (Z) 为惩罚因子, 表示各聚类中心的距离之和, 用于使适应度函数能平衡类中距离和类间距离:2.2.3 自适应 K 均值聚类数的确定本文采用文献10中提出的 BWACR 指标来自动获取 K 均值算法的最佳聚类数, 该指标为:其中, BWACR (r, i) 为第 r 类的第 i 个样本的聚类有
17、效性, n r, ns分别表示第r, s 类的样本个数, X iq表示第 r 类的第 i 个样本的第 q 维, 通过比较不同聚类数的平均 BWACR 指标值来确定最佳聚类数 h:其中:2.2.4 NCS 算法的收敛性分析为了验证提出的改进型 CS 算法的性能, 在 MatlabR2012a 上构建实验环境, 计算机平台参数为:64 位 Windows 7 操作系统, IntelCorei5 CPU2.93 GHz CPU, 2.00 GB 内存。设置一个具有 5 个聚类中心位置编码的 20 个鸟巢寻优实验场景, 即种群规模 N=20。另外, 设置传统 CS 算法的发现概率 Pa=0.25, 改
18、进型 CS 算法的交叉概率 CR=0.85。分别执行 2 种 CS 算法, 记录适应度函数值, 实验结果如图 2 所示。可以看出, 本文改进型 CS 算法的收敛速度很快, 大约在 150 次迭代后, 几乎就能收敛到最优, 而传统 CS 算法至少需要 250 次。另外, 本文改进算法获得解的适应度最优, 表明获得 K 均值聚类的类内距离最小, 类间距离最大。这是因为融入变异机制和非线性递减惯性权重, 加强了种群的多样性和算法搜索能力, 提高了搜索速度。图 2 改进型 CS 算法的收敛性分析 下载原图2.3 NCS-AKM 检测模型实施过程NCS-AKM 检测模型的实施包含 2 个阶段:训练阶段和
19、在线检测阶段。训练阶段为离线分析阶段, 可脱离在线检测阶段独立运行, 在线检测阶段在训练阶段结果的指导下进行自动检测。初始训练时需要人为指定聚类个数, 之后可根据最佳聚类数算法自动确定聚类个数, 即可检测出新入侵行为。基本实现步骤如下:1) 根据训练样本的种类确定初始聚类个数, 并将数据随机平均划分到各个类中, 计算各聚类的初始聚类中心, 作为一个鸟巢位置的初始编码。重复以上过程, 生成多个初始鸟巢位置。2) 计算各鸟巢位置的适应度值, 保留最优者, 按照式 (2) 更新鸟巢位置, 在此过程中, 随机选取一定数量的鸟巢位置按照式 (3) 构建备选鸟巢位置, 若备选鸟巢位置的适应度值优于原鸟巢位
20、置, 则保留较优者。重复以上过程直至无更优鸟巢产生, 至此得到最优聚类划分。3) 对于新数据, 利用推论 1 快速将其聚为某类, 并更新该类的聚类中心。当新接收的数据量达到一定阈值后, 将所有数据作为训练样本数据。以此时聚类个数为初始值, 重复步骤 1 和步骤 2, 得到最优聚类划分, 并计算平均 BWACR 指标值。依次增加聚类个数, 并得到相应最优聚类划分和平均 BWACR 指标值。4) 对比各个平均 BWACR 指标值, 选择最大者所对应的聚类个数作为新的聚类个数。5) 重复步骤 1步骤 3。3 仿真实验及分析3.1 实验环境及数据集实验环境如 2.2.4 节中所描述, 另外, 对于改进
21、型 CS 算法, 设置最大迭代次数T=200, 聚类中心数量 k 为 24。算法运行 10 次, 取平均值。为验证 NCS-AKM 入侵检测模型的有效性, 本文选用 KDD Cup99 数据集13作为测试数据, 该数据集在入侵检测领域被广泛采用14-15。数据集主要包含 4 类异常数据:Dos, Probe, R2L 和 U2R。本文选取来自“corrected”文件的最后 2周的数据, 包含 311029 条记录, 其中正常数据仅有 60593 条, 占总数的19.5%。由于聚类算法在网络入侵检测中得以应用的前提是异常数据在数量上远小于正常数据, 且在某些特征上明显异于正常数据, 该数据集中
22、正常数据比例严重不足, 这里并不直接采用原始数据, 而是从该数据集中随机抽取部分数据作为训练和测试数据。为模拟算法对新攻击的检测过程, 本文的训练数据集中仅包含 U2R 和 R2L 这 2种攻击, 分布情况为:数据总量为 5000 条, 其中 U2R 和 R2L 的数据量分别为100 条, 共占总数的 4%。测试数据总量为 35000 条, 4 类异常数据分别为 400条, 将所有测试数据分为 4 个阶段, 其中:第 1、2 阶段中仅包含 U2R 和 R2L 这2 种攻击, 第 1 阶段攻击比例与测试数据基本一致, 而第 2 阶段中攻击比例明显小于第 1 阶段;第 3 阶段中增加 Probe
23、攻击, 第 4 阶段中增加 Dos 攻击, 各类攻击在各阶段随机分布, 其分布情况如表 1 所示。为模拟时间顺序, 按阶段有序地输入测试数据集, 本实验中新数据量累计阈值设为 50。表 1 在线测试数据集中各攻击的分布情况 下载原表 3.2 结果分析为评价检测结果, 采用检测率 DR 和误报率 FAR 这 2 个评价指标来衡量。检测率表示为检测出来的入侵记录数与测试数据中所有入侵记录数的比值, 误报率表示为被误判为攻击数据的正常数据量与测试数据中正常数据量的比值。这 2 个指标相互独立计算, 若 DR 值越大且 FAR 值越小, 则检测效果越好。表 2 给出了 NCS-AKM 算法在测试数据集
24、中的检测结果。在第 1、2 阶段, 包含的攻击类型均为已知 (U2R 和 R2L) , 由于很多 R2L 攻击伪装成合法用户身份进行入侵, 其特征与正常数据接近, 检测难度相对较高;在第 3 阶段, 由于前期Probe 入侵的特征尚未被识别出来, 导致这一阶段 Probe 攻击的 DR 值相对于第4 阶段偏低;第 4 阶段数据量较大, 比较充分地验证了 NCS-AKM 检测模型的检测效果, 总体检测效果较好, 4 类攻击的总体检测率为 89.9%。从 FAR 指标来看, 随着新入侵检测难度的降低, 误报率也越来越低, 在前 2 个阶段相对较高, 但后 2 个阶段效果较好, 整个测试阶段的误报率
25、为 6.3%。表 2 NCS-AKM 检测模型在线检测结果/% 下载原表 将本文方法和文献5方法在上述实验环境中进行比较, 文献5提出了一种基于粒子群算法和 K 均值算法的入侵检测系统 (PSO-AKM) , 其与本文方法类似, 都采用了 K 均值算法进行数据聚类, 区别在于其采用了粒子群算法来优化 K 均值算法, 以此提高算法效率。将其与本文方案进行比较可以进一步证明所提出的改进型 CS 算法的优势和整个入侵检测系统的性能。将实验结果绘制成检测率和误报率的受试者工作特征 (Receiver Operating Characteristics, ROC) 曲线图, 如图 3 所示。图 3 误报
26、率-检测率的 ROC 曲线 下载原图从图 3 中可知, 本文检测模块最好性能为检测率 84.7%, 误警率 5.92%。这与文献5提出的 PSO-AKM 入侵检测系统 (检测率为 74.8%, 误警率为 5.06%) 相比, 具有更好的检测效果。这充分表明了本文算法对于入侵行为检测是可行且有效的, 并能发现未知的入侵。图 4 给出了在线测试时聚类个数自动变化的示意过程。初始个数为 3 个, 在第3 阶段初期自动调整为 4 个, 在第 4 阶段初期自动调整为 5 个。由于确定最佳聚类个数的过程较复杂, 计算量大, 本文并没有在每次新数据到来时重新确定最佳聚类个数, 而是在新数据累计到一定数量后才
27、进行确定, 在此过程中, 入侵数据可能被检测出但判为其他攻击类型。图 4 NCS-AKM 检测模型在线测试时聚类个数的变化过程 下载原图4 结束语本文针对传统 K 均值算法在网络入侵检测中的不足, 提出一种与改进 CS 算法结合的新型检测算法NCS-AKM 算法, 该算法利用类似差分变异的方式增加其种群多样性, 在一定程度上提高了其全局搜索能力。通过与样本归类加速算法融合, 构建了以 NCS-AKM 算法为主导的 NCS-AKM 入侵检测模型。NCS-AKM 检测模型既提高了网络入侵数据分类的精度, 同时在一定程度上满足了在线检测的要求。该入侵检测模型具备对新攻击的辨识能力, 在攻击数据量相对
28、较多的时候能够准确识别出来。参考文献1Liao Hung-Jen, Lin Chun-Hung R, Lin Ying-Chih, et al.Intrusion detection system:A comprehensive reviewJ.Journal of Network and Computer Applications, 2013, 36 (1) :16-24. 2李涵, 包立辉.基于聚类算法的异常入侵检测模型的研究与实现J.计算机应用与软件, 2006, 23 (10) :126-127. 3Marimuthu A, Shanmugam A.Intelligent progre
29、ssion for anomaly intrusion detectionC/Proceedings of the 6th International Symposium on Applied Machine Intelligence and Informatics.2008:261-265. 4谷保平, 许孝元, 郭红艳.基于粒子群优化的 k 均值算法在网络入侵检测中的应用J.计算机应用, 2007, 27 (6) :1368-1370. 5肖立中, 刘云翔, 陈丽琼.基于改进粒子群的加速 K 均值算法在入侵检测中的研究J.系统仿真学报, 2014, 26 (8) :1652-1657. 6袁芳芳.人工鱼群和 K 均值算法相融合的网络入侵检测J.计算机仿真, 2013, 30 (9) :274-277. 7胡艳维, 秦拯, 张忠志.基于模拟退火与 K 均值聚类的入侵检测算法J.计算机科学, 2010, 37 (6) :122-124. 8Yang Xin-She, Deb S.Cuckoo search via Lvy flightsC/Proceedings of the 2009 World Congress on Nature and Biologically Inspired Computing.2009:210-214.