更全的杂志信息网

基于信息量的工控网络异常检测技术

更新时间:2009-03-28

0 引 言

工业控制系统当中存在很多通讯协议,其中大多数为私有协议,而学术界大部分以研究开源的modbus为多,通过modbus协议建立了很多关于工业控制系统当中对网络流量进行探测的模型和结论,西门子公司的S7协议虽然是私有协议,协议格式并没有正式公布,但网络上已经存在相当多的对S7协议的分析,因此,针对S7协议进行数据建模,建立一个针对异常流量的入侵检测系统成为了可能。

工业控制系统当中的入侵检测技术可以借鉴于传统IT的理论成果,工业控制系统的入侵检测技术主要有以下几种方式,一种是基于流量统计的方法[1,2],一种是基于机器学习[3-5],最后一种就是基于知识的规则分析与场景建模的方法,由于使用了工控系统的先验知识,因此针对工业网络具有针对性。Krueger等[6]提出了一种协议分析和自动机分析的方法,通过针对二进制协议的n-grams协议数据分类,将数据包数据每n个字节作为一个特征来分析协议之间的相似程度,并将它们聚合到一个事件当中,然后使用马尔可夫链来聚类相似的事件,并归纳网络通信的通信规则。Goldenberg等[7]和Wool等[7-10]通过对modbus和S7协议的分析,使用一种确定性有限自动机(DFA)来对实际的工控网络流量进行建模,但是在实际的工控网络环境当中,由于物理因素等影响,网络中偶尔产生一些延迟等数据包的情况,这种模型虽然针对其它传统的异常检测模型具有很低的false positive,但是还是具有一些不可避免的误报等情况的产生。Yoon等[11]同样深入的分析了modbus协议,其构建的模型是基于动态贝叶斯网络和概率前缀树,当一个数据包到达,通过匹配该数据包的前缀序列获取该数据包出现的几率,从本质上说,也可以视为一个马尔可夫链,只不过考虑的并不仅仅是前一个状态。

本文通过实现一个基于信息量的双层确定性有限自动机模型,来检测网络当中的数据,不仅具有false positive低的特点,而且还可以通过第二层内存状态机来更好的减少false positive,同时对于常规的转移概率大小,转而注重于信息量的增益,能够更智能的训练数据模型,信息量还可以在检测阶段放大和缩小数据产生的异常报警的重要程度,提高了告警的质量。

1 工控异常检测模型

工控异常检测模型是指在工业场景下,针对工业控制系统当中的数据流量进行分析处理的工作流程与方法,检测模型需要对工控场景下的正常通信行为进行模型提取,通过该模型对工控当中的异常行为进行报警,本文提出一种基于信息量的双层确定性有限自动机检测模型,不仅从S7工控协议有效负载方面对异常行为进行检测,同时监控网络当中的数据对PLC内存区域的操作,最后通过信息量等参数加权告警等级。工控异常检测模型流程如图1所示。

  

图1 异常检测模型流程

传统的检测模型,都是通过状态之间的转移概率的高低,或者是出现与否,来检测网络当中的异常数据包。本文描述的检测模型在此基础之上提出了信息量的概念,将状态转移概率转换为信息量增益的方式,不仅可以优化状态,而且可以根据数据包在每天各个时间段出现的概率,同样一个状态在不同的时间段具有不同的信息量,更加的灵活与智能。同时当检测到异常行为的时候,可以针对该行为所携带的信息量,来判断该异常行为的重要程度(例如:当一个异常行为是同步数据的时候,减少该异常行为的威胁指数,当一个异常行为是write等更改PLC数据的数据包时,增加该异常行为的威胁指数)。

