APP下载

基于融合马尔科夫模型的工控网络流量异常检测方法

2022-06-07胡梦娜张重豪周正寅贾俊铖杨荣举

信息安全学报 2022年3期
关键词:工控报文语义

马 标, 胡梦娜, 张重豪, 周正寅, 贾俊铖, 杨荣举

基于融合马尔科夫模型的工控网络流量异常检测方法

马 标1, 胡梦娜1, 张重豪1, 周正寅1, 贾俊铖1, 杨荣举2

1苏州大学计算机科学与技术学院 苏州 中国 2150062西门子(中国)有限公司 北京 中国 100102

虽然工业互联网为现代工业注入了新的活力, 极大地提高了工业生产效率, 但是网络化也给工业控制系统带来了更多的威胁。近年来, 国内外发生了多起工控入侵事件, 严重影响了工业生产安全, 工控安全问题愈发突出。为确保现代工业向着数字化、自动化等方向稳定发展, 有效的工控系统入侵检测方法成为了研究重点。针对工业控制系统中现有的方法对于多周期混合的流量无法进行有效分离、难以检测和防御更加复杂的语义攻击的情况, 充分利用工业流量高周期性和高相关性的特点, 提出一种基于融合马尔科夫模型的工控网络流量异常检测方法。首先深度解析报文语义并将原始流量序列映射为hash字符串序列, 然后根据字符串序列间的相关性生成状态转移图。接下来, 根据状态转移图间各状态的出入关系和频率将子周期符号进行分类并依次构建DFA模型。为了检测更多语义攻击, 该方法根据子周期间的出入关系和模型误报率将错误分解的长周期模式进行融合并在每个DFA模型的节点中加入时间间隔信息。在SCADA测试平台上进行实验验证, 结果表明此方法能检测更多类型的攻击, 对复杂语义攻击具有较高的检出率。

工业控制系统; 网络流量; 异常检测; 语义攻击

1 引言

传统的工业生产环境中, 工业控制系统(Industrial Control System, ICS)主要负责控制和协调各种设备按照生产要求执行各种任务。随着信息化的不断发展和普及, 工业生产不再是简单地完成生产任务, 还需要满足数据分析、远程操控等需求, 所以越来越多的工业控制系统与互联网融合, 形成一个开放式的网络环境。

由于传统的工业控制网络的主要功能是完成工业生产, 在设计时缺乏安全考虑, 在开放的网络环境中容易遭受攻击。从工控系统自身结构看, 由于采用专用的通信协议、操作系统和软硬件设施, 没有相应的安全防御措施, 使得系统固有的漏洞容易被攻击者利用进行破坏性的操作; 从外部网络环境看, 由于工业网络采用TCP/IP 技术进行通信, 传统的IT 系统攻击行为能够进入到工控系统网络, 使得工控系统面临更大的安全挑战。

工业控制系统中可编程逻辑控制器(Programmable Logic Controller, PLC)和人机界面(Human Machine Interface, HMI)的通信多采用专有的通信协议(比如S7Comm、Modbus等), 这导致很多互联网中通用的安全技术在工业控制网络中并不适用。并且由于传统的工业控制网络已经应用多年, 使用范围广泛, 将现有工业网络全部替换代价太大, 所以在不改变现有工业网络的基础上制定新的入侵检测系统(Intrusion Detection System, IDS)是亟需解决的问题。

在真实的工业生产中, 工业控制系统除了面对传统的网络攻击外, 还要面临一种专门针对工业控制系统的语义攻击。攻击者对工业生产流程和物理设备有着详细的了解, 可以通过构造一组看似“合法”的消息序列来有针对性地对工业设备或者工业生产造成破坏。比如在红绿灯系统中, 攻击者发起攻击时将正常流量的顺序打乱造成红绿灯顺序或时间出现故障, 从流量本身来分析, 攻击行为的流量都是正常的, 但是其造成的结果却是极其严重的。

针对现有工业控制系统异常检测方法对于多周期混合流量的语义攻击检测方面存在不足, 本文提出基于融合马尔科夫模型(Fusion Markov Model, FMM)的工控流量异常检测方法。首先将流量映射为状态事件来构造状态转移图, 然后根据状态转移图中的各节点出入关系和出入度频率将多周期混合的流量进行周期分离降低模型误报率, 为了让模型可以检测更加复杂的语义攻击对分离后的子周期根据模型误报率再次进行融合来还原真实的周期模式, 最后确定模型中确定有限自动机(Deterministic Finite Automaton, DFA)节点的时间间隔来检测时序攻击。

本文的主要贡献如下:

(1) 本文实验数据是基于S7协议的流量, 所以针对S7协议进行深度解析, 选取S7流量中的关键参数项将流量映射为等长的hash字符串, 使得后面构建状态转移图更加简洁。

(2) 针对多周期混合流量的建模, 本文将初步分离后的子周期模式根据模型误报率进行进一步融合, 使得模型可以检测更加复杂的语义攻击。在DFA节点中加入时间间隔信息来检测时序攻击。

(3) 使用真实的SCADA测试平台捕捉的流量数据进行试验。试验结果表明, FMM方法能够更准确得分离混合周期流量, 对于复杂语义攻击具有更高的检出率。

2 相关工作

