基于PSO-OCSVM的工业控制系统通信行为异常检测方法技术方案

技术编号:13455341 阅读:57 留言:0更新日期:2016-08-02 20:08
本发明专利技术基于OCSVM算法提出了一种基于PSO-OCSVM的工业控制系统通信行为异常检测方法。该发明专利技术利用改进的单类支持向量机算法,根据正常的Modbus功能码序列建立正常通信行为轮廓,设计了一种基于粒子群算法(PSO)进行参数优化的PSO-OCSVM方法,建立入侵检测模型,识别出异常的Modbus TCP通信流量。该发明专利技术提高了异常检测的效率及其可靠性,更适用于实际应用。

【技术实现步骤摘要】
基于PSO-OCSVM的工业控制系统通信行为异常检测方法
本专利技术属于工业控制系统网络信息安全领域,具体的说是一种基于PSO-OCSVM的工业控制系统通信行为异常检测方法。
技术介绍
随着信息化与工业化深度融合以及物联网的快速发展,工业控制系统产品越来越多地采用通用协议、通用硬件和通用软件。网络化浪潮又将诸如嵌入式技术、多标准工业控制网络互联、无线技术等新兴技术融合进来,从而拓展了工业控制的发展空间,带来新的发展机遇,同时也带来了工业控制系统的信息安全等问题。2010年“震网”病毒事件破坏了伊朗核设施,震惊全球。这标志着网络攻击从传统“软攻击”阶段升级为直接攻击电力、金融、通信、核设施等核心要害系统的“硬摧毁”阶段。应对高级持续性威胁(AdvancedPersistentThreat,APT)攻击已成为确保国家关键基础设施安全,保障国家安全的核心问题。入侵检测系统能使在入侵攻击对系统产生危害前检测到攻击,并发出报警,启动防御措施。目前,入侵检测主要分为两类:误用检测和异常检测。误用检测是通过与已知的异常行为间的匹配程度来实现入侵检测,通常也称为是基于先验知识的入侵检测;而异常检测是通过建立正常行为模型来寻找偏离的异常行为,因此也被称为基于行为的入侵检测。异常检测和误用检测相比,漏报率降低,并且可以检测出以前没有出现过的入侵行为,但异常检测误报警率较高。工业控制系统的异常检测技术可以分为三类:基于统计的方法、基于知识的方法和基于机器学习的方法。支持向量机方法就是基于机器学习的方法之一。支持向量机是在统计学习理论的基础上发展出来的一种新的模式识别方法,在解决小样本问题、非线性及高维模式识别问题中表现出了许多特有的优势。传统的支持向量机算法适用于多分类问题,即需要正负两类样本训练分类模型,但是SCADA、DCS等工业控制系统数据具有异常样本少、维度高、关联性强等特点,多数为正常数据,故障或临界状态的数据较少,而单类支持向量机具有较少的计算时间,较少的数据样本即可用于训练的优点,更重要的是单类支持向量机只需要一类样本就可以训练异常检测模型,对噪声样本数据具有鲁棒性,能建立较准确的分类模型。单类支持向量机已被证明是一种有效的控制系统通信网络入侵检测的机器学习的方法。在工业控制入侵检测中,基于“白名单”规则的异常检测方法能够有效检测单条通信协议的异常行为,但无法检测同时存在于多个数据包中的通信异常行为,基于通信模式的异常检测方法能够弥补其不足。本文提出选取Modbus功能码这一重要字段作为研究对象,根据能够处理包含不同数目Modbus功能码序列的预处理方法,结合单类支持向量机算法,设计了一种利用粒子群算法(PSO)进行参数寻优的PSO-OCSVM模型的通信行为异常检测方法即只用一类样本即可训练异常检测模型,并采用粒子群算法对模型参数进行优化,建立了工业控制系统中ModbusTCP通信行为的异常检测模型,以实现辨识防火墙与入侵检测系统未能识别的攻击行为或者异常行为。
技术实现思路
针对在
技术介绍
中提出SCADA、DCS等工业控制系统数据异常样本少、维度高、关联性强等缺点,本专利技术提出一种基于PSO-OCSVM的工业控制系统通信行为异常检测方法。本专利技术为实现上述目的所采用的技术方案是:一种基于PSO-OCSVM的工业控制系统通信行为异常检测方法,包括以下步骤:特征提取:抓取网络中的ModbusTCP通信流量数据包,剔除不包含有Modbus功能码的数据包,统计ModbusTCP客户端和ModbusTCP服务器端的通信流量;数据预处理:设定短序列的长度r,以长度为r的滑动窗口循环处理Modbus功能码,将Modbus功能码转换为若干个长度为r的短序列,去除其中重复的短序列,获得短序列集合并按照每一个短序列出现的顺序进行排列构造成OCSVM特征向量;建模:将OCSVM特征向量导入到matlab中,通过matlab调动libsvm工具箱生成OCSVM异常检测模型;PSO优化:将初始化的粒子传递给OCSVM异常检测模型作为OCSVM固有参数ν和高斯径向基参数g,将OCSVM异常检测模型返回的交叉验证意义下的分类准确率作为PSO优化模型中的适应度值,并据此进行粒子群迭代更新,得到最优的OCSVM固有参数ν和高斯径向基参数g;PSO-OCSVM异常检测:利用最优的OCSVM固有参数ν和高斯径向基参数g,建立PSO-OCSVM流程模型进行异常检测,并且返回交叉验证意义下的分类正确率。所述特征提取中,利用wireshark抓取网络中的ModbusTCP通信流量数据包,只保留ModbusTCP通信流量数据包中的Modbus功能码。所述数据预处理包括以下步骤:根据需要设定短序列的长度r,以长度为r的滑动窗口循环处理Modbus功能码,去除重复的序列,获得短序列集合;按照每一个短序列出现的顺序进行排列构造成OCSVM特征向量;对OCSVM特征向量进行归一化处理,使其中的各元素属于同一个数量级。所述PSO优化算法包括以下步骤:设置PSO算法在终止条件始终无法满足情况下的最大迭代次数kmax及粒子速度与位置的限定范围;随机生成种群并根据OCSVM异常检测模型对PSO算法进行参数初始化,其中每个粒子包含两个分量,分别为单类支持向量机固有参数ν和高斯核函数核参数g,并对每一个粒子设置初始化速度和位置向量;将粒子进行OCSVM训练并作为单类支持向量机的固有参数ν和高斯核函数参数g,并将返回的交叉验证意义下的分类准确率作为粒子适应度值;根据适应度值的情况不断更新个体极值及群体极值:一旦出现了更优的适应度值则更新相应的个体或者群体适应度值;判断是否满足退出迭代条件:如果超过最大迭代次数或连续N次适应度值的变化没有超过0.01%,则退出迭代过程,并且此时的群体极值即为所要求的最优参数,所述N为设定的最大连续限值;按照粒子位置与速度更新公式进行粒子群更新,同时检查各个粒子的不同维度是否在允许的限度之内,如果超出允许的范围需要限定在事先设置的范围区间之内。所述PSO-OCSVM异常检测包括以下步骤:接受PSO优化流程传递的粒子,将该粒子的两个分量分别设置为单类支持向量机的固有参数ν和高斯核函数参数g;获取正常与异常ModbusTCP通信流量数据包集合,将正常的流量数据赋予+1类别标签,异常流量数据赋予-1类别标签;构造对偶问题求解单类支持向量机模型;构造决策函数;根据决策函数和类别标签计算交叉验证意义下的分类准确率;将分类准确率返回PSO优化流程中计算适应度值,并作为粒子适应度计算适应度值函数Fit(i)的取值。所述构造对偶问题求解支持向量机模型为:其中,α=(α1,α2,...,αn)表示拉格朗日算子,K(xi,xj)表示高斯核函数,得解所述决策函数为:其中,ρ*是单类支持向量机的最终决策函数的补偿值,sgn()表示符号函数,K(xi,xj)表示高斯核函数。所述计算适应度值函数Fit(i)的取值,具体为:将当前的分类准确率与当前的适应度值进行比较,如果分类准确率大于适应度值,则将分类准确率赋予函数Fit(i);否则保持当前的适应度值。所述计算交叉验证意义下的分类准确率采用5折校验方式,具体为:将训练集合均分成5份,每次用其中的4份训练异常检测模型,用剩本文档来自技高网
...
基于PSO-OCSVM的工业控制系统通信行为异常检测方法

