威脅模型分析
威脅模型分析 (TMA) 是一種分析,可協助判斷對產品、應用程式或環境造成的安全性風險,以及攻擊會如何出現。 其目標是用以判斷哪些威脅需要防護以及如何減輕這些威脅。
本節提供 TMA 程序的概要資訊。 如需詳細資訊,請參閱 Michael Howard 和 David LeBlanc 撰寫安全程式碼第 4 章的第 4 章。
TMA 的一些優點為:
讓您對應用程式更加瞭解
協助您尋找錯誤
可協助新的小組成員詳細瞭解應用程式
包含應用程式上建置的其他小組之重要資訊
對測試人員相當有用
執行 TMA 的概要步驟:
步驟 1: 收集背景資訊
步驟 2: 建立及分析威脅模型
步驟 3: 檢閱威脅
步驟 4: 識別風險降低技術和技術
步驟 5: 檔安全性模型和部署考慮
步驟 6. 實作和測試緩和措施
步驟 7. 讓威脅模型與設計保持同步
步驟 1: 收集背景資訊
為準備一個成功的 TMA,您必須收集一些背景資訊。 依照下列方式分析目標環境 (應用程式、程式或整個基礎結構) 是相當有用的:
識別使用實例。 針對目標環境的每個使用實例,識別您預期公司如何使用目標環境,以及對目標環境的限制。 此資訊可協助定義威脅模型討論的範圍,並提供資產 (對您公司有價值的任何事物,例如資料與電腦) 與進入點的指標。
為每個實例建立資料流程圖 (DFD)。 請確定您對威脅的瞭解夠深入。
決定目標環境的界限與範圍。
瞭解信任與不信任元件之間的界限。
瞭解每個元件的組態與管理模型。
建立外部相依性的清單。
建立每個元件相依的其他元件之假設清單。 這可以協助與其他小組一起驗證跨元件假設、動作項目以及後續項目。
步驟 2: 建立及分析威脅模型
在您收集背景資訊之後,應該召開威脅模型會議。 請確定每個開發領域 (例如,程式管理人員、開發人員以及測試人員) 至少有一位成員出席會議。 請務必提醒與會人員,會議目的是要找出威脅,而不是修正威脅。 在威脅模型會議期間,執行下列動作:
檢查每個使用實例的 DFD。 在每個使用實例識別下列項目:
進入點
信任界限
從輸入點到最後靜止位置的資料流 (然後返回)
請注意相關的資產。
討論每個 DFD,並在下列類別中尋找 DFD 中所有專案的威脅: Spoofing identiting、 Tampering with data、 Repudiation、 Information disclosure、 Denial of service, and Elevation of privileges。
建立已識別威脅的清單。 我們建議這份清單包含下列專案:標題、簡短描述 (包括威脅樹狀結構) 、資產 (資產) 、影響 () 、風險、風險技術、風險降低狀態,以及錯誤號碼。
注意
您可以在檢視威脅時新增風險、防護技術以及防護狀態。 在威脅模型會議期間,請勿花費太多時間在這些領域。
步驟 3: 檢閱威脅
在您識別對環境的威脅之後,必須將每個威脅的風險排名,並決定如何回應每個威脅。 您可以在其他小組會議或是透過電子郵件來執行此動作。 您可以使用下列效果類別來計算風險暴露: Damage 可能、 Reproducibility、 Exploitability、 Affected users 和 Discoverability。
在您擁有依照風險優先順序排列的目標環境之威脅清單後,必須決定將如何回應每個威脅。 您的回應可以是不做任何動作 (通常不是好選擇)、警告使用者可能的問題、移除問題或是修正問題。
步驟 4: 識別風險降低技術和技術
在您識別要修正的威脅之後,必須決定每個威脅的可用防護技術,以及最適當的技術以降低每個威脅的影響。
例如,視目標環境的詳細情況而定,您可以使用授權技術來降低資料竄改威脅的影響。 接著您必須決定要使用的適當授權技術 (例如,判別存取控制清單 (DACL)、權限或 IP 限制)。
重要
當您評估要使用的防護技術時,必須考量是否符合您公司的商務考量,以及是否有任何公司政策會影響要選擇的防護技術。
在完成 TMA 之後,執行下列動作:
記錄安全性模型與部署考量
實作和測試防護
保持威脅模型與設計同步
步驟 5: 檔安全性模型和部署考慮
在 TMA 期間記錄所發現的狀況,並決定如何降低對目標環境威脅的影響,是非常有用的。 本文件對於品質保證 (QA)、測試、支援以及作業人員是非常有用的。 包含與目標環境互動和介入目標環境的其他應用程式之資訊,以及防火牆與拓樸建議和需求之資訊。
步驟 6. 實作和測試緩和措施
當您的小組準備修正在 TMA 期間識別的威脅時,請務必使用開發和部署檢查清單,以遵循安全準則和部署標準,協助將新威脅的產生降到最低。
在您實作防護之後,請務必測試防護,以確定它可提供針對威脅所需的防護層級。
步驟 7. 讓威脅模型與設計保持同步
當您新增應用程式、伺服器以及其他項目至環境中時,請務必重新瀏覽威脅模型分析的發現,並針對任何新功能執行 TMA。