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