由于ICS在设计之初强调的是可用性和有效性, 安全方面考虑欠佳。ICS与远程网络的连接没有完善的安全边界准入机制, 使得基于TCP/IP通信的工业互联网极易受到来自IT网络的入侵, 比如中间人攻击、拒绝服务攻击等。攻击者通过互联网入侵到过程网络, 并通过过程网络或系统漏洞将恶意程序植入到PLC等控制设备中, 进而直接干扰物理过程的生产, 给工业生产造成严重破坏。表1总结了典型的工控系统各类攻击。

表1 攻击种类表

其中Stuxnet和Irongate是两种针对ICS的渗透攻击, 它们在获取PLC的控制权后, 会捕获PLC正常工作时的出站值并重播以掩盖对受控进程发起攻击时产生的异常, 这使得生产者无法通过HMI来了解ICS真实的生产情况, 但是这些渗透攻击多是通过SCADA系统进行渗透, 通过检测SCADA流量可以有效预防这类攻击。在真实的工业生产中, ICS除了面对传统的网络攻击外, 还要面临一种专门针对ICS的语义攻击。攻击者对工业生产流程和物理设备有着详细的了解, 可以通过构造一组看似“合法”的消息序列来有针对性地对工业设备或者工业生产造成破坏, 本文主要针对复杂的语义攻击展开研究。ICS的运行是为了完成固定的工业生产任务, 它遵循着严格的生产逻辑, 由于工业生产是高周期性的, 所以ICS的行为模式也是高周期性的, 通过对正常行为进行建模分析可以有效检测入侵攻击。基于行为周期的入侵检测主要利用ICS正常运行时的通信、运行、操作行为构建正常行为模型, 对要检测的行为与模型进行实时对比发现异常。基于正常行为模型的一个优点是它可以检测未知类型的攻击。

ICS正常运行时需要满足工业生产规则, 通过对比ICS运行状态、流量特征、日志信息和传感器状态等可以发现不符合ICS正常运行特征的攻击行为。Hadeli H等[8]从系统描述文件中提取信息来生成综合通信模型, 然后使用通信模型生成安全措施的不同配置文件用以检测入侵。Kwon Y J等[9]通过分析基于IEC 61850的网络流量来检测异常事件, 利用静态特征和动态特征来检测网络流量数据异常。Barbosa R R R等[10-11]比较了SCADA系统和传统IT系统, 发现SCADA流量有明显的周期性和自相关性, 根据固定的网络设备数、有限的协议数和规则的通信模式三个重要特征来建立IDS。Zhanwei S等[12]从Modbus流量中提取ICS的行为数据序列来建立控制系统的正常行为模型, 通过对比系统实际的行为数据和模型预测的行为数据来检测异常。Kalech M等[13]通过提取SCADA系统中原始流量的时间特征来构建ICS的正常行为模型, 使用隐马尔可夫模型和人工神经网络算法来对比系统实际行为和预测行为差异。宋站威等[14]从工控网络流量中提取正常行为的离散数据序列,使用离散的多输入多输出线性模型来表示ICS的正常行为,通过比较分析实时提取的行为数据与模型预测的行为数据,判断是否出现异常。针对现有方法难以有效提取工控流量数据特征问题, 石乐义等[15]提出一种基于相关信息熵和CNN-BiLSTM的入侵检测模型, 使用信息熵的特征选择能够有效去除噪声数据和冗余特征, 减少计算量, 提高检测精度。张艳升等[16]提出一种基于卷积神经网络(CNN)的异常流量检测模型, 将工控流量特征数值与灰度图像对应生成网络流量灰度图, 并使用网络流量灰度图来训练模型, 使得模型识别精度得到了有效提高。

针对工业控制系统中的语义攻击, 国内外学者根据工业流量的高周期性特征提出了一系列有效的异常检测方法。Goldenberg N等[17]根据工业流量高周期性的特点, 使用基于DFA的方法对正常运行的Modbus流量进行建模。该方法在简单周期的流量上取得不错效果, 但是在实际的工业生产中流量会出现一些由于人为操作、数据包丢失和重传等造成噪声, 这使得DFA模型的规模相当庞杂。为了减低DFA模型的复杂度, Kleinmann A等[18]使用两层DFA串联的方法来构建模型, 并在S7协议上进行了验证。此方法在一定程度上缩短了DFA模型的整体长度, 但是对于多周期混合的工业流量无法进行有效建模, 模型也无法检测复杂的语义攻击。Yoon M K等[19]采用概率后缀树(Probabilistic Suffix Tree, PST)构建异常检测模型, 将Modbus协议的请求/应答流量转化为事件序列并用PST表示事件间的转移关系, 根据实时计算结果与阈值的偏移程度识别异常。杨安等[20]提出一种信息流和状态流融合的工控系统异常检测方法, 使用PST对工控流量形成的信息流和从物理设备提取的状态流进行建模, 从操作次序和时序2个维度检测操作序列是否正常。Yang A等[21]提出了一种基于状态的序列检测方法(State-Based Sequence Detection , SBSD), 通过使用隐马尔可夫模型(HMM)对PLC设备的观测信息序列进行建模来检测序列攻击。SBSD方法在ICS中分别对连续和离散序列构建HMM。然后通过HMM和加权求和, 可以获得测试序列的输出概率。最后通过将输出概率与预定阈值进行比较, 可以将测试序列分类为正常或异常。将PLC设备的状态流信息引入到异常检测模型中可以有效识别序列攻击并发现工控设备的异常状态, 同时PLC状态信息能真实反映ICS运行情况, 使用状态信息建模能有效降低异常检测模型的误报率。张仁斌等[22]利用工业流量间的前后关联性, 提出基于马尔科夫树模型的异常检测系统。马尔科夫树是基于状态转移图和正常流量序列构建而成, 树中的每个节点代表一个合法的状态事件, 通过树结构保存所有状态事件间的关系, 每个树的节点都维护一个转移分布表, 表明各状态事件的转移情况。此模型通过多层马尔科夫树结构和转移分布表能够检测出简单语义攻击和较为复杂的分支节点攻击, 然而由于该模型没有对多周期混合流量进行有效分离, 不同周期的流量混合在一起互相成为噪声, 使得构建的模型在准确度上面表现一般。针对多周期混合的多路复用流量, Kleinmann A等[23]使用马尔科夫链对SCADA流量构建状态转移图, 然后根据状态转移图中各节点的频率和出入关系对多周期混合的流量进行周期分离, 最后分别对每个子周期构建DFA模型。此方法在一定程度上对多周期混合流量进行了有效分离, 但是也会将一个长周期流量分离成多个短周期流量, 这使得模型在检测子周期重放攻击时存在明显不足。

