软件安全性分析中故障树方法的应用(1).docx

上传人:牧羊曲112 文档编号:1961779 上传时间:2022-12-28 格式:DOCX 页数:10 大小:125.52KB
返回 下载 相关 举报
软件安全性分析中故障树方法的应用(1).docx_第1页
第1页 / 共10页
软件安全性分析中故障树方法的应用(1).docx_第2页
第2页 / 共10页
软件安全性分析中故障树方法的应用(1).docx_第3页
第3页 / 共10页
软件安全性分析中故障树方法的应用(1).docx_第4页
第4页 / 共10页
软件安全性分析中故障树方法的应用(1).docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《软件安全性分析中故障树方法的应用(1).docx》由会员分享,可在线阅读,更多相关《软件安全性分析中故障树方法的应用(1).docx(10页珍藏版)》请在三一办公上搜索。

1、软件安全性分析中故障树方法的应用 故障树分析法(FTA)是硬件可靠性、安全性分析的传统技术工具20世纪80年代,软件的可靠性和安全性 开始成为科技界关注的课题,为了适应软件安全性分析的需要,故障树分析法被移植到软件这个新领域.。经过20年不断的应用和创新,现在软件故障树分析已经成为软件安全性分析的重要手段并简称为SFTA软件故障树 分析极具应用潜力,在软件开发的早期,可以用故障树分析来确定软件的安全要求,进入概要设计、详细设计设计和实现阶段,可以对故障树加以扩充,继续进行更深入的分析故障树分析法对于硬一软件复合系统的安全性分析尤为有效,分析人员可用它分析程序产生安全事故的各种原因,分析系统任何

2、部分发生的失效,分析硬件、软件和操作员的失误,并可以识别潜在的、复杂的失效模式。SFTA涉及的内容十分丰富,受篇幅限制,本篇文章介绍的是SFTA的基本框架和方法。1 故障树的逻辑关系 a. 逻辑或门设x1, x2 表示两个不同的事件,如果两个事件中至少有一个事件发生便能导致另一个事件x3发生,则称这种关系为逻辑或门关系,相应的布尔代数式为 ( 1 )其逻辑图见图1 b.逻辑与门事件x1和x2必须同时发生,x3才能发生,这种关系称为逻辑与门关系,相应的布尔代数式为 (2) 其逻辑图见图2 c. 逻辑否定 逻辑否定表示同原命题相反,用x1 表示事件发生,则其相反命题事件不发生用x1 表示,在分析逻

3、辑否定关系时经常用到德莫根定理 (3) (4)进行故障树分析需要绘制故障树图故障树图类似于一棵倒立的树树的根部位于图的上方,代表需要分析的危险事件(或关键性失效)事件,从顶向下再层层衍生出许多分支,形成了若干的分支点,这些分支点代表了危险事件形成过程中的中间事件,分支的终点,类似于树叶,代表了可能导致危险事件发生的基本事件为适应绘制故障树图的需要,在故障树分析法发展过程中,形成了一套可靠性工程界公认的图形符号标志软件的故障树分析法的思路与硬件故障树分析法基本相同,因此这套源于硬件故障分析的图形符号,也为软件分析所采用感兴趣的读者可从各种硬件FTA的资料中找到,本文不再赘述。2 危险分析 危险分

4、析是进行系统安全分析必须采取的第一个步骤,也是故障树赖以建立的必要前提危险分析的目的是确定系统可能出现的各种不安全状态(或关键性失效状态),从安全的角度确定哪些失效是可以容许的,确定哪些失效是不可容许的,确定在危及安全的失效发生或可能发生时,怎样使系统处于失效一安全状态的措施通常系统可能由于以下的原因而进入不安全状态:(l)硬件部件失效;(2)系统部件接口出现的问题;(3)操作中的人为错误;(4)环境应力;(5)软件控制错误使系统处于不安全状态的软件控制错误有以下五种类型:(1)不能执行某一要求的功能,这个功能很可能从来没有执行过或者是在要求执行时没有反应;(2)执行了一种非要求的功能,即产生

