基于pso-ocsvm的工业控制系统通信行为异常检测方法

文档序号:9923506阅读:1023来源:国知局
基于pso-ocsvm的工业控制系统通信行为异常检测方法
【技术领域】
[0001] 本发明属于工业控制系统网络信息安全领域,具体的说是一种基于PSO-OCSVM的 工业控制系统通信行为异常检测方法。
【背景技术】
[0002] 随着信息化与工业化深度融合W及物联网的快速发展,工业控制系统产品越来越 多地采用通用协议、通用硬件和通用软件。网络化浪潮又将诸如嵌入式技术、多标准工业控 制网络互联、无线技术等新兴技术融合进来,从而拓展了工业控制的发展空间,带来新的发 展机遇,同时也带来了工业控制系统的信息安全等问题。
[000引 2010年"震网"病毒事件破坏了伊朗核设施,震惊全球。运标志着网络攻击从传统 "软攻击"阶段升级为直接攻击电力、金融、通信、核设施等核屯、要害系统的"硬摧毁"阶段。 应对高级持续性威胁(Advanced Persistent T虹eat, APT)攻击已成为确保国家关键基础 设施安全,保障国家安全的核屯、问题。
[0004] 入侵检测系统能使在入侵攻击对系统产生危害前检测到攻击,并发出报警,启动 防御措施。目前,入侵检测主要分为两类:误用检测和异常检测。误用检测是通过与已知 的异常行为间的匹配程度来实现入侵检测,通常也称为是基于先验知识的入侵检测;而异 常检测是通过建立正常行为模型来寻找偏离的异常行为,因此也被称为基于行为的入侵检 。异常检测和误用检测相比,漏报率降低,并且可W检测出W前没有出现过的入侵行为, 但异常检测误报警率较高。 阳〇化]工业控制系统的异常检测技术可W分为=类:基于统计的方法、基于知识的方法 和基于机器学习的方法。支持向量机方法就是基于机器学习的方法之一。支持向量机是在 统计学习理论的基础上发展出来的一种新的模式识别方法,在解决小样本问题、非线性及 高维模式识别问题中表现出了许多特有的优势。传统的支持向量机算法适用于多分类问 题,即需要正负两类样本训练分类模型,但是SCADA、DCS等工业控制系统数据具有异常样 本少、维度高、关联性强等特点,多数为正常数据,故障或临界状态的数据较少,而单类支持 向量机具有较少的计算时间,较少的数据样本即可用于训练的优点,更重要的是单类支持 向量机只需要一类样本就可W训练异常检测模型,对噪声样本数据具有鲁棒性,能建立较 准确的分类模型。单类支持向量机已被证明是一种有效的控制系统通信网络入侵检测的机 器学习的方法。
[0006] 在工业控制入侵检测中,基于"白名单"规则的异常检测方法能够有效检测单条通 信协议的异常行为,但无法检测同时存在于多个数据包中的通信异常行为,基于通信模式 的异常检测方法能够弥补其不足。本文提出选取Mo化US功能码运一重要字段作为研究对 象,根据能够处理包含不同数目Mo化US功能码序列的预处理方法,结合单类支持向量机算 法,设计了一种利用粒子群算法(PSO)进行参数寻优的PSO-OCSVM模型的通信行为异常检 测方法即只用一类样本即可训练异常检测模型,并采用粒子群算法对模型参数进行优化, 建立了工业控制系统中Mo化US TCP通信行为的异常检测模型,W实现辨识防火墙与入侵检 测系统未能识别的攻击行为或者异常行为。

【发明内容】

