一种大规模工控网络异常检测方法与流程

文档序号:37457696发布日期:2024-03-28 18:41阅读:15来源:国知局
一种大规模工控网络异常检测方法与流程

本发明涉及数据分析,更具体地说,本发明涉及一种大规模工控网络异常检测方法。


背景技术:

1、随着新一轮工业革命的到来,传统工业控制系统(i cs)正逐步与信息技术高度融合,工业生产过程智能化已成为主流趋势。近年来,i cs从最初的基于特定操作系统和通信协议逐步扩展为基于通用操作系统和标准通信协议,有效地降低了系统的开发成本、缩短了系统的开发周期,但同时也给系统带来了一定的安全隐患。由于i cs中包含生产过程中的关键信息,一旦信息安全出现问题,不仅会使系统功能丧失还可能会导致人员伤亡、环境污染等重大事故。因此,关于一种大规模工控网络异常检测方法的研究,具有深远意义。

2、通过针对企业信息网络与过程控制网络之间可能存在的异常通信行为,充分挖掘通信链路上数据包的各种相关信息,提出一种利用机器学习预测工业控制网络通信异常的方法。


技术实现思路

1、本发明针对现有技术中存在的技术问题,提供一种大规模工控网络异常检测方法,通过机器学习预测工业控制网络通信行为是否异常,以解决上述背景技术中提出的问题。

2、本发明解决上述技术问题的技术方案如下:一种大规模工控网络异常检测方法,具体包括以下步骤:

3、步骤101、通过监视器抓取到工控网络中所有的通信数据包,获取通信数据;

4、步骤102、利用主成分分析法对采集的原始通信数据进行降维处理;

5、步骤103、从收集到的原始数据中提取与通信异常相关的特征,使用信息熵方法来构建特征集;

6、步骤104、为数据样本打上标签,将正常通信和异常通信进行分类标注;

7、步骤105、通过离线训练的分类器结合神经网络算法,实现对工业控制网络通信在线数据的异常检测;

8、步骤106、根据异常检测的结果,将异常数据点与已知的攻击类型进行匹配和分类。

9、在一个优选地实施方式中,所述步骤101中,在交换机上配置端口镜像,并进行数据包解码,在协议分析器中使用过滤器对捕获到的数据包进行过滤,从工控网络中获取通信数据,具体步骤如下:

10、步骤1、配置端口镜像:在交换机上配置端口镜像,将指定端口的所有进出流量复制到指定的监视服务器,通过监视器抓取到网络中所有的通信数据包;

11、步骤2、数据包解码:完成步骤1配置端口镜像后,在监控端口上,使用协议分析器打开抓取到的数据包文件,在软件中进行数据包解码操作,解析出工控网络所使用的协议;

12、步骤3、过滤数据包:完成步骤2数据包解码后,在协议分析器中使用过滤器对捕获到的数据包进行过滤,通过指定源ip地址、目的ip地址、端口号、协议类型、数据包大小和传输速率,来过滤出工控网络中需要的通信数据。

13、在一个优选地实施方式中,所述步骤102中,通过从采集的原始数据中进行特征提取,并将原始数据转换为能够反映样本特征的向量表示,利用主成分分析法对采集的原始通信数据进行降维处理,保证数据特征值选取的科学性,具体步骤如下:

14、步骤1、数据标准化:将选取的特征,包括源ip地址、目的ip地址、端口号、协议类型、数据包大小和传输速率,分别记为x1,x2,x3,x4,x5,x6,对于采集的m条网络通信数据,将每个数据转换成一个向量x=[x1,x2,x3,x4,x5,x6],第i条数据的向量表示为xi,根据计算每个特征的均值、标准差结果,标准化每个特征,具体步骤如下:

15、步骤a1、计算每个特征的均值,具体计算公式如下:

16、

17、其中,xij表示第i个样本的第j个特征值,m表示样本数量,uj表示每个特征的均值;

18、步骤a2、计算每个特征的标准差,具体计算公式如下:

19、