在实际的工业网络当中,工控通讯存在诸多不确定因素,因此哪怕是正常的网络通信往往包含各种环境噪声,在实际工控流量数据分析中,发现经常会有单个数据包将多个数据包的parameters字段压缩到一个数据包当中,利用上面使用的DFA算法,将parameters和data字段作为Event的特征来识别的这种建模方式,将会识别这类压缩数据包为一个未知的状态,从而产生False positive等问题。针对普通场景指纹DFA模型的敏感性和误报率高等问题,使用一种通过在普通场景指纹确定性有限自动机之下构建一层基于内存操作的确定性有限自动机,针对特定区域的内存操作建立状态转移模型,对一些由第一层判别为未知状态的数据包进行语义分析,大大减少实际使用过程当中由于一些噪声导致的误报问题,而当MDFA判断内存操作数据是未知则会出发相应的内存操作异常告警。

通过更深入的协议分析和字段特征解析,提取数据包当中对内存操作的数据特征。根据对parameter字段域的语义分析,获取数据包操作的内存区域。Parameter传输的内容大体上分为两种,一种是返回PLC系统数据信息的parameter字段(parameter header为固定字节:0x000112)。这种字段没有传输我们所关心的内存操作,因此我们专注与第二种parameter字段结构,如图3所示。

(1)未知信道,表示数据包来自一个新的IP连接;

(2)未知状态,表示数据包为场景中没有出现过的状态;

叙事语言是小说创作中相对客观的一种语言叙述。虽然它看似没有情感的参与,相对于人物语言而言,它缺少一定的主观性。但就是这样的语言,如果结合具体的语境也能使人参悟出欧·亨利运用语言的特色。例如下边这句话:

(3)未知转移,表示数据包的转移状态有误;

(4)信息量衰减,表示数据包状态转移信息量衰减过大;

(5)内存操作异常,表示数据包当中操作内存的数据首次出现。

Parameter字段定位内存的区域,字节,大小,长度等,而Data字段则存储着这些具体内存所传输的数据内容,提取并分析针对内存区域操作数据的Data字段作为该内存区域的数据特征,如图4中的标记字段所示。

实验结束可得到两个曲线,即面团发酵曲线和气体释放曲线。Hm是面团发酵曲线的最大高度,代表面团发酵过程中达到的最大高度,是酵母产气能力和面团持气能力的综合反映;h是测试结束时(对于本实验测试时间是3 h)的面团高度;(Hm-h)/Hm为发酵3 h的耐受性。H’m是气体释放曲线的最大高度,代表发酵过程中气体释放的最大速率,气体释放曲线反映发酵过程中酵母的产气能力;Total volume是整个实验过程中(3 h)的气体总释放量。

2 工控场景指纹模型

2.1 数据预处理

过滤工控网络当中其它的非工业通信数据包是对数据进行处理的第一步,以便我们后续构建的模型是基于S7通信协议,减少其它无关通信协议数据对异常检测模型的影响。实际工业控制系统网络中PLC与上位机HMI之间的通信是相对独立的,将每个PLC与上位监控设备之间的链接划分为一个单独的通信信道,将会简化每个PLC与上位机之间的通信模型,训练出更主要和更准确的通信状态。

S7通信协议在传统以太网上的应用是基于TCP协议,PLC通过建立TCP 102端口与上位机进行通信,提取网络当中102端口相关的数据包并记录源IP和目的IP,将上位机IP作为masterIP,PLC的IP作为slaveIP。经过分析工控系统网络当中通信数据,仅仅一个(masterIP,slaveIP)之间的通信环境下的TCP链接经实验数据观察并不稳定,同样一个上位机HMI设备会因为一些网络延迟等问题对同一个PLC重置多次TCP链接,因此将TCP端口作为信道的特征之一将会引起大量的false positive。所以,我们使用(masterIP,slaveIP)作为一个通信信道的唯一标识。

2.2 数据包特征提取

在针对已经获取工控协议语义知识的前提下,对协议进行充分的分析处理可以大大提高训练后的DFA模型的准确率,通过划分协议字段,提取数据包当中的有用数据特征,过滤网络当中的无用数据,能够加快模型构建速度。以下是两种本文所使用用于构建双层DFA模型的数据提取方法。

