CN106647612A - 一种基于状态关系图的plc漏洞挖掘方法 - Google Patents
一种基于状态关系图的plc漏洞挖掘方法 Download PDFInfo
- Publication number
- CN106647612A CN106647612A CN201710087439.6A CN201710087439A CN106647612A CN 106647612 A CN106647612 A CN 106647612A CN 201710087439 A CN201710087439 A CN 201710087439A CN 106647612 A CN106647612 A CN 106647612A
- Authority
- CN
- China
- Prior art keywords
- plc
- state
- data
- input
- output
- 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.)
- Pending
Links
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/054—Input/output
-
- 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/11—Plc I-O input output
- G05B2219/1171—Detect only input variation, changing, transition state of variable
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
本发明公开了一种基于状态关系图的PLC漏洞挖掘方法,它属于工业控制***安全领域。该方法提供一种基于状态关系图的PLC漏洞挖掘方法。该方法的基本原理是根据PLC的运行过程,首先在正常状态下产生输入状态图和输出状态图,然后在对数据输入、程序处理、数据输出过程注入攻击数据,通过对比状态图的差异,判断PLC是否存在安全漏洞。本发明主要包括状态关系图生成模块、坏数据注入攻击模块、PLC漏洞判断模块。由于本方法是采用PLC运行正常环境下的状态图,通过数据注入攻击,触发PLC状态异常,这样的异常不一定导致PLC停机的严重事故,但是轻微的状态变化就可以发现PLC存在可疑漏洞,在方法上优于模糊测试。本方法可以在PLC正常运行状态下进行漏洞测试,从真实的工业控制***中发现疑似漏洞,在实用性上优于离线的PLC漏洞测试方法。
Description
技术领域
本发明涉及漏洞自动挖掘领域,尤其涉及一种基于状态关系图的PLC漏洞挖掘方法。
背景技术
PLC漏洞挖掘是当前工业控制***安全的一个非常重要的关键技术,PLC作为工业控制***的重要组成部分之一,其安全性也是如今关注的焦点。在近几年对工控***的评估研究中,发现PLC***存在着不少安全隐患,如西门子PLC及监控软件APOGEE Insight存在“劫持漏洞”;施耐德电气公司所发布的莫迪康(Modicon)M340可编程逻辑控制器(PLC)存在高严重性缓冲区溢出漏洞;三菱FX3G PLC存在拒绝服务漏洞,允许攻击者利用该漏洞通过发送特殊数据包使PLC重启等。所以对PLC***的漏洞挖掘是当下研究的重点。
PLC(可编程逻辑控制器)是一种采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。其工作原理是通过反复执行用户程序来实现控制功能,采用循环扫描的工作方式,***周而复始的以一定的顺序完成一系列的具体工作,这些工作包括内部处理、通信处理、输入处理、程序执行、输出处理这五个阶段。PLC每进行一次扫描循环所用的时间为扫描周期。PLC分为运行(RUN)和停止(STOP)两种工作状态,当处于运行状态时,上述扫描周期不断循环;当处于停止状态时,只完成内部处理和通信服务工作。
当前对工控***的漏洞挖掘主要基于模糊测试技术,模糊测试是一种通过向目标***提供非预期的输入并监视异常结果来发现软件漏洞的方法。其主要是利用SPIKE、Peach、Sulley、Dfuz和Bunny等工具进行模糊测试。当前对PLC漏洞挖掘技术有基于软硬件编程数据的工业控制***的漏洞挖掘方法,但是当前PLC挖掘的模糊测试效率还比较低,产生的畸形数据导致PLC异常的漏洞挖掘方法不适用于运行状态下PLC漏洞监测。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于状态关系图的PLC漏洞挖掘方法。该方法的基本原理是根据PLC的运行过程,首先在正常状态下生产输入状态图和输出状态图,然后在对数据输入、程序处理、数据输出过程注入攻击数据,通过对比状态图的差异,判断PLC是否存在安全漏洞。
本发明为克服现有技术的不足采取以下技术方案实现:
本发明公布了一种基于状态关系图的PLC漏洞挖掘方法,该方法主要利用采集某时刻输入映像区和输出锁存区的数据,生成状态,研究输入状态与输出状态之间的逻辑关系,以此得出逻辑状态关系图,由此图来判断PLC中是否存在坏数据注入攻击,以及是在PLC工作过程中的哪一部分区域存在何种坏数据注入攻击。
这种方法可以分为三个模块:状态关系图生成模块、坏数据注入攻击模块和PLC漏洞判断模块。
状态关系图生成模块:读取输入映像区的数据,就可以生成某时刻输入映像区的状态。与此同时,读取输出锁存区的数据,就可以生成某时刻输出锁存区的状态。然后,通过输入映像区的状态以及输出锁存区的状态之间的逻辑关系,产生出逻辑状态关系图。
坏数据注入攻击模块:在某个时钟周期内,在PLC正常运行过程中,对PLC的输入映像区和输出锁存区注入坏数据。PLC的所有输入端子的数据按顺序存入输入映像区。然后在程序处理区中,PLC根据读入的输入数据,依次执行指令中的内容,并写入映像区。当所有指令执行结束后,将输入映像区中的状态传输至输出锁存区中做最后的输出处理。在坏数据注入攻击后,会导致输入映像区、程序处理区和输出锁存区的数据产生差异,通过数据之间的逻辑关系,引发数据之间的关联故障。
PLC漏洞判断模块:通过对比正常时候产生的输入状态、输出状态的逻辑关系来判断PLC工作过程中的各区域是否存在坏数据注入攻击,其步骤如下:
步骤1:采集输入数据,采集所有输入端子的数据;
步骤2:根据所采集的输入数据,生成某时刻的输入状态图;
步骤3:采集输出数据,采集所有输出端子的数据;
步骤4:根据所采集的输出数据,生成某时刻的输出状态图;
步骤5:根据输入和输出的逻辑状态关系图判断此时刻的输入状态和输出状态是否符合逻辑关系,若符合则回到步骤1,因为PLC的工作流程是周而复始地进行,所以开始新一轮的数据采集,若不符合则继续进行PLC漏洞判断;
步骤6:输入映像区攻击判断,因为输入映像区的数据和状态是PLC直接由输入端子顺序存入,若输入端子的状态和输入映像区的状态不一致,则可以判定存在输入映像区攻击,若一致则进行步骤7,输出锁存区攻击判断;
步骤7:输出锁存区攻击判断,因为输出端子的数据和状态是由输出锁存区直接输出处理,若输出端子的状态和输出锁存区的状态不一致,则可以判定存在输出锁存区攻击,若一致则判定攻击存在于程序处理区。
本发明与现有技术相比的优点和积极效果是:
(1)本发明采用的是PLC运行正常环境下的状态图,通过数据注入攻击,触发PLC状态异常,这样的异常不一定导致PLC停机的严重事故,但是轻微的状态变化就可以发现PLC存在可疑漏洞,在方法上优于基于的畸形数据包的测试;
(2)本发明的测试方法可以在PLC正常运行状态下进行漏洞测试,从真实的工业控制***中发现疑似漏洞,在实用性上优于离线的PLC漏洞测试方法。
附图说明
图1为***结构图;PLC漏洞挖掘方法结构图;
图2为状态关系图生成模块;
图3为坏数据注入攻击模块;
图4为PLC漏洞判断流程图模块。
图1为***结构图,本发明主要包括状态关系图生成模块、坏数据注入攻击模块、PLC漏洞判断模块。通过输入输出状态的逻辑关系判断是否存在坏数据注入攻击。
图2为状态关系图生成模块,读取输入映像区数据和输出锁存区数据,分别生成某时刻的状态,通过输入状态以及输出状态之间的逻辑关系,产生逻辑状态关系图。
图3为坏数据注入攻击模块,在某个时钟周期内,在PLC正常运行过程中,对PLC的输入映像区和输出锁存区注入坏数据。PLC的所有输入端子的数据按顺序存入输入映像区。然后在程序处理区中,PLC根据读入的输入数据,依次执行指令中的内容,并写入映像区。当所有指令执行结束后,将输入映像区中的状态传输至输出锁存区中做最后的输出处理。在坏数据注入攻击后,会导致输入映像区、程序处理区和输出锁存区的数据产生差异,通过数据之间的逻辑关系,引发数据之间的关联故障。
图4为PLC漏洞判断流程图,包括以下步骤,
步骤1:采集输入数据,采集所有输入端子的数据;
步骤2:根据所采集的输入数据,生成某时刻的输入状态图;
步骤3:采集输出数据,采集所有输出端子的数据;
步骤4:根据所采集的输出数据,生成某时刻的输出状态图;
步骤5:根据输入和输出的逻辑状态关系图判断此时刻的输入状态和输出状态是否符合逻辑关系,若符合则回到步骤1,因为PLC的工作流程是周而复始地进行,所以开始新一轮的数据采集,若不符合则继续进行PLC漏洞判断;
步骤6:输入映像区攻击判断,因为输入映像区的数据和状态是PLC直接由输入端子顺序存入,若输入端子的状态和输入映像区的状态不一致,则可以判定存在输入映像区攻击,若一致则进行步骤7,输出锁存区攻击判断;
步骤7:输出锁存区攻击判断,因为输出端子的数据和状态是由输出锁存区直接输出处理,若输出端子的状态和输出锁存区的状态不一致,则可以判定存在输出锁存区攻击,若一致则判定攻击存在于程序处理区。
Claims (4)
1.一种基于状态关系图的PLC漏洞挖掘方法,本发明主要包括状态关系图生成模块、坏数据注入攻击模块、PLC漏洞判断模块。
2.根据权利要求1所述的状态关系图生产模块,其特征在于在PLC正常运行过程中,对PLC的输入映像区和输出锁存区注入坏数据。
3.根据权利要求1所述的坏数据注入攻击模块,其特征在于在坏数据注入攻击后,会导致输入映像区、程序处理区和输出锁存区的数据产生差异,通过数据之间的逻辑关系,引发数据之间的关联故障。
4.根据权利要求1所述的PLC漏洞判断模块,其特征在于包括以下步骤:
步骤1:采集输入数据,采集所有输入端子的数据;
步骤2:根据所采集的输入数据,生成某时刻的输入状态图;
步骤3:采集输出数据,采集所有输出端子的数据;
步骤4:根据所采集的输出数据,生成某时刻的输出状态图;
步骤5:根据输入和输出的逻辑状态关系图判断此时刻的输入状态和输出状态是否符合逻辑关系,若符合则回到步骤1,因为PLC的工作流程是周而复始地进行,所以开始新一轮的数据采集,若不符合则继续进行PLC漏洞判断;
步骤6:输入映像区攻击判断,因为输入映像区的数据和状态是PLC直接由输入端子顺序存入,若输入端子的状态和输入映像区的状态不一致,则可以判定存在输入映像区攻击,若一致则进行步骤7,输出锁存区攻击判断;
步骤7:输出锁存区攻击判断,因为输出端子的数据和状态是由输出锁存区直接输出处理,若输出端子的状态和输出锁存区的状态不一致,则可以判定存在输出锁存区攻击,若一致则判定攻击存在于程序处理区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710087439.6A CN106647612A (zh) | 2017-02-17 | 2017-02-17 | 一种基于状态关系图的plc漏洞挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710087439.6A CN106647612A (zh) | 2017-02-17 | 2017-02-17 | 一种基于状态关系图的plc漏洞挖掘方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106647612A true CN106647612A (zh) | 2017-05-10 |
Family
ID=58845469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710087439.6A Pending CN106647612A (zh) | 2017-02-17 | 2017-02-17 | 一种基于状态关系图的plc漏洞挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106647612A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825630A (zh) * | 2019-10-31 | 2020-02-21 | 浙江国利信安科技有限公司 | 漏洞挖掘方法及装置 |
CN111796585A (zh) * | 2020-09-10 | 2020-10-20 | 浙江浙能技术研究院有限公司 | 一种工控设备漏洞挖掘检测*** |
CN115713339A (zh) * | 2023-01-09 | 2023-02-24 | 量子科技长三角产业创新中心 | 一种数据量子计算管控方法、装置、设备及计算机介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721255A (zh) * | 2016-04-14 | 2016-06-29 | 北京工业大学 | 基于模糊测试的工控协议漏洞挖掘*** |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
CN105991517A (zh) * | 2015-01-28 | 2016-10-05 | 中国信息安全测评中心 | 漏洞发掘方法和装置 |
-
2017
- 2017-02-17 CN CN201710087439.6A patent/CN106647612A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991517A (zh) * | 2015-01-28 | 2016-10-05 | 中国信息安全测评中心 | 漏洞发掘方法和装置 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
CN105721255A (zh) * | 2016-04-14 | 2016-06-29 | 北京工业大学 | 基于模糊测试的工控协议漏洞挖掘*** |
Non-Patent Citations (2)
Title |
---|
刘彩霞等: "基于状态模型的IMS网络SIP协议流程漏洞挖掘", 《计算机工程与设计》 * |
孙易安: "工业控制***漏洞扫描与挖掘技术研究", 《网络监控与监测》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825630A (zh) * | 2019-10-31 | 2020-02-21 | 浙江国利信安科技有限公司 | 漏洞挖掘方法及装置 |
CN110825630B (zh) * | 2019-10-31 | 2023-04-21 | 浙江国利信安科技有限公司 | 漏洞挖掘方法及装置 |
CN111796585A (zh) * | 2020-09-10 | 2020-10-20 | 浙江浙能技术研究院有限公司 | 一种工控设备漏洞挖掘检测*** |
CN115713339A (zh) * | 2023-01-09 | 2023-02-24 | 量子科技长三角产业创新中心 | 一种数据量子计算管控方法、装置、设备及计算机介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
An et al. | Secure state estimation against sparse sensor attacks with adaptive switching mechanism | |
CN104052730B (zh) | 用于工业控制***的智能计算机物理入侵检测与防御***和方法 | |
Tajer et al. | Distributed joint cyber attack detection and state recovery in smart grids | |
CN106647612A (zh) | 一种基于状态关系图的plc漏洞挖掘方法 | |
Sayegh et al. | Internal security attacks on SCADA systems | |
CN105763392A (zh) | 一种基于协议状态的工控协议模糊测试方法 | |
Kleinmann et al. | Automatic construction of statechart-based anomaly detection models for multi-threaded industrial control systems | |
CN108123939A (zh) | 恶意行为实时检测方法及装置 | |
CN103209173B (zh) | 一种网络协议漏洞挖掘方法 | |
CN103712642A (zh) | 一种实现安全检测器自我检测的方法及装置 | |
CN106959685A (zh) | 一种基于rt‑lab技术的汽轮机deh控制***漏洞测试的***和方法 | |
CN109977681A (zh) | 一种面向无人机的模糊测试方法及无人机的模糊测试*** | |
CN110457220A (zh) | 基于安卓***的模拟器检测方法、智能终端及存储介质 | |
Iturbe et al. | On the feasibility of distinguishing between process disturbances and intrusions in process control systems using multivariate statistical process control | |
CN111966604A (zh) | 一种fuzzing工控协议漏洞挖掘*** | |
Wang et al. | Design and implementation of fuzzing technology for OPC protocol | |
Marino et al. | Data-driven correlation of cyber and physical anomalies for holistic system health monitoring | |
CN102981096A (zh) | 一种基于wams时序分解的电网故障辨识方法 | |
CN103383566B (zh) | 一种程序流监控方法 | |
Tabassum et al. | Cyber–physical anomaly detection for inverter-based microgrid using autoencoder neural network | |
CN104763576A (zh) | 一种抽水蓄能机组保护辅助信号异常判别和修正方法 | |
CN105717877A (zh) | 基于顺控流程的抽水蓄能机组运行工况校验方法及装置 | |
CN114498760B (zh) | 一种孤岛检测方法、装置及其电子设备 | |
Wang et al. | Formal analysis of security properties of cyber-physical system based on timed automata | |
CN102982282A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170510 |