[0007] 针对在【背景技术】中提出SCADA、DCS等工业控制系统数据异常样本少、维度高、关 联性强等缺点,本发明提出一种基于PSO-OCSVM的工业控制系统通信行为异常检测方法。
[0008] 本发明为实现上述目的所采用的技术方案是:一种基于PSO-OCSVM的工业控制系 统通信行为异常检测方法,包括W下步骤:
[0009] 特征提取:抓取网络中的Mo化US TCP通信流量数据包,剔除不包含有Mo化US功能 码的数据包,统计Mo化US TCP客户端和Mo化US TCP服务器端的通信流量;
[0010] 数据预处理:设定短序列的长度r,W长度为r的滑动窗口循环处理Mcxlbus功能 码,将Mcxlbus功能码转换为若干个长度为r的短序列,去除其中重复的短序列,获得短序列 集合并按照每一个短序列出现的顺序进行排列构造成OCSVM特征向量;
[0011] 建模:将OCSVM特征向量导入到matl油中,通过matl油调动Iibsvm工具箱生成 OCSVM异常检测模型;
[0012] PSO优化:将初始化的粒子传递给OCSVM异常检测模型作为OCSVM固有参数V和 高斯径向基参数g,将OCSVM异常检测模型返回的交叉验证意义下的分类准确率作为PSO优 化模型中的适应度值,并据此进行粒子群迭代更新,得到最优的OCSVM固有参数V和高斯 径向基参数g ;
[0013] PSO-OCSVM异常检测:利用最优的OCSVM固有参数V和高斯径向基参数g,建立 PSO-OCSVM流程模型进行异常检测,并且返回交叉验证意义下的分类正确率。
[0014] 所述特征提取中,利用Wireshark抓取网络中的Mo化US TCP通信流量数据包,只 保留Mo化US TCP通信流量数据包中的Mo化US功能码。
[0015] 所述数据预处理包括W下步骤:
[0016] 根据需要设定短序列的长度r,W长度为r的滑动窗口循环处理Mcxlbus功能码,去 除重复的序列,获得短序列集合;
[0017] 按照每一个短序列出现的顺序进行排列构造成OCSVM特征向量;
[0018] 对OCSVM特征向量进行归一化处理,使其中的各元素属于同一个数量级。
[0019] 所述PSO优化算法包括W下步骤:
[0020] 设置PSO算法在终止条件始终无法满足情况下的最大迭代次数kmax及粒子速度 与位置的限定范围;
[0021] 随机生成种群并根据OCSVM异常检测模型对PSO算法进行参数初始化,其中每个 粒子包含两个分量,分别为单类支持向量机固有参数V和高斯核函数核参数g,并对每一 个粒子设置初始化速度和位置向量;
[0022] 将粒子进行OCSVM训练并作为单类支持向量机的固有参数V和高斯核函数参数 g,并将返回的交叉验证意义下的分类准确率作为粒子适应度值;
[0023] 根据适应度值的情况不断更新个体极值及群体极值:一旦出现了更优的适应度值 则更新相应的个体或者群体适应度值;
[0024] 判断是否满足退出迭代条件:如果超过最大迭代次数或连续N次适应度值的变化 没有超过0.0 l %,则退出迭代过程,并且此时的群体极值即为所要求的最优参数,所述N为 设定的最大连续限值;
[0025] 按照粒子位置与速度更新公式进行粒子群更新,同时检查各个粒子的不同维度是 否在允许的限度之内,如果超出允许的范围需要限定在事先设置的范围区间之内。
[0026] 所述PSO-OCSVM异常检测包括W下步骤:
[0027] 接受PSO优化流程传递的粒子,将该粒子的两个分量分别设置为单类支持向量机 的固有参数V和高斯核函数参数g;
[0028] 获取正常与异常Mo化US TCP通信流量数据包集合,将正常的流量数据赋予+1类 别标签,异常流量数据赋予-1类别标签;
[0029] 构造对偶问题求解单类支持向量机模型;
[0030] 构造决策函数;
[0031] 根据决策函数和类别标签计算交叉验证意义下的分类准确率;
[0032] 将分类准确率返回PSO优化流程中计算适应度值,并作为粒子适应度计算适应度 值函数Fit (i)的取值。
[0033] 所述构造对偶问题求解支持向量机模型为:
[00对其中,曰=(01,曰2,...,曰。)表示拉格朗日算子,K(Xi,x,)表示高斯核函数,得解 a'.=(巧0'
[0036] 所述决策函数为:
[0039] 其中,P请单类支持向量机的最终决策函数的补偿值,SgnO表示符号函数, K(Xi,Xj)表示高斯核函数。
[0040] 所述计算适应度值函数Fit (i)的取值,具体为:
[0041] 将当前的分类准确率与当前的适应度值进行比较,如果分类准确率大于适应度 值,则将分类准确率赋予函数Fit (i);否则保持当前的适应度值。
[0042] 所述计算交叉验证意义下的分类准确率采用5折校验方式,具体为:将训练集合 均分成5份,每次用其中的4份训练异常检测模型,用剩余的一份作为测试集合验证检测效 果。
[0043] 本发明具有W下优点及有益效果:
[0044] 1.本发明选取Mo化US功能码运一重要字段作为研究对象,根据能够处理包含不 同数目Mo化US功能码的序列的预处理方法,提出了一种基于单类支持向量机的Mo化US功 能码序列异常检测方法,该模型特别适合于处理小样本数据的分类问题。
[0045] 2.本发明采用粒子群算法对OCSVM异常检测模型参数进行寻优,该方法通过粒子 群的迭代更新,避免通过网格化方式对OCSVM参数进行寻优,从而将效率提升了 10倍左右。
[0046] 3.本发明提出的PSO-OCSVM方法建立了工业控制系统中通信行为的异常检测模 型,可W辨识防火墙与入侵检测系统未能识别的攻击行为或者异常行为。
【附图说明】 阳047] 图1是Mo化US TCP应用层数据单元结构; W48] 图2基于PSO-OCSVM的工业通信异常检测算法整体框架图;
[0049] 图3是PSO-OCSVM异常检测模型。
【具体实施方式】
[0050] 下面结合附图及实施例对本发明做进一步的详细说明。
[0051] 如图2、3所示,基于OCSVM的通信行为异常检测方法,包括:
[0052] a.特征提取及预处理部分
[0053] IMcxlbus TCP报文格式在保留了 Mcxlbus全部功能的基础上,扩展了一些数据结 构。Mo化US TCP的报文格式主要包括S个部分:MBAP报文
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1