嵌入式系统安全性分析概述

2017-03-22 22:23蔡舒祺
电子技术与软件工程 2017年3期
关键词:安全性分析嵌入式系统可靠性

蔡舒祺

摘 要近年来,随着嵌入式系统在诸如航空航天、核能、交通等安全攸关领域的广泛应用,使得保障系统安全性成为系统工程领域的研究热点之一。本文在综合分析国内外研究的基础上,对系统安全性概念进行了界定,并区分了安全性与信息安全、可靠性之间的差异。然后,在此基础上对当前较为常用的系统安全性分析方法进行了分类与概述,并对当前嵌入式系统安全性分析的研究挑战进行归纳与总结。

【关键词】系统安全性 嵌入式系统 可靠性 安全性分析

1 引言

近年来,随着嵌入式系统大规模应用于航空航天、核能、交通等领域, 因嵌入式系统失效而导致的财产损失、环境破坏以及人员伤亡等事故已屡见不鲜。例如,2009年法国航空公司AF447航班的A330-200飞机由于测速仪结冰,给出了飞行控制系统错误的攀升指示,而系统中未设置高度值上限,最终导致飞机在大西洋上坠毁;同年,一架土耳其航空公司波音737-800型飞机在机场跑道进近期间,由于无线电高度值错误使得飞机失速而机载系统缺乏“处理失速情况”的程序,导致飞机坠毁。由此可见,嵌入式系统的安全性问题越来越重要,对系统进行有效的安全性分析已经迫在眉睫。

本文针对嵌入式系统安全性开展研究,在综合分析国内外研究的基础上。首先对系统安全性概念进行了阐述,并分析了安全性、信息安全以及可靠性这几个相关概念之间的差异。然后在此基础上对当前较为常用的几种系统安全性分析方法进行了简单介绍,并归纳总结出了当前嵌入式系统安全性的研究挑战,最后对全文进行了总结。

2 系统安全性概述

谈到安全性,就不得不提到Safety和Security,这两个单词中文都翻译成安全,但两者的含义却存在着一定的差异。一般而言,Safety强调的是一个系统、组织或个人按照自己的机制正常运转的“稳定状态”;而Security则是由恶意的操作者通过故意的动作而导致系统进入危险状态,其本质区别是操作者是否是故意的。更一般的说,Safety更加关注的事系统本身功能,而Security则关注的是与外界进行通讯信息而产生的安全性。因此,为了对两者进行区分,通常将Safety翻译成功能安全,而将Security翻译成信息安全。在没有特别说明的情形下,本文所提的安全性均指功能安全。

为了进一步区分这两个概念,本文下面將以工业控制领域的IEC61508标准和IEC62443标准对Safety和Security的定义为例进行具体论述。

首先,介绍功能安全(Safety),在IEC61508中将其定义为:“与受控设备和受控设备控制系统有关的整体的组成部分,它取决于电气、电子、可编程安全相关系统、其它技术安全相关系统和外部风险降低设施功能的正确行使。”具体而言,功能安全防止的是与安全相关的系统或设备因功能失效所导致的危险。以锅炉控制系统为例,“当锅炉压力达到危险值时应当关闭炉火”这是锅炉控制系统的一项基本功能,如果这一功能失效(即当锅炉内的压力达到危险值时,不能及时关闭炉火,而是让其持续燃烧),则会使得锅炉发生爆炸,从而可能引发人员伤亡等危险。在这种情况下,安全性主要依赖于系统能否执行正确的功能。类似于这种安全性依赖于系统功能的情形,就称之为“功能安全”。

接下来进一步介绍信息安全(Security),在IEC 62443中对信息安全的定义主要包括以下五点内容:

(1)为了保护系统而采取的相应措施;

(2)由建立和维护保护系统的措施所得到的系统状态;

(3)能够免于对系统资源的非授权访问和非授权或意外的变更、破坏或者损失;

(4)能够确保未经授权的人员和系统无法修改软件及其数据,同时也无法对系统功能进行修改,但是必须保证获得授权的人员能够对系统进行正常访问,并对软件及数据进行修改;

(5)能够有效地阻止非法或有害的入侵,或者对其有效的操作进行干扰。

此外,安全性也不同于可靠性(Reliability)。可靠性是指系统或设备在规定的条件以及规定的时间内完成规定功能的能力。也就是说,可靠性评估的是系统在时间间隔 内运行时正常工作的概率。在大多数情况下,系统的可靠性和安全性是一致的,系统不可靠会导致系统不安全,当系统发生故障时,不仅会影响系统功能的实现而且有可能会导致安全性事故的发生,从而造成人员伤亡或财产损失。例如,当飞机发动机发生故障时,不仅会对飞机的正常飞行产生影响,而且还可能会导致飞机因动力不足而坠落,造成机毁人亡的后果。因此,提高系统可靠性不仅可以保证系统功能的实现,而且可以提高系统的安全性。