3 问题描述

3.1 周期复杂性

数据采集和监视控制系统(Supervisory Control and Data Acquisition, SCADA)被用于监视和控制关键基础设施, 例如废水分配设施、天然气生产系统和发电站等。SCADA系统依赖HMI和PLC间的通信, HMI根据业务需求按照一定逻辑定期向PLC发送相关指令, PLC根据接收的指令内容访问现场设备的信息并将信息返回给HMI, HMI接收到返回信息后对信息进行呈现以达到监视控制的目的。在实际工业生产中, 存在明确的周期行为和操作顺序, 因此SCADA流量在业务逻辑上也存在高周期性。

SCADA流量的周期类型[24]分为: 轮询周期和定时周期, 轮询周期指SCADA系统按照工业生产的业务逻辑依次执行一系列指令, 多用于从现场设备中检索数据, 定时周期是SCADA系统每隔固定时间执行某类操作, 常用于调整现场设备状态。在HMI和PLC通信通道中可能存在多个轮询周期和多个定时周期混合的情况。Caselli M等[25]提出一种更加复杂的情况, 其假设HMI和PLC间的通信采用多线程的体系结构, 每个线程都负责独立任务, 线程间并发运行。在这种情况下, 工控系统中的流量是多路复用的, 即某个流量可能出现在多种周期模式中。

3.2 攻击复杂性

互联网化带来便利的同时也带来了很多安全威胁, 在真实的工业生产中, SCADA系统除了面对传统的网络攻击, 如功能码异常、DoS (Denial of Service)、缓冲区溢出等攻击外, 还要面临一种专门针对SCADA系统的语义攻击[22]。在语义攻击中, 攻击者对工业生产流程和物理设备有着详细的了解, 可以通过构造一组看似“合法”的消息序列来有针对性地对工业设备或者工业生产造成破坏。图1是一个轮询周期状态序列“abcdbedfabcdbedf……”和另一个定时周期状态序列“AAA……”混合的状态转移图。

针对该状态图简单语义攻击可分成两类: 次序攻击和时序攻击。

图1 多周期混合的状态转移图

Figure 1 Multi-period mixed state transition diagram

(1) 次序攻击是指攻击者将消息指令以非法、恶意的顺序发送, 如将序列“abcdbedfabcdbedf……”中的“ab”子序列颠倒构成异常序列“bacdbedfbacdbedf……”进行次序攻击。Fovino I N等[26]列举了一个次序攻击影响一个高压输气管的真实案例, 输气管的压强由两个阀门控制, 攻击者控制了输气管道的PLC, 他们发送指令强制将一个阀门完全打开另一个完全关闭, 导致输气管的压强过大而停止工作。这些指令在单独检测时都是合法的, 但是当它们以一种非法顺序发送时会将系统停止工作。

(2) 时序攻击是指攻击者将消息指令在非法的时间发送, 如将序列“AAA……”的周期时间由5s改为2s构成时序攻击。美国工业安全报告[27]提及了一个时序攻击的案例。在输水系统中, 攻击者以一种异常频率给PLC发送正常顺序的指令, 导致输水管道的阀门快速地打开和关闭, 形成气锤效应, 造成大量输水管道破裂。

此外, 若攻击者对工业生产流程有更深的了解可以构建更加复杂的语义攻击: 分支节点攻击和子周期重放攻击。

(2) 子周期重放攻击是指攻击者多次重复发送子序列造成攻击。对于状态图中的子周期“AAA……”, 攻击者可以多次发送状态A使得整个生产流程发生改变来干扰工业生产。

4 融合马尔科夫模型构建

4.1 建模流程

首先将原始的HMI和PLC正常数据流根据IP通道进行分离。因为本文中的数据集流量是S7协议的流量, 所以其次对通道中的S7协议流量进行深度解析, 提取重要特征, 并将流量数据符号化, 得到带时间戳的符号序列。接下来根据正常符号序列构建状态转移图。然后根据状态转移图中的出入关系和频率构建马尔科夫模型。最后为了检测更加复杂的语义攻击, 对马尔科夫模型进行融合处理, 确定次序模型后根据符号的时间戳确定DFA节点的时间间隔。具体流程如图2所示。

图2 融合马尔科夫模型的建模整体流程

Figure 2 Integrated modeling process of Markov model

4.2 状态图构建

4.2.1 基于S7协议的状态事件定义

