软件安全性分析中故障树方法的应用_第1页
软件安全性分析中故障树方法的应用_第2页
软件安全性分析中故障树方法的应用_第3页
软件安全性分析中故障树方法的应用_第4页
软件安全性分析中故障树方法的应用_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、1表示事件发生,则其相反命题”事件不发生“用x1 表示,在分析逻辑否定关系时经常用到徳莫根定理(4)进行故障树分析需要绘制故障树图.故障树图类似于一棵倒立的树树的根部位于图的 上方,代表需要分析的危险事件(或关键性失效)事件,从顶向下再层层衍牛出许多分支, 形成了若干的分支点,这些分支点代表了危险事件形成过程中的中间事件,分支的终点,类 似于树叶,代表了 nj能导致危险事件发牛的基本事件.为适应绘制故障树图的需耍,在故障 树分析法发展过程中,形成了一套可靠性工程界公认的图形符号标志.软件的故障树分析法 的思路与硬件故障树分析法基本和同,因此这套源于硬件故障分析的图形符号,也为软件分 析所采用.

4、感兴趣的读者可从各种硕件fta的资料中找到,本文不再赘述。2危险分析危险分析是进行系统女全分析必须采取的第一个步骤,也是故障树赖以建立的必要前 提.危险分析的目的是确定系统可能出现的各种不安全状态(或关键性失效状态),从安全 的角度确定哪些失效是可以容许的,确怎哪些失效是不町容许的,确定在危及安全的失效发 生或可能发生时,怎样使系统处于失效一安全状态的措施.通常系统可能由于以下的原因而 进入不安全状态:(1)駛件部件失效;(2)系统部件接口出现的问题;(3)操作中的人为错误;(4)环境应力;(5)软件控制餡误.使系统处于不安全状态的软件控制错谋有以下五种类型:(1)不能执行某一要求的功能,这个

5、功能很可能从來没有执行过或者是在要求执行时 没有反应;(2) 执行了一种非要求的功能,即产生了一个错谋的冋答或者冋答的时机和环境不恰 当,例如偶然地、过早地或过迟地启动了传动机构,或者未能在要求的时i'可停止某项操作.(3) 顺序问题上的错误;(4) 不能识别某些碍要采取改正措池的危险条件;(5) 对于某些危险条件产牛了错误反应.在对系统的软件进行危险分析时,不仅应该考虑软件的控制错渓,而h必须研究软件和 系统其他单元的接口 .冇些软件的控制动作只冇在系统的真他元件失效时或者在异常的环境 中才会使系统出现不安全状态.在对系统的软件进行危险分析时,还必须把操作者的因素考虑在内.要仔细地考

6、虑控制 系统中的人机接口.给操作者提供系统当前状况的信息是保证系统安全运行的一个必要措 施.例如飞行着陆软件的安全性能,必须达到飞行员要求的标准,否则飞行员宁可人工操作, 而不愿冒险去使用自动着陆系统.然而在飞行高度过低时,人工操作同样是危险的。因此软 件系统不仅应使飞机能安全飞行和安全着陆,而口应按飞行员希望的方式飞行和着陆,才能 使他们对飞控软件的安全性具有信心。使操作者保持信心的一个重耍方法是不断地提供有关 数据,操作者能主动的监视系统运行的动态过程。当系统正趋向发生错课时,系统及软件的 信息尤其重要。只有在止确、及时获得和分析这些信息z后,操作者才能対系统进行有效的 监控和干预,才能采

7、取止确的避错和失效安全措施。3、构造故障树软件故障树的建造步骤与硬件故障树基本相同.而口软件故障树所用的标志符,除某些 特殊情况卜新增加的符号外,也与硬件故障树相同.软件故障树分析的这些特点,使得硬件 故障树与软件故障树可以在接口处平稳的和互联接,从而实现从硬软件复合系统的故障树分 析向安全关键部位的软件故障树分析过渡。软件故障树分析可以在软件开发期的各个不同的阶段中使用。在开发早期的高层次的 故障树中,既包括硬件,也包括软件.图3是以'火轮”系统空间飞行器口转速度过快为 顶端事件,然后展开的高层次的故障树例图,'火轮系统的细节在节4中另冇介绍。6 士图3 离层次的故障树例图1

