姜夢霞,江國華
(南京航空航天大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,南京 210016)
一種安全性關(guān)鍵軟件的評估模型
姜夢霞,江國華
(南京航空航天大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,南京 210016)
安全性關(guān)鍵軟件影響生命財產(chǎn)安全,必須有定量評估模型來反映此類軟件的安全性。傳統(tǒng)安全性定量評估通過改進(jìn)可靠性模型并將軟件看作整體評估,而未探究軟件失效本質(zhì),不能很好地評估軟件行為安全性。為此,基于軟件失效本質(zhì)及對安全性關(guān)鍵場景的研究,提出軟件交互行為模型,給出從各軟件運(yùn)行條件的關(guān)系中構(gòu)造交互模式依賴圖的方法,設(shè)計基于軟件過程行為的安全性評估模型。實例分析表明,該模型能識別出所有軟件過程行為及其發(fā)生率、失效率,為每個過程行為賦予風(fēng)險指數(shù),并計算得到整體的軟件風(fēng)險指數(shù)。
安全性關(guān)鍵軟件;軟件交互行為模型;交互模式依賴圖;安全性評估模型;軟件過程行為
DO I:10.3969/j.issn.1000-3428.2015.10.025
隨著計算機(jī)技術(shù)飛速發(fā)展,安全性關(guān)鍵軟件在各個領(lǐng)域發(fā)揮著重要作用,如核電站、航空航天、工業(yè)控制、軍事等,其安全性一直是國內(nèi)外研究的焦點。
國內(nèi)外各領(lǐng)域均提出相應(yīng)的標(biāo)準(zhǔn)或指南確保軟件 安 全 性,國 外 有 AS9100[1],DO-178C[2],MIL-STD-882D[3]等,國內(nèi)有GJB Z102-97[4],GJB Z142-2004[5],GJB 900-90[6]等,而評判軟件安全性是否達(dá)到預(yù)期標(biāo)準(zhǔn)離不開安全性評估。
由于安全性與可靠性有很多相似點,現(xiàn)有研究通常通過改進(jìn)可靠性模型(如J-M)來評估軟件安全性[7-9],試圖在可靠性模型上賦予安全性意義,如重要度劃分。這類方法依據(jù)軟件整體失效數(shù)據(jù),將其看作整體進(jìn)行安全性評估,未考慮軟件失效本質(zhì),不能很好地評估軟件行為的安全性。
軟件一旦成品,缺陷就已經(jīng)確定并隱藏在內(nèi)部,只有某些特定條件發(fā)生,缺陷才可能暴露而引起內(nèi)部狀態(tài)發(fā)生意外變化,最終導(dǎo)致失效,這是軟件失效機(jī)理[10]。這種特定條件是軟件與系統(tǒng)其他元素(如軟、硬件,人為操作)交互的一種模式或狀態(tài),一旦發(fā)生便觸發(fā)軟件某種響應(yīng),稱軟件交互模式。因此,軟件失效本質(zhì)是某些交互模式下缺陷的
暴露,有些交互模式發(fā)生率極低,這就是為什么安全性關(guān)鍵軟件在大量測試之后仍然會存在安全性隱患的原因。
現(xiàn)有少部分研究從軟件與系統(tǒng)交互這個角度考慮安全性。文獻(xiàn)[11]將軟件失效歸因于某些系統(tǒng)場景的軟件設(shè)計不合理,認(rèn)為軟件安全性評估需識別所有這種場景。文獻(xiàn)[12]認(rèn)為安全性是系統(tǒng)屬性,軟件只有與系統(tǒng)交互才具備安全性,針對軟硬件安全問題不應(yīng)假設(shè)對方行為正確。NASA版本2的概率風(fēng)險分析(Probabilistic Risk Analysis,PRA)過程指南提出了CSRM[13],主要結(jié)合PRA相關(guān)模型識別軟件相關(guān)風(fēng)險場景并量化評估軟件風(fēng)險[13-16]。但這些方法有的只提出設(shè)想,未能給出安全性評估具體實現(xiàn),有的未給出如何從失效本質(zhì)或從系統(tǒng)元素中提取軟件安全性相關(guān)因素。
針對上述問題,本文首先對軟件失效本質(zhì)進(jìn)行探討,分析引起軟件功能執(zhí)行的觸發(fā)因素,即軟件運(yùn)行條件、軟件交互模式;其次對安全性關(guān)鍵場景中的這些觸發(fā)因素建立聯(lián)系,并在此基礎(chǔ)上提出基于運(yùn)行條件關(guān)系構(gòu)造交互模式依賴圖的方法;最后在交互模式依賴圖基礎(chǔ)上,給出基于軟件過程行為的安全性評估模型。該方法正視了軟件失效本質(zhì),突破了以往把軟件看作整體評估的局限性,認(rèn)為軟件安全性不僅與各功能安全性相關(guān),而且與軟件過程行為有關(guān)。
安全性是系統(tǒng)屬性,軟件本身不具備安全性,只有在系統(tǒng)環(huán)境下才有安全性[12],評價軟件安全與否只有將其置于系統(tǒng)環(huán)境中才有意義。安全性關(guān)鍵軟件風(fēng)險源于系統(tǒng)設(shè)計范圍所規(guī)定的條件,軟件在支持安全性關(guān)鍵的系統(tǒng)功能實現(xiàn)時功能失效[16]。
這種系統(tǒng)設(shè)計范圍規(guī)定的條件,即安全性關(guān)鍵軟件交互模式(SCSWIM),支持安全性關(guān)鍵系統(tǒng)功能實現(xiàn)的是安全性關(guān)鍵軟件功能(SCSWF)。基于軟件失效本質(zhì)及上述風(fēng)險致因,提出失效模型,如圖1所示。
圖1 安全性關(guān)鍵軟件失效模型
在圖1中,M1~Mn是SCSWIM;F1~Fn是系統(tǒng)期望的SCSWF。兩者在系統(tǒng)設(shè)計范圍中一一對應(yīng),圖中虛線表示一一對應(yīng),錯誤源為軟件運(yùn)行時不能給予系統(tǒng)預(yù)期響應(yīng)的原因,失效點為軟件失效發(fā)生的位置,失效發(fā)生與否通過輸出與預(yù)期功能是否匹配來判斷。軟件有2種失效方式:
(1)由錯誤源 1(Input1)引起,失效過程如“Input1→軟件內(nèi)部交互1→Output1”,表示軟件在設(shè)計時未充分考慮SCSWIM(如Mi)導(dǎo)致Input1與軟件內(nèi)部交互后無法給出與預(yù)期功能匹配的輸出;
(2)由錯誤源 2(Input2)引起,失效過程如“Input2→軟件內(nèi)部交互2→Output2”,表示在軟件設(shè)計時已完整考慮SCSWIM(如Mj),但軟件內(nèi)部設(shè)計時引入缺陷(如需求傳遞錯誤、編碼錯誤等)的暴露導(dǎo)致無法給出與預(yù)期功能匹配的輸出。因此,安全性關(guān)鍵軟件失效是因為:
(1)系統(tǒng)需求到軟件需求時,SCSWIM提取不完整;
(2)軟件某SCSWIM下,內(nèi)部設(shè)計時缺陷引入。
上述失效模型給出2種失效成因,其表現(xiàn)形式均為某SCSWIM下,相應(yīng)SCSWF失效,這表明失效是有條件的,與軟件交互模式及內(nèi)部交互同時有關(guān),則在測試并評估一個軟件安全性時,可觀察軟件在各個交互模式下的行為與預(yù)期行為是否一致。即什么是交互模式,以及如何表示交互模式,如圖 2所示。
圖2 軟件交互行為示例
5種模式表示為:
(1)狀態(tài)1-1∨狀態(tài)1-2?軟件交互模式1
(2)狀態(tài)1-3∨狀態(tài)2-1?軟件交互模式2
(3)狀態(tài)1-3∧ 狀態(tài)2-2∧ (狀態(tài) 3-1∨ 狀態(tài)3-2)?軟件交互模式2
(4)狀態(tài)1-3∧狀態(tài)2-2∧狀態(tài)3-3?軟件交互模式3
(5)狀態(tài)1-3∧狀態(tài)2-2∧狀態(tài)3-4?軟件交互模式3
被評估軟件與3個交互個體間有3種交互模式,每個交互個體有多種狀態(tài)表示其行為特征,同一交互個體的狀態(tài)間互斥;不同交互個體的狀態(tài)組合能夠觸發(fā)軟件不同的交互模式。在 5種模式中,模式(1)表明狀態(tài)1-1發(fā)生或者狀態(tài)1-2發(fā)生可以觸發(fā)交互模式 1;模式(3)表明狀態(tài) 1-3,2-2,3及3-1,3-2中的任一個,三者同時發(fā)生可以觸發(fā)交互模式2;其中諸如“狀態(tài)1-1”、“狀態(tài)1-2”這種用來描述與軟件交互的個體的某種狀態(tài)或行為,稱為軟件運(yùn)行條件,從某種意義上來講,在其他條件滿足時,它是觸發(fā)軟件某種功能的基本條件;模式(2)和模式(3)都能觸發(fā)軟件交互模式,但兩者不能同時發(fā)生,稱模式(2),模式(3)中這種條件為軟件基本交互模式,是觸發(fā)條件某種功能的基本事件;軟件交互模式由一種或多種基本交互模式引起,是觸發(fā)某種功能的基本事件集合;另外,根據(jù)失效模型知,軟件交互模式下軟件完成對應(yīng)的功能。
本文提出軟件交互行為模型(Software Interbehavior Model,SIBM),其組成元素主要有:軟件運(yùn)行條件,軟件交互模式及軟件功能,也是軟件交互行為的影響因素,可從安全性關(guān)鍵場景中提取,這種關(guān)鍵場景生成工具及方法主要有動態(tài)流程模型、事件序列圖、事件樹等[12-13]。然后依據(jù) SIBM中軟件交互模式、運(yùn)行條件及功能之間的關(guān)系,從條件依賴圖(Conditional Dependence Graph,CDG)生成交互模式依賴圖(Interactive Pattern Dependency Graph,IMDG),最后基于IMDG提出安全性評估模型。本文的軟件、場景、運(yùn)行條件、交互模式、功能等皆是安全性領(lǐng)域相關(guān)的。
3.1 軟件交互行為模型的定義
軟件交互行為模型(SIBM)用以描述軟件與其交互個體間的交互行為,交互體滿足什么情況下,可以觸發(fā)軟件不同功能,其定義如下:
(1)軟件運(yùn)行條件類集 RTS={R1,R2,…,Ri,…,Rn};
(3)軟件基本交互模式集 BMS={M1,M2,…,Mi,…,Mm};
(4)軟件基本交互模式 Mi=(Ai1,Ai2,…,Aij,…,Ain),其中,Aij?Rj,若Aij=Rj,Aij用@表示;
(5)軟件交互模式集IS={I1,I2,…,Ii,…,Ik},Ii?BMS;
(6)軟件功能集合FS={F1,F(xiàn)2,…,F(xiàn)i,…,F(xiàn)k},F(xiàn)i與Ii存在一一對應(yīng)關(guān)系,用Fi?Ii表示。
3.2 SIBM性質(zhì)
定義1 設(shè)2個軟件基本交互模式A,B,其中,A=(A1,A2,…,An),B=(B1,B2,…,Bn),Ai,Bi?軟件運(yùn)行條件集Ri:
(1)?Ai,Ai?Bi,稱A包含于B,或B包含A;
性質(zhì)1 與軟件交互的個體在同一時刻只能有一種運(yùn)行條件,因此有:任一軟件運(yùn)行條件集 R,任2個軟件運(yùn)行條件ri,rj∈R,則ri∧rj=Φ,即同一軟件運(yùn)行條件集中的2個不同運(yùn)行條件的發(fā)生是互斥的。
性質(zhì)2 軟件基本交互模式集BMS中任2個軟件基本交互模式Mi,Mj必須滿足Mi不包含Mj,且Mj不包含Mi;即基本交互模式集中的任意2個基本交互模式之間不能相互包含。
性質(zhì)3 任一基本交互模式不能屬于不同的交互模式,因此軟件交互模式集IS中任2個軟件交互模式Ii,Ij,滿足Ii∩Ij=Φ。
性質(zhì)4 任一軟件基本交互模式 Mi=(A1,
A2,…,Aj,…,An),Aj?軟件運(yùn)行條件集Rj,若Ai= @,表明Ri不影響軟件基本交互模式A的發(fā)生;A可化簡,即將所有@省略,如(Ak,@)=(Ak),其中,Ak≠@。
3.3 SIBM實例說明
本節(jié)以姿勢控制系統(tǒng)(Attitude Control System,ACS)介紹三元素及三者關(guān)系,如圖3所示。ACS由傳感與命令功能和推進(jìn)功能控制衛(wèi)星體姿勢,主要由內(nèi)置軟件、3個高度精確的回旋儀傳感器、2個較精確的行星跟蹤器傳感器共同完成傳感與命令功能。
圖3 姿勢控制系統(tǒng)
內(nèi)置軟件根據(jù)傳感器讀數(shù)計算衛(wèi)星到預(yù)期姿勢所需的控制推動的命令參數(shù),以保證推進(jìn)功能正確實現(xiàn)。它以正常模式和應(yīng)急模式2種方式與系統(tǒng)元素交互,如圖4所示,對應(yīng)功能設(shè)為正常功能和應(yīng)急功能,其中,與門表示∩;或門表示∪。由圖可知,2個及以上回旋儀傳感器可用時軟件進(jìn)入正常模式,選擇2個可用的進(jìn)行高度精確計算;僅1個回旋儀傳感器可用時軟件進(jìn)入應(yīng)急模式,選擇一個可用衛(wèi)星跟蹤器傳感器與唯一可用的回旋儀傳感器進(jìn)行較精確的計算。因此,當(dāng)3個回旋儀傳感器均不可用,或者2個回旋儀傳感器不可用且衛(wèi)星跟蹤器傳感器均不可用時,軟件進(jìn)入不可控模式。無論哪種軟件,均有包含這種模式,其發(fā)生率極低,一般考慮軟件不處理僅給出提示,讓人員干預(yù)。一旦這種模式發(fā)生,軟件便失去安全控制作用。
假設(shè)用GFNi(i=0,1,2,3)表示回旋儀傳感器失效數(shù)為 i的條件發(fā)生事件對應(yīng)的布爾變量,SFNi(i=0,1,2)表示衛(wèi)星追蹤器傳感器失效數(shù)為i的條件發(fā)生事件對應(yīng)的布爾變量;Nor,Con,Unc分別表示軟件正常、應(yīng)急及不可控交互模式;FUNNor,F(xiàn)UNCon,F(xiàn)UNUnc分別為3種模式對應(yīng)的軟件正常功能、應(yīng)急功能及不可控功能,其中不可控功能直接導(dǎo)致ACS失效,如圖4所示。
圖4 ACS功能與傳感器交互關(guān)系
則ACS的交互模型行為定義為:
(1)運(yùn)行條件類集RTS={R1,R2};
(2)運(yùn)行條件集R1={GFN0,GFN1,GFN2,GFN3},運(yùn)行條件集R2={SFN0,SFN1,SNF2};
(3)基本交互模式集BMS={M1,M2,M3,M4};M1=({GFN0,GFN1},@)=({GFN0,GFN1}),M2=({GFN2},{SFN0,SFN1}),M3=({GFN2},{SFN2}),M4=({GFN3},@)=({GFN3});
(4)軟件交互模式集 IS={Nor,Con,Unc};Unc={M1}={({GFN0,GFN1})},Con={M2}={({GFN2},{SFN0,SFN1})},Unc={M3,M4}={({GFN2},{SFN2}),({GFN3})};
(5)軟件功能集合FS={FUNNor,F(xiàn)UNCon,F(xiàn)UNUnc},滿足FUNNor?Nor,F(xiàn)UNCon?Con,F(xiàn)UNCon?Unc。
本文提出2種依賴圖:條件依賴圖和交互模式
依賴圖。在依賴圖的構(gòu)造過程中,為方便說明,定義一些符號并描述其含義。
4.1 相關(guān)符號
A,B表示為同一屬性的事件;事件為條件、基本交互模式或交互模式發(fā)生;運(yùn)行周期表示軟件所在系統(tǒng)運(yùn)行一次所需時間,則:
(1)PS(A):A的啟動率,表示系統(tǒng)啟動時某事件發(fā)生的概率;
(2)PC(A):A的觸發(fā)率,表示運(yùn)行周期內(nèi),由其他事件遷移引起的發(fā)生概率,而非啟動時發(fā)生率;
(3)PC(B/A):A到B的遷移率,表示運(yùn)行周期內(nèi),事件 A發(fā)生后B發(fā)生的概率,稱 A到B的遷移率;
(4)PC(A,B):為A對B的貢獻(xiàn)率,表示運(yùn)行周期內(nèi),事件A直接遷移導(dǎo)致事件 B發(fā)生的概率,稱A→B的貢獻(xiàn)率,等于A的發(fā)生率與A到B的遷移率之積;
(5)PH(A):A的發(fā)生率,表示運(yùn)行周期內(nèi),事件發(fā)生概率,由啟動率和觸發(fā)率構(gòu)成;
(6)PU(A):A的非遷移率,表示運(yùn)行周期內(nèi),事件發(fā)生后不向其他條件發(fā)生遷移的概率。
4.2 依賴圖性質(zhì)
本文中的2種依賴圖主要是由節(jié)點和邊構(gòu)成的有向圖。這2種依賴圖符合馬爾科夫鏈[17]的一些性質(zhì):
性質(zhì)5 任一節(jié)點到其他各節(jié)點的一步轉(zhuǎn)移概率之和為1。
一個條件依賴圖(Conditional Dependence Graph,CDG)描述一個運(yùn)行條件類集中各條件的關(guān)系,由一個或多個子條件依賴圖(Sub Conditional Dependence Graph,SCDG)構(gòu)成,每個SCDG由開始節(jié)點、終端節(jié)點、條件節(jié)點和有向邊構(gòu)成,描述與軟件交互的某種系統(tǒng)元素可能發(fā)生的狀態(tài)、狀態(tài)變化及相應(yīng)的概率。
5.1 SCDG定義
定義2 子條件依賴圖SCDG=<N,E,s,t>。其中,<N,E>是一個有向圖;s是開始節(jié)點;t是終端節(jié)點;N={n}是一系列條件節(jié)點的集合;E={e}是有向邊的集合,示例圖如圖 5所示。其中,節(jié)點ni={Ri};Ri表示運(yùn)行條件i;ek=((A,B),Mk)表示連接節(jié)點A,B的有向邊;Mk為邊上標(biāo)注,連接s與Ri的有向邊上標(biāo)注的是Ri的啟動率;連接Ri與Rj的有向邊上標(biāo)注的是Ri到 Rj的遷移率;若無連接Ri與Rj的有向邊,則Ri到Rj遷移率為0;連接Ri與t的有向邊上標(biāo)注的是Ri的非遷移率。
圖5 SCDG示例圖
5.2 SCDG性質(zhì)
已知軟件運(yùn)行條件集Ri={ri1,ri2,…,ris};以此構(gòu)造SCDG,不考慮依賴圖中存在環(huán)路的情況,即不考慮硬件或軟件等自我修復(fù)的可能,在這種情況下依賴圖滿足以下性質(zhì):
性質(zhì)6 由性質(zhì)5知:s節(jié)點到各條件節(jié)點的轉(zhuǎn)移概率和為1,即各條件的啟動率和為1。
性質(zhì)7 由性質(zhì)5知:任一條件節(jié)點到其他節(jié)點的遷移率之和為1。
性質(zhì)8 若依賴圖中存在一種條件節(jié)點,該節(jié)點不能遷移到其他條件節(jié)點,則該節(jié)點屬于“不可控”運(yùn)行條件節(jié)點,為最不安全的運(yùn)行條件,一旦發(fā)生,無法恢復(fù)到更安全的運(yùn)行條件,則非遷移率為1。
5.3 SCDG規(guī)則
規(guī)則1 任2個不同軟件運(yùn)行條件Rij,Rik∈軟件運(yùn)行條件集Ri,前者對后者的貢獻(xiàn)率滿足:
規(guī)則2 任一軟件運(yùn)行條件Rij∈軟件運(yùn)行條件集Ri,滿足:
規(guī)則3 任一軟件運(yùn)行條件Rij∈軟件運(yùn)行條件集Ri,滿足:
軟件基本交互模式之間的相互關(guān)系主要起到過渡作用,此處定義了軟件基本交互模式必須滿足的性質(zhì),即相關(guān)概率的計算規(guī)則,目的是通過此處計算及軟件交互模式與基本交互模式之間的包含關(guān)系獲得各軟件交互模式之間的關(guān)系。
6.1 基本交互模式集性質(zhì)
一個軟件的基本交互模式集應(yīng)該包含了所有該軟件可能的不重復(fù)的(不相互包含)運(yùn)行狀態(tài)組合,因此,滿足下面的性質(zhì):
設(shè)一個軟件基本交互模式集為 BMS={M1,M2,…,Mi,…,Mm},則有:
6.2 單類條件的基本交互模式規(guī)則
只有一種條件集的軟件基本交互模式規(guī)則的定義如下:
規(guī)則4 若不含@的基本交互模式Mi=(Aik),Aik?軟件運(yùn)行條件集 Rk,Aik={rka1,rka2,…,rkaχ},Rk={rk1,rk2,…,rks},則:
規(guī)則5 若不含@的基本交互模式Mi,Mj,滿足Mi=(Aik),Mj=(Ajk),Aik,Ajk?軟件運(yùn)行條件集Rk,Aik={rka1,rka2,…,rkaχ},Ajk={rkb1,rkb2,…,rkby},則:
6.3 多類條件的基本交互模式規(guī)則
由多種條件集構(gòu)成的軟件基本交互模式規(guī)則的定義如下:
規(guī)則6 若不含@的基本交互模式Mi=(Aia1,Aia2,…,Aiaχ),則:
規(guī)則7 若不含@的基本交互模式 Mi,Mj,Mi=(Aia1,Aia2,…,Aiaχ),Mj=(Ajb1,Ajb2,…,Ajby),則:
7.1 IM DG定義
定義3 交互模式依賴圖IMDG=<N,E,s,t>,其中,<N,E>是一個有向圖;s是開始節(jié)點;t是終端節(jié)點;N={n}是一系列交互模式節(jié)點的集合;E={e}是有向邊的集合。IMDG示例圖如圖6所示。節(jié)點ni={IMi,F(xiàn)UNi},其中,IMi表示交互模式i;FUNi表示軟件功能i,IMi與FUNi對應(yīng);ek={(A,B),Mk}表示連接節(jié)點A,B的有向邊;Mk為邊上標(biāo)注。連接s與IMi的有向邊上標(biāo)注為IMi的啟動率,連接IMi與IMj的有向邊上的標(biāo)注為IMi到IMj的遷移率,若無連接IMi與IMj的有向邊,則IMi到IMj遷移率為0;連接IMi與t的有向邊上的標(biāo)注為IMi的非遷移率。
圖6 IM DG示例圖
7.2 IM DG性質(zhì)
已知軟件交互模式集IS={I1,I2,…,Ii,…,Is},以此構(gòu)造IMDG,滿足以下性質(zhì):
性質(zhì)9 由性質(zhì)5知,各交互模式節(jié)點的啟動率之和為1:
性質(zhì)10 由性質(zhì)5知,任一交互模式節(jié)點的非遷移率與其到其他交互模式節(jié)點的遷移率之和為1:
7.3 IMDG規(guī)則
規(guī)則8 設(shè)一個軟件的基本交互模式集為BMS={M1,M2,…,Mm},一個軟件交互模式 Ii?BMS,設(shè)Ii={Ma1,Ma2,…,Mas},a1,a2,as=1,2…,m且各不相等,則:
規(guī)則9 設(shè)一個軟件的基本交互模式集為BMS={M1,M2,…,Mm},軟件交互模式Ii,Ij?BMS,設(shè)Ii={Ma1,Ma2,…,Mas},a1,a2,…,as=1,2,…,m且各不相等,Ij={Mb1,Mb2,…,Mbt},b1,b2,bt=1,2,…,m且各不相等,則:
規(guī)則10 設(shè)一個軟件的基本交互模式集為BMS={M1,M2,…,Mm},軟件交互模式Ii,Ij?BMS:
安全性存在2種常見的定義,一個為軟件在運(yùn)行過程中不引起系統(tǒng)危害(hazard)的能力[3],另一個為軟件在系統(tǒng)環(huán)境中運(yùn)行不產(chǎn)生不可接受的風(fēng)險[18]。根據(jù)這2種不同定義,一般有 2種定量評估軟件安全性的指標(biāo):傳統(tǒng)的可靠性指標(biāo)(如事故率、安全可靠度、平均事故間隔時間等)和風(fēng)險指數(shù)。前者未考慮失效的后果,而后者不僅考慮了不安全性因素發(fā)生率,同時考慮了不安全因素發(fā)生引起的后果。
8.1 軟件風(fēng)險評估模型
本文將使用風(fēng)險指數(shù)作為安全性評估的指標(biāo),風(fēng)險通常被定義為所有危險可能性與危險后果嚴(yán)重性乘積之和。文獻(xiàn)[19]由軟件失效導(dǎo)致Hazardj引起的風(fēng)險為:
其中,ε(Hazardi)表示Hazardi的風(fēng)險指數(shù)。
因此,軟件總風(fēng)險為:
其中,上標(biāo)NPP表示非軟件過程行為評估方式。該方法是基于測試的運(yùn)行剖面的,而本文方法是基于軟件過程行為的。不同交互模式的變化對應(yīng)不同的軟件過程行為,一種交互模式發(fā)生即對應(yīng)一種軟件功能的執(zhí)行,則一種可能的交互模式的組合代表軟件運(yùn)行的一種過程行為。
由于軟件運(yùn)行中系統(tǒng)環(huán)境因素的不確定性,導(dǎo)致軟件在一次運(yùn)行中可能經(jīng)歷多種交互模式,則軟件一次運(yùn)行存在多種可能的過程行為。每種過程行為的發(fā)生將給系統(tǒng)帶來不同的后果,即有不同的風(fēng)險指數(shù),如飛控系統(tǒng)在正常模式和異常模式下飛控指令計算采用的參數(shù)來源不同,則計算準(zhǔn)確度不同,存在的風(fēng)險則不同。這表明在軟件運(yùn)行周期
其中,PPj表示第j個過程行為;上標(biāo)PP表示軟件過程行為的評估方式;Pfailed表示某行為過程對應(yīng)的軟件失效率。
此外,對風(fēng)險指數(shù)可通過專家經(jīng)驗結(jié)合軟件復(fù)雜性分析、測試覆蓋率評價和失效模式與影響分析等方法的分析結(jié)果指定,風(fēng)險指數(shù)應(yīng)該在 0~1之間,值越高,說明風(fēng)險越大。
8.2 軟件過程行為定義
設(shè)交互模式集合 IS={I1,I2,…,IS},則軟件過程行為PPi=[Ia1,Ia2,…,Iat|Ii∈IS]表示軟件交互模式以 Ia1,Ia2,…,Ian順序依次發(fā)生,一種軟件存在多種軟件過程行為,每種軟件過程行為以一定的概率發(fā)生。
基于IMDG,可以找到所有可能的軟件過程行為并能根據(jù)圖中參數(shù)計算出各種過程行為發(fā)生概率,各過程行為的發(fā)生率計算規(guī)則如下:
一個軟件的所有軟件過程行為能描述所有該軟件可能的軟件行為,則各軟件過程行為發(fā)生率之和應(yīng)滿足:
對任一過程行為下軟件的失效率,只與該過程行為的最后一個軟件交互模式下軟件功能失效率有關(guān),則失效率滿足:
其中,F(xiàn)unat為Iat下對應(yīng)的軟件功能。
如何根據(jù)IMDG找到所有可能的軟件過程行為,方法如下:
(1)若交互模式 IMj滿足 PS(IMj)>0且存在
IMk使得PC(IMk/IMj)>0,則存在軟件過程行為[IMj]與[IMj,…];
(2)若交互模式IMj滿足PS(IMj)>0且不存在IMk,使得PC(IMk/IMj)>0,則只存在軟件過程行為[IMj];
(3)設(shè)2個交互模式IMj,IMk,若PC(IMj/IMk)>0且PU(IMk)>0,則存在軟件過程行為[…,IMk]與[…,IMk,IMj];
(4)設(shè)2個交互模式IMj,IMk,若PC(IMk/IMj)>0且PU(IMk)=0,則只存在軟件過程行為[…,IMj,IMk]。
該方法不僅考慮了軟件安全性相關(guān)功能失效的概率及對應(yīng)后果的嚴(yán)重性,相比之下還考慮了軟件在運(yùn)行中所有可能的過程行為,更好地評估了軟件行為的安全性。
9.1 實例1
該實例基于上述規(guī)則從一個確定的CDG構(gòu)建IMDG,通過證明各依賴圖均滿足依賴圖性質(zhì)來證明IMDG生成過程的正確性及可行性。
圖7為3.2節(jié)中ACS的CDG,由SCDG1和SCDG2(滿足性質(zhì)SCDG性質(zhì))構(gòu)成,設(shè)條件GFNi表示Gyro失效數(shù)為i(i=0,1,2,3)的軟件運(yùn)行條件;SFNi表示S-Tracker失效數(shù)為i(i=0,1,2)的軟件運(yùn)行條件,S1和E1,S2和E2分別是各自的初始節(jié)點和終端節(jié)點,已知ACS系統(tǒng)的交互模式行為定義如3.3節(jié)所述,已知各軟件運(yùn)行條件啟動率、遷移率、非遷移率滿足:
圖7 ACS對應(yīng)的條件依賴圖
各條件的發(fā)生率滿足:
經(jīng)檢驗,滿足IMDG性質(zhì)。
因此,根據(jù)描述各軟件運(yùn)行條件依賴關(guān)系的CDG及軟件交互行為模型(SIBM),可以根據(jù)本文定義的相關(guān)規(guī)則正確地生成IMDG,識別各軟件交
互模式的關(guān)系,從而確定各功能的關(guān)系。ACS的交互模式依賴圖如圖8所示。
圖8 ACS的交互模式依賴圖
9.2 實例2
根據(jù)軟件過程行為提取的方法及其發(fā)生率計算方法,實例1中對應(yīng)的所有軟件過程行為及相關(guān)參數(shù)如表1所示。
表1 ACS過程行為清單
設(shè)Nor,Con下軟件功能失效率為0.001,0.000 1;Unc表示軟件無法控制,則失效率為1。
發(fā)生率是按照發(fā)生率計算規(guī)則獲得,根據(jù)軟件過程行為提取的方法可以列舉所有軟件相關(guān)的過程行為,則軟件整體風(fēng)險為:
觀察各過程行為的風(fēng)險值,可以發(fā)現(xiàn)影響整體風(fēng)險值降低的瓶頸因素為包含Unc的過程行為,如[Nor],[Nor,Unc],這意味著影響軟件風(fēng)險的因素不僅在于軟件內(nèi)部結(jié)構(gòu),也有部分原因在于外界系統(tǒng)不安全狀態(tài)的發(fā)生率過高,此時為提高系統(tǒng)安全性更應(yīng)該注重對于軟件交互的環(huán)境安全性的提高。
在Unc對系統(tǒng)安全性影響可以忽略的情況下,可以發(fā)現(xiàn)Nor和Con中Nor交互模式下軟件失效的風(fēng)險比Con大很多,為了較快地提高軟件的安全性,在各過程發(fā)生率不變的前提下,需要采取措施降低Nor對應(yīng)功能的失效率。
安全性關(guān)鍵軟件是安全性系統(tǒng)的重要組成部分,其行為直接影響生命財產(chǎn)安全,本文對該類軟件提出安全性評估方法。首先基于軟件失效本質(zhì)并提出軟件失效模型,然后在對軟件交互行為理解的基礎(chǔ)上提出軟件交互行為模型(SIBM)并探討軟件運(yùn)行條件、軟件基本交互模式、交互模式及功能之間的關(guān)系,同時以條件依賴圖(CDG)描述運(yùn)行條件之間的關(guān)系,基于SIBM和CDG生成軟件交互模式依賴圖(IMDG)的方法,最后在IMDG提出基于過程行為的安全性評估模型?;谠撃P停疚囊宰藙菘刂葡到y(tǒng)(ACS)為實例生成對應(yīng)的SIBM、CDG及IMDG,并識別出所有軟件過程行為及對應(yīng)發(fā)生率、失效率、風(fēng)險,最后計算得到軟件整體風(fēng)險。經(jīng)實例證明,該評估方法能方便地識別影響系統(tǒng)安全性的瓶頸,這種瓶頸可能是軟件自身設(shè)計或是與軟件交互的環(huán)境,通過這種方法可以很方便地識別軟件安全性設(shè)計的不足或軟件交互環(huán)境安全性設(shè)計的不足。
此外該方法還有以下優(yōu)點:(1)運(yùn)行條件是生成測試用例的基本元素,交互模式可作為用例分區(qū)的一個標(biāo)準(zhǔn);(2)各運(yùn)行條件(硬件失效情況等)的發(fā)生率等參數(shù)可從系統(tǒng)元素歷史數(shù)據(jù)獲得,則軟件安全性測試可與系統(tǒng)測試并行,時間少并相互反饋;(3)不需用傳統(tǒng)測試剖面生成測試用例,而是對不同功能基于其運(yùn)行條件生成用例進(jìn)行測試,避免隨機(jī)性引起不平衡性,防止低發(fā)生率的安全性功能測試被遺漏;因此,該模型具有一定的可行性,在后續(xù)研究中,將進(jìn)一步探討該模型在安全性測試指標(biāo)分配中的應(yīng)用,對安全性測試有一定的指導(dǎo)作用。
[1] G-14 Americas Aerospace Quality Standards Committee. AS9100C-2009 Quality Management Systems-requirements for Aviation,Space and Defense Organizations[S].2009.
[2] RTCA.DO-178C Software Considerations in Airborne System s and Equipment Certification[Z].Radio Technical Commission for Aeronautics,Inc.,2008.
[3] MIL-STD-882D Standard Practice for System Safety Program Requirements[Z].Department of Defense,USA Military,1996.
[4] 國防科學(xué)技術(shù)工業(yè)委員會.GJB Z102-97軟件可靠性和安全性設(shè)計準(zhǔn)則[M].北京:國防工業(yè)出版社,1998.
[5] 國防科學(xué)技術(shù)工業(yè)委員會.GJB Z142-2004軍用軟件安全性分析指南[M].北京:國防工業(yè)出版社,2004.
[6] 國防科學(xué)技術(shù)工業(yè)委員會.GJB 900-90系統(tǒng)安全性通用大綱[M].北京:國防工業(yè)出版社,1991.
[7] Ma Sasa,Liu Dongqing,Xu Aihua.Research on Safety Evaluation Method of Military Software[C]// Proceedings of the 8th International Conference on Reliability,Maintainability and Safety.New York,USA:ACM Press,2009:718-722.
[8] 嚴(yán) 黎,吳芳美.鐵路車站計算機(jī)聯(lián)鎖軟件的安全性評估策略[J].同濟(jì)大學(xué)學(xué)報,2002,30(9):1116-1120.
[9] 王小麗,徐中偉,杜軍威.改進(jìn)的J-M模型及其在軟件安全性評估中的應(yīng)用[J].小型微型計算機(jī)系統(tǒng),2008,29(2):269-273.[10] 陳德金.軍用實時軟件失效機(jī)理及可靠性提高途徑初探[J].系統(tǒng)工程與電子技術(shù),2000,22(4):91-93.
[11] Garrett C,Apostolakis G.Context and Software Safety Assessment[C]//Proceedings of the 2nd Workshop on Human Error,Safety and System Development.Berlin,Germ any:Springer,1998:46-57.
[12] Houtermans M,Apostolakis G,Brombacher A,et al.The Dynamic Flowgraph Methodology as a Safety Analysis Tool:Programmable Electronic System Design and Verification[J].Safety Science,2002,40(9):813-833.
[13] NASA.NASA/SP-2011-3421 Probabilistic Risk Assessment Procedures Guide for NASA Managers and Practitioners[Z].NASA Headquarters,2011.
[14] Ayyub B M,Beach J E,Sarkani S,et al.Risk Analysis and Management for Marine System s[J].Naval Engineers,2008,114(2):181-206.
[15] EPRI/NRC-RES Fire PRA Methodology for Nuclear Pow er Facilities[Z].Office of Nuclear Regulatory Research,U.S.Nuclear Regulatory Commission,2005.
[16] 趙麗艷,顧基發(fā).概率風(fēng)險評估(PRA)方法在我國某型號運(yùn)載火箭的安全性分析中運(yùn)用[J].系統(tǒng)工程理論與實踐,2000,(6):91-97.
[17] 熊 冰,郭 兵,沈 艷.基于馬爾科夫鏈的構(gòu)件化嵌入式軟件能耗估算模型[J].小型微型計算機(jī)系統(tǒng),2012,33(3):655-659.
[18] Leveson N G.Software Safety:Why,W hat,and How[J].ACM Computing Surveys,1986,18(2):125-163.
[19] 覃志東.高可信軟件可靠性和防危性測試與評價理論研究[D].成都:電子科技大學(xué),2005.
編輯 顧逸斐
An Evaluation Model of Safety-critical Software
JIANG Mengxia,JIANG Guohua
(School of Computer Science and Technology,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)
Safety-critical software behavior directly affects life and property safety,so a quantitative evaluation model is indispensible to reflect its safety.Similarities are between safety and reliability,traditional safety assessment method always takes software as a whole to evaluate through improved reliability models,but it ignores failure nature and can not evaluate behavior safety.Based on the study of software failure nature and safety-critical scenario,Software Interbehavior Model(SIBM)is proposed,and tells how to generate Interraction Mode Dependency Graph(IMDG)through relationships of software operation conditions.A safety evaluation model based on process behavior is proposed,it identifies all process behaviors with incidence rates and failure rates,risk indexes are given to every process behavior,then total risk index can be calculated.
safety-critical software;Software Interbehavior Model(SIBM);Interraction Mode Dependency Graph(IMDG);safety evaluation model;software process behavior
姜夢霞,江國華.一種安全性關(guān)鍵軟件的評估模型[J].計算機(jī)工程,2015,41(10):130-138,143.
英文引用格式:Jiang Mengxia,Jiang Guohua.An Evaluation Model of Safety-critical Software[J].Computer Engineering,2015,41(10):130-138,143.
1000-3428(2015)10-0130-09
A
TP311
姜夢霞(1989-),女,碩士,主研方向:軟件安全;江國華,副教授。
2014-10-10
2014-11-12E-mail:1024775461@qq.com