CN109791514A - 抵抗网络攻击的控制系统设计 - Google Patents
抵抗网络攻击的控制系统设计 Download PDFInfo
- Publication number
- CN109791514A CN109791514A CN201680089301.3A CN201680089301A CN109791514A CN 109791514 A CN109791514 A CN 109791514A CN 201680089301 A CN201680089301 A CN 201680089301A CN 109791514 A CN109791514 A CN 109791514A
- Authority
- CN
- China
- Prior art keywords
- plc
- programmable logic
- logic controller
- block
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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/13—Plc programming
- G05B2219/13107—Logic symbols, plan LOP, functional block symbols FBS, functional programming FUP
-
- 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/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24169—Identification of last person who changed program
-
- 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/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24211—Override normal program, execute urgency program so machine operates safe
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
一种用于在工业生产环境中执行安全故障转移的方法,该方法包括可编程逻辑控制器(PLC)接收可编程逻辑控制器上的功能块(FB)或功能(FC)被恶意修改的通知。PLC接下来确定功能块或功能是否也在故障转移计算装置上被恶意修改。如果故障转移计算装置未被恶意修改,则PLC执行故障转移操作。该操作包括将包括一个或多个输入参数的数据块发送到功能块或功能,以及接收在故障转移计算装置上执行具有数据块的功能块或功能而产生的输出数据。
Description
技术领域
本发明主要涉及使用各种安全故障转移步骤来提高控制系统对网络攻击的抵抗性。例如,所公开的技术可以应用于使用诸如可编程逻辑控制器(PLC)和分布式控制系统(DCS)的工业控制器的各种自动化生产环境。
背景技术
车间自动化和控制系统的传统安全解决方案是基于生产单元的概念开发的。每个生产单元的网络与其他生产单元的网络隔离并被安全装置(如防火墙/VPN(虚拟专用网络)集线器)保护。该解决方案是基于网络攻击来自外部世界(即经由生产单元网络与办公室网络之间的通信链路)的假设而开发的。附加地,控制系统和安全系统单独地和独立地运行。因此,自动化工程师和IT安全专业人员分别设计、编程、操作和监测控制和安全性。
传统的自动化安全解决方案存在若干问题。“生产单元”的假设不再成立,因为生产单元网络变得越来越开放和动态,这是由于更多的移动装置、无线传感器等被用于数据收集和诊断。这些装置直接连接到车间系统并因此对自动化装置带来直接的安全风险。此外,基于物联网(IoT)范例的制造系统要求控制系统与连接到输入材料和工件的存储器装置(甚至智能装置)交换数据并进行交互。这同样增加了周边保护机制无法解决的网络攻击的风险。
因此,期望提供安全故障转移机制,其可在控制层处实现,从而以使对整个自动化系统的不利影响最小化的方式解决网络攻击。
发明内容
本发明的实施例通过提供与使用各种安全故障转移步骤来提高控制系统对网络攻击的抵抗性相关的方法、系统和设备,解决并克服上述短处和缺点中的一个或多个。本文描述的技术能够最小化网络攻击的不利影响并因此在抵抗性方面改善控制性能。
根据一些实施例,一种用于在工业生产环境中执行安全故障转移的方法包括:可编程逻辑控制器(PLC)接收可编程逻辑控制器上的功能块(FB)或功能(FC)被恶意修改的通知。PLC接下来确定功能块或功能是否也在故障转移计算装置上被恶意修改。可以使用各种技术来检测恶意修改。例如,在一些实施例中,功能块或功能包括数据部分和数字签名部分。PLC可以通过确定故障转移计算装置上的功能块或功能的数字签名部分是否是有效的来确定功能块或功能在故障转移计算装置上是否被恶意修改。在一些实施例中,故障转移计算装置上的功能块或功能是PLC上的功能块或功能的修改的副本,其提供针对恶意修改的进一步保护,如下面进一步详细解释的。如果故障转移计算装置未被恶意修改,则PLC执行故障转移操作。该操作包括将包括一个或多个输入参数的数据块发送到功能块或功能,以及接收在故障转移计算装置上执行具有数据块的功能块或功能而产生的输出数据。
在前述方法的一些实施例中,故障转移计算装置是工业生产环境中的自动化装置。例如,故障转移计算装置可以是第二PLC、或可运行PLC中的控制程序的PC。故障转移计算装置可以位于远离工业生产环境的计算环境中或者位于本地工业网络上。
根据本发明的其他实施例,一种用于在工业生产环境中执行安全故障转移的方法包括:PLC通过网络通信会话从自动化装置接收数据块并确定数据块被恶意修改。例如,数据块可以是包括数据部分和数字签名部分的存储块,并且PLC通过确定数字签名部分是无效的来确定存储块被恶意修改。响应于确定数据块被恶意修改,针对PLC使用数据块执行的所有后续操作,用数据块的修改的副本来替换数据块。
在一些实施例中,数据块的修改的副本是先前从自动化装置接收的数据块的复制品。在其他实施例中,通过外推来自先前从自动化装置接收的数据块的一个或多个实例的数据来创建修改的副本。在一些实施例中,数据块的修改的副本包括一个或多个命令/数据,用于将由PLC操作的生产过程置于安全模式或以安全方式停止生产过程。
作为在上述方法中使用修改的副本的替代或补充,可以利用通过一个或多个中间PLC的多个替代网络会话以用于与自动化装置的未来通信。例如,可以通过经过第二网络通信会话向第二PLC传输查询第二PLC是否与自动化装置通信的查询消息来使用替代网络会话。然后可以从第二PLC接收指示第二PLC通过第三通信会话与自动化装置通信的响应消息。然后,可以使用第二网络通信会话和第三通信会话经由第二PLC将后续数据块传输到自动化装置。
根据本发明的另一个方面,一种用于在工业生产环境中执行安全故障转移的系统包括:PLC,该PLC包括非暂时性计算机可读介质,其存储包括多个组织块、多个功能块和多个数据块的应用程序。PLC还包括一个或多个安全功能块,其被配置成响应于检测组织块、功能块或数据块中的恶意修改的块而执行故障转移操作。该故障转移操作包括以下项中的一个或多个。首先,如果恶意修改的块是功能块或功能,则使用位于故障转移计算装置上的等效功能块或功能来在执行应用程序期间进行功能块或功能的操作。第二,如果通过第一网络会话从自动化装置接收到恶意修改的块,则使用通过一个或多个中间PLC的多个替代网络会话以用于与自动化装置的未来通信。第三,针对PLC使用恶意修改的块执行的所有后续操作,可以用恶意修改的块的修改的副本替换恶意修改的块。
在系统的一些实施例中,故障转移计算装置位于工业生产环境中。例如,故障转移计算装置可以是第二PLC、或可运行PLC中的应用程序的PC。计算装置可以位于远离工业生产环境的计算环境中或者它可以通过工业网络连接到PLC。
通过参考附图对示意性实施例详细描述,本发明的附加特征和优点将变得显而易见。
附图说明
当结合附图阅读时,可以根据以下详细描述最佳地理解本发明的前述和其他方面。出于说明本发明的目的,在附图中示出了当前优选的实施例,但应当理解,本发明不限于所公开的特定手段。附图中包括以下图:
图1示出了当包括一个PLC中的功能块(FB)和/或功能(FC)时,根据一些实施例如何通过使用其他PLC来管理故障转移;
图2A提供了根据一些实施例的故障转移的示例,其中当包括一个通信会话时使用替代通信会话;
图2B继续图2A中呈现的示例;
图3提供了当包括FB、FC或DB时,根据一些实施例通过使用“修改的副本”来执行故障转移方法的示例;
图4展示了用于FB、FC和DB的副本方法的示例,其替换了OBxx中的原始控制指令,如图3所示;
图5提供了根据一些实施例在传统硬件上实现高度耦接的控制安全系统的PLC的图示;
图6示出了根据一些实施例在开放式控制器上的安全系统的实现方式;以及
图7展示了根据一些实施例的具有网络安全应用程序的控制安全PLC。
具体实施方式
本文描述了系统、方法和设备,它们主要涉及使用各种安全故障转移步骤来提高控制系统对网络攻击的抵抗性。诸如可编程逻辑控制器(PLC)或分布式控制系统(DCS)的控制系统正变得越来越强大,其具有多核、更强的计算能力和更大的存储空间。因此,在不损害控制性能的情况下,将一些网络安全步骤从生产单元边界处的安全装置(诸如防火墙和VPN)移到控制系统自身上是有意义的。即使当PLC应用程序的一部分受到损害时,本文描述的技术也可以保持基本控制功能,并因此改善系统抵抗性方面的性能。此外,所公开的技术可以使恶意修改PLC应用程序或通信数据块的网络攻击的不利影响最小化。
图1示出了当包括一个PLC中的FB和/或功能(FC)时,根据一些实施例如何通过使用其他PLC来管理故障转移。在该示例中,假设PLC-1 105中的FB-212是用于冷却泵站(包括传感器110、泵115和阀120)的控制功能块。在PLC-2 125中也使用FB-212。在一些实施例中,FB-212可以用于运行不同的冷却泵站(图1中未示出)或类似的装置集合。可替代地,在其他实施例中,FB-212可以在其不使用时在PLC-2 125中保持闲置。
PLC应用安全代理130被配置成例如通过周期性地针对预先生成的数字签名检验和验证,来对每个PLC 105、125所使用的块执行应用完整性检查。当PLC应用安全代理130检测到PLC-1 105中的FB-212被黑客135恶意修改时,如果当前不存在与PLC-2 125的通信会话,则PLC-1 105创建与PLC-2 125的连接。接下来,PLC-1 105检查FB-112是否被恶意修改。如果PLC-2 125中的FB-112正常,则PLC-1 105将包含用于冷却水泵站控制的所有参数(包括架构和实时传感器数据,诸如温度)的数据块(DB)发送到PLC-2 125。PLC-2 125在PLC-2125中运行FB-212并计算输出数据,诸如用于泵的命令(打开/关闭)和用于比例阀的设置(50%)。随后,PLC-2 125将输出数据发送到PLC-1 105。然后,PLC-1 105使用所接收的数据来控制执行装置或PLC-1 105中的其他应用程序。
应当注意,图1中呈现的示例可能由于网络上的数据交换而使响应性方面的控制性能劣化。然而,即使PLC-1 105中的FB-212被恶意修改,它也可以保持主要的控制功能,并从而最小化这种网络攻击的不利影响。
图2A和图2B提供了根据一些实施例的故障转移的示例,其中当包括一个通信会话时使用替代通信会话。在该示例中,在人机接口(HMI)220和PLC中存在三个通信会话。图2A示出了第一会话(“会话_1”),其中PLC-1 205将DB-101发送到HMI 220并在DB-102中接收来自HMI 220的数据。PLC-1 205将DB-201发送到PLC-3 225并在DB-202中接收来自PLC-3 225的数据。PLC-3 225将DB-211发送到HMI 220并在DB-212中接收来自HMI 220的数据。假设用于通信的每个DB包括数据部分和数字签名部分。
当PLC-1 205检测到PLC-1 205中的从HMI 220到PLC-1 205的DB 102被恶意修改时(由于数字签名无效),可以执行以下操作,如图2B所示。首先,PLC-1 205通过向其他通信伙伴发送查询消息来检查是否存在用于与HMI 220交换数据的其他路线,并且发现与PLC-3225的通信会话会话_2。PLC-3 225回复在它自身与HMI 220之间存在通信会话_3,并且会话当前是完全可操作的。PLC-1 205将DB-101中的数据重新打包到DB-201中并将DB-201发送到PLC-3 225。PLC-3 225将数据重新打包到DB-201中并将其发送到HMI 220。随后,HMI 220重新打包应当发送到PLC-1 205的数据并将其发送到PLC-3 225。PLC-3 225重新打包所接收的数据并将其发送到PLC-1 205。
应当注意,图2中呈现的该解决方案也可能由于网络上的数据交换而使响应性方面的控制性能劣化。然而,即使PLC-1 205中的从HMI 220接收的DB-102被恶意修改,它也可以保持主要的控制功能,并从而最小化这种网络攻击的不利影响。
图3提供了当包括FB或DB时,根据一些实施例通过使用“修改的副本”来执行故障转移方法300的示例。如本文所使用的,术语“修改的副本”是指分别提供与另一个FB或DB相同功能或信息的FB或DB,但具有不同的低级数据。可以通过对底层源代码进行微小修改来获得该修改的副本。例如,可以在不改变功能块的控制逻辑的情况下改变若干指令的序列。因此,这种方式可以使黑客损害副本变得更加复杂一点。修改的副本的实现方式可以根据底层系统架构而有所不同。例如,在西门子控制系统中,语句列表(STL)代码被编译为MC7字节可执行代码,然后该可执行代码被传递到PLC。可以通过创建新FB来创建FB的修改的副本,新FB提供与原始FB相同的功能,但具有不同的MC7字节代码。
继续参考图3,所有组织块(OB)从“开始”运行到“结束”,访问PLC存储器,读取FB、FC和DB,并将数据写回DB。当OB被编程时,应当考虑如果一个重要的FB、或FC或DB被损害的情况。因此,它需要创建用于运行OB的其他安全“路径”。图3的示例示出了在OBxx中调用的功能块FB101。应当注意,由FB101使用DB101,假设该数据块保留与其他对等装置(诸如HMI或PLC)交换的数据。同样,假设OB没有受到损害,并且FB101和DB101可能受到损害。
图4展示了用于FB和DB的副本方法400的示例,其替换了OBxx中的原始控制指令,如图4所示。以如下方式创建FB和DB的修改的副本。FB201是FB101的修改的副本(例如,FB201具有与FB101相同的功能,但其MC7代码不同)。当PLC检测到所接收的DB101被损害时,DB201是DB101的替代品。存在可用于创建数据块副本的若干方法。在一些实施例中,当DB101在其受到损害之前被接收并验证时,将DB101复制到DB201。在其他实施例中,通过外推一些数据来创建数据块DB 201。例如,DB101可以包括温度读数。因此,可以通过基于先前已经验证的读数进行外推来生成一组计算的读数。在其他实施例中,如果DB101包括来自HMI的命令,则在DB201中创建一组命令/数据,以将生产过程置于安全模式或以安全方式停止生产过程。
如图4所示,PLC首先选择正常的功能块FB101和数据块DB101来运行。如果FB101受到损害,则PLC将代替地运行FB201(FB101的副本)。如果DB101(由对等PLC或HMI发送的数据块)受到损害,则PLC将替代地使用DB201(DB101的替代品)。应当注意,功能(FC)的处理方式可以与FB相同。例如,可以为FC101创建副本FC201。同样,FC201可以稍微调整,并且因此它具有与FC101相同的功能,但FC201的MC7代码与FC101的MC7代码不同。
为了概括故障转移过程,可以在PLC中内置机制以复制所有的FC、FB和DB,并且在执行每个FC或FB之前,将执行完整性检查,并且如果检查失败,将使用FC或FB或DB块的对应副本。在用户程序的编译过程期间,可以在工程工具中内置该机制,因此工程师无需了解该过程。在编译期间,将借助修改来复制用户程序(如FC和FB),从而它们的签名将不同。在部署期间,所有用户程序和复制程序都将下载到PLC。PLC运行时将执行附加的完整性检查和切换操作。
在一些实施例中,可以使用冗余PLC实现方式来实现本文讨论的一个或多个安全故障转移场景,其中数据和执行在两个PLC之间是镜像的。上述场景中描述的各种步骤(例如,检查DB或FB或FC的完整性)可以直接在现有数据通信信道上实现,从而允许在必要时控制以在两个PLC之间切换以响应于攻击。
通常,本文描述的技术可以在任何PLC或类似的控制级装置架构上实现。图5提供了根据一些实施例的在传统硬件(例如,Siemens Simatic S7 300)上实现高度耦接的控制安全系统的PLC 500的图示。在PLC 500中,诸如存储器处理、I/O处理和通信的基本系统功能510驻留在操作系统505上。通常,系统供应商提供一些控制功能块(FB)515(例如,比例积分微分控制、运动控制等)以及其他标准FB 520(例如,数据解析和数据转换)。一些FB 530可以由用户开发。应用程序525驻留在PLC 500的顶层上。
由于高端PLC产品具有足够的计算能力和存储器,因此可以在基本系统功能510内实现诸如加密和解密的基本安全功能。此外,标准FB 520内具有密钥接口、会话信息等的安全FB供用户调用。可以在基本系统功能510内提供各种安全特征。例如,在一些实施例中,安全功能包括加密、访问控制(通过装置、MAC地址、IP地址,甚至角色)、入侵检测和安全意外事件管理。这些安全功能可以经由系统功能块进行配置并且所有相关数据都可以保存在系统数据块中。在一些实施例中,可以通过控制系统的状态经由系统功能块动态调整安全策略。例如,系统供应商只有在控制系统未运行关键生产过程时才能升级或修补控制系统,以确保关键生产过程不会被中断。此外,在一些实施例中,基本系统功能510内的安全功能可以被配置成向控制系统通知它是否处于网络攻击下,是否可以完全或部分地减轻所检测到的攻击。因此,PLC 500或控制系统作为整体可以决定它是否需要以安全模式操作,或者在当前批次完成后停止生产,或者立即停止生产。
在一些实施例中,基本系统功能510内的安全功能包含高级传感器,高级传感器生成针对于为整个网络部署的安全信息和事件管理(SIEM)系统的要求的日志数据。由于控制系统的情报,因此可以通过来自SIEM系统的命令动态调整记录,以例如解决更新的威胁情报或损害指示,因此超出了切换粒度的简单日志级别。结果是提高了日志数据的质量并从而降低了SIEM的误报率。高级传感器还可以包括控制系统上的智能蜜罐,例如,在停机期间对功能进行模拟,而未使用的装置的任何交互表明误用的误报率非常低。
图6示出了根据一些实施例的开放式控制器上的高度耦合系统600的实现方式。例如,西门子SIMATIC ET 200SP开放PLC是该类型的控制器,其将基于PC的软件控制器的功能与虚拟化组合。如图6所示,PC托管分别运行Windows应用和PLC应用的两个虚拟机(两个核)605和610。PLC应用和Windows应用经由内部通信615彼此交互。即使Windows关闭,基于PC的PLC也能够继续运行。基于该架构,故障转移安全功能可以在虚拟机605和610中实现。例如,虚拟机605可以包括专用于安全功能的一个或多个Windows应用。可替换地(或附加地),虚拟机610可以包括一个或多个基于FB的安全实现方式,其类似于上面关于图5所讨论的那些。在一些实施例中,基于开放式控制器,可以利用基于开源UNIX的网络监测框架(例如,Bro)。因此,为UNIX和Linux开发的那些安全技术可以很容易地移植在控制应用中。
图7展示了根据一些实施例的具有网络安全应用的控制安全PLC 700。PLC 700具有两个核,其中每个核都作为虚拟机运行。在图7的示例中,一个虚拟机705被配置成实现Simatic S7固件,并且另一个虚拟机710被配置成实现Windows或Linux。在虚拟机705内的Simatic S7 PLC固件中,存在由嵌入式历史库驱动的实时数据库。它将所有的实时过程图像数据收集为时间序列,诸如输入、输出、存储器变量以及来自HMI和管理执行系统(MES)的命令。在Windows/Linux虚拟机710中,另一个实时数据库与Simatic S7固件中托管的实时数据库(RTDB)交换数据。虽然在本文中使用Simatic S7固件用于说明目的,但应当理解,在其他实施例中可以利用其他类似的固件实现方式。
虚拟机605中的“处理”块是在实时数据库中执行主数据处理、读/写/过滤/平滑主数据的功能块。虚拟机605中的“上下文”块用作转换器,其将所有数据的含义转换成生产知识,诸如将测量值转换成温度(例如啤酒发酵罐的温度)。由虚拟机605中的App容器托管多个应用,其中一些应用可以针对安全功能。例如,App1可以用于网络攻击检测,并且App2可以执行故障转移操作(如图1-4中)。它们都需要基于实时数据库中收集的数据进行工作。在这种情况下,可以像Windows或Linux应用一样轻松添加、删除和更新所建议的网络攻击检测应用。
本文描述的由控制层装置使用的处理器可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)或本领域中已知的任何其他处理单元。更一般地,如本文所使用的,处理器是用于执行存储在计算机可读介质上的机器可读指令以用于执行任务的装置并且可以包括硬件和固件中的任一者或组合。处理器还可以包括存储可执行以用于执行任务的机器可读指令的存储器。处理器通过操纵、分析、修改、转换或传输信息以供可执行步骤或信息装置使用,和/或通过将信息路由到输出装置来对信息起作用。例如,处理器可以使用或包括计算机、控制器或微处理器的能力,并且可以使用可执行指令来调节以执行不由通用计算机执行的专用功能。处理器可以与任何其他处理器耦接(电耦接和/或包括可执行部件),从而启用其间的交互和/或通信。用户界面处理器或发生器是用于生成显示图像或其部分的包括电子电路或软件或两者的组合的已知元件。用户界面包括使得用户能够与处理器或其他装置进行交互的一个或多个显示图像。
本文描述的各种装置(包括但不限于控制层装置和相关的计算基础设施)可以包括至少一个计算机可读介质或存储器,其用于保持根据本发明的实施例编程的指令并用于包含本文描述的数据结构、表格、记录或其他数据。如本文所使用的,术语“计算机可读介质”是指参与向一个或多个处理器提供指令以供执行的任何介质。计算机可读介质可以采用许多形式,包括但不限于非暂态介质、非易失性介质、易失性介质和传输介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘。易失性介质的非限制性示例包括动态存储器。传输介质的非限制性示例包括同轴电缆、铜线和光纤,包括构成系统总线的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。
如本文所使用的可执行应用包括用于例如响应于用户命令或输入而调节处理器以实现预定功能(诸如操作系统、上下文数据获取系统或其他信息处理系统的功能)的代码或机器可读指令。可执行步骤是用于执行一个或多个特定过程的代码或机器可读指令的片段、子例程、或代码的其他不同部分、或可执行应用的部分。这些过程可以包括接收输入数据和/或参数,对所接收的输入数据执行操作和/或响应于所接收的输入参数而执行功能,以及提供所得的输出数据和/或参数。
本文的功能和过程步骤可以自动地执行,全部地或部分地响应于用户命令来执行。响应于一个或多个可执行指令或装置操作而无需用户直接启动活动,执行自动执行的活动(包括步骤)。
附图中的系统和过程不是排他性的。可以根据本发明的原理导出其他系统、过程和菜单以实现相同的目的。尽管已经参考特定实施例描述了本发明,但应当理解,本文示出和描述的实施例和变化仅用于说明目的。在不脱离本发明的范围的情况下,本领域技术人员可以实现对当前设计的修改。如本文所述,可以使用硬件部件、软件部件和/或其组合来实现各种系统、子系统、代理、管理器和过程。除非要素使用短语“用于…的装置”来明确地叙述,否则本文中的权利要求的要素不应当根据35 U.S.C.112第六款的规定来解释。
Claims (19)
1.一种用于在工业生产环境中执行安全故障转移的方法,所述方法包括:
由可编程逻辑控制器接收所述可编程逻辑控制器上的功能块(FB)或功能(FC)被恶意修改的通知;
由所述可编程逻辑控制器确定所述功能块或功能是否也在故障转移计算装置上被恶意修改;
如果所述故障转移计算装置未被恶意修改,则执行包括以下项的故障转移操作:
由所述可编程逻辑控制器将包括一个或多个输入参数的数据块发送到所述功能块或功能,以及
由所述可编程逻辑控制器接收在所述故障转移计算装置上执行具有所述数据块的所述功能块或功能而产生的输出数据。
2.根据权利要求1所述的方法,其中所述故障转移计算装置是所述工业生产环境中的自动化装置。
3.根据权利要求2所述的方法,其中所述故障转移计算装置是第二可编程逻辑控制器、或能够运行PLC中的控制程序的PC。
4.根据权利要求1所述的方法,其中所述故障转移计算装置位于远离所述工业生产环境的计算环境中。
5.根据权利要求4所述的方法,其中所述故障转移计算装置通过工业网络直接或间接地连接到所述可编程逻辑控制器。
6.根据权利要求1所述的方法,其中所述故障转移操作还包括:
由所述可编程逻辑控制器使用所述输出数据执行一个或多个控制操作。
7.根据权利要求1所述的方法,其中所述功能块或功能包括数据部分和数字签名部分,并且所述可编程逻辑控制器通过确定所述故障转移计算装置上的所述功能块或功能的所述数字签名部分是有效的来确定所述功能块或功能在所述故障转移计算装置上未被恶意修改。
8.根据权利要求1所述的方法,其中所述故障转移计算装置上的所述功能块或功能是所述可编程逻辑控制器上的所述功能块或功能的修改的副本。
9.一种用于在工业生产环境中执行安全故障转移的方法,所述方法包括:
由可编程逻辑控制器通过网络通信会话从自动化装置接收数据块;
由所述可编程逻辑控制器确定所述数据块被恶意修改;
响应于确定所述数据块被恶意修改,执行以下项中的一个或多个:
针对由所述可编程逻辑控制器使用所述数据块执行的所有后续操作,用所述数据块的修改的副本来替换所述数据块,以及
利用通过一个或多个中间可编程逻辑控制器的多个替代网络会话以用于与所述自动化装置的未来通信。
10.根据权利要求9所述的方法,其中所述多个替代网络会话用于使用包括以下步骤的过程来进行所述未来通信:
由所述可编程逻辑控制器通过第二网络通信会话向第二可编程逻辑控制器传输查询所述第二可编程逻辑控制器是否与所述自动化装置通信的查询消息;
由所述可编程逻辑控制器从所述第二可编程逻辑控制器接收指示所述第二可编程逻辑控制器通过第三通信会话与所述自动化装置通信的响应消息;以及
由所述可编程逻辑控制器使用所述第二网络通信会话和所述第三通信会话经由所述第二可编程逻辑控制器将后续数据块传输到所述自动化装置。
11.根据权利要求9所述的方法,其中所述数据块是包括数据部分和数字签名部分的存储块,并且所述可编程逻辑控制器通过确定所述数字签名部分是无效的来确定所述存储块被恶意修改。
12.根据权利要求9所述的方法,其中所述数据块的修改的副本是先前从所述自动化装置接收的数据块的复制品。
13.根据权利要求9所述的方法,其中通过外推来自先前从所述自动化装置接收的数据块的一个或多个实例的数据来创建所述数据块的修改的副本。
14.根据权利要求9所述的方法,其中所述数据块的修改的副本包括一个或多个命令/数据,用于将由所述可编程逻辑控制器操作的生产过程置于安全模式或以安全方式停止所述生产过程。
15.一种用于在工业生产环境中执行安全故障转移的系统,所述系统包括:
可编程逻辑控制器,包括:
非暂时性计算机可读介质,其存储包括多个组织块、多个功能块和多个数据块的应用程序;以及
一个或多个安全功能块,其被配置成响应于在所述组织块、所述功能块或所述数据块中检测到恶意修改的块,执行故障转移操作,所述故障转移操作包括以下项中的一个或多个:
(i)如果所述恶意修改的块是功能块或功能,则利用位于故障转移计算装置上的等效功能块或功能来在执行所述应用程序期间进行所述功能块或功能的操作,
(ii)如果通过第一网络会话从自动化装置接收到所述恶意修改的块,则利用通过一个或多个中间可编程逻辑控制器的多个替代网络会话以用于与所述自动化装置的未来通信,或者
(iii)针对由所述可编程逻辑控制器使用所述恶意修改的块来执行的所有后续操作,用所述恶意修改的块的修改的副本来替换所述恶意修改的块。
16.根据权利要求15所述的系统,其中所述故障转移计算装置位于所述工业生产环境中。
17.根据权利要求16所述的系统,其中所述故障转移计算装置是第二可编程逻辑控制器、或能够运行PLC中的应用程序的PC。
18.根据权利要求15所述的系统,其中所述故障转移计算装置位于远离所述工业生产环境的计算环境中。
19.根据权利要求18所述的系统,其中所述故障转移计算装置通过工业网络直接或间接地连接到所述可编程逻辑控制器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/052037 WO2018052435A1 (en) | 2016-09-16 | 2016-09-16 | Cyberattack-resilient control system design |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109791514A true CN109791514A (zh) | 2019-05-21 |
CN109791514B CN109791514B (zh) | 2022-09-09 |
Family
ID=57003602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680089301.3A Active CN109791514B (zh) | 2016-09-16 | 2016-09-16 | 抵抗网络攻击的控制系统设计 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11099951B2 (zh) |
EP (1) | EP3497570B1 (zh) |
CN (1) | CN109791514B (zh) |
WO (1) | WO2018052435A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486088A (zh) * | 2020-12-08 | 2021-03-12 | 深兰科技(上海)有限公司 | Plc交互fc功能函数的实现方法 |
CN115795488A (zh) * | 2023-02-08 | 2023-03-14 | 深圳开源互联网安全技术有限公司 | 代码检测系统及代码检测方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418776B (zh) * | 2017-02-09 | 2021-08-20 | 上海诺基亚贝尔股份有限公司 | 用于提供安全业务的方法和设备 |
US11397832B2 (en) * | 2018-12-04 | 2022-07-26 | Dhiraj Sharan | Virtual data lake system created with browser-based decentralized data access and analysis |
US10846342B2 (en) * | 2018-12-04 | 2020-11-24 | Dhiraj Sharan | Artificial intelligence-assisted information technology data management and natural language playbook system |
CN109756483B (zh) * | 2018-12-12 | 2021-05-25 | 杭州华威信安科技有限公司 | 一种针对melsec协议的安全防护方法 |
JP7243326B2 (ja) * | 2019-03-15 | 2023-03-22 | オムロン株式会社 | コントローラシステム |
CN110390357A (zh) * | 2019-07-17 | 2019-10-29 | 国网浙江省电力有限公司电力科学研究院 | 一种基于边信道的dtu安全监测方法 |
US11316883B2 (en) * | 2019-07-17 | 2022-04-26 | Bank Of America Corporation | Cybersecurity—operational resilience of computer networks |
US11411983B2 (en) | 2019-10-16 | 2022-08-09 | General Electric Company | Dynamic, resilient sensing system for automatic cyber-attack neutralization |
US11729190B2 (en) | 2019-10-29 | 2023-08-15 | General Electric Company | Virtual sensor supervised learning for cyber-attack neutralization |
US11468164B2 (en) | 2019-12-11 | 2022-10-11 | General Electric Company | Dynamic, resilient virtual sensing system and shadow controller for cyber-attack neutralization |
US11443039B2 (en) | 2020-08-21 | 2022-09-13 | Fathom5 Corporation | Controller computing system for preventing malicious control of a controlled machinery system |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1857934A1 (en) * | 2006-05-16 | 2007-11-21 | Saab Ab | Fault tolerant control system |
CN101501586A (zh) * | 2006-08-08 | 2009-08-05 | 西门子能量及自动化公司 | 用于初始化plc模块的装置、系统和方法 |
WO2014111920A1 (en) * | 2013-01-17 | 2014-07-24 | Sure Erasure Ltd. | System and method for monitoring of an electro-mechanical device |
CN104247374A (zh) * | 2012-04-23 | 2014-12-24 | 诺基亚通信公司 | 用于客户端相关的安全关联的故障转移功能 |
US20150032232A1 (en) * | 2013-07-24 | 2015-01-29 | Solar Turbines Inc. | System and method for server redundancy |
US20150036254A1 (en) * | 2013-08-05 | 2015-02-05 | Rosendin Electric, Inc. | Modular power skid that can meet two or more different datacenter tier ratings |
US20150046697A1 (en) * | 2013-08-06 | 2015-02-12 | Bedrock Automation Platforms Inc. | Operator action authentication in an industrial control system |
US20150095690A1 (en) * | 2013-10-01 | 2015-04-02 | Siemens Aktiengesellschaft | Redundant Automation System |
CN104683266A (zh) * | 2013-11-29 | 2015-06-03 | Ls产电株式会社 | 用于串行通信的双向包传输故障转移交换机 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050229004A1 (en) * | 2004-03-31 | 2005-10-13 | Callaghan David M | Digital rights management system and method |
US10261489B2 (en) * | 2015-04-15 | 2019-04-16 | Indegy Ltd. | Detection of mis-configuration and hostile attacks in industrial control networks using active querying |
US20170093910A1 (en) * | 2015-09-25 | 2017-03-30 | Acalvio Technologies, Inc. | Dynamic security mechanisms |
US10630708B2 (en) * | 2016-01-08 | 2020-04-21 | Cyber Detection Services Inc | Embedded device and method of processing network communication data |
US10027699B2 (en) * | 2016-03-10 | 2018-07-17 | Siemens Aktiengesellschaft | Production process knowledge-based intrusion detection for industrial control systems |
US10445192B2 (en) * | 2017-01-10 | 2019-10-15 | Indegy Ltd. | Efficient backup and restore of controller code in industrial control network |
US10505955B2 (en) * | 2017-08-22 | 2019-12-10 | General Electric Company | Using virtual sensors to accommodate industrial asset control systems during cyber attacks |
-
2016
- 2016-09-16 CN CN201680089301.3A patent/CN109791514B/zh active Active
- 2016-09-16 EP EP16771061.5A patent/EP3497570B1/en active Active
- 2016-09-16 US US16/331,159 patent/US11099951B2/en active Active
- 2016-09-16 WO PCT/US2016/052037 patent/WO2018052435A1/en unknown
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1857934A1 (en) * | 2006-05-16 | 2007-11-21 | Saab Ab | Fault tolerant control system |
CN101501586A (zh) * | 2006-08-08 | 2009-08-05 | 西门子能量及自动化公司 | 用于初始化plc模块的装置、系统和方法 |
CN104247374A (zh) * | 2012-04-23 | 2014-12-24 | 诺基亚通信公司 | 用于客户端相关的安全关联的故障转移功能 |
WO2014111920A1 (en) * | 2013-01-17 | 2014-07-24 | Sure Erasure Ltd. | System and method for monitoring of an electro-mechanical device |
US20150032232A1 (en) * | 2013-07-24 | 2015-01-29 | Solar Turbines Inc. | System and method for server redundancy |
US20150036254A1 (en) * | 2013-08-05 | 2015-02-05 | Rosendin Electric, Inc. | Modular power skid that can meet two or more different datacenter tier ratings |
US20150046697A1 (en) * | 2013-08-06 | 2015-02-12 | Bedrock Automation Platforms Inc. | Operator action authentication in an industrial control system |
US20150095690A1 (en) * | 2013-10-01 | 2015-04-02 | Siemens Aktiengesellschaft | Redundant Automation System |
CN104683266A (zh) * | 2013-11-29 | 2015-06-03 | Ls产电株式会社 | 用于串行通信的双向包传输故障转移交换机 |
Non-Patent Citations (2)
Title |
---|
ADMIN: "如何防止PLC程序未经授权被篡改", 《HTTPS://WWW.DIANGON.COM/THREAD-19777-1-2.HTML》 * |
牛志斌等: "西门子数控系统故障维修", 《设备管理与维修》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486088A (zh) * | 2020-12-08 | 2021-03-12 | 深兰科技(上海)有限公司 | Plc交互fc功能函数的实现方法 |
CN112486088B (zh) * | 2020-12-08 | 2022-01-18 | 深兰科技(上海)有限公司 | Plc交互fc功能函数的实现方法 |
CN115795488A (zh) * | 2023-02-08 | 2023-03-14 | 深圳开源互联网安全技术有限公司 | 代码检测系统及代码检测方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190220374A1 (en) | 2019-07-18 |
EP3497570A1 (en) | 2019-06-19 |
US11099951B2 (en) | 2021-08-24 |
EP3497570C0 (en) | 2024-01-03 |
WO2018052435A1 (en) | 2018-03-22 |
EP3497570B1 (en) | 2024-01-03 |
CN109791514B (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109791514A (zh) | 抵抗网络攻击的控制系统设计 | |
Conti et al. | A survey on industrial control system testbeds and datasets for security research | |
US11212322B2 (en) | Automated discovery of security policy from design data | |
WO2018044410A1 (en) | High interaction non-intrusive industrial control system honeypot | |
JP6745921B2 (ja) | Plcの仮想的なパッチおよびセキュリティコンテキストの自動配信 | |
CN109831500A (zh) | Kubernetes集群中配置文件与Pod的同步方法 | |
WO2016172514A1 (en) | Improving control system resilience by highly coupling security functions with control | |
Eden et al. | SCADA system forensic analysis within IIoT | |
EP3618353B1 (en) | Dynamic, endpoint configuration-based deployment of network infrastructure | |
CN114787792A (zh) | 集中式知识库和数据挖掘系统 | |
CN112134956A (zh) | 一种基于区块链的分布式物联网指令管理方法和系统 | |
CN115480538A (zh) | 用于工业过程工厂的软件定义过程控制系统的可视化 | |
CN115480537A (zh) | 用于工业过程工厂的软件定义过程控制系统 | |
CN115480533A (zh) | 软件定义的控制系统中的发现服务 | |
CN115480534A (zh) | 用于将工业过程工厂的软件定义的控制系统中的模块进行关联的系统和方法 | |
CN115480522A (zh) | 软件定义的控制系统中的发现服务 | |
Ackerman | Industrial Cybersecurity: Efficiently monitor the cybersecurity posture of your ICS environment | |
EP3667526B1 (en) | Rapid file authentication on automation devices | |
CN115480525A (zh) | 过程控制环境中用于选择和使用容器化控制器服务的活动控制器输出的i/o服务器服务 | |
CN115480530A (zh) | 用于将工业过程工厂的软件定义的控制系统中的模块进行关联的系统和方法 | |
CN115480540A (zh) | 用于工业过程工厂的软件定义过程控制系统和方法 | |
CN115480528A (zh) | 软件定义的控制系统中的安全服务 | |
Carlsson et al. | Engineering of IoT automation systems | |
EP3719599A1 (en) | Network-distributed process control system and method for managing redundancy thereof | |
CN113497795A (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 |