面向变电站核心工控业务的流量基线模型构造方法
技术领域
本发明属于电气自动化领域,具体涉及一种面向变电站核心工控业务的流量基线模型构造方法。
背景技术
工业控制系统作为工业体系的中枢,控制着工业体系中信息的传输和交互,其涵盖了多种类型的控制系统,由各种自动化组件以及用于采集和监控的控制组件共同构成,保障工业基础设施自动化运行。工业控制系统具有结构稳定性,业务有限性和交互周期性特征。工业互联网的发展使得传统工业控制系统与互联网技术实现深度融合,高效共享工业系统中各类生产要素资源,从而通过自动化、智能化的生产方式降低成本、增加效率。
电网智能化发展,使得信息技术被广泛应用到发电、输电、变电、配电、用电和调度的各个环节,使得电网具有网络更广、用户更泛、交互更多、技术更新的特点。变电站作为电力骨干通信网的向下延伸,承载着分布式能源/储能站遥感、遥信、遥测等业务,具有终端设备复杂,分布广泛、业务连续性要求、业务实时性要求、专用协议传输等特点。变电站内核心业务通过TCP/IP方式按电网专用规约通信,其通信流量数据中“三遥”数据为主要业务,从而周期性获取终端设备状态并返回操作指令;具体表现为大量由时间驱动的状态检测和信息采集业务。通过构造基线模型,并用于描述变电站内各业务轮廓,一方面可为运维人员提供业务实时运行状态;另一方面,面对开放的工业互联网环境,可将基线模型扩展应用于异常行为检测,提供主动防御手段,丰富异常检测方式。
但是,目前的基线模型的构造方法,不仅费时费力,而且可靠性不高。
发明内容
本发明的目的在于提供一种可靠性高、效率较高且简单易行的面向变电站核心工控业务的流量基线模型构造方法。
本发明提供的这种面向变电站核心工控业务的流量基线模型构造方法,包括如下步骤:
S1.解析变电站的数据流,获得业务基本特征,并根据获取的业务基本特征计算得到表示业务流交互的高阶特征;
S2.进行同类业务的聚类;
S3.根据获取的基本特征和高阶特征,生成最终的原始输入特征矩阵;
S4.构造基于卷积神经网络自编码器,并学习步骤S3得到的原始输入特征矩阵的关联关系,从而得到高维中间层特征;
S5.对步骤S4得到的高维中间层特征进行降维,并计算得到表示业务交互流程的低维关键特征;
S6.针对每一维度,计算若干周期内的正态分布参数;
S7.构造各业务内多维关键特征联合高斯分布函数,最终得到业务基线模型。
步骤S1所述的解析变电站的数据流,获得业务基本特征,并根据获取的业务基本特征计算得到表示业务流交互的高阶特征,具体为特征提取包括创建流特征、更新流特征和输出流特征;循环读取并解析原始数据流内的基本特征,根据数据流类型初始化流信息,将流信息添加至特征栈中;最后基于基本特征计算高阶特征、更新栈中流特征并输出;
创建流特征:基于原始流基本特征与特征栈的匹配结果创建流特征;流基本特征为数据流中物理层、链路层、网络层和传输层中配置特征;将基本特征中源IP、源端口、目的IP、目的端口和协议类型构成五元组;若当前流五元组与特征栈中数据不匹配时,则创建流特征:根据首条数据流方向初始化流信息,包括:包大小、包头部长度、流标识和初始化窗口大小等;将初始化信息入栈完成创建流程;
更新流特征:若当前流五元组与特征栈中数据匹配,且不满足流特征输出条件,则更新流特征:更新流特征包括基本特征更新以及高阶特征更新;基本特征更新包括包大小累计更新、包头长度累计更新、标签数累计更新,包个数累计更新等;然后根据基本特征计算高阶特征,高阶特征包括流激活/空闲时间、流速率、字节速率、流到达时间间隔、有效载荷统计量、子流相关统计量子流数等;基本特征更新通过累加计数实现;高阶特征更新通过基本特征中发送序列、接收序列建立数据流交互关联,并结合时间戳分别计算前向链路与反向链路的特征变化,从而实现高阶特征更新;
输出流特征:若存在如下情况,则输出栈中的流特征:
1)根据基本特征TTL判断当前流是否超时;
2)根据基本特征FIN标识判断当前流是否结束;
3)当前pcap文件是否遍历完成;
其中,条件1)和2)需要完成当前数据流的特征栈更新并输出对应的流特征;条件3)表示当前pcap文件已结束,输出栈中所有的流特征。
步骤S2所述的进行同类业务的聚类,具体为根据业务数据流中提取的五元组进行聚类;聚类规则如下:
规则一:业务类型按固定目的端口和协议类型联合划分;
规则二:同类源设备,不同源IP,相同目的IP、目的端口和协议类型的业务流归为同类;
规则三:相同源IP,同类目的设备,不同目的IP、相同目的端口和协议类型业务归为同类。
步骤S3所述的根据获取的基本特征和高阶特征,生成最终的原始输入特征矩阵,具体为提取出的基本特征和高阶特征包括包长度特征、包个数特征、包时间特征、包内容特征和配置特征;其中包长度特征表示业务承载内容的信息量;包个数特征表示业务交互方式;包时间特征表示业务交互频次;包内容特征表示基于TCP/IP业务的内容标识;配置特征表示网络设备的配置信息;将前 /反向特征构成业务交互矩阵用以描述业务整体特征;同时,对于包长度特征、包个数特征和包时间特征均包含最大值、最小值、均值和方差四类高阶特征;包内容特征包含了TCP/IP不同内容标识计数值;业务交互矩阵中前/反向特征按序对包长度特征、包个数特征、包时间特征和包内容特征,按属性进行聚类排序,生成最终网络输入原始特征矩阵。
步骤S4所述的构造基于卷积神经网络自编码器,具体为采用如下步骤构建自编码器:
自编码器的输入为2*N维原始特征矩阵x,其中N为业务流单向特征维度;自编码器为基于双层卷积神经网络的自编码器;编码器与解码器的结构镜像对称;编码器中第一卷积层函数为f1(·),第二层卷积层函数为f2(·),编码器输出为业务中间层特征向量h,编码器建立起中间层特征向量与输入特征矩阵间映射关系为h=f2(f1(x));解码器同样为两层卷积神经网路,其中第一层解码器用以解码第二层码编码器结果,其解码函数为g2(·),第二层解码器用以解调第一层编码器结果,其解码函数为g1(·),最终解码输出结果为解码器建立输出特征矩阵与中间层特征向量间映射关系为最终利用中间层特征向量h表示原始特征向量关联关系;
通过最小化平均绝对误差作为损失函数用以训练自编码器网络:
式中x为原始数据流特征矩阵;为自编码器重构特征矩阵;m为特征矩阵维度; xi为特征矩阵中第i维特征值;为自编码器重构特征矩阵中第i维特征值;
将原始特征矩阵作为输入特征矩阵按批次迭代训练自编码器,通过目标函数判断网络是否学习到原始特征分布:当目标函数值各批次训练结果符合设定要求时,说明自编码器能够拟合各业务原始特征分布,最终中间层向量h表示原始特征关联关系。
步骤S5所述的对步骤S4得到的高维中间层特征进行降维,并计算得到表示业务交互流程的低维关键特征,具体为变电站内核心工控业务通过自编码器后得到高维中间层特征h,通过主成分分析法将高维特征映射到低维全新正交特征上,消除高维度特征内冗余数据,得到业务关键特征;
经业务分类后得到变电站共有n类核心业务,中间层特征h具有m维,对于同一核心工控业务,其特征分布相同,通过抽样计算同一业务的各维中间层特征均值,以此得到m*n维不同业务的中间层特征矩阵
对中间层特征矩阵X进行零均值化处理得到矩阵X',并计算X'的协方差矩阵C,可知矩阵C为对称矩阵,如下所示:
C=X'×(X')T
式中为中间层特征矩阵行均值;N为特征矩阵列数;sum()为特征矩阵按行求和;
分别计算业务协方差矩阵C的特征值和对应的特征向量;对业务特征值进行降序,根据特征值影响因子设置阈值δ,将大于δ的特征值对应的特征向量生成转移矩阵P,对自编码器中间层特征h与转移矩阵P做点积操作得到降维后关键特征K,其中h维度为1*m,P维度为m*v,K维度为1*v,v为大于特征阈值δ的个数;K=h×P。
步骤S6所述的针对每一维度,计算若干周期内的正态分布参数,具体为利用中心极限定理将未知先验概率的同业务特征分布转换为正态分布;具体参数计算为:
a.相同业务满足同一概率概率分布,得到周期采样数据的关键特征;假设业务集合为S={S1,S2,...,Sn},周期内的各业务Si∈S关键特征为:
Keyi=(ki1,ki2,...,kiv)T
式中Keyi为第i类业务的关键特征向量;kij为第i类业务关键特征向量中第j维向量取值;
b.计算L个周期内相同业务的关键特征均值,业务Si在L个周期内特征向量为:
Vil=(Keyi1,Keyi2,...,Keyil)
式中Keyij为第i类业务第j个周期内的关键特征向量,j=1,2,...,l;
求第i类业务关键特征向量Vi在L周期内各维度均值向量其中各元素满足正态分布:
c.利用最大似然估计得到业务Si在L周期内的各维度关键特征的正态分布参数,假设经过W次L周期采样后,得到业务Si中第j维关键特征的正态分布参数为各参数计算方法为:
式中w为周期重复采样的次数;为第i类业务第j维特征在第n次周期采样后的均值;
d.得到业务Si关键特征中各维度参数
步骤S7所述的构造各业务内多维关键特征联合高斯分布函数,最终得到业务基线模型,具体为获得关键特征各维分布参数后,通过联合高斯分布实现维度整合,得到业务的数据基线模型;联合高斯分布关键在于计算各维度间相关系数,相关系数计算公式为
式中COV()为关键特征中第l类业务中第i维与第j维特征均值的相关系数;
根据各维度间相关系数得到协方差矩阵∑,最终业务基线模型为联合高斯分布概率模型,表示方式为:
同样利用最大似然估计计算协方差矩阵∑,计算公式如下,其中v为关键特征维度:
本发明提供的这种面向变电站核心工控业务的流量基线模型构造方法,利用深度学习网络提取业务交互流的关键特征,并基于关键特征进行数学建模,从而构造业务基线模型;本发明从实际应用角度出发,对于变电站内业务监控和异常检测提供了有效的建模方案,而且可靠性高、效率较高且简单易行。
附图说明
图1为本发明方法的方法流程示意图。
图2为本发明方法的基于卷积神经网络自编码器架构示意图。
图3为本发明方法的网络训练损失函数曲线示意图。
图4为本发明方法的实施例的变电站内核心工控业务中间层特征分布示意图。
图5为本发明方法的实施例的变电站内核心工控业务关键特征分布示意图。
图6为本发明方法的实施例的业务关键特征第1、4,10维分布示意图。
具体实施方式
如图1所示为本发明方法的方法流程示意图:本发明提供的这种面向变电站核心工控业务的流量基线模型构造方法,包括如下步骤:
S1.解析变电站的数据流,获得业务基本特征,并根据获取的业务基本特征计算得到表示业务流交互的高阶特征;具体为特征提取包括创建流特征、更新流特征和输出流特征;循环读取并解析原始数据流内的基本特征,根据数据流类型初始化流信息,将流信息添加至特征栈中;最后基于基本特征计算高阶特征、更新栈中流特征并输出;
创建流特征:基于原始流基本特征与特征栈的匹配结果创建流特征;流基本特征为数据流中物理层、链路层、网络层和传输层中配置特征;将基本特征中源IP、源端口、目的IP、目的端口和协议类型构成五元组;若当前流五元组与特征栈中数据不匹配时,则创建流特征:根据首条数据流方向初始化流信息,包括:包大小、包头部长度、流标识和初始化窗口大小等;将初始化信息入栈完成创建流程;
更新流特征:若当前流五元组与特征栈中数据匹配,且不满足流特征输出条件,则更新流特征:更新流特征包括基本特征更新以及高阶特征更新;基本特征更新包括包大小累计更新、包头长度累计更新、标签数累计更新,包个数累计更新等;然后根据基本特征计算高阶特征,高阶特征包括流激活/空闲时间、流速率、字节速率、流到达时间间隔、有效载荷统计量、子流相关统计量子流数等;基本特征更新通过累加计数实现;高阶特征更新通过基本特征中发送序列、接收序列建立数据流交互关联,并结合时间戳分别计算前向链路与反向链路的特征变化,从而实现高阶特征更新;对于描述数据流交互行为特征,如:包大小、字节数、时长等,均计算特征的最大值、最小值、均值和方差这四类特征;对于描述数据流内容标识特征只进行累计操作;对于描述数据流配置特征,如时间戳,五元组等只记录,不更新;最终共生成共77维特征;
输出流特征:若存在如下情况,则输出栈中的流特征:
1)根据基本特征TTL判断当前流是否超时;
2)根据基本特征FIN标识判断当前流是否结束;
3)当前pcap文件是否遍历完成;
其中,条件1)和2)需要完成当前数据流的特征栈更新并输出对应的流特征;条件3)表示当前pcap文件已结束,输出栈中所有的流特征;
S2.进行同类业务的聚类;具体为根据业务数据流中提取的五元组进行聚类;聚类规则如下:
规则一:业务类型按固定目的端口和协议类型联合划分;
规则二:同类源设备,不同源IP,相同目的IP、目的端口和协议类型的业务流归为同类;
规则三:相同源IP,同类目的设备,不同目的IP、相同目的端口和协议类型业务归为同类;
S3.根据获取的基本特征和高阶特征,生成最终的原始输入特征矩阵;具体为提取出的基本特征和高阶特征包括包长度特征、包个数特征、包时间特征、包内容特征和配置特征;其中包长度特征表示业务承载内容的信息量;包个数特征表示业务交互方式;包时间特征表示业务交互频次;包内容特征表示基于 TCP/IP业务的内容标识;配置特征表示网络设备的配置信息;将前/反向特征构成业务交互矩阵用以描述业务整体特征;同时,对于包长度特征、包个数特征和包时间特征均包含最大值、最小值、均值和方差四类高阶特征;包内容特征包含了TCP/IP不同内容标识计数值;业务交互矩阵中前/反向特征按序对包长度特征、包个数特征、包时间特征和包内容特征,按属性进行聚类排序,生成最终网络输入原始特征矩阵;
S4.构造基于卷积神经网络自编码器,并学习步骤S3得到的原始输入特征矩阵的关联关系,从而得到高维中间层特征;
原始特征表示工控业务流基本的交互方式,同类业务具有相同的交互方式,包含业务交互周期相同,业务交互内容相似,业务交互规则固定,原始特征间关联可更全面描述业务特征;自编码器是一种利用反向传播算法使得输出值等于输入值的神经网络,由编码器和解码器构成,编码器表示输入数据与潜在空间表征映射关系,解码器表示潜在空间表征与输出数据的映射关系,其潜在空间表征可表示输入数据间关联关系;因此本申请利用自编码器模型,实现特征关联抽取;
采用如下步骤构建自编码器:
自编码器的输入为2*N维原始特征矩阵x,其中N为业务流单向特征维度;自编码器为基于双层卷积神经网络的自编码器;编码器与解码器的结构镜像对称;编码器中第一卷积层函数为f1(·),第二层卷积层函数为f2(·),编码器输出为业务中间层特征向量h,编码器建立起中间层特征向量与输入特征矩阵间映射关系为h=f2(f1(x));解码器同样为两层卷积神经网路,其中第一层解码器用以解码第二层码编码器结果,其解码函数为g2(·),第二层解码器用以解调第一层编码器结果,其解码函数为g1(·),最终解码输出结果为解码器建立输出特征矩阵与中间层特征向量间映射关系为最终利用中间层特征向量h表示原始特征向量关联关系;
目标函数用于约束网络训练方向,用以训练编、解码器映射函数f1()、f2()、 g1()和g2()参数,自编码器通过重构输入数据实现特征提取,要求其输入与输出应尽可能相同,因此目标函数应当最小化输入与输出间差异,即最小化原始特征矩阵x与重构矩阵间对应维度间差异,最终训练目的期望在于gi=fi -1,可得通过最小化平均绝对误差作为损失函数用以训练自编码器网络:
式中x为原始数据流特征矩阵;为自编码器重构特征矩阵;m为特征矩阵维度; xi为特征矩阵中第i维特征值;为自编码器重构特征矩阵中第i维特征值;
将原始特征矩阵作为输入特征矩阵按批次迭代训练自编码器,通过目标函数判断网络是否学习到原始特征分布:当目标函数值各批次训练结果符合设定要求时,说明自编码器能够拟合各业务原始特征分布,最终中间层向量h表示原始特征关联关系;
S5.对步骤S4得到的高维中间层特征进行降维,并计算得到表示业务交互流程的低维关键特征;具体为变电站内核心工控业务通过自编码器后得到高维中间层特征h,通过主成分分析法将高维特征映射到低维全新正交特征上,消除高维度特征内冗余数据,得到业务关键特征;
经业务分类后得到变电站共有n类核心业务,中间层特征h具有m维,对于同一核心工控业务,其特征分布相同,通过抽样计算同一业务的各维中间层特征均值,以此得到m*n维不同业务的中间层特征矩阵
对中间层特征矩阵X进行零均值化处理得到矩阵X',并计算X'的协方差矩阵C,可知矩阵C为对称矩阵,如下所示:
C=X'×(X')T
式中为中间层特征矩阵行均值;N为特征矩阵列数;sum()为特征矩阵按行求和;
分别计算业务协方差矩阵C的特征值和对应的特征向量;对业务特征值进行降序,根据特征值影响因子设置阈值δ,将大于δ的特征值对应的特征向量生成转移矩阵P,对自编码器中间层特征h与转移矩阵P做点积操作得到降维后关键特征K,其中h维度为1*m,P维度为m*v,K维度为1*v,v为大于特征阈值δ的个数;K=h×P;
S6.针对每一维度,计算若干周期内的正态分布参数;具体为利用中心极限定理将未知先验概率的同业务特征分布转换为正态分布;具体参数计算为:
a.相同业务满足同一概率概率分布,得到周期采样数据的关键特征;假设业务集合为S={S1,S2,...,Sn},周期内的各业务Si∈S关键特征为:
Keyi=(ki1,ki2,...,kiv)T
式中Keyi为第i类业务的关键特征向量;kij为第i类业务关键特征向量中第j维向量取值;
b.计算L个周期内相同业务的关键特征均值,业务Si在L个周期内特征向量为:
Vil=(Keyi1,Keyi2,...,Keyil)
式中Keyij为第i类业务第j个周期内的关键特征向量,j=1,2,...,l;
求第i类业务关键特征向量Vi在L周期内各维度均值向量其中各元素满足正态分布:
c.利用最大似然估计得到业务Si在L周期内的各维度关键特征的正态分布参数,假设经过W次L周期采样后,业务Si中关键特征j得到的正态分布参数为各参数计算方法为:
式中w为周期重复采样的次数;为第i类业务第j维特征在第n次周期采样后的均值;
d.得到业务Si关键特征中各维度参数
S7.构造各业务内多维关键特征联合高斯分布函数,最终得到业务基线模型;具体为获得关键特征各维分布参数后,通过联合高斯分布实现维度整合,得到业务的数据基线模型;联合高斯分布关键在于计算各维度间相关系数,相关系数计算公式为
式中COV()为关键特征中第l类业务中第i维与第j维特征均值的相关系数;
根据各维度间相关系数得到协方差矩阵∑,最终业务基线模型为联合高斯分布概率模型,表示方式为:
同样利用最大似然估计计算协方差矩阵∑,计算公式如下,其中v为关键特征维度:
以下结合实施例,对本发明进行进一步说明:
实施用例1:自编码器模型参数和训练结果,参照图2,自编码器结构中编码器与解码器均为两层卷积网络,编码器中第一层卷积层参数为:20个大小为 (2,5)卷积核,步长为1,第二层卷积层参数为:8个大小为(1,1)卷积核,步长为1;解码器参数与编码器镜像配置。其输入为2×22维的业务前/反向原始特征矩阵x,输出为自编码器为输入与输出相同的神经网络,因此定义损失函数输入、输出间最小均方误差:网络优化方式为随机梯度下降法,将原始数据按8:2比例随机切分为训练集和验证集,训练集用于训练模型参数,验证集用于测试模型拟合度,共训练20批次。
该模型在训练与验证集上的损失函数曲线参照图3,由曲线可知:1)模型在学习过程中损失函数持续下降,说明模型能够学习到原始特征分布,并重构输入特征;2)当训练到达第10批次后,模型已基于稳定,损失函数下降幅度减小;3)验证集与训练集下降趋势一致,表明当前模型未出现过拟合现象。
实施用例2:中间层特征与关键特征提取,参照图2,利用训练完成的自编码器中编码器输出作为业务中间层特征,根据实施用例1中的网络参数可得到 176维的中间层特征,该中间层特征维度不易于构建业务基线模型,因此对中间层特征进行PCA线性降维,提取出业务关键特征。
变电站核心业务中周期性关键业务占变电站总流量的87%,其中业务中间层特征分布图参照图4(a),(b),(c)所示,可以看出同类业务的自编码器中间层输出特征具有稳定性,特征波动趋势具有一致性,因此同类业务具有相同的分布特征。
基于高维度中间层特征进行PCA降维,其业务矩阵特征值范围为[-2.296e-8,1.245],根据特征值指数的数量级确定关键特征维度为12维,并由相应特征向量生成转移矩阵。中间层特征与业务矩阵做点积得到业务关键特征。参照图5(a),(b),(c)为关键业务的关键特征分布图。由图可知,同类业务 PCA降维后得到的关键特征与中间层特征具有相同性质。
实施用例3:关键特征求参和基线构造:得到业务12维关键特征后,利用中心极限定理对每一维求正态分布参数,以具体一类业务为例,将关键特征按 20次采样随机分组,对每组关键特征内各维度求特征均值,参照图6(a)表示该业务第一维特征分布,图6(b)表示该业务第四维特征分布,图6(c)表示该业务第十维特征分布,经过分布转换后,该业务关键特征内各维度可用正态分布表示。
得到业务各维度特征分布后,利用联合高斯分布构建业务基线模型,关键在于计算各维度间协方差矩阵∑,实施例2中确定业务关键特征维数为10,因此该协方差矩阵为10*10维,最大似然估计协方差结果为:
根据最大似然估计结果(μ,∑)构造该业务最终基线模型。