结合优化支持向量机与K-means++的工控系统入侵检测方法
2019-08-01陈万志徐东升张静唐雨
陈万志 徐东升 张静 唐雨
摘 要:针对工业控制系统传统单一检测算法模型对不同攻击类型检测率和检测速度不佳的问题,提出一种优化支持向量机和K-means++算法结合的入侵检测模型。首先利用主成分分析法(PCA)对原始数据集进行预处理,消除其相关性;其次在粒子群优化(PSO)算法的基础上加入自适应变异过程避免在训练的过程中陷入局部最优解;然后利用自适应变异粒子群优化(AMPSO)算法优化支持向量机的核函数和惩罚参数;最后利用密度中心法改进K-means算法与优化后的支持向量机组合成入侵检测模型,从而实现工业控制系统的异常检测。实验结果表明,所提方法在检测速度和对各类攻击的检测率上得到明显提升。
关键词:工业控制系统;主成分分析;粒子群优化算法;支持向量机;密度中心法;K-means算法
中图分类号:TP393.08
文献标志码:A
文章编号:1001-9081(2019)04-1089-06
Abstract: Aiming at the problem that traditional single detection algorithm models have low detection rate and slow detection speed on different types of attacks in industrial control system, an intrusion detection model combining optimized Support Vector Machine (SVM) and K-means++algorithm was proposed. Firstly, the original dataset was preprocessed by Principal Component Analysis (PCA) to eliminate its correlation. Secondly, an adaptive mutation process was added to Particle Swarm Optimization (PSO) algorithm to avoid falling into local optimal solution during the training process. Thirdly, the PSO with Adaptive Mutation (AMPSO) algorithm was used to optimize the kernel function and penalty parameters of the SVM. Finally, a K-means algorithm improved by density center method was united with the optimized support vector machine to form the intrusion detection model, achieving anomaly detection of industrial control system. The experimental results show that the proposed method can significantly improve the detection speed and the detection rate of various attacks.
Key words: industrial control system; Principal Component Analysis (PCA); Particle Swarm Optimization (PSO) algorithm; Support Vector Machine (SVM); density center method; K-means algorithm
0 引言
工控入侵检测系统(Intrusion Detection System, IDS)是一套集动态预防、监控和保护系统免遭入侵为一体的新型安全机制[1]。IDS是网络安全的第二道防火墙,对网络的数据传输进行实时监控,通过对数据的分析发现其异常行为,并对这些异常行为及时发出异常警报。工业控制系统(Industrial Control System, ICS)的IDS方法主要有异常检测、误用检测和混合检测三种,其中异常检测是将检测到的行为与系统正常行为模型进行匹配,若发现违反正常模型的行为则判定为异常行为,它的缺点是无法实现精确地识别和划分;误用检测一般采用特征匹配技术,将检测到的行为与已知攻击行为的特征库进行比对,从而发现入侵行为,它的不足的地方是无法识别出未知的攻击行为;混合检测是两者的结合[2]。
作为研究热点,学者们提出一系列IDS的相關算法。文献[3]提出改进K-means算法在入侵检测中的应用,利用平均值的方法解决传统K-means算法对初始聚类中心的选择问题;但该方法不能明显提高检测的速度和检测率。文献[4-5]提出了改进的支持向量机算法对支持向量机的参数进行优化,在对各个攻击类型的检测率上得到一定的提高;但测试时间比较长,检测速度不佳。文献[6]结合主成分分析(Principal Component Analysis, PCA)和反向传播(Back Propagation, BP)神经网络的入侵检测方法,利用PCA对数据集进行预处理,从而加快收敛和提高检测效率;但该方法在检测未授权的本地超级用户特权访问R2L(Remote to Location)、来自远程主机的未授权访问U2R(User to Root)这两个攻击类型时效果不明显。文献[7]结合白名单过滤和神经网络的入侵检测方法,根据神经网络检测结果不断完善白名单规则库提高异常通信的检测率;但该方法在检测速度上没有进行优化。文献[8]提出改进的鱼群算法对工业控制网络通信异常进行检测,对神经网络的初始输入权值和阈值进行优化,提高了异常检测的准确率、缩短了检测时间;但该方法对各典型攻击类型的检测效果不明显。
综上所述,传统的K-means算法过度依赖初始聚类中心的选择,初始聚类中心的选择好坏直接影响聚类结果的稳定性,从而导致入侵检测的检测率效果不佳;改进的支持向量机是对支持向量机参数的优化,在入侵检测类型的分类得到了一定的突破,但在入侵检测的检测速度上没得到提升;神经网络在异常通信的检测率上有一定的提升,但在各攻击类型的检测率和检测速度上没有得到进一步的提升。因此,本文提出一种基于PCA和自适应变异粒子群优化(Particle Swarm Optimization with Adaptive Mutation, AMPSO)支持向量机(Support Vector Machine,SVM)与改进的K-means结合的入侵检测算法(PCA-AMPSO-SVM-K-means++),提高对各类攻击的检测精确度和检测速度。
1 工业控制网络入侵检测原理
1.1 工业控制系统的网络安全要求
与Internet系统网络相比,ICS网络的安全需求包括功能安全、物理安全、信息安全三个层面,其安全目标为可用性、完整性、保密性,与Internet系统网络存在的明显差别。此外,二者性能需求、安全体系着重点等方面还存在着不同的需求,具体如表1所示。
1.2 工业控制入侵检测的思想
在管理员的网络客户端和Web服务器间的网关上,加入主成分分析法、优化的支持向量机、K-means++算法检测环节,利用通信网络中的数据特征,检测出管理者与服务器的异常通信数据,从而提高检测的准确率和检测速度[8]。图1表示为工业控制系统的架构模型。
1.3 入侵检测中的特征选择
本文实验中用到的KDD99数据集中,入侵攻击的数据主要分为四大类[9]:
1)拒绝服务攻击(Denial-of-Service, DoS):通过攻击网络协议实现的缺陷或耗尽被攻击对象的资源,使计算机或网络无法提供正常的服务和资源访问。
2)端口监视或扫描(surveillance and probe, Probe):攻击者对目标对象发起进攻的常用手段,再通过此手段得到相关信息。
3)U2R攻击:攻击者通过远程主机,以未授权的方式进行操作和资源访问。
4)R2L攻击:对权限较低的User进行攻击,通过对系统或网站漏洞获取权限,然后进行非法操作。
2 本文方法模型
2.1 AMPSO-SVM算法
2.1.1 AMPSO算法
AMPSO算法[7]是由于PSO算法结构相对简单,因此运算速度较快,在寻优过程中防止陷入局部最优,故加入自适应变异过程。其中PSO算法的速度、位置更新公式如下:
2.1.2 AMPSO优化SVM算法
基于SVM算法的数据分类原理,核函数K及其惩罚参数C的选择對于SVM的分类性能以及泛化能力非常重要。本文利用自适应粒子群算法优化SVM的核函数K和惩罚参数C,具体的实现步骤[10]如下:
步骤1 将原始数据集预处理后作为检测模型输入样本。
步骤2 初始化粒子群算法中相对应的初始数据。
步骤3 按照SVM算法的决策函数判断其输出值是否达到检测精度或粒子群的最大迭代次数。若是则执行步骤6,否则执行步骤4。
步骤4 根据式(4)计算适应度方差值。
步骤5 通过变异操作后,选择个体极值pbest、全局最优值gbest。
步骤6 选择SVM最优核函数K与惩罚参数C,得到SVM算法模型。
2.2 K-means++算法
K-means是一种典型的基于样本间距离的算法,通过计算样本间距离的大小评价样本间的相似性。该算法认为每个簇都是由距离最近的对象组成,所以把得到独立且紧凑的簇作为最终的目标。但K-means算法的初始聚类中心K值的选择至关重要,K值选择得合适与否直接影响算法的工作效率和准确性。本文采用密度和中心点来确定初始聚类中心K值的选择[11]。
其中:C2n是从n个点中取两个点的组合数,这里是表示所有点之间的距离。
本文中K-means++聚类算法的实现步骤:
输入 包含K个簇的数据学习样本Dm×n。
输出 K个初始聚类的数据集。
1)通过式(9)计算出每个数据样本的密度,并进行密度大小的排序得到数据集D1;
2)选取当前密度最大的数据样本点并通过式(10)选择与其距离最近的样本点;
3)通过定义1中的公式计算出这两点的中点,作为初始聚类中心kv,其中v∈(1,2,…,k);
4)以kv为簇中心,用式(11)算出半径画出圆域(r=avgrange),则此圆域为一个划分,并且从此D1中去除该圆域中的数据点;
5)重复2)~5),直到选取K个中心点;
6)当取到K个聚类时,D1中剩下的未划分的点则根据式(10)划分给最近的簇;
7)输出K个初始聚类,算法结束。
2.3 本文入侵检测模型
在离线条件下采用本文提出的入侵检测方法进行模型训练,得到输出的结果检测分类器的模型,进而在线对通信数据作出实时决策。
整个检测系统可分为三个阶段:1)离线数据处理。面对大量的冗余用户数据,采用PCA对数据进行预处理。
2)离线构建分类器。训练数据进行预处理后,得到的用户的数据特征经过训练模块,得到检测分类器的模型。
3)在线实时决策。将在线实时获取用户数据通过训练好的检测系统,分类器根据其特征作出相应的分类决策。
本文入侵检测方法工作流程如图2所示。
3 实验与结果分析
3.1 算法有效性验证
3.1.1 实验数据
本文仿真实验数据为入侵检测广泛应用的KDD99数据集。该数据集包括训练数据集和测试数据集记录分别为514092和319490条,每个数据包含41维特征,其中最后1维为标签属性。主要包括5大类数据记录,分别为:Normal数据、DoS攻击、Probe攻击、U2R攻击、R2L攻击[7],从中抽取部分数据作为实验数据,如表2所示。
3.1.2 实验环境及相关数据
本文测试仿真实验的硬件环境为操作系统为Windows 10,内存为4GB,Intel i5-7200U 2.70GHz,所用的软件环境为Matlab 2016a、Pycharm 2017。
首先,利用上文提到的主成分分析方法对数据集进行特征提取,利用python软件对514092个数据12个特性进行主成分分析;然后利用上述的贡献率计算即可提取相应的主成分个数;接着比较每个主成分的在原始数据中的承载量,承载量越大,对应的数据信息量就越大;最后提取10个主成分反映的主要原始数据特性[12]。
在Matlab环境下,利用PCA-AMPSO-SVM-K-means++算法模型进行训练和测试,输出分别为Normal数据、DoS攻击、U2R攻击、R2L攻击、Probe攻击。对应的系统的结构如图3所示。
在粒子群寻优算法中设置最大迭代次数为50,并且在每次迭代过程中记录其适应度方差。如图4所示,可以看出PSO-SVM的方差在迭代35次达到最优,而AMPSO-SVM在迭代12次时得到最优解。
根据入侵检测的标准,本文提出的PCA-AMPSO-SVM-K-means++入侵检测模型以检测率和误报率为评价指标。其中:
在此,将本文的入侵检测方法与传统的K-means聚类算法、传统支持向量机(SVM)算法、基于PSO-SVM算法[13],以及K-means与反向传播(BP)神经网络结合的算法(K-BP)[14]进行对比。
对五组入侵检测模型的误报率进行的比较如图6所示,从中可发现PCA-AMPSO-SVM-K-means算法模型对各种类型攻击的误报率均有所降低。
3.2 工业控制仿真测试
为了进一步验证本文的检测模型在工业控制网络中的适用性,本文以某风力发电厂的工业数据为基础,对本文方法模型进行性能分析。图7为某发电厂数据采集与同步系统架构拓扑图。
在某风力发电厂获取的部分采集数据共13817条,其中正常数据为13757条,异常数据为60条。部分数据如表4所示。
在工业控制系统实验中,分别提取源IP地址、目标IP地址、协议和数据长度4组数据特征。将获取的数据对这4组数据特征通过主成分分析进行降维和特征提取,将处理后的数据作为输入节点进行输入,检测方法模型的输出节点分别为正常数据(Normal)和异常数据(Abnormal)。
在工业控制实验中共采集13817条数据,将其中的9817条数据作为测试数据集,包含9770条正常数据和47条异常数据;其他4000条作为测试数据集,包含3987条正常数据和13条异常数据。
将本文方法与文献[7-8]方法利用工控系统采集的数据进行测试并对比。
在同一实验条件下,本文方法在测试数据集13条异常数据中检测出11条异常数据,文献[7]方法检测出9条异常数据,文献[8]方法检测出10条异常数据。本文方法与文献[7]方法、文献[8]方法的检测率分别为84.62%、69.23%、76.92%。
现将本文方法与SVM、PSO-SVM方法进行随着测试样本的增加,检测率的对比研究,结果如图8所示。
相对于SVM、PSO-SVM方法,本文方法随着测试样本在总样本的比例逐漸增加,响应时间明显低于其他方法,说明本文方法实时性优于其他方法,如图9所示。产生时间上的差距主要在粒子群寻优的过程中加入自适应变异操作,从而迭代次数少于其他方法。
4 结语
本文针对工业控制网络入侵检测问题提出优化支持向量机与K-means++结合的算法,根据本文的具体工作流程可知该方法具有如下优点:1)利用主成分分析(PCA)对数据集进行特征提取和降维,更好地提高检测速度和检测精度;2)利用自适应粒子群算法优化支持向量机参数,提高支持向量机的分类性能;3)通过密度中心法对K-means算法进行改进,解决了初始聚类中心随机选择问题,减小了实验误差。
实验结果表明,本文提出PCA-AMPSO-SVM-K-means++算法模型对各攻击类型的平均检测率和检测速度上明显优于其他对比方法。此外,本文还通过对某工业控制系统获得的数据进行了实验对比,进一步验证了本文方法的有效性。
参考文献(References)
[1] 尚文利, 安攀峰, 万明, 等.工业控制系统入侵检测技术的研究及发展综述[J]. 计算机应用研究, 2017, 34(2): 328-330. (SHANG W L, AN P F, WAN M, et al. A survey of the research and development of industrial control system intrusion detection technology[J]. Application Research of Computers, 2017, 34(2): 328-330.)
[2] 杨安, 孙利民, 王小山, 等.工业控制系统入侵检测技术综述[J]. 计算机研究与发展, 2016, 53(9): 2039-2054. (YANG A, SUN L M, WANG X S, et al. Industrial control system intrusion detection technology overview[J]. Computer Research and Development, 2016, 53(9): 2039-2054.)
[3] 李洋. K-means聚类算法在入侵检测中的应用[J]. 计算机工程, 2007, 33(14): 154-156. (LI Y. Application of K-means clustering algorithm in intrusion detection[J]. Computer Engineering, 2007, 33(14): 154-156.)
[4] 刘万军, 秦济韬, 曲海成, 等.基于改进单类支持向量机的工业控制网络入侵检测[J]. 计算机应用, 2017, 26(12): 1-5. (LIU W J, QIN J T, QU H C, et al. Industrial control network intrusion detection method based on improved single-class support vector machin[J]. Journal of Computer Applications, 2017, 26(12): 1-5.)
[5] PARVANIA M, KOUTSANDRIA G, MUTHUKUMAR V, et al. Hybrid control network intrusion detection systems for automated power distribution systems[C]// Proceedings of the 2014 IEEE/IFIP International Conference on Dependable Systems and Networks. Washington, DC: IEEE Computer Society, 2014: 774-779.
[6] 梁辰, 李成海, 周来恩.PCA-BP神经网络入侵检测方法[J]. 空军工程大学学报, 2016, 32(6): 93-96. (LIANG C, LI C H, ZHOU L E. PCA-BP neural network intrusion detection method [J]. Journal of Air Force Engineering University, 2016, 32(6): 93-96.)
[7] 陈万志, 李东哲.结合白名单过滤和神经网络的工业控制网络入侵检测方法[J]. 计算机应用, 2018, 38(2): 363-369. (CHEN W Z, LI D Z. Industrial control network intrusion detection method combining white list filtering and neural network [J]. Journal of Computer Applications, 2018, 38(2): 363-369.)
[8] 陈万志, 唐雨, 张静.工业控制网络异常通信检测的改进鱼群算法优化方法[J]. 计算机应用研究, 2018, 36(8): 323-328. (CHEN W Z, TANG Y, ZHANG J. Improved fish school algorithm optimization method for abnormal communication detection in industrial control networks[J]. Application Research of Computers, 2018, 36(8): 323-328.)
[9] LEE C B, ROEDEL C, SILENOK E. Detection and characterization of port scan attacks[J]. Key Engineering Materials, 2014, 602/603(3): 93-96.
[10] 陳冬青, 张普含, 王华忠.基于MIKPSO-SVM方法的工业控制系统入侵检测[J]. 清华大学学报 (自然科学版), 2018, 58(4): 380-386. (CHEN D Q, ZHANG P H, WANG H Z. Intrusion detection of industrial control systems based on MIKPSO-SVM method [J]. Journal of Tsinghua University (Science and Technology), 2018, 58(4): 380-386.)
[11] 周炜奔, 石跃祥.基于密度的K-means聚类中心选取的优化算法[J]. 计算机应用研究, 2012, 29(5): 1726-1728. (ZHOU W B, SHI Y X. Density-based K-means clustering center selection algorithm[J]. Application Research of Computers, 2012, 29(5): 1726-1728.)
[12] BISHOP M, GATES C. Defining the insider threat [EB/OL]. [2018-05-10]. https://escholarship.org/uc/item/1qm187cg.
[13] 马占飞, 陈虎年, 杨晋, 等.一种基于IPSO-SVM算法的网络入侵检测方法[J]. 计算机科学, 2018, 45(2): 231-235. (MA Z F, CHEN H N, YANG J, et al. A network intrusion detection method based on IPSO-SVM algorithm[J]. Computer Science, 2018, 45(2): 231-235.)
[14] 王晓燕. K-均值算法与自组织神经网络算法的改进研究及应用[D]. 太原: 中北大学, 2017: 65-66. (WANG X Y. Research and application of K-means algorithm and self-organizing neural network algorithm [D]. Taiyuan: North University of China, 2017: 65-66.)
[15] 牛雷, 孙忠林.PCA-AKM算法及其在入侵检测中的应用[J]. 计算机科学, 2018, 45(2): 226-229. (NIU L, SUN Z L. PCA-AKM algorithm and its application in intrusion detection[J]. Computer Science, 2018, 45(2): 226-229.)