针对S7协议格式进行分析,获取每个S7通讯数据包的关键字段作为该数据包的数据特征,将这些数据包的数据特征作为一个状态的唯一标识符。在实际的特征提取实现中,每一个数据包通过数据解析返回一个message对象(即存储该数据包数据特征的数据结构),在所有的状态当中匹配和该message相对应的状态,如果不存在则根据该message对象创建相应的状态。

在我国小学语文教材中,其知识内容均较为枯燥,且部分知识较为抽象,增加了学生的理解难度,无论教师如何对其讲解,学生还是无法了解文章内涵。针对这种情况,教师就可以在教学过程中运用电教媒体设备将本来抽象难懂的文章内容变得简单易懂,同时也将教材的重点、难点都变得容易理解和掌握。运用电教媒体不仅能够有效的激发学生的感官,让学生可以有效感知文章知识内容,还能够有效提高语文教学的直观性、生动性和形象性,为解决教学难题找到重要的教学突破口。

4)田间卵果率达到1%时,喷第1次药,间隔15~20天喷1次,可选用药剂有25%灭幼脲3号1 000倍液、青虫菌6号悬浮剂1 000倍液、2.5%三氟氯氰菊酯(功夫)6 000倍液、10%氯氰菊酯(安绿宝)3 000倍液。

面对后续状态搭建的精确性,我们需要解决使用哪些数据或字段来作为IDDFA模型所使用的数据特征,通过分析S7内部协议域的含义,我们归纳总结如下字段作为模型使用的数据特征,其中Type字段标识S7数据包的类别,Parameters字段当中存储着数据包关键的PLC控制字段,Data字段表示数据包传输的PLC数据内容。具体字段在协议中的位置如图2所示。

  

图2 S7协议负载数据格式

内存操作DFA的建立流程图,类似于普通DFA模型的建立过程,只不过模型建立过程当中使用的数据之间的区别,DFA模型当中的信道划分不再是根据通讯的IP对来标识,而是通过内存操作的区域,建模过程当中所使用的数据特征替换为通过解析S7协议数据包得到的内存操作数据特征。

在与前文形成对比的同时,以“她”、“它”同音的双关渲染了一种人与胡同虽一同老去但胡同可新生人却无力扭转的厚重悲凉感,令人慨叹。

那天,一起床,头爆炸般地疼痛,恶心要呕似的,他没把这疼痛放在心上,吃完早饭去了邮局,刚把信放进邮筒眼前一黑,一股血往脑上冲,顿时,四肢无力天翻地转。第三天,头不痛精神也好,可以起床了。他对何美宁说,我不住院,你帮我把出院手续办了。

如果你喜欢读武侠小说,那你一定会有印象,在金庸、古龙等人笔下的江湖里,江湖人士武功练到一定阶段,为了突破自我,便会选择闭关修炼。张三丰就是这样悟出了太极剑和太极拳,达摩祖师也是这样悟出了大道。

  

图3 S7协议Parameters字段

习近平总书记在十九大报告中要求全党同志“弘扬忠诚老实、公道正派、实事求是、清正廉洁等价值观”,就是告诫党员干部不能投机取巧、弄虚作假。须知投机取巧只会弄巧成拙,弄虚作假终究会露出马脚,最后只能是“搬起石头砸自己的脚”。

  

图4 S7协议Data字段

2.3 状态信息量