工业生产行为具有高周期性, 通过研究通信流量之间的关系可以挖掘工业生产实际的行为周期。在工业控制系统的交互过程中, 工业生产的具体操作是通过通信流量来执行, 将通信流量转为状态事件可以简化模型构建过程。不同的工业协议包含的字段是不同的, 对状态事件的定义也是不同的, 为了确保通信流量能准确转化为状态事件, 需要分析协议的语义特征, 选取合适的特征字段, 根据这些选取的特征字段可以将原始的流量序列转化为时间符号序列, 每个时间符号代表一个状态事件。本文以S7协议为例, 制定基于S7协议的特征提取和状态转换规则。

S7协议是西门子自主开发的私有协议, 通信主要采用主从模式, 即主设备发起事务请求, 从设备根据请求数据执行相应的操作并将结果响应给主设备。S7协议栈的传输层使用TCP/IP实现依赖于面向块的ISO传输服务, 协议的固定TCP端口号为102, 会话层和表示层分别采用TPKT和ISO-COTP协议将服务进行封装, 应用层用S7协议进行数据传输。其特定形式如图3:

图3 S7协议封装结构

Figure 3 S7 protocol encapsulation structure

S7协议是面向功能/命令的, 因此S7协议的消息传输多是由请求和响应组成。S7协议控制单元(Protocol Data Unit, PDU)由头(Header), 参数(Parameters)和数据(Data) 3个部分组成, 其中报文头由图4[18]中前6个字段构成, 报文参数由Function Code和Item Count两个字段组成, 数据部分即为Item, 由剩下的八个数据头参数和数据内容组成, 一条报文中可以包含多个Item。

其中主要参数解释如下:

•“ROSCTR”: 表示此报文类型, 0x01表示为请求报文, 0x03表示为响应报文。

•“The Protocol Data Unit Reference(Request Id)”: 即事务标识符, 是一个递增的值, 用于匹配请求/响应报文对。

图4 S7 PDU结构

Figure 4 S7 PDU structure

• “Function Code” 表示协议所执行的操作类型, 如读操作为0x04, 写操作为0x05。

•“Item Count”: 是报文所携带的命令数, 西门子HMI会将多条功能相似报文合并为一条发送给PLC, 每条报文的命令包含在Item项, 本文为了更好地对流量行为进行建模, 将多条融合报文进行了分离处理。

本文对S7协议进行语义分析, 提取协议中Protocol Id、ROSCTR、Parameter Length、Data Length、Function Code、Item Count和Item的数据头来定义状态事件。通过这些特征定义的状态事件转换规则如下:

(1) S7报文功能码为读操作(0x04)时, 请求报文读取的对象地址相同(读取同一个现场设备信息)即为同一状态事件, 响应报文返回值的各参数一致时(返回的设备信息一致)即为同一状态事件;

(2) S7报文功能码为写操作(0x05)时, 请求报文待写入的对象地址和写入值相同(向同一个现场设备写入相同值)即为同一状态事件, 响应报文返回值的各参数一致时(写入是否成功)即为同一状态事件。

根据上述的转换规则, 流量序列中任何一条S7报文都可以映射成唯一的状态事件。为了方便模型的构建, 本文先将S7报文中需要的参数项的值取出, 进行字符串拼接, 这样一条S7报文就变成了一个字符串。然后再使用SHA-1函数对字符串转化, 得到等长的hash字符串, 同时保留每个hash字符串的时间戳, 由此就完成了报文到时间符号的转换, 每个符号代表一个唯一状态事件。为了方便表示, 本文用a,b,c……表示相应的hash字符串, 例如符号a表示读取某一个传感器, 符号b表示修改某个控制器的参数。

4.2.2 状态转移图构建

图5 状态转移图

Figure 5 State transition diagram

理想状态下只需要一个完整工业生产周期的流量就可以得到各状态间的出入关系和每个状态在周期中的频率, 最终构建工控流量的状态转移图。但是实际的ICS运行中会产生很多数据波动, 比如ICS初始运行时工控设备需要一段时间来运行到稳定状态, 工控网络也会存在一定波动性, 如果仅仅根据少量流量构建状态转移图很难生成准确的DFA模型, 因此更多的正常运行流量可以有效保障状态转移图的准确构建。因此在捕获ICS正常运行所产生的流量时, 需要保证ICS已经平稳运行, 从而确保状态图构建的准确性。

4.3 融合马尔科夫模型构建

4.3.1 子周期符号分类算法

算法1 子周期符号分类算法[23]

输入: 状态转移图矩阵, 状态字母表

输出: 所有子周期符号集合

设状态字母表中的状态为,为节点的入度,为节点的出度,为子周期符号集合,为频率,为节点的入状态集合,为节点的出状态集合,为完全未分配节点集合。

Step1:

4)ELSE

Step2:

Step3:

Step4:

Step5:

根据状态转移图出入关系和频率, 子周期符号分类算法将图4中的字符分为了4个子周期: {a,b},{c,d},{e,f,g,h}和{i,j}, 成功分离轮询周期和定时周期。然而长度为50的轮询周期也被算法分成了3个子周期, 这使得下文4.3.3节中构建的DFA模型在检测复杂的语义攻击时会有所不足。

4.3.2 确定子周期内符号顺序

图6 子周期{e,f,g,h}的符号顺序

Figure 6 Sign order of sub-period {e,f,g,h}

4.3.3 DFA模型构建

针对每个子周期分别构建DFA模型, 为了让DFA模型符合实际建模需求, 对DFA进行了如下两项修改:

(1) 去除终态集合, 因为异常测模型在检测阶段的输入是一个无休止的重复数据流, 除非数据流结束, 否则DFA模型不会终止;