8、火轮自旋过快;2.帚继续分折的申件;3希堆续分折的爭 件;4需堆绒分析的审件;5有关理件的基本班件;6有关 硬件的是本申件;7.有关硬件的准基本冊件;8.软件命令代 体隨门打开;9.软件命令鸟达停止工作i .i一j ° i r 丄“1 t'*4|567图4 ifthenelse语句故障刿图1. if-then-else语句产生的审件;2条件为真then 产生的审件;3条件为毁,else产生的审件;4.语句怏j? 皿条件为真;九then产生的寧件;6语旬执行助条件为俚 7. else产生的审件在图3中我们看到有两处出现了与软件有关的事件,这两个事件都可随着软件设计的 深入,进一

9、步加以展开,直至最底层.软件故障树分析的最低层次取决于分析的要求,原则 上可以深入到程序的编码或语句。在进行故低层次的编码语句故障树分析时,应以代码的输 出为出发点,然后反向追溯,分析程序的控制流程是通过什么途径转移到被分析的部位,分 析它怎样给各个输出变量赋值.图4显示了怎样用反向追溯法,分析if-then-else语 句。£ 5中件的故體树图1 if is旬产生的 x>100 事件;1. a>b, x: f(x)产生 x>100; 3 a<b, x: - 10 产生 x>100;4. a>b; 5 x: f(x)严生x>100; 6. a

10、<b; 7. x: 10 产生 x>!00进行软件故障树分析时,首先假定某个不希望事件在执行这个语句时发牛,然后通过构 造故障树来描述这个事件发生的过程图5是以语句“ ifa>bthen x:= f(x) else x:= 10 ”为对象,当事件“x>100”发牛时所构造的故障树图。在图5右部的子树代表一个不可能出现的事件,可以从故障树图中删除,此后可以继 续针对事件“a>b”和事件“x:=f (x)产半,x> 100”展开,最终可以找出与图5顶端事 件有关的全部基本事件.对于下列主耍rfl赋值语句组成的程序段p:a := ran (0);g: b:=0.0

11、1;if a<b then fire;应以'调用fire'为需要分析的事件,分析z后得出的逻辑关系见图6.圏7 函数调用的故砸树u匕严)产生审件;2几止严 便f产生审件;3. f失效产生事件恵6赋憧固句对fire调民的邃辑关系區u while语句产生的审件;2语句没有友行;3语句执行n次产生事件;4事件巳経存 在;5.条件为假;6条件为真;7.并次反复产生事杵在函数调用中发生的错谋,可能源于参数不当或程序的错谋,瓦故障树示于图7。对干while循环语句,其故障树图示于图8为了说明while语句故障树图的实际应用,我们用一个简单的程序段作为分析案例, 这个程序段是while

12、 b>x dobegin b:= b -1;z:=z +10;end;选择,z> 100'作为需要分析的事件,其故障树图见图9。图9中左边的子树表示while语句没有执行,这种状况意味着z 一开始就大于100 而fl b小于或等于x。图9右边的子树是反映z在循环体中数值的变化.令n表示执行中 的循环次数,zn表示z在n次循环中的数值,zn>100是在循环中需耍分析的事件。在研 究了上述程序段后,可以得出z n = z 0 + 10 n(5)由于在n次循环以后b n = b 0 n,在停止循环时b n = x ,所以 b 0x = n(6)从式(5)和式(6)得出100