信息量的使用是基于工业控制网络当中具有严格逻辑链接的状态大部分是同一种类别,并且由于具有严格的逻辑链接关系,所以这些状态出现的频次是处在同一个量级上的。基于信息量的DFA算法,是通过在每一个训练阶段出现的message事件具体化为一个状态,并根据先验知识赋予每一个特定类别的messages以一定的信息量,根据网络当中该message出现的频次,累加到该状态的信息总量。传统的工控网络当中的基于异常流量检测的模型往往将所有事件平等对待,只考虑上下转移的概率,这种仅仅只基于状态转移的DFA模型忽视了在工业网络当中的数据包也是具有不同重要程度的,就比如网络当中WRITE类型的针对PLC进行数据更改的数据包应该比工控网络当中很常见的心跳包要更为重要,但是这类重要的数据包往往出现的频次不够多,导致在网络当中将这些重要的状态给忽略掉,而大量的构建关于无关数据包(例:心跳包)的状态机。前一个状态信息量和后一个状态信息量之间的差值定义为信息量损失:LOSTF=QI-FI。当捕获到数据包被识别为状态Q后更新状态Q的信息量QI=IQ+QI,其中IQ为预先设置的某类S7协议数据包的基础信息量。

通过本地搭建西门子工控实验平台验证基于信息量的双层有限确定自动机的有效性,我们提供如图7所示的西门子工控实验平台的网络拓扑图。这个仿真实验平台模拟现实当中发电厂的工作模式。仿真实验平台包含如下两个层级:①现场设备层,现场设备层包含两个S7-200,和一个S7-300,S7-200控制蜂鸣器报警系统,S7-300控制发电设备向照明设备传输电量实现照明;②现场控制层,现场控制层包含3台主机,3台主机都预装了西门子的HMI软件,工程师站上加装了针对PLC进行编程的step7编程软件对下面的PLC进行编程。

  

图5 基于信息量的状态转移

message1-3代表3种功能数据包,这3种数据包是通过向一个固定的区域写入数据。通过先验知识这类数据包被赋予了更大的information,所以这些message代表的状态虽然出现次数不多,但是却具有很大的信息量,information=100。同样message4-5代表保持链接所用的心跳包,虽然出现的次数很多但是却只有少量信息量。使用普通的DFA状态机,建立的状态转移会更倾向于message_4是message_2的下一个状态(probability=70%),因此会导致构建的状态机不能准确的构建S7协议当中的主要状态。而使用信息量参数则会在模型构建时受到更少的延迟和无用数据的影响, LOSTmessage_3=message_2I-message_3I=0,LOSTmessage_4=message_2I-message_4I=90, 计算出从message_2到message_3具有更小的信息量损失。所以在上图的实例当中我们得到,message_2到message_3具有更严格的逻辑链接关系。

2.4 有限确定自动机(DFA)

在工业控制网络环境当中,网络中的数据流量具有明显而清晰的规律,每一个上位机与PLC的通信信道都可以看作是一个有限确定自动机模型的实例,因此我们可以通过一个五元组来定义一个信道的状态机模型(Q,∑,δ,I,F),Q定义了我们需要通过算法学习而来的数据状态集,∑定义了我们的观测到的数据流,δ定义了状态Q的状态转移函数,I定义了每个状态所具有的信息量参数,F定义了从Q转移到下一状态的可能性集合(也有可能在实际过程中下一个状态并不在F当中,因此我们可以认为这一个状态转换被认为是一个未知状态或未知转移)。建立状态的流程如图6所示。

  

图6 DFA模型建立流程

工控系统当中的通信数据不仅具有周期性,而且网络上的大部分功能性操作产生于某一时间段内,同一事件状态往往在每个工作周期内处于同一时间段内,针对时间因素对于模型建立的影响,通过建立状态的时间概率函数结合信息量,让DFA模型根据时间段来自适应改变信息量参数,更加智能的分析工控网络当中场景状态。对于某状态的在某时刻t的信息量IQt通过式(1),式(2)计算,其中ct0代表某状态在t0时刻发生的次数

IQt=F(t)

(1)

 

(2)

2.5 基于内存的有限确定自动机(MDFA)

在模型检测过程当中分别会将模型检测到的数据异常分为以下几类:

在单个信道当中,提取上面显示的标记字段作为S7协议负载的数据特征,对于同一个信道当中具有相同的上述数据特征的数据包表示同一个状态。

3 实验检测