20、其中,σj表示每个特征的标准差,xij表示第i个样本的第j个特征值,m表示样本数量,uj表示每个特征的均值;

21、步骤a3、标准化每个特征,具体计算公式如下:

22、

23、其中,xij'表示每个特征的标准化,σj表示每个特征的标准差,xij表示第i个样本的第j个特征值,uj表示每个特征的均值;

24、步骤2、计算协方差矩阵:完成步骤1数据标准化后,构建m×n的矩阵x',其中每行代表一个样本,每列代表一个特征,具体计算公式如下:

25、

26、其中,c表示协方差矩阵,m表示,x't表示x'矩阵的逆矩阵;

27、步骤3、特征值分解:完成步骤2计算协方差矩阵后,对协方差矩阵c进行特征值分解,得到特征值λ1,λ2,...,λn和相应的特征向量v1,v2,...,vn;

28、步骤4、特征值排序与选择:完成步骤3特征值分解后,将特征值按从大到小的顺序排序,选择前k个较大的特征值对应的特征向量作为主成分,构成一个k×n的矩阵p;

29、步骤5、降维变换:完成步骤4特征值排序与选择后,将原始数据x'投影到主成分矩阵p上,得到降维后的数据z,维度为m×k,k表示选择的主成分个数,具体计算公式如下:

30、z=x'×pt

31、其中,z表示降维后的数据,x'表示原始数据,pt主成分矩阵p的逆矩阵。

32、在一个优选地实施方式中,所述步骤103中,从收集到的原始数据中提取与通信异常相关的特征,使用信息熵方法来构建特征集,根据量化信号的随机性,计算离散信号的信息熵,将计算得到的信息熵作为特征加入特征集中,具体步骤如下:

33、步骤1、在工业控制网络通信异常预测中,将数据按照时间步进行划分,并将每个时间步的通信流量作为一个离散信号进行处理,具体计算公式如下:

34、

35、其中,h(x)表示信息熵,x={x1,x2,...,xn}表示数据序列,pi是xi出现的概率,满足

36、步骤2、对于一个长度为n的数据序列x,将其划分成m个长度为l的子序列,其中,对于每个子序列xk,代入上述公式中,计算其信息熵h(xk),将所有子序列的信息熵组成特征向量,得到了一个长度为m的特征向量,用于表示原始数据序列的信息熵特征,具体计算公式如下:

37、f(x)=[h(x1),h(x2),...,h(xm)]

38、其中,f(x)表示信息熵组成特征向量,[h(x1),h(x2),...,h(xm)]表示子序列的信息熵。

39、在一个优选地实施方式中,所述步骤104中,使用分类算法对网络通信数据进行分类,为数据样本打上标签,正常通信标记为0,异常通信标记为1,使用已标记的正常和异常样本构建训练集,以便训练模型能够学习区分正常和异常的模式,具体步骤如下:

40、步骤1、分类算法:对于一个输入样本x=(x1,x2,...,xn),其中xi表示第i个特征的取值,逻辑回归模型的输出为:

41、y=sigmoid(w0+w1x1+w2x2+...+wnxn)

42、其中,(w0,w1,...,wn)表示模型参数,y为逻辑回归模型的输出标签,n表示特征数量,sigmoid函数为:

43、

44、在训练过程中,最小化交叉熵损失函数,通过找到一组模型参数,使得模型在训练集上的预测误差最小,其计算公式为:

45、l=-[y×log(yhat)+(1-y)×log(1-yhat)]

46、其中,y为样本标签,输出为0、1,yhat为模型预测值,log为对数函数,l表示交叉熵损失函数;

47、步骤2、梯度下降优化算法:在训练过程中,使用梯度下降优化算法,对模型参数进行更新,最小化损失函数,梯度下降算法的步骤如下:

48、步骤b1、初始化模型参数w和b,设学习率为α;

49、步骤b2、对于每个训练样本(x,y),计算模型预测值yhat和损失函数l;

50、步骤b3、计算损失函数l对模型参数w和b的偏导数,具体计算公式如下:

51、

52、

