戰爭和防御系統中過時的遺留代碼庫會造成安全漏洞,并禁止引入以網絡為中心的新技術。通過靜態分析,這些系統可以進行改造,使其具有高完整性,使設備更具技術競爭力。
戰爭和防御的世界已經發生了變化。僅近10年來,排名最佳軍隊的主要因素就從僅僅擁有最大、最強大的戰斗力轉變為戰場上人員和軍事機器之間最好的溝通。這些軍事機器不再像幾十年前那樣以硬件為中心;大多數使用嵌入式軟件系統來執行基本功能。例如,目前部署在伊拉克和阿富汗的艾布拉姆斯M1坦克有一個計算機輔助瞄準系統,可以與熱成像系統一起精確瞄準。
這些類型的嵌入式系統被設計為盡可能堅固和可靠,因為壽命取決于它們的有效性。這些系統是高度專業化的,一旦建成并部署到現場,通常意味著在設備的使用壽命內無需進一步改造即可使用。不幸的是,這樣的設計理念沒有考慮到隨著技術的進步,這些系統最終需要發揮越來越大的作用,而安全性可能成為一個問題。
同樣,在過去的幾十年里,網絡在軍事設備中越來越多地發揮了越來越大的作用。對遺留系統進行現代化改造以利用依賴于軟件的新網絡功能已成為強制性要求。今天,坦克和其他車輛現在是一個更大的互連系統中的節點,不斷共享信息。系統中的每個節點都可以與其網絡中的其他節點(甚至其他網絡中的節點)一起工作,以解決任何一個系統無法處理的問題。
軟件驅動的系統,如包含移動通信(COTM)系統的防雷伏擊保護(MRAP)車輛,依賴于軟件架構,并且必須進行現代化改造才能以網絡為中心。現代化是一個很好的策略,即使是可選的,因為從長遠來看,這樣做可以降低軟件維護成本。一旦構建,遺留應用程序理論上應該永遠存在,但它們很少這樣做,因為日常維護最終會導致代碼庫惡化。維護舊代碼非常昂貴(每年高達初始開發預算的 10%),因為它涉及修補漏洞和提高可靠性。這通常由擁有罕見正確技能的昂貴開發人員完成。相比之下,新代碼要便宜得多。盡管對代碼進行現代化改造的前期成本較高,但這樣做通常更好,因為從長遠來看,定期長期維護舊代碼的成本更高。
遺留系統通常進行現代化改造(但由于成本原因沒有完全被新單位取代),因為許多目前部署的軍事系統至少還有十年的計劃功能壽命。由于安全性和可靠性至關重要,因此必須在不影響先前質量或超出預算的情況下對軟件進行現代化改造以包含所需的新功能。靜態分析使此任務比其他任務更容易。
用于對舊代碼進行現代化的靜態分析
修改遺留代碼以獲得新功能或使其符合新標準不應輕易完成。由于遺留系統通常是關鍵任務,并且已經部署在現場,因此修訂應在現有代碼中引入最少的新編碼缺陷。隨著代碼庫變得越來越復雜,隔離和消除缺陷變得更加困難,因為有更多的變量可能會以不可預見的方式與其他缺陷交互并堆疊在上面。
雖然較舊的工具使用語法和基于樣式的測試,但現代靜態分析通過數據流分析與布爾滿足性結合使用路徑模擬。路徑模擬的工作原理是模擬程序在編譯并執行其代碼庫中的每個函數后將執行的操作。這允許增加對資源分配問題、指針管理不善、緩沖區和字符串使用不當以及污染數據處理的檢測。布爾滿足性將程序中的每個操作轉換為布爾變量,并使用此數據來測試潛在的運行時問題,如整數溢出。這些方法產生的假陽性率低至 15%。
然而,要拯救的是靜態分析,它可以幫助開發人員重構和重組遺留程序的代碼庫,以使其達到現代標準。靜態分析揭示了在創建遺留項目時執行的步驟,以便開發人員可以了解程序的當前架構和初衷。此功能創新減輕了在嘗試升級代碼時檢測資源分配問題、指針管理不善、緩沖區使用不當、字符串使用和受污染的數據處理等許多猜測。靜態分析工具,例如Coverity提供的分析工具,也能夠顯示有關任何有問題的缺陷的信息,并顯示它如何對整個程序產生不利影響。
與其他依賴軟件的行業類似,國防不能允許其技術落后于時代。遺留代碼的現代化是不可避免的,但高級靜態分析提供了可靠的補救措施。
審核編輯:郭婷
-
嵌入式
+關注
關注
5087文章
19145瀏覽量
306120 -
移動通信
+關注
關注
10文章
2614瀏覽量
69935
發布評論請先 登錄
相關推薦
評論