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