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