掌桥专利:专业的专利平台
掌桥专利
首页

一种基于IEC61499的PLC安全一体化失效分析方法及系统

文献发布时间:2024-04-18 20:02:18


一种基于IEC61499的PLC安全一体化失效分析方法及系统

技术领域

本发明属于可编程逻辑控制器安全防护领域,更具体地,涉及一种基于IEC61499的PLC安全一体化失效分析方法及系统。

背景技术

可编程逻辑控制器(PLC)作为工业控制现场关键设备,主要负责信号处理与传输、接收各类操作指令进行设备控制和自动调节等重要功能。PLC的问世替代了传统的继电器控制装置,如今可编程智能控制器不再局限于逻辑控制,在运动控制、过程控制等领域也发挥着十分重要的作用。

然而,随着自动化控制领域智能化、信息化、网络化的不断发展,多样的网络攻击渗透影响使得PLC控制器面临更复杂的失效形势。传统的安全防护措施主要关注功能安全保护,难以保障PLC在面临信息安全威胁时的正常运行。因此,必须考虑信息安全问题,以避免硬件、软件和数据等遭到恶意破坏、更改和泄露。

为了实现PLC功能安全与信息安全融合分析,需要通过安全一体化失效分析方法,明确信息攻击对控制器功能安全的渗透影响。目前,PLC面临的失效情况主要分为以下两类:一方面,各功能模块存在功能失效风险,任意模块的功能故障都极易引发PLC运行异常;另一方面,工业控制系统信息安全威胁一旦破坏监控层的防火墙,将逐层渗透至PLC内部的功能模块导致其功能失效。

传统功能安全失效分析研究已经较为成熟,但是信息安全对控制器安全影响机理研究尚处于起步阶段。目前已有的安全一体化失效方法,主要针对于典型工业控制系统架构的失效模式和防护措施,通过定量和定性的方法进行分析,然而对于PLC内部的结构及模块,缺乏相关的分析。同时,在不同的工业控制场景中,不同厂商之间基于IEC61131-3的PLC编程代码难以兼容,导致PLC一体化失效分析方法难以应用在不同型号的设备上。

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于IEC61499的PLC安全一体化失效分析方法及系统,针对PLC控制器内部功能模块,对由功能安全引起的失效行为和由信息安全引起的异常行为进行融合分析,构建基于IEC61499标准的安全一体化失效分析模块对PLC进行安全一体化失效分析。

为实现上述目的,按照本发明的第一方面,提供了一种基于IEC61499的PLC安全一体化失效分析方法,包括以下步骤:

S1,根据PLC的硬件结构将其内部模块划分为多个基本功能块,依据IEC61499标准,构建PLC功能块模型;

S2,定义功能安全事件,基于IEC61499标准构建故障树功能块;定义信息安全事件,基于IEC61499标准构建攻击树功能块;

S3,将所述故障树功能块、攻击树功能块与PLC功能块模型相连接,得到PLC安全一体化失效分析模块,以对PLC进行安全一体化失效分析。

按照本发明的第二方面,提供了一种基于IEC61499的PLC安全一体化失效分析系统,包括:计算机可读存储介质和处理器;

所述计算机可读存储介质用于存储可执行指令;

所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行如第一方面所述的方法。

按照本发明的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行如第一方面所述的方法。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

本发明提供的方法,充分考虑了PLC的内部结构及运行特点,将控制器分为不同的功能模块,基于IEC61499标准,通过事件与数据连接组成完整的功能块网络,便于分析控制器模块之间的失效影响机理;结合故障树与攻击树分析原理,提出一种由攻击事件到故障事件的转换方法;充分利用IEC61499功能块建模标准及连接规则,建立PLC安全一体化失效分析模型,具备以下两个优点:

(1)功能块可以由不同的编程语言进行开发,功能块的内置算法由开发者使用合适的语言实现,具有高复用性;

(2)在IEC61499标准下,可通过与XML文件格式的互相转换来实现不同型号设备间的互用,使得所有遵从IEC61499标准的软件工具所开发的功能块能够互相兼容,具有可移植性。将本发明提供的方法建立的一体化失效分析模块集成到Forte运行环境下,即可移植到不同的现场控制器设备,应用于不同场景的工业控制系统安全防护研究中。

因此,本发明提供的基于IEC61499的安全一体化失效分析方法,解决了在不同的工业控制场景中,PLC应用模块的复用性与移植性差的问题,有助于后续研究对PLC进行安全加固。

附图说明

图1是本发明实施例提供的基于IEC61499的一体化失效分析方法流程示意图;

图2是本发明实施例提供的基于IEC61499标准的PLC功能块模型;