(2) 开始状态定义为周期流量模式中第一个符号对应的状态。

图7 一个包含两组请求响应对的DFA

Figure 7 A DFA containing two request-response pairs

此阶段的DFA是根据3.3.2节中获取的确定顺序的子周期符号序列来构建, 对于每个子周期, DFA模型构建过程如下:

图8展示了分别为每子周期单独构建DFA的总体结构, 其中可根据子周期的周期模式情况设置DFA选择器。当通道中存在至少2种子周期模式时, 需要增加DFA选择器来将流量符号送入相应的DFA模型中。

图8 DFA模型结构

Figure 8 DFA model structure

DFA选择器通过分析比较通道内符号内容及时间戳来发挥选择功能[23], 主要针对以下两种情况进行设计:

(1) 子周期模式所含的符号内容均不相同, 可直接按照符号内容进行选择, 将流量符号送入对应的DFA中;

(2) 子周期模式所含的符号内容有重复的, 在符号内容的基础上增加时间戳与周期值的比较来将流量符号送入对应的DFA中。

4.3.4 子周期融合

4.3.3节中DFA模型是基于子周期分类算法进行构建, 此算法在分离多周期混合的流量时也可能将一个长周期流量分解为多个子周期流量, 如图4中的长度为50的轮询周期会被分类算法分解为3个子周期“abab……”, “cdcd……”, “efghefgh……”, 如果攻击者在充分了解生产环节后不断重放“ab”子周期, DFA模型无法检测出攻击行为, 这可能导致严重的生产事故。为了提高模型针对复杂语义攻击的检测能力, 本文在此基础上进一步提出子周期融合的方法。主要流程如图9所示, 具体操作如下:

图9 子周期融合流程图

Figure 9 Flow chart of sub-cycle fusion

4.3.5 确定周期时间

5 检测流程

在上述训练建模阶段, 获得了系统正常运行时的行为模型——融合马尔科夫模型, 下文详细介绍如何使用该模型进行异常检测, 图10为融合马尔科夫模型的异常检测流程图。

图10 异常检测流程图

Figure 10 Anomaly detection flowchart

5.1 检测流量预处理

首先根据S7协议中的事务标识符对流量中的请求和响应的报文对进行匹配, 如果匹配失败直接返回“丢失异常”(Miss), 否则将匹配成功的流量按照3.2.1节描述的过程映射为带时间戳的hash符号序列, 此处映射时只需要处理配对后的请求报文。

5.2 异常检测

在获取待检测的时间符号序列后, 对时间符号序列执行以下操作:

6 实验结果与分析

6.1 实验数据集

本章所使用的训练数据集来自某一真实的SCADA系统测试平台。所需的实验流量从控制层网络(环网)中的多个交换机中获取。测试平台网络拓扑如图11所示。

图11 SCADA系统测试平台网络拓扑结构

Figure 11 Network topology structure of SCADA system test platform

表2 模型训练数据集概况

本文模型训练数据集采样总时间为12h, 总报文数量为6598367, 其中S7报文数量为1689316, 具体情况如表2所示。其中, 192.168.4.111和192.168.4.113是两个相同的PLC组成的热备, 因此通道#2和通道#4具有基本一致的流量情况。另外, 从SCADA测试平台上获取的均为良性数据(即正常流量)。

为了验证模型对各种类型攻击检测的有效性, 本文模拟了交换机劫持篡改数据包的过程, 基于测试平台中获取的数据人工合成了以下几种类型的攻击数据。

(1) 非语义攻击

在非语义攻击中, 攻击者通过篡改协议的功能码将“0x04”(读操作)改为“0x29”(关闭PLC), 形成功能码异常攻击; 或者当HMI进行写操作时将协议中数据单元部分变长, 使得PLC寄存器在读取数据时造成缓冲区溢出攻击。由于构建模型的正常流量中未出现这类异常流量, 所以在检测时这些流量都会被映射为未知流量。本文在原始数据集中随机插入“未知”流量, 来模拟此类非语义攻击。

(2) 次序攻击

模拟数据包劫持篡改的方式, 将原始流量序列中流量前后次序颠倒来构成次序攻击。如将正常序列“bcdbedfabcdbedf…”中的“ab”子序列颠倒构成异常序列“bacdbedfbacdbedf…”。

(3) 时序攻击

模拟流量延迟或者缩短周期时间的攻击方式, 将原始流量中的周期时间变为原来的一倍或缩短为之前的一半, 形成时序攻击。

(4) 分支节点攻击

模拟数据包劫持篡改的方式, 调整状态图中的出度大于1 的分支节点顺序来构造分支节点攻击。比如颠倒正常序列“abcdbedfabcdbedf…”中子序列“bcd”和“bed”的顺序, 可以构建分支节点攻击序列“abedbcdfabedbcdf…”

(5) 子周期重放攻击

模拟数据包劫持篡改的方式, 多次重放子周期序列来构成子周期重放攻击, 如将正常序列“abcdbedfabcdbedf…”中子序列“bcd”多次重复发送来构造子周期重放攻击序列“abcdbcdbcdb edf…”。

6.2 实验评估指标

本文实验数据在原始流量数据基础上合成了异常情况数据, 因此不同的模型构建方法检测过程中会出现不同程度的误报和漏报。为了能够有效评估模型的表现, 本文引入混淆矩阵使用误报率(False Positive Rate, FPR)和漏报率(False Negative Rate)来对模型进行综合分析。

