基于STPA的防护救生系统软件安全性分析方法研究

2022-02-01 13:12李英武冯友权
中国新技术新产品 2022年21期
关键词:控制结构安全控制分析方法

李英武 冯友权 李 维

(航宇救生装备有限公司电子工程部,湖北 襄阳 441003)

0 引言

对安全性要求较高的系统软件,进行软件安全性分析并得出软件安全性需求,是非常重要的一项工作[1],在软件安全性分析过程中,国内外已经有不少分析方法。以FMEA[2]分析方法为例,先针对整个软件和每个软件组成部件的失效或故障模式进行分析,再针对每种失效模式制定避免其发生失效的措施,即软件的安全性需求。

但是,对功能结构较为复杂、功能层次和部件数量较多、部件之间耦合度较高、无法对各个部件进行独立分析的复杂软件,例如航空防护救生系统[3]软件,传统的软件安全性分析方法由于功能组件数量庞大,分析工作量大,且该方法关注组件本身的失效或故障模式,往往容易遗漏部件之间复杂交互产生的失效模式或故障现象,从而无法得到全面、理想的软件安全性分析效果。

因此,该文的研究基于STPA的防护救生系统软件安全性分析方法,着眼于各部件之间的控制过程,首先分析系统级危险及设计约束,定义系统的控制结构,然后根据控制结构模型识别系统的不安全控制行为,并分析其产生系统危险的原因,最终导出软件安全性需求。

1 STPA方法

STPA分析方法[4]提出了一种针对系统中的控制过程进行分析的方法,以寻找导致事故发生的不安全控制行为,以及不安全控制行为产生的原因,从而找到系统设计中的控制缺陷,制定消除这些缺陷应采取的安全性措施。

STPA分析方法的步骤如图1所示:1)定义分析的目的。定义分析的目的需要确定防止损失的类型,例如人员伤亡、安全破坏、隐私侵犯等。此外,还要确定分析对象的范围,即系统属性、系统边界等。2)建立1个控制结构的系统模型。控制结构是指用建模的方式,将系统描述为1组包括控制与反馈信息的回路,以便于捕获模块间的功能关系和交互作用。3)分析控制结构中的控制行为,识别不安全的控制行为,并分析它们是如何导致第一步中定义的损失的。4)确定系统中发生不安全控制的原因。一般通过创建致因场景来解释。①分析不正确的反馈、不充分的需求、设计错误、部件故障等导致不安全控制行为的原因。②虽然提供了安全控制措施,但是没有执行,因此导致损失。

图1 STPA分析方法的步骤

2 防护救生系统及软件概述

航空防护救生系统是指用于飞行人员及乘员从失事的航空器中实现救生的设备系统,其中的典型产品是火箭弹射座椅[5],它是飞行员在危急关头采取紧急措施,保障生命安全,实现逃生的重要装备。除机械结构以外,火箭弹射座椅实现弹射救生功能的核心部分是电子式程序控制器。

电子式程序控制器监控运行软件在电子式程序控制器[6]中运行,主要功能是采集、监测系统多种不同的弹射离机参数以及弹射出舱后系统飞行参数,根据系统内嵌多模式数字弹射控制模型,实时地自动选择弹射控制程序,控制各类机构的工作时间,从而实现多模式的控制方式。

3 基于STPA的防护救生系统软件安全性分析

3.1 总体思路

该文以航空防护救生系统安全苛刻性软件——电子式程序控制器监控运行软件的简化版为案例(以下简称该案例),利用STPA的理论和分析方法,按照STPA的分析步骤,对其进行安全性分析。该案例的功能如下:软件检测到弹射启动信号后,根据接收到的传感器的数据,判定并选择系统控制模式,根据控制模式规定的控制逻辑,适时向点火机构输出控制信号。

3.2 定义分析的目的

根据图1,采用 STPA 方法进行安全性分析,定义分析的目的,如图2所示。

图2 定义分析的目的

该案例作为火箭弹射座椅上的救生装置控制软件,在飞行员遇到危险时,可以实现救生功能。因此,如果发生安全性问题,将导致救生失败,或者在不该启动救生的情况下意外启动救生,将造成的损失包括飞行员伤亡、飞机及机上设备损坏。

根据该案例的功能进行分析,识别出系统级的危险主要表现在飞机正常飞行或地面维护时弹射救生功能意外触发、飞行员遇到危险需要弹射救生时弹射救生功能失效导致人员伤亡或系统损坏,见表1。

表1 该案例的系统级危险列表

为了防止系统级的危险发生,最终避免造成飞行员伤亡、飞机及机上设备损坏的损失,根据该案例的系统级危险,进一步识别出系统级的约束见表2。

表2 该案例的系统级约束列表

3.3 对控制结构建模

分层控制结构[7]是由控制和反馈回路组成的系统模型。建立控制结构可以清晰地分析整个系统内部的控制行为。

分层控制结构由控制和反馈信息组成,一般来说,控制器可以通过控制动作来控制某些模块,实现控制过程。控制算法代表了控制器的行为过程,它决定了要提供的控制动作。控制器还存在过程模型,表示控制器内部用于判断和处理的逻辑。通过监测控制过程的反馈信息,可以对过程模型进行优化改进。

