CN110376957B - 一种基于安全规约自动构建的plc安全事件取证方法 - Google Patents
一种基于安全规约自动构建的plc安全事件取证方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/058—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/14—Plc safety
- G05B2219/14006—Safety, monitoring in general
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于网络安全技术领域,具体涉及一种PLC安全事件取证方法。该包括:状态变量的自动获取及安全规约的构建步骤;按照时间窗口从PLC状态运行信息中挖掘状态冲突规则与时序规则的步骤;将所述的状态冲突规则与时序规则与所述的安全规约进行对比,发现与安全规约不一致的规则的步骤;将PLC网络通信记录数据与PLC运行状态数据进行关联分析的步骤;根据所述的关联分析,推理出引发PLC冲突规则或时序规则发生变化的相关PLC操作的步骤。本发明的基于安全规约自动构建的PLC安全事件取证方法。通过对PLC控制逻辑程序AWL文件的分析,自动构建安全规约,并将其与PLC运行状态数据中挖掘的安全规则进行一致性匹配,进一步重构PLC安全事件,完成取证。
Description
技术领域
本发明属于网络安全技术领域,具体涉及一种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文件
“指令表”一列是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的开始计时时间。
该规则意味着,当输出变量具有相同的“与”条件时,可将相同“与”条件约化,然后再计算两个输出变量之间的时序冲突规约。
基于以上规则,首先对定时器和输出变量执行语句进行规约,然后分别构建状态冲突规约和时序冲突规约。
二、从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安全事件的证据的步骤。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644322B2 (en) * | 2006-11-21 | 2010-01-05 | Atmel Corporation | Hardware flow control monitor |
US7882542B2 (en) * | 2007-04-02 | 2011-02-01 | Microsoft Corporation | Detecting compromised computers by correlating reputation data with web access logs |
CN101958897B (zh) * | 2010-09-27 | 2013-10-09 | 北京系统工程研究所 | 一种安全事件关联分析方法及系统 |
CN103051707A (zh) * | 2012-12-20 | 2013-04-17 | 浪潮集团有限公司 | 一种基于动态用户行为的云取证方法及系统 |
CN103699954A (zh) * | 2013-11-08 | 2014-04-02 | 北京嘉德宝业科技发展有限公司 | 取证信息管理系统 |
WO2018217191A1 (en) * | 2017-05-24 | 2018-11-29 | Siemens Aktiengesellschaft | Collection of plc indicators of compromise and forensic data |
CN107231365B (zh) * | 2017-06-13 | 2020-08-04 | 深信服科技股份有限公司 | 一种取证的方法及服务器以及防火墙 |
CN109144023A (zh) * | 2017-06-27 | 2019-01-04 | 西门子(中国)有限公司 | 一种工业控制系统的安全检测方法和设备 |
CN107612733A (zh) * | 2017-09-19 | 2018-01-19 | 杭州安恒信息技术有限公司 | 一种基于工控系统的网络审计和监测方法及其系统 |
-
2019
- 2019-07-04 CN CN201910598862.1A patent/CN110376957B/zh active Active
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 | |
JP6827266B2 (ja) | 検知プログラム、検知方法および検知装置 | |
CN113132392B (zh) | 工控网络流量异常检测方法、装置及系统 | |
CN114338746A (zh) | 一种用于物联网设备数据收集的分析预警方法及系统 | |
CN116975938B (zh) | 一种产品制造过程中的传感器数据处理方法 | |
CN117235745B (zh) | 基于深度学习工控漏洞挖掘方法、系统、设备和存储介质 | |
Maier | Identification of timed behavior models for diagnosis in production systems. | |
TW202336549A (zh) | 檢測網路中基礎設施設備產生的時間序列數據異常的方法 | |
CN112738003B (zh) | 恶意地址管理方法和装置 | |
Muhati et al. | Asynchronous advantage actor-critic (a3c) learning for cognitive network security | |
CN114430331A (zh) | 一种基于知识图谱的网络安全态势感知方法及系统 | |
Furelos-Blanco et al. | Hierarchies of reward machines | |
CN109412939B (zh) | 记录工业网络通信周期过程数据的通信网关和工作方法 | |
CN107659560A (zh) | 一种用于海量网络数据流日志处理的异常审计方法 | |
CN113812116A (zh) | 网络行为模型构建方法、装置和计算机可读介质 | |
US20210075812A1 (en) | A system and a method for sequential anomaly revealing in a computer network | |
CN117014212A (zh) | 一种加密系统安全测试系统、方法及装置 | |
CN102982282A (zh) | 程序漏洞的检测系统和方法 | |
CN114063606B (zh) | Plc协议模糊测试方法及装置、电子设备、存储介质 | |
WO2024035405A1 (en) | Interpreting and categorizing traffic on industrial control networks | |
Whalen et al. | Hidden markov models for automated protocol learning | |
CN112261010B (zh) | 一种特种设备多协议转换系统、终端及可读存储介质 | |
Myers | Detecting cyber attacks on industrial control systems using process mining | |
CN111582343B (zh) | 一种设备故障预测的方法及装置 |
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 |