掌桥专利:专业的专利平台
掌桥专利
首页

一种基于自编码的通用工业协议异常检测模块及方法

文献发布时间:2023-06-19 10:58:46


一种基于自编码的通用工业协议异常检测模块及方法

技术领域

本发明涉及工业控制系统技术领域,具体涉及一种基于自编码的通用工业协议异常检测模块及方法。

背景技术

现有的工业控制系统(ICS)中的工业协议异常通信行为的检测基本都依赖于各种工控协议的深度解析特征。而工控网络协议众多,包含工控标准协议如Modbus、DNP3IEC104,私有协议如FINS,私有不公开协议S7、PPI、 GE SRTP等,这给安全产品的检测带来了更高的成本。

发明内容

针对现有技术中的上述不足,本发明提供的一种基于自编码的通用工业协议异常检测模块及方法解决了工控网络协议众多导致安全产品检测成本较高的问题。

为了达到上述发明目的,本发明采用的技术方案为:一种基于自编码的通用工业协议异常检测模块,包括解析模块、预处理模块和编码器特征重构模块;

所述解析模块用于解析工控事件的数据包头并截取数据包的payload信息,获取单个事件表征;

所述预处理模块用于借鉴自然语言预处理方式对payload(载荷)信息进行编码及词嵌入;

所述编码器特征重构模块用于对预处理后的payload信息进行编码及重构,利用重构误差及所设阈值,判断是否有工控异常通信行为的存在。

进一步地:所述预处理模块包括数据订阅子模块、字符编码子模块和Embedding(词嵌入)子模块;

所述数据订阅子模块用于提取滑动窗口流量数据,并在每个时间窗口内把将下位机/从机作为源地址的流量进行聚合,获取当前事件的上下文信息;

所述字符编码子模块用于将payload信息中的十六进制码依次编码为[1,256]的数字,并进行序列截断及填充;

所述Embedding子模块用于对标准长度的编码序列进行嵌入,得到预处理后的payload信息。

进一步地:所述单个事件表征形式包括时间戳,五元组信息和payload信息。

进一步地:一种基于自编码的通用工业协议异常检测方法,包括以下步骤:

S1、通过解析模块解析工控事件的数据包头并截取包的payload信息,获取单个事件的表征,表征形式包括时间戳、五元组信息和payload信息;

S2、通过数据订阅子模块提取滑动窗口流量数据,并在每个时间窗口内把将下位机/从机作为原地址的流量进行聚合,获取当前事件的上下文信息;

S3、通过字符编码子模块将payload信息中的十六进制码依次编码为[1,256]的数字,并进行序列截断及填充;

S4、通过Embedding子模块对标准长度的编码序列进行嵌入,输出预处理后的payload信息;

S5、将预处理后的payload信息的正常样本通过编码模块获取重构误差序列;

S6、将重构误差与判断阈值进行比较,若重构误差大于判断阈值,则将当前事件判断为异常事件。

进一步地:所述步骤S2中的上下文信息为(2n+1)个payload信息[

进一步地:所述步骤S3中序列截断的长度

进一步地:所述步骤S4中嵌入的维度

进一步地:所述步骤S6中判断阈值的计算公式为:

上式中,

本发明的有益效果为:

1、本发明给出了一种基于实时滑动时间窗口,并结合上下文事件的流量预处理方式,并借助自编码器及其变种有效提取时间、空间及特征的相关性;

2、本发明在检测过程中避免了对深度协议解析的依赖,只提取了工控事件时间、五元组和有效payload;

3、本发明通过无监督学习方式实现工控异常检测,经在Modbsus仿真数据集验证,通过深层卷积自编码器的重构误差检测方法,可以有效覆盖常见工控协议攻击。

附图说明

图1为本发明流程示意图;

图2为本发明滑动时间窗口内的数据流处理图;

图3为本发明检测模块流程图。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

一种基于自编码的通用工业协议异常检测模块,本发明所述基于自编码的通用工控协议异常检测方法工作原理主要基于工控通信行为状态有效和行为有限的先天条件,通过预处理模块提取当前工控事件的原始上下文信息(payload),并借鉴自然语言预处理方式对信息进行编码及词嵌入(Embedding),之后通过自编码器对预处理后的数据进行编码及重构,利用重构误差及所设阈值,判断是否有工控异常通信行为的存在,具体包含解析模块、预处理模块和编码器特征重构模块;

所述解析模块用于解析工控事件的数据包头并截取数据包的payload信息,获取单个事件表征;所述单个事件表征形式包括时间戳,五元组信息和payload信息。

所述预处理模块用于借鉴自然语言预处理方式对payload信息进行编码及词嵌入;所述预处理模块包括数据订阅子模块、字符编码子模块和Embedding子模块;

所述数据订阅子模块用于提取滑动窗口流量数据(可通过Spark Streaming实现),并在每个时间窗口内把将下位机/从机(slave)作为源地址的流量进行聚合,获取当前事件的上下文信息;

所述字符编码子模块用于将payload信息中的十六进制码依次编码为[1,256]的数字,并进行序列截断及填充;

所述Embedding子模块用于对标准长度的编码序列进行嵌入,得到预处理后的payload信息。

所述编码器特征重构模块用于对预处理后的payload信息进行编码及重构,利用重构误差及所设阈值,判断是否有工控异常通信行为的存在。

如图1所示,一种基于自编码的通用工业协议异常检测方法,包括以下步骤:

S1、通过解析模块解析工控事件的数据包头并截取包的payload信息,获取单个事件的表征,表征形式包括时间戳、五元组信息和payload信息;

S2、通过数据订阅子模块提取滑动窗口流量数据(可通过Spark Streaming实现),并在每个时间窗口内把将下位机/从机作为原地址的流量进行聚合,获取当前事件的上下文信息;上下文信息为(2n+1)个payload信息[

S3、通过字符编码子模块将payload信息中的十六进制码依次编码为[1,256]的数字,并进行序列截断及填充;序列截断的长度

S4、通过Embedding子模块对标准长度的编码序列进行嵌入,输出预处理后的payload信息;嵌入的维度

S5、在训练阶段,将预处理后的payload信息的正常样本通过编码模块获取重构误差序列;可参考判断阈值为均方误差序列的均值加方差,即

上式中,

S6、将重构误差MSE与判断阈值thr进行比较,若重构误差大于判断阈值,则将当前事件判断为异常事件,如图3所示。

本发明摆脱了对深度解析模块和异常样本的依赖,通过自动化的事件上下文信息提取,编码,词嵌入(Embedding),可有效替代协议的深度解析;并通过无监督自编码器对于Embedding层的重构误差,有效识别常见工控攻击,本发明适用于所有工控协议。

相关技术
  • 一种基于自编码的通用工业协议异常检测模块及方法
  • 一种基于自编码的通用工业协议异常检测模块及方法
技术分类

06120112754409