图3是本发明实施例提供的故障攻击树的示例图;

图4是本发明实施例提供的一体化失效分析模型的功能块连接示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明实施例提供一种基于IEC61499的PLC安全一体化失效分析方法,如图1所示,包括以下步骤:

S1,根据PLC的硬件结构将其内部模块划分为多个基本功能块,依据IEC61499标准,构建PLC功能块模型。

具体地,根据PLC硬件结构划分内部模块,结合控制回路,依据IEC61499标准进行建模,构建PLC功能块模型,如图2所示。

进一步地,所述多个基本功能块包括:输入模块、输出模块、主控模块、通信模块和存储模块。

具体地,PLC内部模块划分为输入模块、输出模块、主控模块、通信模型和存储模块,除此五个模块以外,电源模块仅作为供电来源,拓展模块是由用户自定义设计的模块,不具有通用性,因此以由用户根据实际使用场景进行自定义设计。

进一步地,S1中,所述依据IEC61499标准,构建PLC功能块模型,包括:

基于IEC61499标准,分别对各所述基本功能模块以功能块的形式进行建模,再将各功能块通过事件流与数据流连接成功能块网络,得到PLC功能块模型。

具体地,S1包括以下子步骤:

S11在控制回路中,输入模块连接传感器,输出模块连接执行器,受控对象由实际场景决定;

S12基于IEC61499标准,采用Eclipse 4DIAC平台,分别对步骤(1)所述模块通过功能块的形式进行建模,包括外部接口及内部功能设计;

S13将上述功能块通过事件流与数据流连接成功能块网络,构建基于IEC61499的PLC功能块模型(即PLC控制器模型)。

其中,功能块的连接规则为:事件端口不能与数据端口互联;传入事件和数据的连接不需要来自同一功能块;同一事件的发出方只能与最多一个事件的接收方连接,同一事件的接收方只能与最多一个事件的发出方连接;同一数据的接收方只能与最多一个数据的发出方连接,同一数据的发出方可以与多个数据的接收方连接。

S2,定义功能安全事件,基于IEC61499标准构建故障树功能块;定义信息安全事件,基于IEC61499标准构建攻击树功能块。

具体地,定义功能安全事件与信息安全事件,基于IEC61499标准分别构建故障树功能块与攻击树功能块.

进一步地,S2中,所述定义功能安全事件,基于IEC61499标准构建故障树功能块,包括:

基于IEC61499标准,根据故障树分析方法及逻辑门原理,构建故障树分析功能块。

具体地,首先,定义功能安全事件:由于系统设计缺陷和不可靠性,系统中的组件会发生随机故障,从而可能导致PLC运行异常,这类事件被定义为功能安全事件。

然后,基于IEC61499标准,采用故障树分析方法,结合逻辑门的原理,即结合逻辑与门及或门,构建故障树分析功能块以进行故障分析,由事件驱动的状态机ECC图来描述功能安全事件之间的逻辑关系。

可以理解的是,PLC的故障攻击树模型为单调关联,仅由或门和与门组成。

所述定义信息安全事件,基于IEC61499标准构建攻击树功能块,包括:

基于IEC61499标准,根据攻击树分析方法及事件逻辑关系,构建攻击树分析功能块。

具体地,首先,定义信息安全事件:来自系统外部环境的主动信息攻击,通过PLC系统存在的漏洞,作用于具体的功能组件,发生与故障类似的失效事件,这类事件被定义为信息安全事件;

然后,基于IEC61499标准,采用攻击树分析方法,构建攻击树分析功能块以进行攻击分析,由事件驱动的状态机ECC图来描述信息安全事件之间的逻辑关系;攻击树分析功能块的输入为攻击事件,输出为基本事件,即攻击目标。

可以理解的是,功能块的执行控制功能由其内部的执行控制图实现,执行控制图由状态、转换和动作组成,可以被视作一个由事件驱动的状态机;

功能块的内置算法具体形式在IEC61499中没有规定,具体由开发者使用合适的编程语言实现。

S3,将所述故障树功能块、攻击树功能块与PLC功能块模型相连接,得到PLC安全一体化失效分析模块,以对PLC进行安全一体化失效分析。

具体地,根据由攻击事件到故障事件的转换关系,将步骤S2构建的功能块与PLC功能块模型相连接,组成一体化失效分析模块。

进一步地,S3包括:

S31,以攻击树功能块的目标事件作为故障树功能块的基本事件,连接所述故障树功能块与攻击树功能块。

具体地,通过“攻击树的目标事件是故障树的基本事件”的关系,连接故障树功能块与攻击树功能块。