数据集中异常流量为正例, 正常流量为负例, 混淆矩阵中的每一项定义如下:

(1) 真正例(True Positive, TP): 表示实际为正例且被模型检测为正例的个数;

(2) 假正例(False Positive, FP): 表示实际为负例但被模型检测为正例的个数;

(3) 假反例(False Negative, FN): 表示实际为正例但被模型检测为负例的个数;

(4) 真反例(True Negative, TN): 表示实际为负例且被模型检测为负例的个数。

根据上述定义可计算得到误报率、漏报率等评估指标。其中误报率和漏报率定义如公式1和2所示:

6.3 实验结果

实验对比了FMM与先前的四种建模方法在模型构建上的效果, 参与对比实验的方法如下:

(1) 使用单个DFA构建模型(DFA)[17];

(2) 使用两个DFA串联构建模型(2-DFA)[18];

(3) 马尔科夫树模型(MMTM)[22];

(4) 使用马尔科夫链和状态转移图构建模型(DTMC)[23];

(5) 融合马尔科夫模型(FMM)。

6.3.1 正常流量建模

在真实的工业生产中, 往往无法根据已知的工业生产流程推导出理想的DFA模型来与训练得到的DFA模型进行对比, 因此本文通过正常流量构建相应的DFA模型, 并将这些正常流量重新送入模型中进行检测, 根据模型检测正常流量所得的误报率可以间接得到建模准确度, 理想情况下这些正常流量应该全部识别为正常。将上述的正常数据集分别用DFA方法、2-DFA方法、DTMC方法和MMTM方法进行训练,将得到的模型进行对比。图12展示了在正常数据集中各方法建模误报率的分布对比, 其中各方法误报率结果中出现的异常点属于同一多周期模式混合流量情况下的结果。由于本文实验的流量数据都是从测试平台捕捉的, 所以各通道中流量的周期模式是已知的, 使用人工手段可以确定正常的周期模式来建立理想模型。通过人工对比各模型和理想模型发现, DFA方法使用单个DFA构造模型, 由于流量中存在多种周期和一些人工操作等噪声使得此方法构建的模型很庞杂, 在检测正常流量时会出现较高误报率。2-DFA方法使用两个DFA串联的方式减小了模型规模, 误报率有所降低。MMTM方法使用树结构来构造模型并使用剪枝的方法去除噪声, 一定程度上降低了误报率。但是上面3种方法都没有考虑多周期混合流量的情况, 采用将所有多周期混合流量构建在一个模型中, 使得不同周期的流量相互成为彼此的噪声, 增加了模型误报率。相比之下, DTMC方法和FMM方法采用先分离多周期混合流量再对分离后的多个子周期分别建模的方式来构建异常检测模型。但是DTMC方法会将完整的长周期模式分离为多个子周期模式, 影响模型对复杂语义攻击的检测。本文提出的FMM方法先将混合周期模式进行分离, 再根据子周期相关性进行融合来还原完整的长周期模式, 所构建的模型最接近理想模型。

图12 各方法在原始数据集中的建模误报率

Figure 12 Modeling false alarm rate of each method in the original data set

6.3.2 异常流量检测

使用训练得到的模型依次检测以上5 种合成的攻击数据集, 将检测结果与本文提出的FMM 进行对比, 其结果如表3所示。由表3可知, 本文所提的FMM方法与DFA方法、2-DFA方法、MMTM方法和DTMC方法相比具有更完整的检测能力。这5种方法都是基于对正常流量构建行为模型来检测异常攻击, 因此在非语义攻击检测方面检测能力相同, 但是在语义攻击检测方面差异很大。首先, 由于5种方法都包含状态转移的合法性判断, 所以都能检测出次序攻击引起的状态转移异常。然后, 由于DFA方法、2-DFA方法和DTMC方法没有在模型中加入时间间隔信息, 因此无法检测时序攻击。其次, 因为2-DFA方法和DTMC方法会将完整的长周期模式分离为多个子周期模式, 使得模型无法检测分支节点攻击。最后, 5种方法中只有DTMC方法和FMM方法对多周期混合流量进行周期分离, 但是DTMC方法会将完整的长周期模式分离为多个子周期模式且DTMC方法没有加入时间间隔信息, 使得模型无法检测子周期重放攻击。由上述分析可知, FMM方法对多周期混合流量进行了周期分离且对子周期进行再次融合防止完整的长周期模式被错误分离, 并在模型中加入时间间隔信息, 与其他4种方法相比FMM方法能检测更加复杂的语义攻击。

表3 各方法攻击检测结果对比

图13展示了各方法针对不同类型攻击的检测结果。子图(a)为非语义攻击中各方法检测结果, MMTM方法和DTMC方法误报率较低。分析可知DFA方法、2-DFA方法和MMTM方法没有对多周期混合流量进行分离使得各子周期流量互为噪声提高了模型误报率。由于五种方法都是基于正常流量构建行为模型, 所以在检测未知流量时, 漏报率都接近0。子图(b)为次序攻击中各方法检测结果, 由于DFA在复杂周期流量中检测到次序攻击时状态转移可能发生错误转移造成较高的误报率, DTMC方法将复杂周期分离为多个子周期间接降低了周期复杂度, 所以DTMC方法误报率最低, 但是FMM方法的漏报率最低。子图(c)为时序攻击的检测结果, FMM方法在误报率和漏报率方面都低于MMTM方法。MMTM和FMM方法都在模型中加入时间间隔来检测时序攻击, 但是由于MMTM方法没有将复杂周期流量进行分离, 所以误报率较高。子图(d)为分支节点攻击检测结果, 相比其他两种方法, FMM方法的误报率和漏报率更低。子图(e)为子周期重放攻击的检测结果, FMM方法漏报率低, 但是误报率偏高。综上可知, FMM方法在可以检测更多类型的攻击, 且在多数情况下都有较低的误报率和漏报率。