我们将对上面描述的算法和模型在本地搭建一个小型的工控系统仿真环境进行实验,在训练阶段,我们通过使用一个工作周期内的正常操作数据来训练检测模型,然后在检测阶段通过实施一些常见的工控攻击来检测该模型的实际效果。

3.1 网络拓扑

为了说明信息量的作用,根据实际工业控制网络当中的数据生成一个如图5所示的状态机,information代表该状态的信息总量,counts代表这个状态出现的次数,箭头上的数字表示这个转移发生的次数。

春光这样明媚,花儿万紫千红,这一切居然无人欣赏,没人理会,她伤感了,难道自己就像无人爱惜的春天,悄悄流逝,年华虚度吗?“没乱里春情难遣,蓦地里怀人幽怨”中,杜丽娘做了个梦,在梦中她见到手持柳枝的少年书生,大胆地和他幽会了。《惊梦》之后,家教已锁不住她,她不顾母亲的教训,第二天又去后花园寻梦。

  

图7 工控仿真环境拓扑图

在工控交换机上镜像工控网络当中的数据到我们的异常流量检测服务器,在服务器上使用tcpdump等抓包工具,采集工控网络当中PLC与HMI的实时交互数据。然后通过这些数据包来构建本文所描述的基于信息量的双层DFA模型。使用训练完成的DFA模型在镜像口上实时监控工业控制系统网络当中的数据。

3.5 成本问题 由于国内目前3D打印批量生产的效率低,设备及材料成本高,导致3D打印假肢矫形器成本偏高,终端售价高,患者接受度低,因此其性价比有待进一步提高。

3.2 实验模型训练

使用我们在仿真平台上抓取的8个小时左右的正常工控网络数据,结合本文所提出的基于信息量的双层DFA模型,训练出一个描述本仿真平台正常工作情况下的场景指纹规则,图8中显示的是一个工控通信信道训练后所存储的数据规则或场景指纹。

  

图8 训练模型结果

实验表明在正常的工控网络当中,该模型可以很好地处理网络当中的数据流量而不会产生误报。我们通过一些异常操作来测试基于信息量的DFA模型检测True positive的情况。在仿真平台上通过实施以下几种异常操作来测试异常检测结果:

3.3 异常检测实验结果分析

通过实现异常检测算法,在实验阶段检测场景指纹模型和异常检测模型的实际表现,通过以下伪代码实现异常检测算法,如图9所示。

在仿真平台正常工作的情况下抓取工控网络当中的正常数据流量,测试正常流量在构建好的模型当中的告警情况可以表明该模型针对False positive的优化情况,通过两次抓取的数据集来看,误报率被减低到很小的程度。表1是针对正常测试集进行测试后获取的数据统计。

  

图9 异常检测模型伪代码

 

1 正常工业场景下数据集测试

  

测试数据集测试数据集数据包未知信道未知状态未知转移信息量衰减内存操作异常数据集一23633200000测试集二15847100000

中间人攻击,正常系统流程中当HMI修改PLC中控制电机运转的参数到达一定的阀值时,仿真平台的内置程序是通过由S7-200控制的蜂鸣报警系统来产生警告,而经过篡改PLC与HMI上位机软件之间的操作数据,当用户或者非法用户操作PLC超过阀值时,阻断了蜂鸣报警系统的告警,表面上显示依然为正常状态,从而欺骗现场操作员。

序列攻击,通过篡改正常数据包的传送次序,来达到篡改PLC及现场物理设备的工作逻辑,这种攻击因为使用的是网络当中出现过的数据包,只是顺序并不一致,导致针对单个数据包分析的入侵检测手段难以发现这类威胁。

局域网snap7连接,因为工控网络当中的PLC往往缺乏对HMI设备的检测和认证,我们通过在局域网内使用一款S7协议的通讯软件,直接对PLC进行启停操作。

非正常时间段操作,在非正常工作时间段发送一些正常工作时间段的数据包,来检测信息量具有时间敏感性。

手动操作,使用操作员站发送一些非正常数值操作。

