(1.西南電子技術研究所 天奧軟件測評中心,成都 610036;2.成都中電錦江信息產業有限公司,成都 610051)
嵌入式軟件以其專用性強、高實時性、可裁剪、重量輕、體積小等特點廣泛應用于生產、生活乃至軍用航空領域[1]。嵌入式軟件作為嵌入式系統的控制中心,其安全性直接關系到系統的使用和人、機安全。由于嵌入式軟件的失效引起的安全事故對國家會造成嚴重的經濟和軍事影響[2]。隨著航空電子技術不斷發展,現代飛機的體系架構已由分離式、聯合式逐漸向模塊化、高度綜合化方向發展,系統功能越來越復雜軟件實現的功能在航空電子系統中所占的比重越來越大[3]。航空機載軟件具有嵌入式、實時性、結構復雜、高關鍵等級等特點[4]。近年來,由于航空機載軟件安全性問題所造成的事故也成逐年上升趨勢。2018年10月印尼獅航和2019年3月埃塞俄比亞航空兩架波音737 MAX8客機墜毀,造成重大財產損失和人員傷亡。失事原因主要是由于AOA(飛機高迎角傳感器)將錯誤的數據傳輸給MCAS(操縱輔助系統),MCAS軟件未對異常的AOA數據做正確的處理導致的。軟件安全性包含很廣,既包含軟件失效對系統造成故障、危及飛行安全,也包括軟件內部數據保護,防止非授權的用戶使用、篡改、分析和從中挖掘信息[5]。例如本身涉及國家秘密或商業秘密的數據被破解泄露,軟件的程序被逆向,架構被再工程利用。
傳統的軟件安全性和可靠性利用各種方法去驗證滿足“安全關鍵失效率”(λ)。例如在需求分析階段,一般有失效模式分析(FMEA)、故障樹FTA分析等方法,編碼階段使用審查、走查等方法驗證。然而航空軟件對λ要求很高,一般為10-6到10-9,而可靠性指標一般也為10-3以上,按照理論測試模型推算,收集到足夠的失效數據用于參數估計的時間短則一年半載,長則幾十年,周期較長,并且“安全關鍵失效率”λ也不能當做量化指標去測試評估。現有的對嵌入式軟件的安全性評估方法較為分散,缺少一種快速并可以量化的安全性評估方法。
本文針對嵌入式軟件安全性評價的難題,在軟件的全生命周期基于分類模糊綜合評價理論,建立了評價模型,提出了一種評價方法,能快速、準確、客觀的對嵌入式軟件的安全性進行評價。
軟件開發模型有多種,目前常見的開發模型有增量模型、瀑布模型、螺旋模型、瀑布模型、智能模型等。增量模型的開發過程如圖1所示。瀑布模型的開發過程如圖2所示。根據實際項目的復雜程度、周期要求等選取不同的模型進行開發。雖然瀑布模型有其缺點,但它有利于大型軟件開發過程中人員的組織管理,有利于軟件開發方法和工具的研究與使用從而提高了大型軟件項目開發的質量和效率[6]。為保證軟件質量,軟件開發過程和交付過程通常伴隨軟件測試。結合軟件開發的升級瀑布模型形成V模型。由于軍用航空軟件的特殊性,航空航天領域的機載嵌入式軟件開發廣泛使用V模型[7]。

圖1 軟件開發增量模型圖

圖2 軟件開發瀑布模型
軟件生命周期V型關系[8]如圖3所示。

圖3 軟件生命周期V型關系圖
根據軟件失效或發生安全性問題可能導致的后果和相關軍用標準[9],將嵌入式軟件重要性等級分為Ⅰ、Ⅱ、Ⅲ、Ⅳ四個等級。軟件等級劃分如表1所示。

