(1.西南電子技術(shù)研究所 天奧軟件測評中心,成都 610036;2.成都中電錦江信息產(chǎn)業(yè)有限公司,成都 610051)
嵌入式軟件以其專用性強、高實時性、可裁剪、重量輕、體積小等特點廣泛應(yīng)用于生產(chǎn)、生活乃至軍用航空領(lǐng)域[1]。嵌入式軟件作為嵌入式系統(tǒng)的控制中心,其安全性直接關(guān)系到系統(tǒng)的使用和人、機安全。由于嵌入式軟件的失效引起的安全事故對國家會造成嚴(yán)重的經(jīng)濟和軍事影響[2]。隨著航空電子技術(shù)不斷發(fā)展,現(xiàn)代飛機的體系架構(gòu)已由分離式、聯(lián)合式逐漸向模塊化、高度綜合化方向發(fā)展,系統(tǒng)功能越來越復(fù)雜軟件實現(xiàn)的功能在航空電子系統(tǒng)中所占的比重越來越大[3]。航空機載軟件具有嵌入式、實時性、結(jié)構(gòu)復(fù)雜、高關(guān)鍵等級等特點[4]。近年來,由于航空機載軟件安全性問題所造成的事故也成逐年上升趨勢。2018年10月印尼獅航和2019年3月埃塞俄比亞航空兩架波音737 MAX8客機墜毀,造成重大財產(chǎn)損失和人員傷亡。失事原因主要是由于AOA(飛機高迎角傳感器)將錯誤的數(shù)據(jù)傳輸給MCAS(操縱輔助系統(tǒng)),MCAS軟件未對異常的AOA數(shù)據(jù)做正確的處理導(dǎo)致的。軟件安全性包含很廣,既包含軟件失效對系統(tǒng)造成故障、危及飛行安全,也包括軟件內(nèi)部數(shù)據(jù)保護,防止非授權(quán)的用戶使用、篡改、分析和從中挖掘信息[5]。例如本身涉及國家秘密或商業(yè)秘密的數(shù)據(jù)被破解泄露,軟件的程序被逆向,架構(gòu)被再工程利用。
傳統(tǒng)的軟件安全性和可靠性利用各種方法去驗證滿足“安全關(guān)鍵失效率”(λ)。例如在需求分析階段,一般有失效模式分析(FMEA)、故障樹FTA分析等方法,編碼階段使用審查、走查等方法驗證。然而航空軟件對λ要求很高,一般為10-6到10-9,而可靠性指標(biāo)一般也為10-3以上,按照理論測試模型推算,收集到足夠的失效數(shù)據(jù)用于參數(shù)估計的時間短則一年半載,長則幾十年,周期較長,并且“安全關(guān)鍵失效率”λ也不能當(dāng)做量化指標(biāo)去測試評估?,F(xiàn)有的對嵌入式軟件的安全性評估方法較為分散,缺少一種快速并可以量化的安全性評估方法。
本文針對嵌入式軟件安全性評價的難題,在軟件的全生命周期基于分類模糊綜合評價理論,建立了評價模型,提出了一種評價方法,能快速、準(zhǔn)確、客觀的對嵌入式軟件的安全性進行評價。
軟件開發(fā)模型有多種,目前常見的開發(fā)模型有增量模型、瀑布模型、螺旋模型、瀑布模型、智能模型等。增量模型的開發(fā)過程如圖1所示。瀑布模型的開發(fā)過程如圖2所示。根據(jù)實際項目的復(fù)雜程度、周期要求等選取不同的模型進行開發(fā)。雖然瀑布模型有其缺點,但它有利于大型軟件開發(fā)過程中人員的組織管理,有利于軟件開發(fā)方法和工具的研究與使用從而提高了大型軟件項目開發(fā)的質(zhì)量和效率[6]。為保證軟件質(zhì)量,軟件開發(fā)過程和交付過程通常伴隨軟件測試。結(jié)合軟件開發(fā)的升級瀑布模型形成V模型。由于軍用航空軟件的特殊性,航空航天領(lǐng)域的機載嵌入式軟件開發(fā)廣泛使用V模型[7]。
圖1 軟件開發(fā)增量模型圖
圖2 軟件開發(fā)瀑布模型
軟件生命周期V型關(guān)系[8]如圖3所示。
圖3 軟件生命周期V型關(guān)系圖
根據(jù)軟件失效或發(fā)生安全性問題可能導(dǎo)致的后果和相關(guān)軍用標(biāo)準(zhǔn)[9],將嵌入式軟件重要性等級分為Ⅰ、Ⅱ、Ⅲ、Ⅳ四個等級。軟件等級劃分如表1所示。
表1 軟件等級劃分
對嵌入式軟件安全評價采用分類模糊綜合評價方法[10],即將評價指標(biāo)分類,分別有相對的評價人員進行評價,分類評價中又采用模糊綜合評價方法進行,最后加權(quán)得到總體評價。模糊綜合評價法是基于模糊數(shù)學(xué)模糊集理論,對評價對象作以綜合評價的一種方法,它以模糊數(shù)學(xué)為基礎(chǔ),應(yīng)用模糊關(guān)系合成定理,將一些邊界不清、不一定量的因素定量化,符合嵌入式軟件安全性評價的特點。
依據(jù)軟件開發(fā)周期的V模型,將嵌入式軟件安全評價分為5個階段,即軟件需求階段、軟件設(shè)計階段、軟件編碼階段、軟件測試階段,軟件使用階段,對應(yīng)為A、B、C、D、E五個階段。每個階段對應(yīng)一個評價元素集合{a1,a2,….an},n=11、{b1,b2,….bn},n=12、{c1,c2,….cn},n=8、{d1,d2,….dn},n=26、{e1…en},n=2,共59個評價活動元素。
軟件需求階段評價元素如表2所示。
表2 軟件需求階段評價元素
軟件設(shè)計階段評價元素如表3所示。
表3 軟件設(shè)計階段評價元素
軟件編碼階段評價元素如表4所示。
在軟件測試階段,根據(jù)嵌入式軟件的等級不同可選擇不同的測試級別。軟件測試階段評價元素如表5所示。
軟件使用階段評價元素如表6所示。
嵌入式軟件在生命周期的不同階段對應(yīng)不同的評價元素,每個評價元素對應(yīng)的安全分值為[0,100],在5個階段中選擇不同的人員進行評價,在軟件需求階段和軟件設(shè)計階段選擇項目總體技術(shù)人員,軟件編碼階段選擇編程人員,軟件測試階段選擇軟件測試人員,軟件使用階段選擇使用總體人員。
其中,軟件需求階段、軟件設(shè)計階段、軟件編碼階段、軟件測試階段對應(yīng)的評分?jǐn)?shù)值Sij,其中i={a,b,c,d,e},j={1,2…n}。Si乘以相應(yīng)的權(quán)重Qij后相加,得出在
表4 軟件編碼階段評價元素
在E階段,若MTTF值大于設(shè)計使用時間的20%,e1值為-10;滿足設(shè)計時間但小于20%時,分值為0;若不滿足設(shè)計時間,e1值為10。試用階段發(fā)現(xiàn)的安全問題數(shù)按照嚴(yán)重等級計算分值,發(fā)現(xiàn)嚴(yán)重安全問題為-5分/個,一般安全問題為-3分/個,輕微安全問題為-2分/個。E階段的安全分值S2=Se1+Se2,得出嵌入式軟件安全分值S的計算公式為:
為降低評價人員的主觀性,每個階段選取k個評價人員,將評價值相加后取平均值,繼而得到計算評價結(jié)果公式:
依據(jù)行業(yè)經(jīng)驗和專家知識,結(jié)合航空嵌入式軟件的特點,確定A、B、C、D對應(yīng)的權(quán)重值為30%,25%,25%,20%。依據(jù)每個評價元素的重要程度和對軟件安全性產(chǎn)生的影響,進而明確評價權(quán)重矩陣: {Qa1,Qa2,….Qa11}={0.02,0.04,0.04,0.02,0.04,0.02,0.02,0.02,0.03,0.03,0.02};
{Qb1,Qb2,….Qb12}={0.04,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01};
{Qc1,Qc2,….Qc8}={0.04,0.03,0.02,0.03,0.02,0.02,0.02,0.02};
表5 軟件測試階段評價元素
表6 軟件使用階段評價元素
{Qd1,Qd2,….Qd26}={0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.005,0.005,0.005,0.005,0.005,0.005,0.01,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01}。
在評價活動中,根據(jù)A、B、C、D、E五個階段計算出的安全分值應(yīng)約大越好,但由于項目實際的時間進度限制、人員水平限制、經(jīng)費限制等因素,軟件的安全性往往受到影響。依據(jù)航空產(chǎn)品相關(guān)標(biāo)準(zhǔn)和不同等級嵌入式軟件必須進行和推薦進行的活動劃分出不同等級軟件的安全分值符合標(biāo)準(zhǔn),不同重要等級的軟件對應(yīng)的安全分值如表7所示。
某航空機載設(shè)備研制單位采用以上評價模型對3款嵌入式軟件產(chǎn)品安全性進行評價,3款嵌入式軟件均為某型飛
表7 軟件安全分值評價對照表
機通信導(dǎo)航識別系統(tǒng)內(nèi)的嵌入式軟件,分別為CNI(Communication Navigation Identification,CNI)主控軟件、通用平臺管理軟件、音頻告警軟件。其中CNI主控軟件、通用平臺管理軟件運行在PowerPC芯片上,音頻告警軟件運行在DSP芯片上,分別記為α、β、γ,其對應(yīng)的軟件重要等級為分別為Ⅰ、Ⅱ、Ⅲ級。
步驟一:
A、B、C、D階段評價:每個項目在每個階段分別選擇3名負(fù)責(zé)該項目的項目總體技術(shù)人員、軟件編程人員、軟件測試人員、使用總體人員進行評分。每個評價元素的分值為[0,100],參與評價的人員依照項目的實際情況進行評分后依據(jù)安全分值公式計算出3款軟件的安全分值S;
步驟二:
E階段評價:嵌入式軟件α在E階段平均無故障時間滿足設(shè)計要求但不超過設(shè)計時間的20%,并在使用中發(fā)現(xiàn)1個輕微安全性問題,E階段安全分值為-2;嵌入式軟件β在E階段平均無故障時間未達(dá)到設(shè)計要求,并在使用中發(fā)現(xiàn)2個嚴(yán)重安全性問題,E階段安全分值為-12;嵌入式軟件γ在E階段平均無故障時間超過設(shè)計要求的20%,在使用中發(fā)現(xiàn)1個輕微安全性問題,E階段安全分值為8;
步驟三:
將各階段每個評價元素的評分,利用嵌入式軟件安全分值S的計算公式計算出嵌入式軟件α、β、γ的安全分值,再對每個階段3名評價人員總評價分值取平均,得出最總軟件的安全分值如表8所示。
表8 階段評價安全分值表
3款航空嵌入式軟件的評價活動結(jié)束后獲得安全分值S,按照其關(guān)鍵等級依據(jù)表7中的評判標(biāo)準(zhǔn)可以得出安全性評價結(jié)果為軟件α合格,軟件β不合格,軟件γ合格。
3款軟件采用以上評價模型對軟件安全性進行了評價,在不同軟件階段均有相對應(yīng)的安全分值,通過評價結(jié)果更易于發(fā)現(xiàn)各階段中的安全性問題,相比傳統(tǒng)的安全性評價方法評價過程更加全面,評價結(jié)果更準(zhǔn)確、直觀。
嵌入式軟件安全是保證航空機載電子系統(tǒng)安全的重要因素,本文基于嵌入式軟件開發(fā)V模型在軟件整個生命周期提出了一種嵌入式軟件安全性評價方法。通過工程實際應(yīng)用證明,該方法具有評價過程簡單、評價元素全面、評價結(jié)果直觀的特點。由于軟件安全性包含的范圍較廣,評價元素不可能窮舉,實際應(yīng)用中可在該評價模型的基礎(chǔ)上對評價元素進行適當(dāng)增加、修改或刪除,權(quán)重參考同等重要的評價元素的權(quán)重,在后續(xù)的研究中也會持續(xù)改進。文中的評價方法主要創(chuàng)新點在于:一是采用分類模糊綜合評價法將與安全性相關(guān)的元素分析、歸納、整理形成每個階段的評價元素,再結(jié)合工程實踐經(jīng)驗賦予權(quán)重;根據(jù)軟件的重要性進行分類,制定不同的評價標(biāo)準(zhǔn);二是評價不單單是軟件使用階段出現(xiàn)安全問題反饋,而是貫穿軟件全生命周期,評價更加完整,對航空機載電子系統(tǒng)型號延續(xù)的安全性改進提供了幫助。