軟件安全性分析中故障樹方法的應用_第1頁
軟件安全性分析中故障樹方法的應用_第2頁
軟件安全性分析中故障樹方法的應用_第3頁
軟件安全性分析中故障樹方法的應用_第4頁
軟件安全性分析中故障樹方法的應用_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件安全性分析中故障樹方法的應用  故障樹分析法(FTA)是硬件可靠性、安全性分析的傳統技術工具20世紀80年代,軟件的可靠性和安全性 開始成為科技界關注的課題,為了適應軟件安全性分析的需要,故障樹分析法被移植到軟件這個新領域.。經過20年不斷的應用和創新,現在軟件故障樹分析已經成為軟件安全性分析的重要手段并簡稱為SFTA軟件故障樹 分析極具應用潛力,在軟件開發的早期,可以用故障樹分析來確定軟件的安全要求,進入概要設計、詳細設計設計和實現階段,可以對故障樹加以擴充,繼續進行更深入的分析故障樹分析法對于硬一軟件復合系統的安全性分析尤為有效,分析人員可用它分析程序產生安全事故的各種原因,

2、分析系統任何部分發生的失效,分析硬件、軟件和操作員的失誤,并可以識別潛在的、復雜的失效模式。SFTA涉及的內容十分豐富,受篇幅限制,本篇文章介紹的是SFTA的基本框架和方法。1  故障樹的邏輯關系 a.  邏輯"或門"設x1, x2 表示兩個不同的事件,如果兩個事件中至少有一個事件發生便能導致另一個事件x3發生,則稱這種關系為邏輯"或門"關系,相應的布爾代數式為 ( 1 ) 其邏輯圖見圖1 b.邏輯"與門"事件x1和x2必須同時發生,x3才能發生,這種關系稱為邏輯"與門"關系,相應的布

3、爾代數式為  (2)  其邏輯圖見圖2     c.  邏輯否定 邏輯否定表示同原命題相反,用x1 表示事件發生,則其相反命題"事件不發生"用x1 表示,在分析邏輯否定關系時經常用到德莫根定理 (3)  (4)進行故障樹分析需要繪制故障樹圖故障樹圖類似于一棵倒立的樹樹的根部位于圖的上方,代表需要分析的危險事件(或關鍵性失效)事件,從頂向下再層層衍生出許多分支,形成了若干的分支點,這些分支點代表了危險事件形成過程中的中間事件,分支的終點,類似于樹葉,代表了可能導致危險事件發生的基本事件為適應繪制故

4、障樹圖的需要,在故障樹分析法發展過程中,形成了一套可靠性工程界公認的圖形符號標志軟件的故障樹分析法的思路與硬件故障樹分析法基本相同,因此這套源于硬件故障分析的圖形符號,也為軟件分析所采用感興趣的讀者可從各種硬件FTA的資料中找到,本文不再贅述。 2 危險分析 危險分析是進行系統安全分析必須采取的第一個步驟,也是故障樹賴以建立的必要前提危險分析的目的是確定系統可能出現的各種不安全狀態(或關鍵性失效狀態),從安全的角度確定哪些失效是可以容許的,確定哪些失效是不可容許的,確定在危及安全的失效發生或可能發生時,怎樣使系統處于失效一安全狀態的措施通常系統可能由于以下的原因而進入不安全狀態:(l

5、)硬件部件失效;(2)系統部件接口出現的問題;(3)操作中的人為錯誤;(4)環境應力;(5)軟件控制錯誤使系統處于不安全狀態的軟件控制錯誤有以下五種類型:(1)不能執行某一要求的功能,這個功能很可能從來沒有執行過或者是在要求執行時沒有反應;(2)執行了一種非要求的功能,即產生了一個錯誤的回答或者回答的時機和環境不恰當,例如偶然地、過早地或過遲地啟動了傳動機構,或者未能在要求的時間停止某項操作(3)順序問題上的錯誤;(4)不能識別某些需要采取改正措施的危險條件;(5)對于某些危險條件產生了錯誤反應在對系統的軟件進行危險分析時,不僅應該考慮軟件的控制錯誤,而且必須研究軟件和系統其他單元的接口有些軟