S32,对所述PLC功能块模型进行拓展,增加FAULT事件输入接口及Fault数据输入接口。

具体地,拓展步骤S1的创建的PLC功能块子功能块,增加FAULT事件输入接口以及Fault数据输入接口,FAULT事件及Fault数据二者代表失效事件以及修改数据,并相互关联;

S33,将所述故障树功能块与攻击树功能块与拓展后的PLC功能块模型连接,形成一个IEC61499应用,并将该应用封装为一个完整的PLC安全一体化失效分析模块。

具体地,将步骤S31与步骤S32创建拓展的功能块相连,形成一个IEC61499应用,并将该应用封装为一个完整的PLC安全一体化失效分析模块。

可以理解的是,一体化失效分析模块的执行规则为:所有功能块的执行控制功能由其内部的执行控制图实现,包括状态、转换和动作;功能块的内置算法具体形式在IEC61499中没有规定,具体由开发者使用合适的编程语言实现。

本发明提供的基于IEC61499的PLC一体化失效分析方法,将PLC控制器分为不同的功能模块,基于IEC61499标准,通过事件与数据连接组成完整的功能块网络,构建PLC功能块模型;通过故障树与攻击树分析方法,建立相应的功能块,并通过IEC61499功能块连接规则将信息安全事件与功能安全事件相关联,组成PLC一体化失效分析模块;其流程图如图1所示。以下结合一个优选实施例,对上述实施例中涉及内容进行进一步说明。

步骤1:根据PLC硬件结构划分内部模块,结合控制回路,依据IEC61499标准进行建模,构建PLC功能块模型。

步骤1.1:PLC内部模块划分为输入模块、输出模块、主控模块、通信模型和存储模块;

步骤1.2:在控制回路中,输入模块连接传感器,定义一个输入数据接口SensorData,输出模块连接执行器,定义一个输出接口ActuatorData;

步骤1.3:基于IEC61499标准,采用Eclipse 4DIAC平台,分别对步骤1.1所述模块通过功能块形式建模,具体建模过程如下:

(a)输入模块定义为InputFB:

InputFB上部分是事件输入输出流,有两个事件输入:初始化输入事件INIT、使能事件ENABLE;两个事件输出:初始化输出事件INITO、数据输入事件INPUT。下部分是数据输入流,有两个数据输入:事件输入质量QI1、连接传感器的通道号Channel;三个数据输出:事件输出质量QO1、从传感器读取的数据SensorData、监视模拟输入的数据状态Status1;

(b)输出模块定义为OutputFB:

与InputFB不同,OutputFB有上部分三个事件输入:初始化输入事件INIT、使能事件ENABLE、数据输出事件OUTPUT;一个事件输出:初始化输出事件INITO。下部分有三个数据输入:事件输入质量QI2、输出给执行器的数据ActuatorData;两个数据输出:事件输出质量QO2、监视模拟输出的数据状态Status3;

(c)主控模块定义为ControlFB:

ControlFB上部分有三个事件输入:初始化输入事件INIT、控制器运行事件EX、接收事件RECEIVE;三个事件输出:初始化输出事件INITO、控制完成输出事件EXO、循环事件CYCLE。下部分以PID控制器为例,有六个数据输入:过程变量PV、设定值SP、比例常数KP、积分常数TI、微分常数TD、采样时间SimpleTime;两个数据输出:输出值OUT、监视输出状态Status2;

(d)通信模块定义为CommunicationFB、存储模块定义为StorageFB:

与(a)、(b)、(c)不同的,CommunicationFB额外添加一个事件输入:与上位机连接事件CONNECT,以及一个事件输出:数据传输事件TRANSMIT;StorageFB额外添加一个事件输入:数据存储事件STORE。

步骤1.4:将上述功能块通过事件流与数据流连接成功能块网络,构建基于IEC61499的PLC功能块模型,如图2所示。

在功能块连接过程中,要符合IEC61499的功能块连接规则:事件端口不能与数据端口互联;传入事件和数据的连接不需要来自同一功能块;同一事件的发出方只能与最多一个事件的接收方连接,同一事件的接收方只能与最多一个事件的发出方连接;同一数据的接收方只能与最多一个数据的发出方连接,同一数据的发出方可以与多个数据的接收方连接。

基于上述连接规则构建的PLC功能块模型,其工作流程为:

(a)在数据输入端更新与即将到达的事件输入相关联的所有数据变量,并将它们的状态变更为可用;

(b)在事件输入完成后,对所有该事件关联的数据进行采样,并触发功能块的执行控制功能;

(c)执行控制功能依据功能块的当前状态以及输入的事件,触发状态转移;

