軍事和航空電子軟件系統(tǒng)的開發(fā)人員可以做些什么來利用軟件重用,同時確保軟件盡可能無錯誤和安全?
軟件在軍事和航空航天工業(yè)中通過不同的程序使用和重用并不完全是國家安全機密。這是一種久經(jīng)考驗的軟件開發(fā)方法。GAO 在 2004 年 3 月向美國參議院提交的報告估計,某些項目中軟件的重用率高達 70%,這在成本節(jié)約和效率方面提供了重大機會。但是,遷移如此數(shù)量的軟件并非沒有風險,尤其是在用于安全或任務(wù)關(guān)鍵型軟件應(yīng)用程序時。因此,問題是:軍事和航空電子軟件系統(tǒng)的開發(fā)人員可以做些什么來利用軟件重用,同時確保軟件盡可能無錯誤和安全?
遷移軟件以在新系統(tǒng)上使用并與新開發(fā)的代碼相結(jié)合,對任務(wù)關(guān)鍵型系統(tǒng)提出了巨大的挑戰(zhàn)。首先是當今軟件系統(tǒng)的規(guī)模和范圍。據(jù)估計,美國陸軍的未來作戰(zhàn)系統(tǒng)(FCS)將在最終產(chǎn)品中提供超過6000萬行軟件代碼。最新商用噴氣式飛機上的航空電子軟件涉及數(shù)百萬行代碼;運行波音787的軟件接近700萬行代碼,是777的三倍。要正確測試這種規(guī)模的軟件項目(基本上要考慮無限數(shù)量的代碼路徑)并非易事,尤其是當設(shè)計用于任務(wù)和安全關(guān)鍵型上下文時。
除了這一遷移挑戰(zhàn)之外,還有這樣一個事實:即使代碼被重用,并且在多年的現(xiàn)場操作后可能被認為是穩(wěn)定的,但它通常在新的上下文或環(huán)境中運行。這提供了以前潛在的錯誤變成活動的關(guān)鍵錯誤的可能性,以前安全的編碼實踐變成了高風險的安全漏洞。這不是一個理論討論。隨著阿麗亞娜5號航天器的發(fā)射,歐洲航天局(ESA)發(fā)生了這個確切的問題,該航天器重用了其前身阿麗亞娜4號的代碼。代碼在舊飛船中安全運行,但執(zhí)行上下文發(fā)生了變化,將阿麗亞娜4中的“理論”或潛在錯誤更改為導致阿麗亞娜5崩潰的關(guān)鍵錯誤。安全漏洞也是如此:多年前在非網(wǎng)絡(luò)系統(tǒng)中的編碼實踐在部署在現(xiàn)代軟件環(huán)境中時可能會成為極高風險的漏洞,其中系統(tǒng)在安全的任務(wù)關(guān)鍵型環(huán)境中聯(lián)網(wǎng)。
軟件風險為業(yè)內(nèi)專業(yè)人士所熟知,民用航空航天軟件行業(yè)受 DO-178B 法規(guī)的約束,這些法規(guī)管理軟件開發(fā)和驗證要求。這些類型的指南存在于許多行業(yè)中,在這些行業(yè)中,安全要求對于正在開發(fā)的軟件至關(guān)重要。這些行業(yè)的軟件開發(fā)專業(yè)人員面臨的挑戰(zhàn)是找到正確的工具和流程組合,以解決重用大量代碼的獨特挑戰(zhàn),同時能夠擴展到任務(wù)關(guān)鍵型系統(tǒng)的規(guī)模和范圍。
任務(wù)關(guān)鍵型軟件開發(fā)的一個增長趨勢是采用源代碼分析 (SCA) 作為一種技術(shù)來增強(甚至取代)傳統(tǒng)的源代碼驗證技術(shù),例如無法擴展的同行代碼審查。SCA 是一種 bug 檢測技術(shù),不需要測試用例,是完全自動化的,并允許開發(fā)人員在開發(fā)生命周期的早期檢查其源代碼,確保 bug 不會向下游傳播,從而導致不必要的質(zhì)量和效率問題。與 SCA 相關(guān)的底層技術(shù)稱為靜態(tài)分析,當前一代技術(shù)解決方案能夠提供復雜、快速和準確的分析,定位和描述源代碼中的弱點區(qū)域,包括內(nèi)存和資源管理、程序數(shù)據(jù)管理、緩沖區(qū)溢出、未經(jīng)驗證的用戶輸入、易受攻擊的編碼實踐和并發(fā)沖突,以及各種長期維護問題。
SCA不同于傳統(tǒng)的動態(tài)分析技術(shù),如單元測試或滲透測試,因為工作是在構(gòu)建時僅使用相關(guān)程序或模塊的源代碼執(zhí)行的。因此,報告的結(jié)果是從每個可能的執(zhí)行路徑的完整視圖生成的,而不是從有限的、觀察到的運行時行為的某些方面生成的。這在傳統(tǒng)遷移環(huán)境中特別有價值,SCA 可以檢查難以測試的領(lǐng)域,例如錯誤處理例程。SCA還將報告“潛在”問題,以便高級開發(fā)人員可以確保通過重用在運行時上下文中的更改不會產(chǎn)生新的錯誤源。當與現(xiàn)有的測試和軟件驗證技術(shù)相結(jié)合時,SCA 為源代碼的大規(guī)模驗證提供了一個可擴展、高效的解決方案。
隨著軟件復雜性的爆炸式增長及其關(guān)鍵任務(wù)性質(zhì)的不斷增加,軟件測試和驗證的未來在于持續(xù)的自動化。新形式的驗證將擴展SCA等技術(shù)的深度和廣度,并將它們與其他形式的軟件測試相結(jié)合,以提供創(chuàng)建創(chuàng)新,全面的軟件驗證方法的技術(shù)。
審核編輯:郭婷
-
源代碼
+關(guān)注
關(guān)注
96文章
2945瀏覽量
66731 -
航空航天
+關(guān)注
關(guān)注
1文章
387瀏覽量
24273
發(fā)布評論請先 登錄
相關(guān)推薦
評論