6、件的控制動作只有在系統的其他元件失效時或者在異常的環境中才會使系統出現不安全狀態在對系統的軟件進行危險分析時,還必須把操作者的因素考慮在內要仔細地考慮控制系統中的人機接口給操作者提供系統當前狀況的信息是保證系統安全運行的一個必要措施例如飛行著陸軟件的安全性能,必須達到飛行員要求的標準,否則飛行員寧可人工操作,而不愿冒險去使用自動著陸系統然而在飛行高度過低時,人工操作同樣是危險的。因此軟件系統不僅應使飛機能安全飛行和安全著陸,而且應按飛行員希望的方式飛行和著陸,才能使他們對飛控軟件的安全性具有信心。使操作者保持信心的一個重要方法是不斷地提供有關數據,操作者能主動的監視系統運行的動態過程。當系統正

7、趨向發生錯誤時,系統及軟件的信息尤其重要。只有在正確、及時獲得和分析這些信息之后,操作者才能對系統進行有效的監控和干預,才能采取正確的避錯和失效安全措施。3、構造故障樹 軟件故障樹的建造步驟與硬件故障樹基本相同而且軟件故障樹所用的標志符,除某些特殊情況下新增加的符號外,也與硬件故障樹相同軟件故障樹分析的這些特點,使得硬件故障樹與軟件故障樹可以在接口處平穩的相互聯接,從而實現從硬軟件復合系統的故障樹分析向安全關鍵部位的軟件故障樹分析過渡。軟件故障樹分析可以在軟件開發期的各個不同的階段中使用。在開發 早期的高層次的故障樹中,既包括硬 件,也包括軟件圖3是以火輪”系統空間飛行器自轉速度過快為頂端事件

8、,然后展開的高層次的故障樹例圖,火輪系統的細節在節4中另有介紹。 在圖3 中我們看到有兩處出現了與軟件有關的事件,這兩個事件都可隨著軟件設計的深入,進一步加以展開,直至最底層軟件故障樹分析的最低層次取決于分析的要求,原則上可以深入到程序的編碼或語句。在進行最低層次的編碼語句故障樹分析時,應以代碼的輸出為出發點,然后反向追溯,分析程序的控制流程是通過什么途徑轉移到被分析的部位,分析它怎樣給各個輸出變量賦值圖4 顯示了怎樣用反向追溯法,分析IFTHENELSE語句。  進行軟件故障樹分析時,首先假定某個不希望事件在執行這個語句時發生,然后通過構造故障樹來描述這個事件發生的過程圖

9、5 是以語句 “ IF A>B THEN  X:= F(X)  ELSE X:= 10  ”  為對象,當事件“X100”發生時所構造的故障樹圖。  在圖5右部的子樹代表一個不可能出現的事件,可以從故障樹圖中刪除,此后可以繼續針對事件“a > b”和事件“X:= f(x)產生,X> 100”展開,最終可以找出與圖5 頂端事件有關的全部基本事件對于下列主要由賦值語句組成的程序段  P:a := ran (0);  G:  b := 0.01;  IF  a < b 

10、; THEN FIRE;應以調用FIRE為需要分析的事件,分析之后得出的邏輯關系見圖6在函數調用中發生的錯誤,可能源于參數不當或程序的錯誤,其故障樹示于圖7。對干WHILE循環語句,其故障樹圖示于圖8  為了說明WHILE語句故障樹圖的實際應用,我們用一個簡單的程序段作為分析案例,這個程序段是  WHlLE  b > x  do  BEGIN b:= b 1;Z:= Z 10;END; 選擇Z 100作為需要分析的事件,其故障樹圖見圖9。圖9中左邊的子樹表示 WHILE 語句沒有執行,這種狀況意味著z一開始就大于100而且 b小

