CN110376957B - 一种基于安全规约自动构建的plc安全事件取证方法 - Google Patents

一种基于安全规约自动构建的plc安全事件取证方法 Download PDF

Info

Publication number
CN110376957B
CN110376957B CN201910598862.1A CN201910598862A CN110376957B CN 110376957 B CN110376957 B CN 110376957B CN 201910598862 A CN201910598862 A CN 201910598862A CN 110376957 B CN110376957 B CN 110376957B
Authority
CN
China
Prior art keywords
plc
rule
state
safety
conflict
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910598862.1A
Other languages
English (en)
Other versions
CN110376957A (zh
Inventor
徐丽娟
王佰玲
王连海
王巍
魏玉良
孙功亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Computer Science Center National Super Computing Center in Jinan
Harbin Institute of Technology Weihai
Original Assignee
Shandong Computer Science Center National Super Computing Center in Jinan
Harbin Institute of Technology Weihai
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Computer Science Center National Super Computing Center in Jinan, Harbin Institute of Technology Weihai filed Critical Shandong Computer Science Center National Super Computing Center in Jinan
Priority to CN201910598862.1A priority Critical patent/CN110376957B/zh
Publication of CN110376957A publication Critical patent/CN110376957A/zh
Application granted granted Critical
Publication of CN110376957B publication Critical patent/CN110376957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14006Safety, monitoring in general

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于网络安全技术领域,具体涉及一种PLC安全事件取证方法。该包括:状态变量的自动获取及安全规约的构建步骤;按照时间窗口从PLC状态运行信息中挖掘状态冲突规则与时序规则的步骤;将所述的状态冲突规则与时序规则与所述的安全规约进行对比,发现与安全规约不一致的规则的步骤;将PLC网络通信记录数据与PLC运行状态数据进行关联分析的步骤;根据所述的关联分析,推理出引发PLC冲突规则或时序规则发生变化的相关PLC操作的步骤。本发明的基于安全规约自动构建的PLC安全事件取证方法。通过对PLC控制逻辑程序AWL文件的分析,自动构建安全规约,并将其与PLC运行状态数据中挖掘的安全规则进行一致性匹配,进一步重构PLC安全事件,完成取证。

Description

一种基于安全规约自动构建的PLC安全事件取证方法
技术领域
本发明属于网络安全技术领域,具体涉及一种PLC安全事件取证方法。
背景技术
工业控制***原有相对封闭的使用环境逐渐被打破,开放性和互联性越来越强,使得工业控制***与各种业务***的协作成为可能,与此同时,工业股联网中面临的网络安全问题日益凸现,PLC作为工业控制***中的重要设备,越来越多地遭受到来自互联网的攻击,这些攻击给社会经济乃至人类生命安全造成了难以弥补的损失。针对PLC的取证技术引起了取证调查领域学者的强烈关注。目前,PLC安全事件取证可被划分为三类:通过网络通信日志获取PLC状态的取证方法、基于入侵检测***的取证方法、使用PLC内置的日志功能的取证方法。
通过网络通信日志获取PLC状态的取证方法:取证人员将一个取证代理放置在SCADA网络的关键位置,该代理负责将网络数据包发送到负责存储获取证据的设备。因此,该方法通过重构网路数据包内容来获取SCADA网络历史信息。然而,该方法从大量信息中识别出有效的安全事件存在一定困难。除此之外,还有一种方法是将一个硬件设备连接到PLC,获取PLC的数据,如内存状态、修改命令等,该设备具备超大容量的存储空间,当安全事件发生时,将该设备从PLC上取下来,分析存储在其中的数据。SSU(Shadow Security Unit)就是一个类似设备。另外,一些学者还提出了相关的PLC取证方法:如Yau通过Wireshark捕获并分析数据包实现了对西门子PLC的日志记录。Wu获取PLC内存变量,访问内存区域信息,记录内存变量的变化。然而,这种记录内存变化的方法无法捕获对PLC造成影响的外部设备ip地址。Chan将一个可执行的安全块添加到控制逻辑程序扫描循环中,该安全块负责将输入输出变量值,数据块号,***时间戳等信息通过网络发送到历史数据库中。很明显,该方法会影响PLC的工作效率,并且要求安全块开发人员对PLC的控制逻辑程序源码较为熟悉。KenYau提出了一种将机器学习算法应用于PLC取证的方法,他将控制逻辑程序中的输入输出值存储到日志文件中,然后使用决策树和支持向量机方法识别异常的PLC操作。综上,通过网络通信日志获取PLC状态的取证方法要求调查人员对物理操作过程较为熟悉,并且需要从工业控制***专家处获取输入输出变量名称等相关知识。
基于入侵检测***的取证方法:Craig Valli通过创建入侵检测***规则集实现SCADA控制***网络威胁调查取证框架,该框架对证据的收集依赖于对异常检测结果的扫描。Kleinmann开发了一种基于确定有限自动机(DFA)的入侵检测***来处理S7的网络流量。以上方法过度依赖于人工创建入侵检测规则。
用PLC内置的日志功能的取证方法:西门子PLC本身具有诊断缓冲区记录其行为及其与西门子Step-7程序的交互行为。虽然诊断缓冲区记录了时间戳、事件id、事件描述等信息,但是,这些记录信息字段依赖于工程工作者的配置,记录的内容非常有限。
发明内容
本发明的目的是为了克服现有PLC安全事件取证问题的缺点,提供一种基于安全规约自动构建的PLC安全事件取证方法。
为了实现上述目的,本发明采用的技术方案是:一种基于安全规约自动构建的PLC安全事件取证方法,包括:
状态变量的自动获取及安全规约的构建步骤;
按照时间窗口从PLC状态运行信息中挖掘状态冲突规则与时序规则的步骤;
将所述的状态冲突规则与时序规则与所述的安全规约进行对比,发现与安全规约不一致的规则的步骤;
将PLC网络通信记录数据与PLC运行状态数据进行关联分析的步骤;
根据所述的关联分析,推理出引发PLC冲突规则或时序规则发生变化的相关PLC操作的步骤。
进一步地,所述的状态变量的获取方法为:分析待取证客户提供的控制逻辑程序代码,从中抽取出与PLC相关的状态变量名称。
进一步地,所述安全规约的自动构建方法为:对所述状态变量执行语句进行规约,分别构建状态冲突规约和时序冲突规约。
作为本发明的一种优选方式,还包括过滤与安全事件无关的PLC状态信息,保存能说明PLC安全事件的证据的步骤。
本发明的基于安全规约自动构建的PLC安全事件取证方法,通过对PLC控制逻辑程序AWL文件的分析,自动构建安全规约,并将其与PLC运行状态数据中挖掘的安全规则进行一致性匹配,进一步重构PLC安全事件,从而完成PLC安全事件的取证。
本发明的基于安全规约自动构建的PLC安全事件取证方法,通过对状态变量的自动识别和安全约束的自动构建,降低了对人工干预的要求,事件分析结果更为可靠。无需逐条检测循环扫描获取的具体PLC状态信息是否满足安全规约规则,可减少计算量,提高事件分析效率。本发明通过截获网络流量和读取PLC状态数据的相结合的方法实现安全事件取证,无需暂停PLC的运行或更改PLC的工作模式,因此本发明的取证方法更为稳定。
附图说明
图1是本发明的基于安全规约自动构建的PLC安全事件取证方法流程图;
图2是S7-COMM协议数据包封装格式示意图;
图3是输入变量关联示意图;
图4是输出变量关联示意图。
具体实施方式
下面结合附图和实施例对本发明的基于安全规约自动构建的PLC安全事件取证方法。
本发明的基于安全规约自动构建的PLC安全事件取证方法,流程如图1所示,以西门子系列PLC为例,具体包括以下步骤:
一、首先从待取证客户处获取PLC控制逻辑程序的AWL文件,从中获取输入变量与输出变量,并自动构建出安全规约。
西门子系列PLC控制逻辑程序示例的AWL文件内容,及从中规约输出变量执行的结果。
表1西门子系列PLC控制逻辑程序示例的AWL文件
Figure BDA0002118533380000031
Figure BDA0002118533380000041
“指令表”一列是AWL文件内容,指令“A”代表“与”操作,指令“AN”代表非操作,指令“=”代表赋值操作等。“语句”一列是对AWL相应指令的规约语句。
在程序中,以八元组的形式定义定时器,Timeri={Sc,Rc,Bt,Dt,Tint,Fint,Tval,Fval},Sc为使定时器开始计时的使能条件;Rc为使定时器复位输入条件;Bt为使能条件满足,复位条件不满足时,定时器开始计时时间;Dt为计时持续时间;Tint为时钟输出为True时的当前时间;Fint为时钟输出为False时的当前时间;Tval为时钟值为True时的逻辑表达式;Fval为时钟值为False时的逻辑表达式。例如T5的定义如下:
T5={T4,NULL,TBeg5,30000,
T←et>=TBeg5+30000,
F←et<TBeg5+30000&et>TBeg5}
T5.Tval=T4&et>TBeg5+30000
T5.Fval=T4&et<TBeg5+30000&et>TBeg5。
安全规约包括:变量阈值、状态冲突规约、时序规约。变量阈值是指输入\输出变量、定时器等设置的初始值;状态冲突规约是指输出变量之间存在的不可同时为True的约束;时序冲突规约是指输出变量之间存在的相继为True的约束关系。为了从AWL文件中自动构建安全规约,设置三个规则:
规则1:如果Ti.Sc==Tj.Sc,并且Ti.Rc==Tj.Rc,则Ti.Bt==Tj.Bt
该规则意味着,如果定时器Ti与定时器Tj具有相同使能条件和复位条件,则它们的开始计时时间相同。
规则2:如果Ti.Sc==Tj.Tval,并且Tj的类型是S_ODT,则Ti.Bt==Tj.Bt+Tj.Dt;如果Ti.Sc==Tj.Tval,并且Tj的类型是S_PULSE,则Ti.Bt==Tj.Bt。其他类型定时器满足规则类似。
该规则说明,当定时器Tj的类型是接通延时定时器,并且定时器Ti的使能条件是定时器Tj输出为真,则定时器Ti的开始计时时间为定时器Tj的开始计时时间与Tj的持续时间之和;当定时器Tj的类型是脉冲定时器,并且定时器Ti的使能条件是定时器Tj输出为真,则定时器Ti的开始计时时间为定时器Tj的开始计时时间。
规则3:设输出变量
Figure BDA0002118533380000051
如果
Figure BDA0002118533380000052
则当计算Qi与Qj的时序冲突规约时,设置:
Figure BDA0002118533380000053
Figure BDA0002118533380000054
该规则意味着,当输出变量具有相同的“与”条件时,可将相同“与”条件约化,然后再计算两个输出变量之间的时序冲突规约。
基于以上规则,首先对定时器和输出变量执行语句进行规约,然后分别构建状态冲突规约和时序冲突规约。
二、从PLC运行状态数据中挖掘状态冲突规则和时序规则
(1)从PLC运行状态数据中挖掘状态冲突规则
上述状态冲突规约是输出变量两两之间的规约,因此PLC运行状态数据中,我们只需获取二项频繁模式既可。我们借助Apriori算法的思想,实现状态冲突规则的挖掘。具体原理是:使用二进制数值表示PLC每个输入/输出变量的状态,在一组状态数据中,获取两两不同的输入/输出变量的数值相同支持度,如果支持度不为0,则说明二者之间不存在状态冲突规则,反之,获取两个不同输入/输出变量之间的冲突规则。
(2)从PLC运行状态数据中挖掘时序规则
结合滑动时间窗口和时序频繁模式挖掘算法的原理,实现时序规则的挖掘。首先对数据进行预处理,使用符号代替一行状态数据中不为0的输入/输出变量值,定义一个时间窗口中的所有变量状态为一个事件T1,将时间窗口不断向后滑动,分别获取事件:T2,T3,...,Tn,所有事件获取完毕后,建立数据集,使用PrefixSpan算法挖掘两两输入/输出变量之间的时序规则,建立时序规则库。
三、将从PLC运行状态数据中挖掘的状态冲突规则和时序规则
与构建的状态冲突规约和时序冲突规约进行对比,以发现与状态冲突规约和时序冲突规约不一致的状态冲突规则和时序规则。
四、截获与PLC相通信的链路中的网络通信数据包,并对原始数据包内容进行解析。
使用Wireshark可捕获面向PLC的网络通信数据包,以S7-COMM协议数据包为例,其封装如图2所示。由图2可见,S7Comm包封装在TCP/IP及TPKT和COTP协议包中。其中,COTP(ISO807)以及TPKT协议均为开放协议。此处我们关注的是S7PDU的“Params”字段的功能名称和“Data”字段,通过对以上两个字段的分析,可从捕获的数据包中解析出对PLC的操作类型、操作的字段和操作数据。抽取出与数据包中与“修改”、“写”PLC变量或配置操作相关的数据。
五、将网络通信记录中抽取出的日志记录与PLC循环状态信息中的字段以时间特征为关联点,对PLC的操作与PLC状态改变信息进行关联分析。
如图3、4所示的日志记录信息与PLC运行状态数据关联方法。日志记录信息包括:IP地址、时间戳、操作、变量、值等字段;PLC运行状态数据包括:时间、数入变量1、输入变量2、...、输入变量m、输出变量1、...、输出变量n。当存在对PLC输入变量的修改时,可将日志记录信息中的时间戳字段与PLC运行状态数据中的时间字段、输入变量字段相匹配;当存在对PLC输出变量的修改时,可将日志记录信息中的时间戳字段与PLC运行状态数据中的时间字段、输出变量字段相匹配;从而进一步关联出引发状态异常的ip地址、时间、操作、变量、值等信息。
六、根据关联分析获取的PLC操作变化,进一步判断引起PLC状态异常的原因,推理出引发PLC冲突规则或时序规则发生变化的相关PLC操作。
七、将与状态异常无关的PLC运行状态数据及网络通信数据等原始数据过滤掉,只保存能说明PLC安全事件的证据,完成取证。

Claims (2)

1.一种基于安全规约自动构建的PLC安全事件取证方法,其特征在于,包括:
状态变量的自动获取及安全规约的构建步骤;
按照时间窗口从PLC状态运行信息中挖掘状态冲突规则与时序规则的步骤;
将所述的状态冲突规则与时序规则与所述的安全规约进行对比,发现与安全规约不一致的规则的步骤;
将PLC网络通信记录数据与PLC运行状态数据进行关联分析的步骤;
根据所述的关联分析,推理出引发PLC冲突规则或时序规则发生变化的相关PLC操作的步骤;
所述状态变量的获取方法为:分析待取证客户提供的控制逻辑程序代码,从中抽取出与PLC相关的状态变量名称;
所述安全规约的自动构建方法为:对所述状态变量执行语句进行规约,分别构建状态冲突规约和时序冲突规约。
2.根据权利要求1所述的基于安全规约自动构建的PLC安全事件取证方法,其特征在于,还包括过滤与安全事件无关的PLC状态信息,保存能说明PLC安全事件的证据的步骤。
CN201910598862.1A 2019-07-04 2019-07-04 一种基于安全规约自动构建的plc安全事件取证方法 Active CN110376957B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910598862.1A CN110376957B (zh) 2019-07-04 2019-07-04 一种基于安全规约自动构建的plc安全事件取证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910598862.1A CN110376957B (zh) 2019-07-04 2019-07-04 一种基于安全规约自动构建的plc安全事件取证方法

Publications (2)

Publication Number Publication Date
CN110376957A CN110376957A (zh) 2019-10-25
CN110376957B true CN110376957B (zh) 2020-09-25

Family

ID=68251969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910598862.1A Active CN110376957B (zh) 2019-07-04 2019-07-04 一种基于安全规约自动构建的plc安全事件取证方法

Country Status (1)

Country Link
CN (1) CN110376957B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427305B (zh) * 2020-03-29 2021-09-24 博智安全科技股份有限公司 针对西门子plc漏洞挖掘的方法
CN113568903A (zh) * 2021-06-25 2021-10-29 邯郸钢铁集团有限责任公司 一种实时plc变量抽取应用方法
CN114355853B (zh) * 2021-12-30 2023-09-19 绿盟科技集团股份有限公司 一种工控数据取证方法、装置、电子设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644322B2 (en) * 2006-11-21 2010-01-05 Atmel Corporation Hardware flow control monitor
US8424094B2 (en) * 2007-04-02 2013-04-16 Microsoft Corporation Automated collection of forensic evidence associated with a network security incident
CN101958897B (zh) * 2010-09-27 2013-10-09 北京***工程研究所 一种安全事件关联分析方法及***
CN103051707A (zh) * 2012-12-20 2013-04-17 浪潮集团有限公司 一种基于动态用户行为的云取证方法及***
CN103699954A (zh) * 2013-11-08 2014-04-02 北京嘉德宝业科技发展有限公司 取证信息管理***
CN110678864A (zh) * 2017-05-24 2020-01-10 西门子股份公司 危害和取证数据的plc指标的收集
CN107231365B (zh) * 2017-06-13 2020-08-04 深信服科技股份有限公司 一种取证的方法及服务器以及防火墙
CN109144023A (zh) * 2017-06-27 2019-01-04 西门子(中国)有限公司 一种工业控制***的安全检测方法和设备
CN107612733A (zh) * 2017-09-19 2018-01-19 杭州安恒信息技术有限公司 一种基于工控***的网络审计和监测方法及其***

Also Published As

Publication number Publication date
CN110376957A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN110376957B (zh) 一种基于安全规约自动构建的plc安全事件取证方法
Myers et al. Anomaly detection for industrial control systems using process mining
Anton et al. Anomaly-based intrusion detection in industrial data with SVM and random forests
EP2924579A1 (en) Event correlation
EP3049929A1 (en) Efficient event filter
CN113132392B (zh) 工控网络流量异常检测方法、装置及***
Maier Identification of timed behavior models for diagnosis in production systems.
CN114430331A (zh) 一种基于知识图谱的网络安全态势感知方法及***
CN109412939B (zh) 记录工业网络通信周期过程数据的通信网关和工作方法
Iegorov et al. Mining task precedence graphs from real-time embedded system traces
CN107659560A (zh) 一种用于海量网络数据流日志处理的异常审计方法
CN117235745B (zh) 基于深度学习工控漏洞挖掘方法、***、设备和存储介质
CN116975938B (zh) 一种产品制造过程中的传感器数据处理方法
CN113812116A (zh) 网络行为模型构建方法、装置和计算机可读介质
US20210075812A1 (en) A system and a method for sequential anomaly revealing in a computer network
CN117134938A (zh) Goose数据的入侵检测方法、装置和入侵检测***
CN102982282A (zh) 程序漏洞的检测***和方法
CN114063606B (zh) Plc协议模糊测试方法及装置、电子设备、存储介质
CN112261010B (zh) 一种特种设备多协议转换***、终端及可读存储介质
CN111582343B (zh) 一种设备故障预测的方法及装置
Yau et al. Detecting anomalous programmable logic controller events using process mining
Sasi et al. R0fuzz: A Collaborative Fuzzer for ICS Protocols
Myers Detecting cyber attacks on industrial control systems using process mining
Khokhlov et al. Machine learning in anomaly detection: Example of colluded applications attack in android devices
Fullop et al. Real time analysis and event prediction engine

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant