當前位置:
首頁 > 最新 > 可信計算測試成為提升美國軍事應用軟體安全性的重要手段

可信計算測試成為提升美國軍事應用軟體安全性的重要手段

引言

軍事系統中應用軟體是作戰人員執行各項任務的基礎,其代碼的可信安全十分重要。所有其它軟硬體只用於安全啟動軍事應用軟體,一旦啟動,這類軟體便獨立運行。軟體設計人員需特別留意以確保其功能符合預期。

大多數軍事應用軟體都是為執行特定的任務或運行特定的演算法而定製的,目前,相對於開源軟體甚至是大多數商業軟體,很少有軟體工程師能查看軍事應用軟體代碼。因此,對於軟體的功能是否符合預期進行特別留意就非常困難。因為通常只有很少一部分的系統開發者有機會查看其應用代碼。

這就可能導致未知的缺陷,使情況變得更加糟糕。因為通常來說升級其應用代碼的機會很少,而且遙不可及。軍事系統中的應用代碼屬於特定技術規範;一經測試,系統就會被部署,與通用系統相比,重新測試的次數要少得多。

讓問題更為複雜的是,部署後的系統將難以進行技術更新。受到時間、預算以及任務要求的制約,一旦這類軟體投入使用,幾乎不可能對其進行升級。即使用戶發現了代碼問題或者安全漏洞,重新部署系統的成本也無法想像。

另一方面,在部署之前發現、修復和測試軟體問題所需的時間和成本要少得多;系統開發者從一開始就必須對應用代碼做出正確決斷。

計算機硬體在保護操作系統和可信計算應用的管理程序方面的作用

軍事應用軟體可以分為幾個類別:庫、中間件和用於執行特定功能的定製代碼。定製的中間件需要特別仔細的審查,因為它經常被廣泛回收重用。中間件提供了將庫與應用程序結合在一起的黏合劑,其任何漏洞都可能使整個系統易受惡意網路攻擊的影響。

軟體工程師最好對系統進行組織管理,這樣系統功能和輸入端自然就會各自有序進行。對應用程序中的用戶和內核空間進行正確分配也是很重要的。程序設計者應將內核空間中的運行代碼數量降至最低,以減少安全漏洞。內核空間具備高許可權,能夠深入訪問系統資源,因此這要求開發人員合併相關功能。這樣,他們就不需要訪問應用的其他部分。

轉移大量數據也會產生安全問題。大型數據集傾向於在可信之處進行移動,因為大量數據在高速轉移過程中的加密效率很低。此外,某些系統必須共享大量數據,特別是當演算法的可執行部分位於多個位置時;很難以安全的方式驗證和確認這些數據。

對演算法進行劃分是更佳解決方案,將某部分的演算法視為黑匣子,應用軟體對其內部工作原理無從了解。應用程序可以命令這些黑匣子運行演算法的特定部分,並收到一個簡單的是或否作為答覆。這在應用之間提供了更加明確的信息流。這種數據流很容易被核實,因為它能驗證系統收發的信息的有效性。這種方法還有助於封裝信息以支持加密和身份驗證。

系統設計者應根據安全邊界邏輯分明地定義信息流。最好減少邏輯互連的數量和複雜性,因為每個連接都是可能的滲透點。設計者必須檢查、鎖定、測試以及驗證每個連接,同時考慮採用安全信息傳遞機制,確保數據來自受信來源。

操作過程中維護網路安全的可信計算硬體特性

安全編碼實踐從一開始就是設計中的應用安全性的重要部分。使用主要軟體語言的標準程序可以最大限度減少程序員錯誤帶來的安全漏洞。最著名的例子是CERT,其他的有MISRA、DO-178C、IEC61508和ISO 2626262。

使用安全編碼也可以消除無意錯誤的可能性。一種機智的方法是讓所有應用程序編程人員了解、遵守規則,並提交同行評審。自動化工具可以掃描代碼並驗證是其否遵守規則。若是與編碼規則一致,編程人員也可穿梭於不同項目之間,而不會引起不必要的安全問題。

資金限制會導致程序縮水,當這種情況發生時,程序管理人員可能會取消安全性測試。然而,這樣做可能會導致嚴重的缺陷和漏洞。為程序的前端測試做好預算工作是非常重要的。

靜態代碼分析是分析應用組件協同工作的一種方法,它用工具檢查代碼是否存在任何的潛在問題。軟體工程師通常可以使用相同的插件工具,以確保安全標準的統一性,進行靜態代碼分析。這些工具包括Coverity、cppcheck、Klocwork、lint、Parasoft和Understand。這些工具有的適用於多種語言,有的基於特定於語言,有的是商業的,還有一些是免費的開源軟體。

使用動態代碼分析工具可以幫助軟體開發者分析應用程序在測試條件下的運行情況。動態代碼分析監測系統正在做什麼,並在後台工作,使系統開發人員能夠對程序進行正常的輸入和輸出測試,確保一切正常工作。軟體工程師可以虛擬、模擬化動態代碼分析,或將其作為可執行代碼封包。

可信引導:確保嵌入式計算系統可靠性的關鍵策略

靜態和動態代碼分析從不同角度看問題,產生不同的結果。靜態代碼分析通常會上報更多的錯誤,因為它會標記所有細微的錯誤。另一方面,動態代碼分析可以保證相同的錯誤不再發生,並確保在不同執行線程之間正確地共享數據。提供動態代碼分析的工具包括BoundsChecker、dmalloc、Parasoft Insure+、Purify和Valgrind。

對應用代碼開發者來說,另一個重要的決定就是採用回歸測試還是持續性測試。在應用經過驗收測試或其他進一步的測試之前,回歸測試可能發現不了明顯故障。

持續性測試在持續的基礎上運行測試,以儘早發現問題。它包括一個安全專用的測試設備,以快速識別軟體更改,打破了某些應用的安全限制。儘管這可能會增加前端成本,但它可以降低後端成本。

基於COTS的可信計算:著手開發下一代關鍵任務電子產品

有些處理器,如英特爾SGX,具有內置的安全特性。該處理器要求軟體開發者在應用程序中創建獨立區域,以便處理器能夠正常工作。如果程序員需要密鑰來加密某些數據,他可以將變數放入程序庫,並在必要時將其傳送出去。因特爾SGX還為相同的操作提供了高級別的安全性。獨立區域將加密密鑰與其他系統功能分離,可以防止網路攻擊者威脅系統安全。

另一個具有安全特性的專用處理器是Arm TrustZone,它允許Arm處理器將內存、操作系統和應用程序分離至受信任和不受信任區域。TrustZone確保只有可信區域才能訪問可信數據。

密碼學的一個主要原則是不可單獨構建;它很複雜,容易出錯。使用已有的、易得的、並且通過用戶反饋不斷更新的東西會更加安全明智。要利用操作系統中已有的安全庫,如OpenSSL和IPsec。

大多數軟體操作系統都支持強制式策略(MACs),它允許開發者創建配置文件,以明確不同人群如何使用應用程序及其資源。支持這種策略的操作系統有SE Linux和Windows完整性級別。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 大國重器 的精彩文章:

美國雷聲公司為海軍研究辦公室研發艦載天線系統,能夠同時處理雷達、通信和電子戰信號

TAG:大國重器 |