常見弱點枚舉 (CWE) 列出了導致許多軟件系統中出現安全漏洞的共模故障。它可用于幫助提高關鍵網絡和基礎設施的穩健性,以幫助阻止網絡攻擊。
網絡中心戰使用網絡系統在戰區內共享信息。這一先進的通信網絡增強了態勢感知能力,目的是提高特派團的效力。
支撐這種系統的網絡有可能向敵人暴露一個重要的攻擊面,引發重大的安全問題。在了解了需要采取哪些措施來確保系統安全之后,下面將檢查常見的弱點和枚舉 (CWE),并演示如何使用它來增強戰斗通信的安全性。
安全問題
內部網絡通常被作為獲取機密信息的一種手段。2008年,美國軍事中央司令部網絡中的機密和非機密系統被發現遭到破壞。調查顯示,一臺軍用筆記本電腦被便攜式USB驅動器感染。然后,這種感染通過網絡連接傳播到安全區域,據信已用于將大量數據傳輸給第三方。在最初的攻擊發生四年后,仍然發現了受感染的機器。
還試圖進行外部攻擊。例如,利用在聯合攻擊戰斗機上工作的一個或多個承包商中的網絡漏洞來訪問敏感的項目數據。這次攻擊似乎始于2007年,但直到2009年才被發現。攻擊包括在開發環境中安裝復雜的間諜軟件。間諜軟件用于將數 TB 的數據傳輸到第三方。泄露的確切性質尚不清楚,因為數據在發送之前經過了高度加密。
理解系統受到攻擊的原因并不總是那么容易,有些攻擊可能是偶然的。用于控制“捕食者”和“收割者”無人機機隊的系統最近被發現感染了一種包含鍵盤記錄器有效載荷的病毒。鍵盤記錄器記錄了無人機飛行員在現役期間的動作,但不影響系統功能。似乎沒有數據丟失,盡管這可能僅僅是因為缺乏可利用的外部網絡連接。事實證明,網絡感染很難根除,并且已發現已傳播到分類和非分類系統。據認為,該病毒是由用于將地圖和其他數據傳輸到控制系統的便攜式USB驅動器無意中引入的。
敏感信息丟失并不是攻擊的唯一可能結果。在軍事空中交通管制系統中檢測到的病毒有可能使第三方使雷達數據不可信,從而導致混亂或資產損失。
安全注意事項
其中許多安全問題是由于系統系統內的設備互連而引起的。攻擊者很難利用隔離運行的系統。但是,如果它們是聯網的,即使是間歇性的,網絡也允許許多其他系統受到攻擊。如果它們都基于相同的技術,則可以利用常見的安全漏洞來快速傳播惡意軟件。
CWE檢查
利用的漏洞通常與代碼實現或需求錯誤有關。例如,由無效網絡數據觸發的緩沖區溢出事件可能被用來誘騙系統運行攻擊者注入的任意代碼。根據美國國家安全技術研究所(NIST)的研究,64%的軟件漏洞源于編程錯誤。
CWE是由MITRE公司在美國聯邦撥款下運營的一項戰略軟件保障計劃,由美國國土安全部國家網絡安全部門共同贊助。它列出了導致系統內安全故障的編程錯誤,旨在改進用于確保連接設備安全的軟件保證和審查流程。以這種方式枚舉漏洞允許定義編碼標準以針對它們,以便在開發過程中消除它們。
CWE數據庫
CWE數據庫包含有關安全漏洞的信息,這些漏洞已被證明會導致可利用的漏洞。這些弱點可能位于基礎結構級別(例如,配置不當的網絡和/或安全設備)、策略和過程級別(例如,共享用戶名和/或密碼)或編碼級別(例如,無法驗證數據)。CWE數據庫包含有關實際漏洞的信息,而不是理論信息,因此僅捕獲在該領域被利用的編碼弱點。
CWE兼容性的優勢
應在開發環境中使用 CWE,以確保不會將已知漏洞引入軟件。許多已識別的問題都可以通過靜態和/或動態檢查工具自動檢測。為了獲得最大的收益,應在開發過程中盡早使用此類工具,因為嘗試在最后一刻添加安全性不太可能成功。采用其他工具強制執行的安全標準,如CERT-C安全編碼標準,補充了這一目標,并進一步增強了安全特性。
確保系統安全
許多安全漏洞可以追溯到編碼錯誤或架構缺陷,并且在部署系統后通常很難修復和/或成本高昂。遺憾的是,許多開發人員只對核心應用程序功能的開發和測試感興趣。安全性很少以相同的嚴格性進行測試。
系統的安全性需要被視為系統最重要的屬性之一。如果最終系統要安全,則需要在系統設計中預先包含安全要求,并在正常開發期間實施。CWE 可用于幫助確定適當的高級安全要求。
通過在軟件開發生命周期的所有階段關注這些措施,開發人員可以幫助消除已知的弱點。
為了防止引入安全漏洞,開發團隊需要對開發過程中要采取的安全目標和方法有共同的理解。這應包括評估安全風險和建立將使用的安全編碼做法。再一次,CWE可以在編碼過程中提供幫助,因為它突出了導致其他系統安全妥協的構造,提醒開發人員在實施過程中需要格外小心。
風險評估確定與具體情況和識別威脅相關的各種系統組件的定量和定性安全風險。此信息用于減少安全漏洞,如果其安全性被破壞,將產生重大影響的區域。評估的結果是制定一套安全控制和緩解策略,這些策略將構成系統安全要求的核心。
這些安全要求成為用于所有其他要求的同一開發過程的一部分。一開始就詳細說明,然后通過設計、編碼和測試階段跟蹤安全要求,以確保滿足初始要求。這些鏈接形成文檔,演示最終系統如何滿足開始時規定的安全目標。
CWE:不是編碼標準
CWE是一個“不要被抓住”的列表,而不是實際的編碼標準。但是,編碼標準可以作為補充,以確保項目中不存在CWE問題。遵守這些標準有助于確保實現項目安全目標,尤其是當許多安全問題直接由它們所針對的編碼錯誤導致時。此外,遵守公認的標準有助于證明合同擔保義務已經履行。
遵守所選的編碼標準(或標準)應該是一個正式的過程(理想情況下是工具輔助的,但也可以手動),因為編程團隊幾乎不可能在整個代碼庫中遵循所有規則和準則。
遵守標準是確定代碼質量時應用的有用指標。
靜態和動態測試應被視為基本實踐。確認CWE兼容性的靜態分析工具在所有代碼中系統地執行該標準。動態分析可確保代碼不包含運行時錯誤,包括可能被利用來危害安全性的錯誤。
可追溯性很重要
如果要聲明系統符合CWE等安全標準,則必須提供證據來支持該聲明。可追溯性[可以顯示哪些測試結果證明已滿足特定的安全要求],從需求到設計,驗證計劃和由此產生的測試工件可用于支持此類聲明。
圖 2 說明了如何將可追溯性鏈接到需求和相關測試用例。這種圖形表示使開發人員可以輕松地立即發現不必要的功能(不需要的代碼)、未實現的需求以及失敗或缺失的測試用例。
圖2:LDRA TBmanager使用戶能夠查看單個需求和測試用例的源代碼可追溯性。
前進
采用針對 CWE 漏洞的安全標準允許為項目指定安全質量屬性。將安全屬性納入系統要求意味著可以在將系統集成到網絡之前對其進行測量和驗證,從而大大降低敵人在現場利用潛在安全漏洞的可能性。
使用合格且集成良好的應用程序生命周期管理 (ALM) 工具來自動執行測試、整理過程工件和需求可追溯性,大大減少了生成認證機構所需文檔所需的資源。它最大限度地減少了開發人員的工作量,并允許管理人員有效地跟蹤進度。
很明顯,如果要保護網絡中心戰系統免受信息泄露和遠程操縱,系統開發人員需要重新考慮他們的假設。利用CWE中包含的知識并選擇借助CWE感知工具開發和測試軟件是向前邁出的重要一步。合并CWE并開始持續改進過程的公司有助于確保只有可靠,值得信賴,可擴展和安全的系統才能交付給那些冒著生命危險來保護我們國家的人。
審核編輯:郭婷
-
驅動器
+關注
關注
53文章
8255瀏覽量
146471 -
usb
+關注
關注
60文章
7950瀏覽量
264870
發布評論請先 登錄
相關推薦
評論