但是,可靠性又不完全等同于安全性。其根本区别是两者的着眼点不同,可靠性着眼于系统功能,关注于对系统目标的实现;而安全性着眼于防止事故的发生,避免人员伤亡和财产损失。可靠性研究故障发生以前直到故障发生为止的系统状态,而安全性则侧重关注于故障发生后,故障对系统的影响。

正是因为系统的可靠性与安全性之间存在着密切的关联关系,所以在系统安全性研究中广泛利用和借鉴了可靠性研究中的一些理论和方法。系统安全性分析就是以系统可靠性分析为基础的而进行的。

3 常用的系统安全性分析方法

对于一个复杂嵌入式系统来说,其安全性通常需要通过一系列方法和技术来保证。目前,系统安全性分析方法有很多种,可以应用于不同的系统安全分析过程。这些方法可以按照不同的标准与方式进行分类,例如按照数理方法可以分为定性分析与定量分析;按照逻辑方法可以分为归纳法与演绎法。

归纳法是从原因归纳出结果,即从故障出发分析可能导致的事故或系统故障,再来确定危险源;演绎法则是从结果出发追溯原因,即从事故或者系统故障出发查找与该事故或系统故障有关的危险因素。相比较而言,演绎法可以把注意力集中在有限的查找范围内,提高工作效率,而归纳法则可以无遗漏地分析与辨识系统中的所有危险源。实际工作中,这两类方法通常被结合使用,以便充分发挥各类方法的优点。

3.1 归纳方法

在系统安全性分析当中,归纳方法主要应用表格式的方法用于发现危害或者特定操作条件或失效的危害结果。目前,比较有代表性的归纳形式的安全性分析方法主要包括失效模式与影响分析(Failure Mode and Effects Analysis,简称FMEA)、危害及可操作性研究(Hazard and Operability studies,简称HAZOP)以及事件树分析(Event Tree Analysis, 简称ETA )。

3.1.1 失效模式与影响分析

失效模式与影响分析是一种经典的危害分析技术,它是20世纪40年代由美国武装部队首次提出的,之后在诸如航空航天等领域得到了广泛使用。

FMEA是一种自底向上的分析技术,它适用于任何系统或设备,也可以用于任何所需的系统设计层次,如子系统、组件、单元或部件。但一般而言,FMEA主要用于组件或单元级层次分析,因为该层次中的单个嵌入式部件的失效率更容易获得。FMEA的结果被记录在了一个FMEA表格中。FMEA表可以假设有几种不同的形式。一个FMEA表通过不同的实体进行构造,每个实体记录了与给定系统故障的影响信息。当FMEA用于支持系统安全和危害分析时,应当至少包含:失效模式、失效模式对系统的影响、失效导致的系统层危险、危险对事故影响的后果、失效模式和/或危险的原因、失效模式和检测的方式、建议(如可采用的安全性要求或规范)以及所确定危险引起的风险等内容。

3.1.2 危害及可操作性研究

HAZOP是一种识别与分析系统中的危险以及运行问题的技术,是一种高度组织化、结构化和条理化的过程,可以用于对系统的危险进行识别与分析,其应用可以从系统的方案认证到退役整个生命周期。HAZOP最早出现在化学领域,于20世纪60年代由ICI首次提出的,HAZOP的目标是研究处于分析中系统操作的基本集合,考虑正常操作下可能的偏差,并且鉴别出他们潜在的危害性影响。HAZOP是以识别出被称为节点的标识符开始的。每个节点都具有一个相关联的过程参数和一个设计好的意图,就是规定了操作条件,即这个过程必须以正确的操作发生。当今HAZO已经被应用于制造工业(如化工、石化和核工业等)以及航空航天等其他领域。

3.1.3 事件树分析

事件树分析是一种用于在可能的事故场景中识别和评价在某个初始时间发生后的时间序列的分析技术,ETA实际上是一种二元决策树,它是在WASH-1400核电站安全性研究过程中提出并发展起来的一种安全性分析技术。当时WASH-1400研究人员发现可以利用FTA进行核电站的安全性分析,但是故障树结果十分庞大,不利于使用,因此,他们在保留FTA的基础上提出了ETA,并利用ETA將分析结果压缩成一个更适于管理的图形。

ETA以一个初始时间开始,一般是位于图的左边,并且从左向右开始执行,以更深层次的事件进行分支,这些更深层次的时间在分析的过程中被识别,并决定系统可能的结果。典型地是使用二权分支,也就是说,可能是事件,也可能是它的补充物会发生(例如,一个子系统的成功或失败应该介入到那些树的前层所识别的事件中)。树会一直延伸下去,直到系统中出现了预期的结果,被称为结束事件或结果场景。与FTA相比,ETA中事件会对处于分析中的系统(例如,阀门的开关)或错误条件(例如,没有关闭的阀门)做出对应的预期操作。每个事件都会在图中产生一个分支,一个完整的树包含有2N个分支,N是事件的个数。由于这个原因,在分析的过程中都必须要考虑正常和危险的操作,对于复杂的系统来说,事件树会产生更大的树。

3.2 演绎方法