我的微博主页几乎是全网最全抽奖锦鲤合集,老朋友纷纷问我是不是被盗号了,一位新粉丝专门留言,“特意从你这里转走,中了的话请你喝一杯奶茶”。

根据表2当中的实验结果,本文所提出的基于信息量的双层有限确定自动机算法在工控仿真实验平台上运行良好,可以准确的识别出在工控网络当中常见的网络异常,同时大幅度减少正常工作下的False positive。

 

2 攻击流量监测结果

  

测试数据集测试数据集数据包未知信道未知状态未知转移信息量衰减内存操作异常中间人攻击32750023700序列攻击47650046200snap7连接1232200000非正常时间段操作78490002340手动更改PLC数据13450230023

4 结束语

基于信息量的双层有限确定自动机,在普通的DFA模型上添加了信息量的概念,对于状态的构建更加专注和精确,通过第二层的内存操作状态机来过滤未知状态当中的False positive,减少误报率,增加入侵检测的精准程度。在检测过程中同时还会将时间因素考虑进去,针对非正常时间的正常操作也会触发相应的告警。工业控制系统如何减少先验知识的使用,通过未知协议分析,自动获取数据特征将会是更加智能化的异常检测模型的下一步研究重点。

参考文献

[1]Wei Min,Kim K.Intrusion detection scheme using traffic prediction for wireless industrial networks[J].Journal of Communications and Networks,2012,14(3):310-318.

[2]ZHANG Yungui,TONG Weiming,ZHAO Yongli.Improvement of CUSUM algorithm and its application in intrusion detection for industry control systems[J].Metallurgical Industry Automation,2014,38(5):1-5(in Chinese).[张云贵,佟为明,赵永丽.CUSUM异常检测算法改进及在工控系统入侵检测中的应用[J].冶金自动化,2014,38(5):1-5.]

[3]Anoop A,Sreeja MS.New genetic algorithm based intrusion detection system for SCADA[J].International Journal of Electronics Communication and Computer Engineering,2013,2(2):171-175.

[4]Onoda T,Kiuchi M.Analysis of intrusion detection in control system communication based on outlier detection with one-class classifiers[C]//Proc of the 19th International Conference on Neural Information Processing,2012:275-282.

[5]LI Lin,SHANG Wenli,YAO Jun,et al.Overview of one-class support vector machine in intrusion detection of industrial control system[J].Application Research of Computers,2016,33(1):7-11(in Chinese).[李琳,尚文利,姚俊,等.单类支持向量机在工业控制系统入侵检测中的应用研究综述[J].计算机应用研究,2016,33(1):7-11.]

[6]Krueger T,Gascon H,Krämer N,et al.Learning stateful models for network honeypots[C]//Proceedings of the 5th ACM workshop on Security and artificial intelligence.ACM,2012:37-48.

[7]Goldenberg N,Wool A.Accurate modeling of Modbus/TCP for intrusion detection in SCADA systems[J].International Journal of Critical Infrastructure Protection,2013,6(2):63-75.

[8]Kleinmann A,Wool A.A statechart-based anomaly detection model for multi-threaded SCADA systems[C]//International Conference on Critical Information Infrastructures Security,2015:132-144.

[9]Kleinmann A,Wool A.Automatic construction of statechart-based anomaly detection models for multi-threaded SCADA via spectral analysis[C]//Proceedings of the 2nd ACM Workshop on Cyber-Physical Systems Security and Privacy.ACM,2016:1-12.

[10]Kleinmann A,Wool A.Accurate modeling of the siemens s7 scada protocol for intrusion detection and digital forensics[J].Journal of Digital Forensics,Security and Law,2014,9(2):4.

[11]Yoon MK,Ciocarlie GF.Communication pattern monitoring:Improving the utility of anomaly detection for industrial control systems[C]//NDSS Workshop on Security of Emerging Networking Technologies,2014.

 
程相,周安民,郑荣锋,刘嘉勇
《计算机工程与设计》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号