航空论坛_航空翻译_民航英语翻译_飞行翻译

 找回密码
 注册
搜索
查看: 1878|回复: 2
打印 上一主题 下一主题

闲话安全关键系统系统(一) [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2009-11-8 18:54:12 |只看该作者 |倒序浏览
闲话安全关键系统系统(一)3 D3 y0 W) C) v0 U0 g

# \' i) t7 E$ q' v+ d: c* f3 P1. 什么是安全关键系统(safety-critical system)?
" d) U% U# y1 g“安全关键系统”听起来比较唬人,它实际上是英文“safety-critical system”的直译,比较拗口。& g' T: X1 y8 G5 ]
简单的说,它是一类系统,这类系统如果失效,则会导致人员或财产损失,或对环境产生严重破坏。
2 \+ v& \0 a9 [举几个例子,比如运载火箭控制系统、飞机的飞行控制系统,铁路的超速防护系统,核反应堆的安全) u: W, K8 j+ y. R5 j
保护系统等等,这些都属于安全关键系统。
( j$ f; N9 m/ g9 Z( n
" U- T; I: ~$ u0 x与这个词有关系的词还包括安全相关系统(safety-related system)。一般情况下,这两个术语的同义词,指的内容是相同的,但也有时候有些区别,比如为了区分系统的不同的安全等级,可以认为safety-critical system的安全等级比safety-related system更高。在本文中,这两个词是等价的。: @3 D. p" @; j. W  B( K7 R) M, B
; r; p8 J5 @/ u# \1 z$ C+ w
有时候甚至为了简单,直接就说安全系统(safety system)。说到这儿,你也许该问了,“日常说的安全系统' O7 x4 @; ]7 u/ n9 g
不是这样的呀?”。原因在于汉语中的“安全”一词实际上对应英文有两个词,一个是security,一个是. S6 O2 ?0 y. I/ i- o9 g8 j% H
safety。在英文中,security主要指与信息有关的安全,safety主要指与生命财产有关的安全。我们经常" Y; D. ?9 i9 J
听到的安全系统(准确的说是在IT领域),多数是security system,比如加密系统、防火墙等等。而在化工
. [6 ~9 `- A4 e6 C领域,一般提到安全系统就是指safety system。以后为了防止歧义,都使用英文safety system来代表我们要介绍的安全关键系统或安全相关系统。; c( U  h7 j7 }6 `! p

# T+ L1 M; p. ~; H/ E$ d5 t1 W下面这个图可以让你对security和safety有个直观的认识。. o6 L, b5 c. j* G: }

- b9 V3 D9 B  }- H" W
' p6 i" X% w" a' w% |% {5 U) x
2. safety-critical computer system! t8 n2 r) w0 b& @$ y( k; U
safety system有很多种,我们这里关心的是那些使用计算机技术实现的系统。更准确的说,是基于软件的安全系统。在没有软件之前,这类系统一般是机械的或继电器控制的,随着计算机技术的发展,在安全系统中越来越多的用到了软件,它带来了与原有的继电逻辑不同的失效模式,产生了一系列新的问题。从20世纪80年代开始,对于safety system的研究逐渐开始兴起,到了90年代末多个安全标准的出台促进了它的研究和发展。影响比较大的就是IEC 61508标准。
8 V- L" x' _6 y, p
6 n+ |9 y: Y2 p+ [) O不过,即使是有很多安全标准,我们对safety system还是有很多东东要研究。为什么这样说? 因为标准一般都说了该做什么,不会说怎么做? 如何实现一个系统就是安全的是很值得讨论的问题。更重要的一点,与一般的系统开发不同,我们没有机会去按照try-implementation-redesign的方法来做一个safety system,这在成本上不允许,道德上和法律上也是不允许的。; L5 |) M; Z7 f- O( r# I4 a& B, n1 u

8 I  g2 r4 v1 ?& l5 z1 Y7 l2.1 典型的安全系统故障案例-1  爱国者导弹
8 Y0 f# X) s* c5 ]5 g+ a2 R/ m) O说了半天,你也许觉得抽象,那我们举个例子。1991年第一次海湾战争期间,用于拦截飞毛腿导弹的爱国者导弹表现很差,导致多名美军士兵丧生在飞毛腿导弹的轰炸之下。我们这里不去探讨战争的对与错,仅从技术的角度说,爱国者导弹防御系统属于典型的safety system,如果它不能完成它的功能,说明它失效了(failure)。后来,调查出的原因主要是软件故障,该系统最初的设计没有考虑到系统长时间使用的情况,它属于打完了就跑的设备,到另一个地方重新布置再发射,在一个地方不会超过8小时。但实际应用的时候,超过了这个时间,导致其range gated area发生漂移,不再精确,系统在跟踪来袭导弹的过程中产生了偏差,而且使用越久偏差越大。另外,该系统最初是设计用于拦截2马赫的导弹,而飞毛腿是速度是5马赫。3 @; W; \& z  |0 {+ N
1 p1 e- q/ `2 O4 y' D
爱国者导弹防御系统的问题属于安全系统开发过程中的典型问题,需求不能满足实际的要求,在过程中又没有检查出来。
, a1 v( f+ N, _
* G9 g% L( X! D9 J* w+ p# w% bNotes:
) ~3 d3 k" `+ v% w! I* N4 g) @On February 25, 1991, a Patriot missile defense system operating at Dhahran, Saudi Arabia, during Operation Desert Storm failed to track and intercept an incoming Scud. This Scud subsequently hit an Army barracks, killing 28 Americans. 1 M& z+ ?; O* ~


  s5 @$ r  W4 t. E7 f. R, a

Rank: 9Rank: 9Rank: 9

2#
发表于 2009-11-8 18:55:13 |只看该作者

闲话安全关键系统系统(三)

闲话安全关键系统系统(三)
; t$ a$ i) |3 t7 Y7 z5 q! G! X5 f
自从有了网络以后,我觉得自己无法再长时间专注于某一件事情,用我高中老师的话说就是“三分钟热情”。一转眼有半个月没有写safety-critical的文章了。借口总是可以找到的,不过还是该坚持把这件事情做下去。
. G7 s5 s5 C3 R% W! }, D4 O1 F) `# x3 A
1. hazard与risk( |. W6 {% b3 T$ M- D! i
好了,不废话了,让我们回到上次未讨论完的hazard这个概念上吧。hazard的简单定义参考如下:“A state or set of conditions that, together with other conditions in the environment, will lead to an accident (loss event).”hazard是所有安全问题的起源,因此我们要研究safety,就必须先研究hazard,也就是常说的hazard analysis。/ U- }& b  V5 C
我们经常遇到一个词叫风险(risk),在安全领域,它与hazard紧密相关,实际上,它是“The hazard level combined with the likelihood of the hazard leading to an accident plus exposure (or duration) of the hazard.”,与之对应的工作叫risk analysis(风险分析)。) X6 ~$ m' f! Q+ t
. z5 R) V9 _0 ^7 i1 U7 o; Q
hazard analysis和risk analysis有什么区别呢?$ O5 h) [0 Z, F' t$ V: _
hazard analysis是一系列技术,每种技术都是从不同的角度给人们提供了一个深入了解系统的方法。它是整个安全系统过程的核心。比如我们常用的FTA,FMEA等技术,都属于这一范畴。hazard analysis影响开发过程的所有阶段,同时又从开放过程的各个阶段得到反馈。
" G4 g1 [, o9 _& S$ t而risk analysis是一个过程,它包括3个部分,风险评估(risk assessment),风险管理(risk management)和风险交流(risk communication)。
- i( @! `9 ]5 \实际上risk analysis是包含hazard analysis的,risk assessment的一个重要的步骤就是hazard identification,即危害识别。4 }8 e+ O0 Q" E  _$ t, W