【技术保护点】
一种基于PSO‑OCSVM的工业控制系统通信行为异常检测方法,其特征在于,包括以下步骤:特征提取:抓取网络中的Modbus TCP通信流量数据包,剔除不包含有Modbus功能码的数据包,统计Modbus TCP客户端和Modbus TCP服务器端的通信流量;数据预处理:设定短序列的长度r,以长度为r的滑动窗口循环处理Modbus功能码,将Modbus功能码转换为若干个长度为r的短序列,去除其中重复的短序列,获得短序列集合并按照每一个短序列出现的顺序进行排列构造成OCSVM特征向量;建模:将OCSVM特征向量导入到matlab中,通过matlab调动libsvm工具箱生成OCSVM异常检测模型;PSO优化:将初始化的粒子传递给OCSVM异常检测模型作为OCSVM固有参数ν和高斯径向基参数g,将OCSVM异常检测模型返回的交叉验证意义下的分类准确率作为PSO优化模型中的适应度值,并据此进行粒子群迭代更新,得到最优的OCSVM固有参数ν和高斯径向基参数g;PSO‑OCSVM异常检测:利用最优的OCSVM固有参数ν和高斯径向基参数g,建立PSO‑OCSVM流程模型进行异常检测,并且返回交叉验证意义下的分类正确率。...