(d)新状态下对应的功能即内置算法被执行,更新与新状态下的输出事件所关联的输出数据;

(e)算法执行完成后,执行控制触发其对应的输出事件;

(f)与输出事件相关联的数据被输出。

步骤2:定义功能安全事件与信息安全事件,基于IEC61499标准分别构建故障树功能块与攻击树功能块;

步骤2.1:结合故障树分析方法定义功能安全事件,由于系统设计缺陷和不可靠性,系统中的组件会发生随机故障,从而可能导致PLC运行异常,这类事件被定义为功能安全事件;

定义一个故障树FT

使用故障树分析系统安全问题时,首先要找到一个系统最不希望发生的事件,如系统的重要功能故障、设备使用安全,作为故障树的顶事件,即分析目标;然后按照系统的结构和相互关系,由上至下,逐层分析引起顶事件的各种因素与原因,并使用逻辑门建立逻辑关系,完成故障树模型;

基于上述理论提出以下两个定义:

(1)顶事件TOP

(2)基本事件BE

步骤2.2:基于IEC61499标准,结合逻辑门的原理,构建故障树分析功能块,由事件驱动的状态机ECC图来描述功能安全事件之间的逻辑关系;

PLC的故障树一般均为单调关联的,所谓单调关联的故障树意味着它仅由或门和与门组成,且所有的底事件可以包含重复事件,但这些事件都是相互独立的;

基于IEC61499标准,定义逻辑与门功能块LOGIC_AND,仅当所有输入事件同时发生时,输出事件才发生;定义逻辑或门功能块LOGIC_OR,至少一个输入事件发生时,输出事件才发生;收到事件输入R则重置当前接收过程;

步骤2.3:结合攻击树分析方法定义信息安全事件,来自系统外部环境的主动信息攻击,通过PLC系统存在的漏洞,作用于具体的功能组件,发生与故障类似的失效事件,这类事件被定义为信息安全事件;

攻击树一般用于描述信息系统的安全威胁和可能的实现信息安全攻击的过程。攻击树具有多级节点,包括根节点和叶节点。根节点表示被攻击的目标,叶节点表示达成攻击目标的方法,在根节点与叶节点之间的节点代表了攻击的中间状态或者子目标;

定义G={g

定义O={o

定义V={v

定义AS=(as

那么一个攻击树AT

其中,g

根据以上定义,每个攻击树都只有一个最终目标,在断言、操作和脆弱点之间的关系通过逻辑门建立起来,其中的限制有:

(1)最顶的逻辑门的输出必须是攻击树的最终目标;

(2)除了最顶的逻辑门,其他逻辑门输出必须为一个断言;

最终构建的故障攻击树示例如图3所示,具体元素定义如下表1所示;

表1故障攻击树元素定义

步骤2.4:基于IEC61499标准,构建攻击树分析功能块,由事件驱动的状态机ECC图来描述信息安全事件之间的逻辑关系,输入攻击事件,输出基本事件(即攻击目标)。

步骤3:通过由攻击事件到故障事件的转换关系,将步骤2构建的功能块与拓展后的PLC功能块模型相连接,组成一体化失效分析模块。

步骤3.1:通过“攻击树的目标是故障树的基本事件”的关系,连接故障树功能块与攻击树功能块;

攻击树的最终目标与故障树的事件的唯一不同就是它们的来源。攻击者可以利用系统故障触发最终的故障树顶事件,也就是说一个攻击树的目标与故障树中的事件是一致的;

步骤3.2:拓展PLC功能块模型,增加FAULT事件(即故障事件)输入以及Fault数据(即故障数据)输入,二者代表失效事件以及修改数据,并相互关联;

步骤3.3:将步骤3.1与步骤3.2创建的功能块相连,形成一个IEC61499应用,并将该应用封装为一个完整的PLC安全一体化失效分析模块;

最终,如图4所示为一体化失效分析模型的功能块连接示意图,由攻击树功能块输入目标事件,输出攻击事件,与故障树功能块的基本事件相连接,最终输出顶事件至拓展的PLC功能块模型;

本方法基于IEC61499标准提出一种由攻击事件到故障事件的转换方法,攻击者可以利用系统故障触发最终故障树的顶事件,并对PLC内部的功能模块造成攻击渗透影响。本方法实现了对PLC内部功能模块的功能安全与信息安全一体化失效分析,为后续PLC的安全防护提供理论支撑。

本发明实施例提供一种基于IEC61499的PLC安全一体化失效分析系统,包括:计算机可读存储介质和处理器;

所述计算机可读存储介质用于存储可执行指令;

所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行如上述任一实施例所述的方法。

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行如上述任一实施例所述的方法。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术分类

06120116576178