Published on
|...

威脅建模 Threat Modeling

威脅建模的理念Threat modeling: the sooner the better, but never too late.

將整體安全盡可能地做到Shift left,在開發的早期階段利用結構化的方式去找出潛在的威脅。

參考OWASP提到的建模理念

微軟的模型使用的是STRIDE

類別描述
詐騙涉及不合法的存取然後使用另一個使用者的驗證資訊,例如使用者名稱和密碼
竄改涉及惡意資料修改。 範例包括未經授權變更持續性資料 (例如保存在資料庫中的資料),以及修改在兩部電腦之間透過開放式網路 (例如網際網路) 流動的資料
否認性與拒絕執行動作但沒有其他任何一方有辦法另外證明的使用者有關,比方說,使用者在無法追蹤禁止作業的系統中執行非法作業。 不可否認性是指系統反擊否認性威脅的能力。 例如,購買項目的使用者在收到項目時可能必須簽名。 接著,廠商可以使用已簽署的收據做為使用者確實收到包裹的證明
洩露資訊涉及將資訊暴露給不應該具有其存取權的個人,例如,使用者可以讀取它們未被授權存取的檔案,或入侵者能夠讀取在兩部電腦之間傳輸的資料
拒絕服務阻斷服務 (DoS) 攻擊可阻斷對有效使用者提供的服務,例如,藉由讓網頁伺服器暫時無法存取或無法使用。 您必須保護特定類型的 DoS 威脅,即可改善系統可用性和可靠性
提高權限無特殊權限的使用者會取得具有特殊權限的存取,故有足夠的存取權可入侵或摧毀整個系統。 提高權限威脅包含攻擊者已有效地滲透所有系統防禦,而攻擊者本身成為受信任系統一部分的情況,的確是很危險的情況

將所有資訊實現四個步驟,並繪製出Data Flow Diagrams(DFD)

[用以顯示資料如何在應用程式中的邏輯圖]

image

步驟名稱內容
1Design掌握系統的所有需求,並建立資料流程圖。
2Break將威脅模型化架構套用至資料流程圖,並找出潛在安全性問題。
3Fix決定如何使用正確的安全性控制措施組合來處理每個問題。
4Verify驗證是否已符合需求、找到問題,以及實作安全性控制措施。

流程圖繪製-圖形定義 image 互動流程 image image

資料流程圖 深度層

Layer描述
0所有系統都需要此層,且此層中包含主要系統組件。
1大部分系統需要此層,且此層中包含每個系統組件的圖表。
2高敏感性的系統需要此層,且此層中包含系統子組件的圖表。
3關鍵或核心層級的系統需要此層,且此層中包含每個流程的圖表。

image

繪製圖形的思考邏輯

  1. 以攻擊者為焦點
  2. 以資產為焦點

Microsoft Threat Modeling Tools

此工具為微軟開發之免費工具,可以在windows裡面使用,並且依照Microsoft Threat Modeling 微軟威脅模型的標準進行設計,可以協助資安人員定義威脅 微軟官方工具介紹說明 微軟官方文件參考 下載連結

操作簡介如下 點選SDL TM Knowledge Base然後按下Create A Modelimage

操作介面大致如下,可以從右側元件區尋找物件,並依照認知上的網路架構去畫出目前環境中的流向,可以利用Generic Data Flow繪製網路流量特別注意目錄也是可以拉取的 image

對於圖形的內容都可以重新命名,不過要注意裡面的內容,例如下圖改成Commandimage

繪製出基本圖形後,點選View → Analysis View image

此時於版面下方會出現自動判斷威脅存在的地方image

在View處可以點選 Threat Properties近一步看到威脅的說明與描述image

點選Reports 可以產生威脅評估報告image

進行Generate Report image

可以產出一個htm的報告檔案image

Templete Check

打開Microsoft Threat Modeling tools,點選Open templete 打開範本 image 內建已包含下列幾項 image

點選Threat Types image

裡面就會列出,為何會產出這些威脅的判斷式 image

本文參考資料-亂馬客