【技术特征摘要】
1.一种基于PSO-OCSVM的工业控制系统通信行为异常检测方法,其特征在于,包括以下步骤:特征提取:抓取网络中的ModbusTCP通信流量数据包,剔除不包含有Modbus功能码的数据包,统计ModbusTCP客户端和ModbusTCP服务器端的通信流量;数据预处理:设定短序列的长度r,以长度为r的滑动窗口循环处理Modbus功能码,将Modbus功能码转换为若干个长度为r的短序列,去除其中重复的短序列,获得短序列集合并按照每一个短序列出现的顺序进行排列构造成单类支持向量机OCSVM特征向量;建模:将单类支持向量机OCSVM特征向量导入到matlab中,通过matlab调动libsvm工具箱生成单类支持向量机OCSVM异常检测模型;粒子群优化PSO算法:将初始化的粒子传递给单类支持向量机OCSVM异常检测模型作为单类支持向量机OCSVM固有参数v和高斯核函数参数g,将单类支持向量机OCSVM异常检测模型返回的交叉验证意义下的分类正确率作为粒子群优化PSO算法中的适应度值,并据此进行粒子群迭代更新,得到最优的单类支持向量机OCSVM固有参数ν和高斯核函数参数g;PSO-OCSVM异常检测:利用最优的单类支持向量机OCSVM固有参数v和高斯核函数参数g,建立PSO-OCSVM流程模型进行异常检测,并且返回交叉验证意义下的分类正确率。2.根据权利要求1所述的基于PSO-OCSVM的工业控制系统通信行为异常检测方法,其特征在于,所述特征提取中,利用wireshark抓取网络中的ModbusTCP通信流量数据包,只保留ModbusTCP通信流量数据包中的Modbus功能码。3.根据权利要求1所述的基于PSO-OCSVM的工业控制系统通信行为异常检测方法,其特征在于,所述数据预处理包括以下步骤:根据需要设定短序列的长度r,以长度为r的滑动窗口循环处理Modbus功能码,去除重复的序列,获得短序列集合;按照每一个短序列出现的顺序进行排列构造成OCSVM特征向量;对OCSVM特征向量进行归一化处理,使其中的各元素属于同一个数量级。4.根据权利要求1所述的基于PSO-OCSVM的工业控制系统通信行为异常检测方法,其特征在于,所述粒子群优化PSO算法包括以下步骤:设置粒子群优化PSO算法在终止条件始终无法满足情况下的最大迭代次数kmax及粒子速度与位置的限定范围;随机生成种群并根据OCSVM异常检测模型对粒子群优化PSO算法进行参数初始化,其中每个粒子包含两个分量,分别为单类支持向量机固有参数v和高斯核函数参数g,并对每一个粒子设置初始化速度和位置向量;将粒子进行OCSVM训练并作为单类支持向量机的固有参数v和高斯核函数参数g,并将返回的交叉验证意义下的分类正确率作为粒子适应度值;根据适应度值的情况不断更新个体极值及群体极值:...

【专利技术属性】
技术研发人员:尚文利万明李琳曾鹏于海斌
申请(专利权)人:中国科学院沈阳自动化研究所
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1