威脅建模是一個嚴格的過程,旨在在設計的早期階段識別和糾正潛在的產品漏洞。您創建的威脅模型描述了您的產品組件如何與用戶一起工作,并列舉了潛在的威脅和減輕這些威脅的對策。理想情況下,您會希望在設計過程的早期對每個系統進行威脅建模,此時可以以比產品完成時低得多的成本進行更改。威脅建模是安全開發生命周期 (SDL) 計劃的重要組成部分,可確保您的組件、系統和代碼在設計上得到適當保護。威脅建模是軟件開發人員和信息技術系統工程師和架構師的一項重要工作。即使您沒有構建您運行的系統,定期進行威脅建模練習會迫使您像攻擊者一樣思考,并會激發提高產品安全性的想法。當然,只要對系統進行重大更改,請務必更新現有的威脅模型。
威脅建模的核心是記錄系統設計元素的過程,特別是從攻擊者的角度來看對這些元素的威脅。該過程涉及了解系統的組件和用戶、這些組件和用戶之間的界限,以及攻擊者可能喜歡的攻擊路徑或威脅向量。這種觀點可幫助您采用基于風險的方法來設計減輕這些威脅的正確保護措施和對策。例如,威脅模型將突出顯示連接敏感數據存儲與公共 Web 服務器相鄰的風險,并指導選擇適當的邏輯安全控制以將風險降低到可接受的水平。
威脅模型方法
即使互聯網在 20 世紀 90 年代初開始興起,研究人員和科學家也已經開始考慮威脅建模。攻擊樹和威脅樹的早期模型是通過枚舉系統漏洞并系統地檢查攻擊者可能破壞系統的所有方式而開發的。隨著 Internet 的擴展和利用漏洞成為日常問題,許多公司尋求在其產品的核心中構建更好的安全性。例如,Microsoft 開發了 STRIDE 威脅模型,該模型成為其自身安全開發生命周期的重要組成部分。STRIDE 是一個系統的過程,用于發現潛在威脅并建議針對六個潛在威脅類別的緩解措施:
欺騙
篡改
否認
信息披露
拒絕服務
特權提升
還有其他類型的威脅模型方法論,原理都是類似的。重要的是問問自己可能出了什么問題,然后將這些潛在威脅分類以幫助您考慮適當的對策的過程。例如,您可能將敏感數據通過 HTTP 傳輸到遠程系統視為潛在的信息泄露威脅,可以通過加密網絡流量來緩解這種威脅。
數據流程圖
威脅建模的基本要素是數據流圖 (DFD),其中包括系統的所有重要組件及其交互。該圖顯示了所有關鍵組件和系統——無論它們分布在本地和云基礎設施中,還是駐留在一臺服務器上或單個應用程序中。DFD 中的方法和詳細程度取決于您的設計。例如,如果您要在網絡上部署新的攝像機,您可能無法對攝像機軟件本身進行威脅建模,但您應該確定攝像機需要與之通信的所有周圍系統、它使用的協議以及誰將訪問它。請務必將此信息包含在您的 DFD 中。希望相機制造商也對他們的視頻軟件的開發進行威脅建模。例如,他們的軟件威脅模型可能會識別軟件用來隔離敏感數據并與其他對象和系統通信的內部邊界、對象和方法。DFD 應顯示對象及其對其他對象的請求和響應,并清楚地劃定不同對象組之間的邊界。例如,您可能會顯示前端網絡應用系統和更敏感的數據存儲之間的邏輯邊界。將您系統的用戶,特別是可能濫用您系統的參與者(或威脅代理)添加到您的 DFD 中。例如,在為您的系統建模授權流程時,將特權操作員與定期獲得證書的員工區分開來。識別您的 DFD 中潛在的不良行為者并展示他們可能如何訪問您的系統。軟件用來隔離敏感數據并與其他對象和系統通信的方法。DFD 應顯示對象及其對其他對象的請求和響應,并清楚地劃定不同對象組之間的邊界。例如,您可能會顯示前端網絡應用系統和更敏感的數據存儲之間的邏輯邊界。將您系統的用戶,特別是可能濫用您系統的參與者(或威脅代理)添加到您的 DFD 中。例如,在為您的系統建模授權流程時,將特權操作員與定期獲得證書的員工區分開來。識別您的 DFD 中潛在的不良行為者并展示他們可能如何訪問您的系統。軟件用來隔離敏感數據并與其他對象和系統通信的方法。DFD 應顯示對象及其對其他對象的請求和響應,并清楚地劃定不同對象組之間的邊界。例如,您可能會顯示前端網絡應用系統和更敏感的數據存儲之間的邏輯邊界。將您系統的用戶,特別是可能濫用您系統的參與者(或威脅代理)添加到您的 DFD 中。例如,在為您的系統建模授權流程時,將特權操作員與定期獲得證書的員工區分開來。識別您的 DFD 中潛在的不良行為者并展示他們可能如何訪問您的系統。DFD 應顯示對象及其對其他對象的請求和響應,并清楚地劃定不同對象組之間的邊界。例如,您可能會顯示前端網絡應用系統和更敏感的數據存儲之間的邏輯邊界。將您系統的用戶,特別是可能濫用您系統的參與者(或威脅代理)添加到您的 DFD 中。例如,在為您的系統建模授權流程時,將特權操作員與定期獲得證書的員工區分開來。識別您的 DFD 中潛在的不良行為者并展示他們可能如何訪問您的系統。DFD 應顯示對象及其對其他對象的請求和響應,并清楚地劃定不同對象組之間的邊界。例如,您可能會顯示前端網絡應用系統和更敏感的數據存儲之間的邏輯邊界。將您系統的用戶,特別是可能濫用您系統的參與者(或威脅代理)添加到您的 DFD 中。例如,在為您的系統建模授權流程時,將特權操作員與定期獲得證書的員工區分開來。識別您的 DFD 中潛在的不良行為者并展示他們可能如何訪問您的系統。將您系統的用戶,特別是可能濫用您系統的參與者(或威脅代理)添加到您的 DFD 中。例如,在為您的系統建模授權流程時,將特權操作員與定期獲得證書的員工區分開來。識別您的 DFD 中潛在的不良行為者并展示他們可能如何訪問您的系統。將您系統的用戶,特別是可能濫用您系統的參與者(或威脅代理)添加到您的 DFD 中。例如,在為您的系統建模授權流程時,將特權操作員與定期獲得證書的員工區分開來。識別您的 DFD 中潛在的不良行為者并展示他們可能如何訪問您的系統。
通過確定信任邊界、跨越這些邊界的通信以及構成這些通信的人員和內容的 DFD,您可以開始查看對系統的潛在威脅。
威脅建模工具
如果您不熟悉威脅建模,那么識別正確的威脅可能會讓人不知所措。幸運的是,有多種威脅建模工具可用于指導您完成此過程并幫助確定要查找的威脅類型。一種免費且易于使用的工具是 Microsoft 威脅建模工具。雖然此工具面向軟件開發人員和架構師,但它也可以針對基本 IT 運營模型進行擴展。Microsoft 威脅建模工具在嘗試快速掌握威脅建模的基礎知識時特別有用。下載并安裝客戶端,您將在幾分鐘內創建您的第一個威脅模型。按照以下步驟使用 Microsoft 威脅建模工具創建威脅模型:
通過拖放各種組件(例如數據庫、主機或移動客戶端)并將它們與數據流操作鏈接起來,使用圖形界面創建 DFD。
套索對象以創建各種邊界。邊界示例包括物聯網 (IoT) 設備區域、Azure 信任邊界和遠程用戶區域。
自定義這些對象以反映您自己的環境。例如,將數據存儲對象屬性設置為您使用的特定 SQL 版本。
完成后,您可以運行報告,該工具將使用這些對象、屬性和邊界來生成并向您顯示初步的威脅列表和建議的緩解措施。您將需要驗證其假設并調整威脅模型以將其改進為您的環境和特定用例。
還有許多其他針對特定類型的操作模型量身定制的強大的商業和社區威脅建模工具。例如,一種工具可能與敏捷軟件開發過程集成得特別好,而另一種工具可能擅長對傳統信息技術系統進行建模,例如調出特定的防火墻和入侵檢測系統及其配置。其中一些工具執行復雜的攻擊模擬,并托管在基于權限的協作 Web 平臺上,該平臺使您可以輕松地在團隊成員之間共享威脅建模數據。
結論
威脅建模是一個直接的過程,用于識別您的系統、系統可能出現的問題以及如何預防。然而,創建一個好的威脅模型有很多細微差別,你會希望確保你自己的過程捕獲正確的數據,這樣你就不會錯過任何重要的事情。威脅建模工具在幫助提供此框架方面大有幫助。請記住利用 Internet 上的許多威脅建模資源來幫助您設計和構建非常適合您自己環境的流程。
審核編輯hhy
-
建模
+關注
關注
1文章
313瀏覽量
60853 -
IOT
+關注
關注
187文章
4230瀏覽量
197594
發布評論請先 登錄
相關推薦
評論