+ n! ?- X; ^  a, uhazard analysis关注的是对人和环境产生危害的条件和情况,通过不同的技术,要识别出这些情况。risk analysis关注事件产生的后果。
* ?6 E" z# r: N! E3 g9 \$ P9 y, V, W
有关hazard analysis,我曾写了一个读书笔记,是关于论文《Hazard analysis of complex distributed railway systems》的,有兴趣的朋友可以在
blog中看看
9 x% }0 g% S3 n4 W' e  a4 Y9 h3 g$ Y% T$ b' `7 E7 t: K5 G5 X

) T9 c: l/ k! K5 t7 X2. 多安全才算安全?
- K+ W9 ?$ I' ]$ K设计任何安全系统都有一个边界的问题,即到什么程度才算安全?要解决这个问题,就是要回答我们的系统需要容忍什么样的风险,到什么程度。
7 G. s5 t2 [; n1 j' s目前世界上存在3种衡量方法,分别是ALARP、GAME和MEM。& ^! P/ b# @) J2 j
2.1 ALARP- T$ L8 k. r/ Y: Y# X
ALARP的英文全称是“as low as reasonably possible”,在英国应用较广。它把风险分为3类,不可接受的、广泛接受的和界于这二者之间的所谓ALARP区域的风险。比如,一个人可能被从天上掉下的陨石砸死,但其概率非常小,我们认为这是可接受的风险,但如果你高诉我明天做的飞机很有可能从天上掉下来,这就是不可接受的。但界于二者之间的风险就需要考虑避免它的成本,因为任何风险的消除或减小都是要有成本的,如果你不消除它,就要承担某种代价,如果这种代价被认为是可以接受的,那么就不需要消除这个风险。但问题是,往往这种代价就是人的生命,ALARP需要对生命的价值进行定量,从道德上,我们认为“生命是无价的”,但实际生活中,它往往是有价格的,虽然我们不愿意承认。也是由于这个原因,在欧盟其它国家是反对使用这个标准的。1 k8 t) ?+ ^. @1 g. V

( T2 {$ q# H0 R, {# z# K2.2 GAME
! Q  Z0 x' a) K* i0 ^GAME是德国标准,它要求任何新布置的系统的安全性都不能比现有的同类系统差,至少要一样的好。这是我们常见和常用的衡量标准,因为人们已经接受了目前的系统,包括它可能的危害,新的系统一定要至少和现有的一样好,这是符合人的心理预期的。不过,这个衡量标准也有些问题,已经有的系统的安全标准是什么呢?如果它由于技术原因存在某种风险,我们还能接受吗?' `" ~/ j( j2 m) @) u

  l7 T% l. e9 `, P- s6 H+ b; X7 p2.3 MEM# f% o" h. H' o3 L3 Y6 t1 `. H- s