11、于或等于x。圖9 右邊的子樹是反映 Z在循環體中數值的變化令n表示執行中的循環次數,Z n表示 Z在n次循環中的數值,Z n > l00是在循環中需要分析的事件。在研究了上述程序段后,可以得出   Z n  =  Z 0 10 n(5)   由于在n次循環以后  b n = b 0 n, 在停止循環時  b n = x ,  所以 b 0x = n(6)  從式(5)和式(6)得出100 Z n Z 0 + 10 (b 0 x)  (7)  4、故障

12、樹分析實例 Lereson和Harvey應用故障樹分析了火輪系統火輪系統是一個由宇宙飛船發射的空間飛行器,它帶有一個金屬絲網架,網架終端有一個電場傳感小球火輪系統的飛行控制程序由1250行Intel 8080匯編語言的語句構成,通過微機控制該小球對地磁拖尾中的電場進行抽樣檢測,然后由微機將抽樣值變換為遙測信息發出飛行器上的其他設備也由這個程序控制出于費用方面的考慮,飛行器不能接收衛星地面站的指令,一切決策必須由飛行器的微機作出。 金屬絲網架是依靠空間飛行器旋轉賦予傳感小球的離心力而放置的,當網架的長度 增加時,飛行器的轉速減慢,所以微機還控制了一個小推進器,推進器噴口的位置與飛行器殼體相切,打

13、開氣體控制閥可以增加飛行器的自旋速度飛行器的自旋速度必須處在 一定的速度區間之中,才能圓滿的完成預定的任務在網架放置時,很可能因為飛行器的速度過快,產生的離心力過大而發生失效實驗數據表明,當飛行器的離心力超過重力25倍時,網架將纏繞在飛行器上所以這個系統的關鍵失效事件是金屬網架損壞圖10是以“飛行器自旋過快”作為頂端事件構造的故障樹圖,圖11是以“PERIOD 太大”為頂事件構成的故障樹圖圖中的PERIOD, LENTH, MONITORSPIN, GASON,GASOFF等是程序中的函數,其余的標示符是程序的變量名。用故障樹分析之后發現,在火輪運行過程中,如果在64毫秒的時間區間內,發生兩個

14、太陽脈沖造成的中斷事件,就足以使微機控 制失效,從而導致金屬絲網架損壞這個發現為改進空間飛行器的設計提供了重要的依據在此之前,由獨立的測試組已經對程序進行過非常嚴格的測試,但是未能發現這個潛在的重大問題。 5 軟件故障樹的定量分析 和硬件故障樹分析法相似,軟件故障樹一旦建成,就可按照故障樹的邏輯關系,將頂端事件與各個基本事件的關系用一個布爾代數式來表示這個布爾代數式又稱為頂端事件的結構函數按照布爾代數運算法則對結構函數進行簡化,可得出結構函數的積之和 型這種結構函數的每一個積之和項,代表了頂端事件發生的充分和必要條件如果每 一個基本事件發生的概率是已知的,頂端事件發生的概率就可以計算

15、出來除此之外,還可以對故障樹進行靈敏度分析,找出對頂端事件影響最大、最靈敏的基本事件在進行故 障樹的分析和計算的過程中,必須對軟件故障樹的各個基本事件是否滿足統計獨立的假定進行論證只有在進行近似分析時,才能直接采用相互獨立的假設這種作法得出的 結果,雖然不夠準確,但是在比較各種備用方案的優劣時,仍可發揮重要作用。SFTA使用的數學工具及具體計算方法,受限于篇幅,本文從略。需要提請讀者注意的是,軟件故障樹分析法的定量分析能力并不是它最重要的用途軟件故障樹分析最重要的意義在于,根據分析的結果可以找出關鍵性的安全事故發生的原因,可以用于指導軟件的安全性設計和測試、確定軟件測試的重點和內容,使系統的安全得到更充分的保證例如軟件故障樹分 折提供的信息,可以用來判斷哪些模塊是安全關鍵單元并且確定是否需要進一步采取容錯措施,軟件故障樹分析中揭示的系統失效的條件,可以用來識別系統的不安全狀態,決定在什么情況下應該必須采取失效_安全措施在本文的結尾,還想再次對愛好FTA方法的讀者指出, 軟件故障樹分析法存在固有的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論