图13 各方法针对不同类型攻击的检测结果对比

Figure 13 Comparison of detection results of various methods for different types of attacks

图14 不同时间阈值下误报率和漏报率

7 结语

本文针对SCADA系统多周期混合流量面临的语义攻击问题, 充分利用工业流量高周期性和高相关性的特点, 提出基于融合马尔科夫模型的异常检测方法。该方法首先深度解析报文语义并将原始流量序列映射为hash字符串序列, 然后根据字符串序列间的相关性生成状态转移图。接下来, 根据状态转移图间各状态的出入关系和频率将子周期符号进行分类并依次构建DFA模型。为了检测更多语义攻击, 该方法根据子周期间的出入关系和模型误报率将错误分解的长周期模式进行融合并在每个DFA模型的节点中加入时间间隔信息。实验结果表明, 该方法相比于现有的异常检测方法可以检测更多类型的语义攻击并且检测模型的误报率和漏报率更低。

[1] Falliere N, Murchu L O, Chien E. W32. stuxnet dossier[J]., 2011, 5(6): 29.

[2] Masood R, Um-e-Ghazia, Anwar Z. SWAM: Stuxnet Worm Analysis in Metasploit[C]., 2011: 142-147.

[3] Milenkovic N, Damjanovic M, Ristic M. Study of Heavy Metal Pollution in Sediments from the Iron Gate (Danube River), Serbia and Montenegro[J]., 2005, 14(6).

[4] Khan R, Maynard P, McLaughlin K, et al. Threat Analysis of BlackEnergy Malware for Synchrophasor Based Real-Time Control and Monitoring in Smart Grid[C]., 2016: 53-63.

[5] Garcia L A, Brasser F, Cintuglu M H, et al. Hey, my Malware Knows Physics! Attacking PLCS with Physical Model Aware Rootkit[C]., 2017.

[6] Spenneberg R, Brüggemann M, Schwartke H. Plc-blaster: A worm living solely in the plc[J]., 2016, 16: 1-16.

[7] Nelson N. The Impact of Dragonfly Malware on Industrial Control Systems [J]., 2016.

[8] Hadeli H, Schierholz R, Braendle M, et al. Leveraging Determinism in Industrial Control Systems for Advanced Anomaly Detection and Reliable Security Configuration[C]., 2009: 1-8.

[9] Kwon Y, Kim H K, Lim Y H, et al. A Behavior-Based Intrusion Detection Technique for Smart Grid Infrastructure[C]., 2015: 1-6.

[10] Barbosa R R R, Pras A. Intrusion Detection in SCADA Networks[M]. Mechanisms for Autonomous Management of Networks and Services. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010: 163-166.

[11] Barbosa R R R, Sadre R, Pras A. Difficulties in Modeling SCADA Traffic: A Comparative Analysis[C]., 2012: 126-135.

[12] Song Z W, Liu Z H. Abnormal Detection Method of Industrial Control System Based on Behavior Model[J]., 2019, 84: 166-178.

[13] Kalech M. Cyber-Attack Detection in SCADA Systems Using Temporal Pattern Recognition Techniques[J]., 2019, 84: 225-238.

[14] Song Z W, Zhou R K, Lai Y X, et al. Anomaly Detection Method of ICS Based on Behavior Model[J]., 2018, 45(1): 233-239.

(宋站威, 周睿康, 赖英旭, 等. 基于行为模型的工控异常检测方法研究[J]., 2018, 45(1): 233-239.)

[15] Shi L Y, Zhu H Q, Liu Y H, et al. Intrusion Detection of Industrial Control System Based on Correlation Information Entropy and CNN-BiLSTM[J]., 2019, 56(11): 2330-2338.

(石乐义, 朱红强, 刘祎豪, 等. 基于相关信息熵和CNN-BiLSTM的工业控制系统入侵检测[J]., 2019, 56(11): 2330-2338.)

[16] Zhang Y S, Li X W, Li D, et al. Abnormal Flow Monitoring of Industrial Control Network Based on Convolutional Neural Network[J]., 2019, 39(5): 1512-1517.

(张艳升, 李喜旺, 李丹, 等. 基于卷积神经网络的工控网络异常流量检测[J]., 2019, 39(5): 1512-1517.)

[17] Goldenberg N, Wool A. Accurate Modeling of Modbus/TCP for Intrusion Detection in SCADA Systems[J]., 2013, 6(2): 63-75.

[18] Kleinmann A, Wool A. Accurate Modeling of the Siemens S7 SCADA Protocol for Intrusion Detection and Digital Forensics[J].,, 2014, 9(2):37-50.

[19] Yoon M K, Ciocarlie G. Communication Pattern Monitoring: Improving the Utility of Anomaly Detection for Industrial Control Systems[C]., 2014.

[20] Yang A, Hu Y, Zhou L, et al. An Industrial Control System Anomaly Detection Algorithm Fusion by Information Flow and State Flow[J]., 2018, 55(11): 2532-2542.

(杨安, 胡堰, 周亮, 等. 基于信息流和状态流融合的工控系统异常检测算法[J]., 2018, 55(11): 2532-2542.)