MEM的英文全称是“minimum endogenous mortality”。它要求任何安全系统对一个人的产生致命风险的概率不允许超过每年0.00001。这个衡量标准实际上要求是很高的,相当于每小时的危险概率小于0.000000001,基本没有系统能够达到这个标准。% E& `8 H- ]1 M; j# Q# T
4 [* z  g+ I# j* U1 i
上面提到的三个风险容忍的标准,实际上都没有得到统一的认可,也就是说,还不存在一个统一的风险容忍的标准,每个行业都有所不同,不存在所谓的“银弹”。% p  S8 g1 e+ s' j8 C: \
8 s; b; T% y! q' B5 b- x- r
注:0 m: @. \/ y1 x
关于我们日常认为的不可能的事件,我发现煎蛋上一篇比较有意思的文章列出的数据很有意思。
& s- y6 K- V! r5 ~# h2 Y* }3 a被狗咬死的几率: 两千万分之一
) o+ u: _, [- e% }, p! [成为圣人的几率: 两千万分之一) N$ E& S) t7 O8 Q9 ]' F
成为总统的几率: 一千万分之一0 F  o" w3 {; p7 g
被天上飞机掉下来的东西砸死: 一千万分之一. }6 h7 z$ D; ^$ t. T
上厕所受伤的几率: 一万分之一# B8 c5 x9 v  L( S8 V
第一眼找到一个四叶草(四叶苜蓿)一万分之一$ t$ |; [; C- g$ [  @
今天看到UFO的几率: 三百万分之一
# M/ A. U* b; x  g4 }今天死于食物中毒的几率: 三百万分之一
. Y3 {1 r0 U# v: t5 e  r- b: p( o被鲨鱼咬死的几率: 三亿分之一6 B' }4 B0 Y- L# P
死于麻疹: 三亿分之一$ T7 u7 _, P$ }) E: E# C
儿童遭遇恶性交通事故的几率: 两万三千分之一  |7 s3 o5 G. w% l2 l
由于社会安全数据输入错误所导致
& P" ~; H, l- ?9 Y1 P"误杀"(你还没死,系统说你死/ i/ X- G; ], R% Z1 t
了)的几率: 两万三千四百八十三分之一9 Q- o% s/ Q6 g# d/ y
得到纽约时报Best Seller的几率: 二百二十分之一 (以后还看这个推荐买书么?看吧)
7 l5 f' n. m1 N0 C4 g5 _1 S8 t和百万富翁约会的几率: 二百一十五分之一: v4 _8 W3 ^+ N3 j- K& G/ N
不戴套套得艾滋的几率: 五百万分之一
/ r+ E. R& I# E1 [$ R被热水搞死的几率: 5005564分之一
( f! Y0 i" @1 C4 T2 n在未来100年里死于彗星撞地球: 五十万分之一
0 v" p. ]5 T/ n& H; k: m普通人被枪杀: 五十万分之一; B5 ]! f( ^  Q- H$ q; c' R
空难的一员: 五十万分之一

$ x9 h- o% R) J/ I" q, t

使用道具 举报

Rank: 9Rank: 9Rank: 9

3#
发表于 2009-11-8 18:55:54 |只看该作者

闲话安全关键系统系统(五)

闲话安全关键系统系统(五)4 Q! \% y- D# a* _$ S+ N: q# P
+ \  }; u3 v" J& L
任何理论的发展最终到实际中都要以某种形式固定下来,这些形式的东西,术语称之为“过程”。比如软件开发过程、项目管理过程等等。
* P" A/ S; |: U4 d- p- @! r; g安全系统也不例外,它也有一个过程,我们称为“安全过程”,更时髦一点,叫“安全生命周期”。
+ M) t+ h4 G* @7 s
5 e9 I. d5 T" w: n如果你对软件开发很熟悉,那么这些概念并不陌生,常见的软件生命周期模型有瀑布模式,螺旋模型,V模型。一般来说,从V&V的角度看,V模型更合适。我们也可以对照V模型,把安全生命周期套用一下。如下图所示。: W; w& w. \# e3 d8 l# ?% Z- p1 B3 ?

- [1 P0 v5 l' ^4 h" A

图1. 安全生命周期与系统开发生命周期示意图( O. `/ g3 J$ G; @/ r/ D! q