13、 < zn <z0+ 10(b0 一 x) (7)s 9*z>100«审件的故障拥图1while语句产生z>100; 2语句没有执行;3话句执行;4z>i00巳经#在;5. b<x巳经存在;6b>x巳经存在;7z*100- 10x>1004、故障树分析实例lereson和harvey应用故障树分析了 '火轮系统.火轮系统是一个由宇宙飞船发射 的空间飞行器,它带有一个金屈丝网架,网架终端有一个电场传感小球.火轮系统的飞行控 制程序由1250 intel 8080汇编语言的语句构成,通过微机控制该小球对地磁拖尾中的电 场进行抽样检测

14、,然后由微机将抽样值变换为遥测信息发出.匕行器上的其他设备也由这个 程序控制出于费用方面的考虑,飞行器不能接收卫星地面站的指令,一切决策必须由飞行 器的微机作出。金属丝网架是依靠空间飞行器旋转赋予传感小球的离心力而放置的,当网架的长度增 加时,e行器的转速减慢,所以微机还控制了一个小推进器,推进器喷口的位置与e行器壳 体相切,打开气体控制阀可以增加飞行器的自旋速度.飞行器的自旋速度必须处在一定的 速度区i、可之中,才能圆满的完成预定的任务.在网架放置时,很可能因为飞行器的速度过快,产生的离心力过人而发生失效.实验数 据表明,当飞行器的离心力超过重力25倍时,网架将缠绕在飞行器上.所以这个系统的

15、关 键失效事件是金属网架损坏.图10是以“飞行器自旋过快”作为顶端事件构造的故障树图,图11是以“period太 人”为顶事件构成的故障树图图中的period, lenth, monitorspin, gason, gasoff等是程序中的函数,其余的标示符是程序的变量名。用故障树分析z后发现,在'火轮'运行过程中,如果在64毫秒的时间区间内,发生 两个太阳脉冲造成的中断事件,就足以使微机控制失效,从而导致金属丝网架损坏.这个 发现为改进空间飞行器的设计提供了重要的依据.在此z前,由独立的测试组已经对程序进 行过非常严格的测试,但是未能发现这个潜在的重人问题。w 10"

16、;飞行21 口 st过快-故尊伟图*火轮自旋过快:2.湾竝皱分斬釣耶件;3.氏聲煤分析的审件;4-笔竝张分析的事伶$ 5-育火連件的茲本泉件;6*关!桦的墓本事件;儿 有关&件的?ftm本 嘩件;8.钦件 命令代体bd打开;p较件冷令马达停止工作;開用gason;"不m/h casoff; 12低用 mozitorsp1n;period>gasrot; 14. per!od>gastop; is不vim monitorspin; 16 period 太大;17. length 太大;18. period 尤小; 19. length 太小1. period 太大;

17、2.由 period: - sunp 广生;3.由 period: - maop 产生;4. sunp 太大;5. ms sun; 6. ms=#sun; 7 magp 太大;8. last-spin xx; 9. wdcss 太大; 10. spin-ok<magp)为低;ll- spim-okcsump)为典;12. wdcss 巳经衣大;13.床条先尢 阳脉冲;时神太快;" magp<100; 16. magp>65000; 17. sump<65000; sump> 1cw; 19. wdcss: 3; 20时钟太快;21.敢亦盘太r牀冲5软件故

18、障树的定量分析和换件故障树分析法相似,软件故障树一口建成,就可按照故障树的逻辑关系,将顶端 事件与各个基本事件的关系用一个布尔代数式來表示.这个布尔代数式又称为顶端事件的结 构函数.按照布尔代数运算法则对结构函数进行简化,可得出结构函数的'积之和'型.这 种结构函数的每一个'积之和'项,代表了顶端事件发生的充分和必要条件.如果每一个 基木事件发生的概率是已知的,顶端事件发生的概率就可以计算出来.除此z外,还可以对 故障树进行灵敏度分析,找出对顶端事件影响最大、最灵敏的基本事件.在进行故障树的 分析和计算的过程屮,必须对软件故障树的各个基本事件是否满足统计独立的假定进行论 证.只冇在进行近似分析时,才能直接采用相互独

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论