[21] Yang A, Sun L M, Shi Z Q, et al. SBSD: Detecting the Sequence Attack through Sensor Data in ICSs[C]., 2018: 1-7.

[22] Zhang R B, Wu P, Lu Y, et al. Anomaly Detection Algorithm in ICS Based on Mixed-Order Markov Tree Model[J]., 2020, 46(1): 127-141.

(张仁斌, 吴佩, 陆阳, 等. 基于混合马尔科夫树模型的ICS异常检测算法[J]., 2020, 46(1): 127-141.)

[23] Kleinmann A, Wool A. Automatic Construction of Statechart-Based Anomaly Detection Models for Multi-Threaded Industrial Control Systems[J]., 2017, 8(4): 1-21.

[24] Barbosa R R R, Sadre R, Pras A. Exploiting Traffic Periodicity in Industrial Control Networks[J]., 2016, 13: 52-62.

[25] Caselli M, Zambon E, Kargl F. Sequence-Aware Intrusion Detection in Industrial Control Systems[C]., 2015: 13-24.

[26] Fovino I N, Carcano A, de Lacheze Murel T, et al. Modbus/DNP3 State-Based Intrusion Detection System[C]., 2010: 729-736.

[27] Ellis J, Fisher D, Longstaff T, et al. Report to the President's Commission on Critical Infrastructure Protection[R]. Defense Technical Information Center, 1997: 19-20.

Industrial Control Flow Anomaly Detection Method Based on Fusion Markov Model

MA Biao1, HU Mengna1, ZHANG Zhonghao1, ZHOU Zhengyin1, JIA Juncheng1, YANG Rongju2

1School of Computer Science and Technology, Soochow University, Suzhou 215006, China2Siemens, Ltd., Beijing 100102, China

Although the Industrial Internet has injected new vitality into modern industries and greatly improved the efficiency of industrial production, networking has also brought more threats to industrial control systems. In recent years, there have been many industrial control intrusion incidents at home and abroad, which have seriously affected the safety of industrial production, and the problem of industrial control security has become more and more prominent. In order to ensure the stable development of modern industry towards digitalization and automation, effective intrusion detection methods for industrial control systems have become the focus of research. Aiming at the situation that the existing methods in the industrial control system cannot effectively separate the multi-period mixed traffic, and it is difficult to detect and defend against more complex semantic attacks, making full use of the characteristics of high periodicity and high correlation of industrial traffic, this paper proposes a new method based on Anomaly detection method of industrial control network traffic by integrating Markov model. Firstly, the semantics of the packets are deeply analyzed and the original traffic sequence is mapped to the hash string sequence, and then the state transition diagram is generated according to the correlation between the string sequences. Next, according to the in-out relationship and frequency of each state in the state transition diagram, the sub-period symbols are classified and the DFA model is constructed in turn. In order to detect more semantic attacks, the method fuses the long-period patterns that are wrongly decomposed according to the in-out relationship between subperiods and the model false positive rate, and adds time interval information to the nodes of each DFA model.The experiment was carried out on a real SCADA test platform. The results show that this method can detect more types of attacks and has a higher detection rate for complex semantic attacks.

Industrial Control System(ICS), netflow, anomaly detection, semantic attacks

TP39

10.19363/J.cnki.cn10-1380/tn.2022.05.02

贾俊铖, 博士, 副教授, Email:jiajuncheng@suda.edu.cn。

本课题得到中国博士后科学基金资助及项目(No. 2017M611905)、苏州市产业技术创新专项(民生科技)项目(No. SS201701)、江苏高校优势学科建设工程资助项目(PAPD)资助。

2021-03-06;

2021-06-29;

2022-03-15

马标 于2018年在金陵科技学院获得本科学位。现在苏州大学软件工程专业攻读硕士学位。研究领域为工控安全,数据分析。Email:20185227071@stu.suda.edu.cn

胡梦娜 于2019年在湖北工业大学计算机科学与技术专业获得本科学位。现在苏州大学计算机技术专业攻读硕士学位。研究领域为深度学习、异常检测。研究兴趣包括:深度学习、网络流量。Email:20195227019@stu.suda.edu.cn

张重豪 现在苏州大学软件工程专业攻读本科学位。研究领域为深度学习、异常检测。研究兴趣包括:深度学习、数据分析。Email:1819284722@qq.com

周正寅 于2020年在浙江工业大学网络工程专业获得学士学位。现在苏州大学计算机技术专业攻读硕士学位。研究领域为计算机网络。研究兴趣包括深度学习和网络安全。Email:zhou_zhengyin@163.com

贾俊铖 于2009年在香港科技大学计算机科学专业获得博士学位。现任苏州大学计算机科学与技术学院副教授。研究领域为工业互联网、物联网。研究兴趣包括:工业流量分析、异常检测。Email:jiajuncheng@suda.edu.cn

杨荣举 于2002年在华中科技大学通信工程专业获得硕士学位。现任西门子(中国)有限公司工业信息安全实验室经理,研究领域为工业信息安全。研究兴趣包括:工业网络流量异常检测,安全大数据分析等。Email:rongju.yang@siemens.com

猜你喜欢

工控报文语义
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
真实场景水下语义分割方法及数据集
工控编程编译工具应用现状分析及展望
工控系统脆弱性分析研究
浅析反驳类报文要点
一种基于FPGA的网络串口管理系统的设计
“吃+NP”的语义生成机制研究
汉语依凭介词的语义范畴