演绎形式的安全性分析方法比较有代表性的包括可靠性框图(Reliability Block Diagram,简称RBD)和故障树分析(Fault Tree Analysis,简称FTA)。

3.2.1 可靠性框图

可靠性框图是系统单元及其可靠性意义下连接关系的图形表达,表示单元的正常或失效状态对系统状态的影响。与结构连接图不同,RBD是利用互相连接的方框来显示系统的失效逻辑,分析系统中每一个成分的失效率对系统的影响,以此对系统整体的可靠性进行评估。RBD通过方框和连线描述了系统各个部分发生故障时对系统功能特性的影响。它与部件之间的顺序无关,仅仅反映了各个部件之间的串并联关系。

3.2.2 故障树分析

故障树分析(FTA)是在二十世纪六十年代,由贝尔实验室首次提出的,并且随后由波音公司所扩展使用与推广。目前已成为工业界应用最为广泛的安全性分析方法之一。

FTA以系统故障作为安全性分析对象,采用自顶向下的逻辑图演绎方法,对可能引起故障现象的各种因素(如:软硬件、环境、人为因素等)进行分析,从而确定各种可能导致故障发生的原因,并形象地表示出故障与故障原因之间的逻辑关系,进而通过定性分析和定量计算,找出系统的设计错误、安全缺陷以及薄弱环节,并采取纠正措施,提高系统可靠性和安全性。

4 嵌入式系统安全性分析的研究挑战

近年来,随着计算机技术的发展,嵌入式系统在航空航天、核能、交通等安全攸关领域的应用越来越广泛,而且,由于软件功能的日益强大,软件正在逐步取代部分硬件的功能,使得嵌入式系统的安全性分析出现了新的挑战。

4.1 嵌入式系统规模大、复杂度高的特点

以航空领域为例,从第二代飞机起,通过软件实现的功能随着每一代飞机而翻番。对于第三代和第四代飞机来说,软件已经成为飞行控制、通信导航、火力控制以及维修保障的核心(如军机F-22飞机上嵌入式系统代码高达300万行,F-35机载和地面的嵌入式系统代码高达1500万行)。这表明越来越多的安全攸关系统逐渐成为软件密集型系统。一方面软件的大量应用使机载装备性能有了很大的飞跃,有效提高了机载装备的精确性、灵活性和快速反应能力,另一方面嵌入式系统复杂度的快速增加使得保证系统安全性出现了新的挑战。

4.2 与环境交互复杂的特点

如今,诸如航空航天、交通等安全攸关领域的嵌入式系统,通常都涉及到复杂的环境交互,使得传统的安全性分析方法存在不足,无法考虑这些复杂的环境因素。具体而言,如今软件的功能越来越强,大量的人工操作已经被软件所取代,使得现在的嵌入式系统越来越智能化,因此,系统需要感知的外界环境也越来越复杂,如何综合考虑这些外界环境因素进行系统的安全性分析是当前研究的难点。

此外,功能安全与信息安全的深度融合,也为系统安全性分析带来了新的挑战。

5 总结

本文针对嵌入式系统的安全性问题进行相关论述,明确了安全性的基本概念,并区分了其与信息安全、可靠性之间的差异。然后在此基础上对当前国内外应用比较成熟的系统安全性分析方法进行了简单介绍,最后归纳总结出了目前嵌入式系统安全性分析的挑战。

参考文献

[1]黄志球,徐丙凤,阚双龙,胡军,陈哲.嵌入式机载软件安全性分析标准、方法及工具研究綜述[J].软件学报,2014,25(02):200-218.

[2]Learmount D.Never Again.Flight International.2012,182:32-35.

[3]Afshar A,Majid Hajyhosseinloo MD, Ali Eftekhari,MD.A Report of the Injuries Sustained in Iran Air Flight 277 that Crashed near Urmia, Iran.Archives of Iranian medicine, 2012,15(05):317-319.

[4]IEC 60812:Analysis techniques for system reliability.In:Proc.of the Failure Mode and Effect Analysis (FMEA).Intl Electrotechnical Commission,1991.

[5]IEC 61822:Hazard and operability studies (HAZOP studies)-Application guide.Intl Electrotechnical Commission,2001.

[6]Rausand M,Hoyland A.System Reliability Theory:Models, Statistical Methods,and Applications.2nd ed.,New York:Wiley InterScience,2003.

[7]IEC 61078:Analysis techniques for dependability-Reliability block diagram method.Intl Electrotechnical Commission,1991.

[8]Cha S,Yoo J.A safety-focused verification using software fault trees.Future Generation Computer Systems,2012,28(08):1272-1282.

作者单位

南京师范大学附中江宁分校 江苏省南京市 210003

猜你喜欢
安全性分析嵌入式系统可靠性
可靠性管理体系创建与实践
5G通信中数据传输的可靠性分析
系统安全性分析技术在空空导弹中的应用
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
云环境中数据安全及访问控制模型研究
民用飞机安全性分析研究
基于可靠性跟踪的薄弱环节辨识方法在省级电网可靠性改善中的应用研究
可靠性比一次采购成本更重要