5、了一个错误的回答或者回答的时机和环境不恰当,例如偶然地、过早地或过迟地启动了传动机构,或者未能在要求的时间停止某项操作(3)顺序问题上的错误;(4)不能识别某些需要采取改正措施的危险条件;(5)对于某些危险条件产生了错误反应在对系统的软件进行危险分析时,不仅应该考虑软件的控制错误,而且必须研究软件和系统其他单元的接口有些软件的控制动作只有在系统的其他元件失效时或者在异常的环境中才会使系统出现不安全状态在对系统的软件进行危险分析时,还必须把操作者的因素考虑在内要仔细地考虑控制系统中的人机接口给操作者提供系统当前状况的信息是保证系统安全运行的一个必要措施例如飞行着陆软件的安全性能,必须达到飞行员要

6、求的标准,否则飞行员宁可人工操作,而不愿冒险去使用自动着陆系统然而在飞行高度过低时,人工操作同样是危险的。因此软件系统不仅应使飞机能安全飞行和安全着陆,而且应按飞行员希望的方式飞行和着陆,才能使他们对飞控软件的安全性具有信心。使操作者保持信心的一个重要方法是不断地提供有关数据,操作者能主动的监视系统运行的动态过程。当系统正趋向发生错误时,系统及软件的信息尤其重要。只有在正确、及时获得和分析这些信息之后,操作者才能对系统进行有效的监控和干预,才能采取正确的避错和失效安全措施。3、构造故障树 软件故障树的建造步骤与硬件故障树基本相同而且软件故障树所用的标志符,除某些特殊情况下新增加的符号外,也与硬

7、件故障树相同软件故障树分析的这些特点,使得硬件故障树与软件故障树可以在接口处平稳的相互联接,从而实现从硬软件复合系统的故障树分析向安全关键部位的软件故障树分析过渡。软件故障树分析可以在软件开发期的各个不同的阶段中使用。在开发 早期的高层次的故障树中,既包括硬 件,也包括软件图3是以火轮”系统空间飞行器自转速度过快为顶端事件,然后展开的高层次的故障树例图,火轮系统的细节在节4中另有介绍。在图3 中我们看到有两处出现了与软件有关的事件,这两个事件都可随着软件设计的深入,进一步加以展开,直至最底层软件故障树分析的最低层次取决于分析的要求,原则上可以深入到程序的编码或语句。在进行最低层次的编码语句故障

8、树分析时,应以代码的输出为出发点,然后反向追溯,分析程序的控制流程是通过什么途径转移到被分析的部位,分析它怎样给各个输出变量赋值图4 显示了怎样用反向追溯法,分析IFTHENELSE语句。 进行软件故障树分析时,首先假定某个不希望事件在执行这个语句时发生,然后通过构造故障树来描述这个事件发生的过程图5 是以语句 “ IF AB THEN X:= F(X) ELSE X:= 10 ” 为对象,当事件“X100”发生时所构造的故障树图。 在图5右部的子树代表一个不可能出现的事件,可以从故障树图中删除,此后可以继续针对事件“a b”和事件“X:= f(x)产生,X 100”展开,最终可以找出与图5

9、顶端事件有关的全部基本事件对于下列主要由赋值语句组成的程序段 P:a := ran (0); G: b := 0.01; IF a x do BEGIN b:= b 1;Z:= Z 10;END;选择Z 100作为需要分析的事件,其故障树图见图9。图9中左边的子树表示 WHILE 语句没有执行,这种状况意味着z一开始就大于100而且 b小于或等于x。图9 右边的子树是反映 Z在循环体中数值的变化令n表示执行中的循环次数,Z n表示 Z在n次循环中的数值,Z n l00是在循环中需要分析的事件。在研究了上述程序段后,可以得出 Z n = Z 0 10 n(5) 由于在n次循环以后 b n = b