/ q5 ~5 b( S' U7 Y/ V: Z- V

+ k5 y4 @' @+ x2 r% E' K8 b对于开发安全系统来说,这两个过程是相互关联和相互影响的,不过现实中,往往只是重视了开发过程的生命周期,而把安全生命周期忽略了,或者认为在开发过程中嵌入一些安全生命周期的内容就可以了,这些都是不正确的方法。严格来说,安全生命周期要有一个独立的团队来完成,通常意义上的软件工程师或硬件工程师是不能胜任这个工作的,需要安全工程师这个重要的角色。
, t& [4 X1 |7 j, ~* b2 u% A上图中的系统开发过程中的活动的含义和内容你很容易google到,这里就不废话了。我们说说与之对应的安全生命周期中的相关活动。( l  {; N6 a1 U
: g( g, |9 {: v, R+ W/ v0 R- V# `' w
安全生命周期包括6个阶段:
- |% j& b* K! q1.危害识别(Hazard Identification)2 m0 Q8 `# t4 R* ]/ @/ }2 ?
安全系统开发一开始,就要考虑如何识别基本的危害。开发人员要管理、消除这些危害,并在整个系统开发过程中进行记录。危害的记录一般采用危害列表或危害日志的形式。这些危害往往是通过对开发阶段中需求分析或规格进行研究得到的。
% n; c; _/ s: x& a
' v% V% U4 X4 Z2.风险评估(Risk Assessment): R. g: g/ e! C
风险评估阶段要对识别出的危害进行研究,确定它们的严重程度和可能性。根据安全标准的不同,这个阶段采用的方法也有所不同。这个阶段是产生系统安全需求的源头,而且产生的安全需求对软硬件需求和设计也存在影响。风险评估的一个重要概念就是“可容忍的风险”(tolerable risk)。达到可容忍的分析的一个方法就是把风险降低到尽可能的小(ALARP原则,还记得我们第三讲中提到的这个概念吗?)。3 S- {. e+ f5 S

4 j* I) ^% C% w4 I# b3 B3.初步系统安全评估(Preliminary System Safety Assessment, PSSA)9 R1 f8 p. ^1 @2 j# k( _6 i; b* a& E
PSSA要对系统体系结构进行系统的评估来确定失效是如何导致已识别的危害。这个阶段你可以使用FTA或FMEA或HAZOP这些方法。这个过程有助于确认系统设计是否满足安全需求,也有助于更准确的阐述安全需求。这个阶段对软硬件体系结构和设计都有影响。# `8 m: d% r6 s2 p) ~/ y/ o/ |6 f8 Y
/ U' A! t9 V; r5 f2 b+ g, F
4.共因分析(Common Cause Analysis, CCA)$ H8 e" n5 @; _
事实上,共因分析在整个系统开发过程中都是要做的。CCA主要是为了识别功能的独立性或功能之间的依赖关系。一般常用3种方法:区域分析(zonal analysis),检查系统是否存在一个特定位置使得故障影响独立性;特殊风险分析(particular risks analysis)检查系统对环境事件是否免疫;共因模式分析(common mode analysis)识别系统失效是否独立,包括检查软硬设计缺陷。
4 j' _* ^  `6 s
9 Z3 ^& v8 L- Y5.系统安全评估(System Safety Assessment, SSA)
3 R, O* u' _; USSA是安全生命周期的确认阶段。在这个阶段中,要搜集那些能够证明安全需求得到满足、达到所希望的完整性的证据。这个阶段与软件开发过程联系比较紧密,比如,通过软件测试保证实现与需求符合,开发过程符合安全标准, 这些都属于证据。
6 r; k1 k0 R" f$ h$ L
- m3 m0 n( M- ^  ?: O' h  [6.提交安全案例(Delivery of Safety Case)  ]6 Y  g! }4 q$ s
事实上,这个阶段大部分都是文档性质的工作。安全案例就是一个文档,它描述了整个系统的安全相关的重要内容,为系统的安全性提供论据和论证。这个文档是给评估机构的,目的就是让别人确信你的系统是安全的。这个文档实际上是整个安全生命周期过程的总结,是对整个安全生命周期过程的关键点的索引。
/ A! {! Z2 W9 O% g+ F* ?; u3 F6 E- n5 M2 G5 `7 M) Z3 s
参考文献:Philippa Mary Conmy,Safety Analysis of Computer Resource Management Software, PhD Thesis, University of York, 2005.

使用道具 举报

您需要登录后才可以回帖 登录 | 注册


Archiver|航空论坛 ( 渝ICP备10008336号 )

GMT+8, 2024-5-10 07:53 , Processed in 0.031200 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部