在该案例中,涉及的控制器(控制模块)包括弹射启动开关、传感器、弹射启动信号监测模块、数据接收处理模块、控制模式判定及输出控制模块以及点火机构。根据该案例的功能要求,结合前面识别出的系统级约束,可以将该案例的控制结构分为4层。

该案例的功能开始执行的起点是弹射启动开关工作,输出信号;同时,传感器也是该案例的数据输入控制器,因此,将弹射启动开关和传感器放在第一层。

弹射启动开关信号输入给弹射启动信号监测模块,用于开关信号判断;数据接收处理模块接收到传感器的数据后,对数据进行处理和传输,因此,将弹射启动信号监测和数据接收处理模块放在第二层。

系统接收到弹射启动信号判定结果和数据接收处理模块传递的传感器数据后,进入控制模式判定及输出控制模块,对系统的控制樾进行判定,并按规定的时序和算法,输出控制信号,因此,将控制模式判定及输出控制模块放在第三层。

系统输出拉制信号给点火机构,由点火机构执行点火控制,实现救生功能,因此,将点火机构放在第四层。如图3所示。

图3 该案例的分层控制结构图

3.4 识别不安全的控制行为

不安全控制行为是指在特定的环境和最坏的情况下会导致危险的控制行为。控制行为有4种不安全的类型[8]:1)不提供控制行为导致危险。2)提供错误控制行为导致危险。3)提供的安全控制行为太早、太晚或顺序错误。4)控制行为持续时间过长或过短(对连续控制行为,而非离散控制行为)。

确定了不安全控制行为后,就可以根据它们提出每个控制行为的控制约束。即为防止不安全控制行为的发生需要满足的控制动作。

不安全控制行为分析的输入和输出如图4所示。

图4 控制行为分析

在该案例中,根据前面分析的系统级的危险,以及该案例的分层控制结构,可能导致系统危险的不安全控制行为主要发生在弹射启动开关、传感器和控制模式判定及输出控制模块,对以上模块分别按4种不安全控制行为类别进行识别分析,并定义控制约束,具体结果见表3。

表3 该案例的不安全控制行为及控制约束

3.5 确定损失的致因场景

损失的致因场景用来描述可能导致不安全控制行为和危险发生的因素[9]。致因场景识别的输入和输出如图5所示。

图5 致因场景识别概览

根据以上方法和步骤,针对该案例的不安全控制行为,识别出该案例的致因场景见表4。

表4 该案例的致因场景

3.6 导出软件安全性需求

根据该案例的需求描述,按照STPA的分析方法和步骤,该案例的软件安全性分析已全部完成。然而,采用STPA方法对安全苛刻性软件进行安全性分析,最终目的是为了获取软件安全性需求。因此,在以上STPA安全性分析工作完成后,还应该结合分析结果,导出该案例的软件安全性需求:1)根据S-1、S-2、S-4、S-6可导出的软件安全性需求,对软硬件进行自检测,识别并消除信号采集电路、数据传输接口故障对系统产生的影响。2)根据S-1、S-2可导出的软件安全性需求,对启动信号进行真实性判断,采用滤波的方式去抖,防止控制器误工作。3)根据S-3、S-5、S-7可导出的软件安全性需求,禁用死循环,软件运行过程中所有需要等待、判断的功能都设置时限,防止因死循环引起的弹射救生功能失效。4)根据S-7可导出的软件安全性需求,合理设置输出控制的持续时间,防止由于输出控制时间不足导致控制电路无法正常工作。

4 结语

该文提出了一种基于STPA的软件安全性分析方法,着眼于各部件之间的控制过程,首先分析系统级危险、设计约束和控制结构,然后识别不安全控制行为及其导致系统危险的原因,最终导出软件安全性需求。

由于STPA侧重于对软件系统的控制结构进行建模分析,通过识别部件之间的不安全控制行为,导出避免不安全控制行为发生的软件安全需求,其更适用于功能结构复杂的系统,分析的对象不仅包括软件各控制模块内部处理过程的不安全行为,也覆盖了各控制模块之间的不安全控制行为,因此,相对传统的软件安全性分析方法,其分析的结果更全面。

由于STPA分析方法在结构复杂、控制交互较多的系统中具有更好的表现和分析效果,未来可与传统的软件安全性分析方法相结合,将其推广应用于其他高安全性系统或软件的安全分析过程中。

猜你喜欢
控制结构安全控制分析方法
机械设计自动化设备安全控制研究
基于EMD的MEMS陀螺仪随机漂移分析方法
几种防空导弹自动驾驶仪的研究分析
一种角接触球轴承静特性分析方法
中国设立PSSA的可行性及其分析方法
基于ATO控制结构的地铁列车智慧节能技术
SIL定量计算评估方法在BPCS中的应用
生成语法中的控制结构研究述评
核安全设备疲劳分析方法与步骤
热成像技术在食品质量安全控制中的应用