10、 0 n, 在停止循环时 b n = x , 所以b 0x = n(6)从式(5)和式(6)得出100 Z n Z 0 + 10 (b 0 x) (7) 4、故障树分析实例 Lereson和Harvey应用故障树分析了火轮系统火轮系统是一个由宇宙飞船发射的空间飞行器,它带有一个金属丝网架,网架终端有一个电场传感小球火轮系统的飞行控制程序由1250行Intel 8080汇编语言的语句构成,通过微机控制该小球对地磁拖尾中的电场进行抽样检测,然后由微机将抽样值变换为遥测信息发出飞行器上的其他设备也由这个程序控制出于费用方面的考虑,飞行器不能接收卫星地面站的指令,一切决策必须由飞行器的微机作出。 金属

11、丝网架是依靠空间飞行器旋转赋予传感小球的离心力而放置的,当网架的长度 增加时,飞行器的转速减慢,所以微机还控制了一个小推进器,推进器喷口的位置与飞行器壳体相切,打开气体控制阀可以增加飞行器的自旋速度飞行器的自旋速度必须处在 一定的速度区间之中,才能圆满的完成预定的任务在网架放置时,很可能因为飞行器的速度过快,产生的离心力过大而发生失效实验数据表明,当飞行器的离心力超过重力25倍时,网架将缠绕在飞行器上所以这个系统的关键失效事件是金属网架损坏图10是以“飞行器自旋过快”作为顶端事件构造的故障树图,图11是以“PERIOD 太大”为顶事件构成的故障树图图中的PERIOD, LENTH, MONIT

12、ORSPIN, GASON,GASOFF等是程序中的函数,其余的标示符是程序的变量名。用故障树分析之后发现,在火轮运行过程中,如果在64毫秒的时间区间内,发生两个太阳脉冲造成的中断事件,就足以使微机控 制失效,从而导致金属丝网架损坏这个发现为改进空间飞行器的设计提供了重要的依据在此之前,由独立的测试组已经对程序进行过非常严格的测试,但是未能发现这个潜在的重大问题。5 软件故障树的定量分析 和硬件故障树分析法相似,软件故障树一旦建成,就可按照故障树的逻辑关系,将顶端事件与各个基本事件的关系用一个布尔代数式来表示这个布尔代数式又称为顶端事件的结构函数按照布尔代数运算法则对结构函数进行简化,可得出结

13、构函数的积之和 型这种结构函数的每一个积之和项,代表了顶端事件发生的充分和必要条件如果每 一个基本事件发生的概率是已知的,顶端事件发生的概率就可以计算出来除此之外,还可以对故障树进行灵敏度分析,找出对顶端事件影响最大、最灵敏的基本事件在进行故 障树的分析和计算的过程中,必须对软件故障树的各个基本事件是否满足统计独立的假定进行论证只有在进行近似分析时,才能直接采用相互独立的假设这种作法得出的 结果,虽然不够准确,但是在比较各种备用方案的优劣时,仍可发挥重要作用。SFTA使用的数学工具及具体计算方法,受限于篇幅,本文从略。需要提请读者注意的是,软件故障树分析法的定量分析能力并不是它最重要的用途软件

14、故障树分析最重要的意义在于,根据分析的结果可以找出关键性的安全事故发生的原因,可以用于指导软件的安全性设计和测试、确定软件测试的重点和内容,使系统的安全得到更充分的保证例如软件故障树分 折提供的信息,可以用来判断哪些模块是安全关键单元并且确定是否需要进一步采取容错措施,软件故障树分析中揭示的系统失效的条件,可以用来识别系统的不安全状态,决定在什么情况下应该必须采取失效_安全措施在本文的结尾,还想再次对爱好FTA方法的读者指出, 软件故障树分析法存在固有的局限性。SFTA的分析工作相当繁琐费时,实际上不可能在编码的层次对整个系统进行彻底的分析,所以软件故障树分析法一般只限于在程序的安全关键部位使用。不顾这种客观存在的约束,企图将软件故障树分析方法拓展为一般的可靠性分析工具的作法是不明智的。此外不能因为应用了软件故障树分析,就在设计中放弃避错、查错措施,软件故障树分析法很难考虑系统的时间效应及环境条件导致的失效,系统的各种接口中的问题,也不能仅仅靠软件故障树分析来解决在对实时系统进行分析时,软件故障树分析的这些特点,应该予以充分的考虑。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号