53、其中,表示对模型参数w的偏导数,表示对模型参数b的偏导数,yhat表示模型预测值,l表示损失函数,(x,y)表示训练样本;

54、步骤b4、根据梯度下降算法,更新模型参数w'和b',具体计算公式如下:

55、

56、

57、步骤b5、重复步骤b2~b4,直到达到最大迭代次数。

58、在一个优选地实施方式中,所述步骤105中,基于神经网络模型的输出和阈值,定义异常检测计算公式,通过离线训练的分类器结合神经网络算法,实现对工业控制网络通信在线数据的异常检测,具体步骤如下:

59、步骤1、输入层:将工业控制网络通信数据作为输入层的输入,设置输入向量为x;

60、步骤2、隐藏层:通过隐藏层对输入数据进行特征提取和转换,设置隐藏层的神经元数量为n,权重矩阵为w,偏置向量为b,隐藏层的输出表示为:

61、z=wx+b

62、其中,z为隐藏层的输出向量,大小为n,隐藏层权重矩阵为w,偏置向量为b;

63、步骤3、输出层:输出层的神经元数量设置为1,表示异常的概率,输出层的权重为w,偏置为b,输出层的输出表示为:

64、y=σ(wz+b)

65、其中,σ为激活函数,w表示输出层的权重,偏置为b,y表示输出层的输出;

66、步骤4、阈值设置:根据离线训练数据的统计信息,设置阈值τ来判断异常情况,根据输出层的结果y和阈值τ,定义异常检测计算公式,具体公式如下:

67、当y>τ,判断为异常;

68、当y≤τ,判断为正常。

69、在一个优选地实施方式中,所述步骤106中,根据异常检测的结果,将异常数据点与已知的攻击类型进行匹配和分类,识别出攻击类型,利用分类模型的决策函数来计算异常数据点属于每个攻击类型的概率,通过分析攻击类型及其特征,加强网络防御,具体步骤如下:

70、步骤1、在包含网络通信数据和对应的攻击类型标签的训练数据集中进行特征提取,包括流量统计特征和协议特征;

71、步骤2、使用支持向量机算法对提取的特征和攻击类型标签进行训练,得到一个分类模型,对于m个样本,每个样本有n个特征,其中第i个样本的特征向量为x[i],其对应的攻击类型标签为y[i],具体计算公式如下:

72、f(x)=sign(wtx+b)

73、其中,f(x)表示svm分类模型函数,w和b是svm分类模型的参数,x表示输入的特征向量,wt表示向量w的转置,sign()是符号函数,根据输入值的正负返回+1、-1;

74、步骤3、预测概率:设置支持向量机模型为二分类模型,其决策函数为f(x),其中x表示输入的特征向量,对于异常数据点,使用决策函数计算其属于每个攻击类型的概率,利用sigmoid函数将决策函数的输出转换为概率值,当有k个攻击类型,对于第i个攻击类型,具体计算公式如下:

75、p(y=i|x)=sigmoid(f(x)[i])

76、其中,sigmoid表示激活函数,p(y=i|x)表示在给定输入特征x的条件下,异常数据点属于第i个攻击类型的概率,x表示输入的特征向量;

77、步骤4、报警机制:当检测到网络通信异常和攻击行为,触发报警机制,通知系统管理员采取相应的响应措施,包括封锁源ip地址、断开连接以及增强安全策略,加强网络的安全性。

78、本发明的有益效果是:通过监视器抓取到工控网络中所有的通信数据包,获取通信数据,从采集的原始数据中进行特征提取,并将原始数据转换为能够反映样本特征的向量表示,利用主成分分析法对采集的原始通信数据进行降维处理,从收集到的原始数据中提取与通信异常相关的特征,使用信息熵方法来构建特征集,为数据样本打上标签,将正常通信和异常通信进行分类标注,通过离线训练的分类器结合神经网络算法,实现对工业控制网络通信在线数据的异常检测,根据异常检测的结果,将异常数据点与已知的攻击类型进行匹配和分类,通过分析攻击类型及其特征,为后续的攻击溯源和调查提供重要线索,加强网络防御。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1