表1 軟件等級劃分
對嵌入式軟件安全評價采用分類模糊綜合評價方法[10],即將評價指標分類,分別有相對的評價人員進行評價,分類評價中又采用模糊綜合評價方法進行,最后加權得到總體評價。模糊綜合評價法是基于模糊數學模糊集理論,對評價對象作以綜合評價的一種方法,它以模糊數學為基礎,應用模糊關系合成定理,將一些邊界不清、不一定量的因素定量化,符合嵌入式軟件安全性評價的特點。
依據軟件開發周期的V模型,將嵌入式軟件安全評價分為5個階段,即軟件需求階段、軟件設計階段、軟件編碼階段、軟件測試階段,軟件使用階段,對應為A、B、C、D、E五個階段。每個階段對應一個評價元素集合{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 軟件需求階段評價元素
軟件設計階段評價元素如表3所示。

表3 軟件設計階段評價元素
軟件編碼階段評價元素如表4所示。
在軟件測試階段,根據嵌入式軟件的等級不同可選擇不同的測試級別。軟件測試階段評價元素如表5所示。
軟件使用階段評價元素如表6所示。
嵌入式軟件在生命周期的不同階段對應不同的評價元素,每個評價元素對應的安全分值為[0,100],在5個階段中選擇不同的人員進行評價,在軟件需求階段和軟件設計階段選擇項目總體技術人員,軟件編碼階段選擇編程人員,軟件測試階段選擇軟件測試人員,軟件使用階段選擇使用總體人員。
其中,軟件需求階段、軟件設計階段、軟件編碼階段、軟件測試階段對應的評分數值Sij,其中i={a,b,c,d,e},j={1,2…n}。Si乘以相應的權重Qij后相加,得出在

表4 軟件編碼階段評價元素

在E階段,若MTTF值大于設計使用時間的20%,e1值為-10;滿足設計時間但小于20%時,分值為0;若不滿足設計時間,e1值為10。試用階段發現的安全問題數按照嚴重等級計算分值,發現嚴重安全問題為-5分/個,一般安全問題為-3分/個,輕微安全問題為-2分/個。E階段的安全分值S2=Se1+Se2,得出嵌入式軟件安全分值S的計算公式為:
為降低評價人員的主觀性,每個階段選取k個評價人員,將評價值相加后取平均值,繼而得到計算評價結果公式:
依據行業經驗和專家知識,結合航空嵌入式軟件的特點,確定A、B、C、D對應的權重值為30%,25%,25%,20%。依據每個評價元素的重要程度和對軟件安全性產生的影響,進而明確評價權重矩陣: {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}。
在評價活動中,根據A、B、C、D、E五個階段計算出的安全分值應約大越好,但由于項目實際的時間進度限制、人員水平限制、經費限制等因素,軟件的安全性往往受到影響。依據航空產品相關標準和不同等級嵌入式軟件必須進行和推薦進行的活動劃分出不同等級軟件的安全分值符合標準,不同重要等級的軟件對應的安全分值如表7所示。
某航空機載設備研制單位采用以上評價模型對3款嵌入式軟件產品安全性進行評價,3款嵌入式軟件均為某型飛

表7 軟件安全分值評價對照表
機通信導航識別系統內的嵌入式軟件,分別為CNI(Communication Navigation Identification,CNI)主控軟件、通用平臺管理軟件、音頻告警軟件。其中CNI主控軟件、通用平臺管理軟件運行在PowerPC芯片上,音頻告警軟件運行在DSP芯片上,分別記為α、β、γ,其對應的軟件重要等級為分別為Ⅰ、Ⅱ、Ⅲ級。
步驟一:
A、B、C、D階段評價:每個項目在每個階段分別選擇3名負責該項目的項目總體技術人員、軟件編程人員、軟件測試人員、使用總體人員進行評分。每個評價元素的分值為[0,100],參與評價的人員依照項目的實際情況進行評分后依據安全分值公式計算出3款軟件的安全分值S;
步驟二:
E階段評價:嵌入式軟件α在E階段平均無故障時間滿足設計要求但不超過設計時間的20%,并在使用中發現1個輕微安全性問題,E階段安全分值為-2;嵌入式軟件β在E階段平均無故障時間未達到設計要求,并在使用中發現2個嚴重安全性問題,E階段安全分值為-12;嵌入式軟件γ在E階段平均無故障時間超過設計要求的20%,在使用中發現1個輕微安全性問題,E階段安全分值為8;
步驟三:
將各階段每個評價元素的評分,利用嵌入式軟件安全分值S的計算公式計算出嵌入式軟件α、β、γ的安全分值,再對每個階段3名評價人員總評價分值取平均,得出最總軟件的安全分值如表8所示。

表8 階段評價安全分值表
3款航空嵌入式軟件的評價活動結束后獲得安全分值S,按照其關鍵等級依據表7中的評判標準可以得出安全性評價結果為軟件α合格,軟件β不合格,軟件γ合格。
3款軟件采用以上評價模型對軟件安全性進行了評價,在不同軟件階段均有相對應的安全分值,通過評價結果更易于發現各階段中的安全性問題,相比傳統的安全性評價方法評價過程更加全面,評價結果更準確、直觀。
嵌入式軟件安全是保證航空機載電子系統安全的重要因素,本文基于嵌入式軟件開發V模型在軟件整個生命周期提出了一種嵌入式軟件安全性評價方法。通過工程實際應用證明,該方法具有評價過程簡單、評價元素全面、評價結果直觀的特點。由于軟件安全性包含的范圍較廣,評價元素不可能窮舉,實際應用中可在該評價模型的基礎上對評價元素進行適當增加、修改或刪除,權重參考同等重要的評價元素的權重,在后續的研究中也會持續改進。文中的評價方法主要創新點在于:一是采用分類模糊綜合評價法將與安全性相關的元素分析、歸納、整理形成每個階段的評價元素,再結合工程實踐經驗賦予權重;根據軟件的重要性進行分類,制定不同的評價標準;二是評價不單單是軟件使用階段出現安全問題反饋,而是貫穿軟件全生命周期,評價更加完整,對航空機載電子系統型號延續的安全性改進提供了幫助。