前言
大家在開發系統時除了畫系統架構圖之外,不知有沒畫 Threat Modeling 呢?
有了 Threat Modeling 可以看到整個系統大約有那些的 威脅,然後在開發系統時,一併考量進去。
跟 bug 一樣,逾早發現安全性威脅,解決成本逾低。
我們可以從 Microsoft Threat Modeling Tool 來安裝 (windows only)。
使用
Application Review
Microsoft Threat Modeling Tool 讓我們透過畫 Data Flow Diagrams(DFDs) 後,自動產生相關的安全性威脅。
安裝完成後,開啟程式可以選擇 Azure or SDL 的範本,請依您系統的類別選取範本,這裡筆者是使用 SDL 範本。
然後按下「Create A Model」就會進入空白的 Diagram 。
而我們在畫的過程中,應著重在安全性方面進行系統架構 Review,考量以下幾點,
- 這系統會有那些使用者?
- 有什麼合規的要求嗎?
- 有那些資料需要被保護嗎?
- 有跟其他系統互動?
Data Flow Diagrams
開始作畫
1.先拉出 Elements
一開始,先將跟安全性相關的項目拉到畫布上
2.用 Flow 串起來
再將每個項目透過 Flow 串接起來
3.標示 Elements
再檢視有那些需要做額外的標示,例如 Process 使用的語言(c#, Node, Java…)
4.加上備註
5.找其他人一起來 Review
Threat Types
Microsoft Threat Modeling Tool 會套用 STRIDE Threat Types,
參考自Microsoft Threat Modeling Tool threats
類別 | 描述 |
---|---|
詐騙 Spoofing | 涉及非法存取然後使用其他使用者的驗證資訊,例如使用者名稱和密碼 |
竄改 Tampering | 涉及惡意修改資料。 範例包括未經授權變更持續性資料 (例如保存在資料庫中的資料),以及修改在兩部電腦之間透過開放式網路 (例如網際網路) 流動的資料 (中間人攻擊,修改交易金額…) |
否認性 Repudiation | 與拒絕執行動作但沒有其他任何一方有辦法另外證明的使用者有關,比方說,使用者在無法追蹤禁止作業的系統中執行非法作業。 不可否認性是指系統對抗否認性威脅的能力。 例如,購買商品的使用者可能必須在收到商品時簽名。 然後,廠商可以使用簽名收據做為使用者已收到包裹的證據 |
資訊洩漏 Information Disclosure | 涉及將資訊暴露給不應該具有其存取權的個人,例如,使用者可以讀取它們未被授權存取的檔案,或入侵者能夠讀取在兩部電腦之間傳輸的資料 |
阻斷服務 Denial of Service | 阻斷服務 (DoS) 攻擊可阻斷對有效使用者提供的服務,例如,藉由讓網頁伺服器暫時無法存取或無法使用。 您必須防止特定類型的 DoS 威脅,以便提升系統的可用性和可靠性 |
權限提高 Elevation of Privilege | 未授權的使用者取得授權的存取權,因此有足夠存取權危害或摧毀整個系統。 提高權限威脅包含下列情況:攻擊者已有效地滲透所有系統防禦,並成為受信任系統本身的一部分,這確實是危險的情況 |
分析 Threats
畫好之後,切到 Analysis View,就可以看到下面有一堆的 Threats ,大家可依它們的說明來了解為什麼會有那些 Threats 以及如何調整它們,
大家可以查看每個 Threat ,設定它們的優先序,及在 Justification 寫入因應作法,設定 Status 。
產生報表
我們可以按 Menu 上的 Report 來產生 html 報表。
結論
我們有了 Threat Model ,會對整個系統整體的安全性有一定的了解,也可以儘早針對高風險的 Threat 進行防範。
- 註: 自動列出 Threats ?
不知大家是否對於該 Tool 為什麼可以自動列出 Threats 而感到好奇呢?
只要大家開啟 Template 就可以知道,它其實是有寫 Rule 在裡面,當 Elements 有相關,並且屬性值為某個值時,就會出現那個 Threat ,例如下圖,當 Source 為 Generic External Interactor , Target 為 Generic Process 就會出現那個 Threat ,但如果 Flow 的屬性有設設定 Source Authenticated 是 Yes ,或是 Generic External Interactor 屬性有設定 Authenticates Itself 為 Yes ,就不會出現那個 Threat
參考資料
Applications Threat Modeling
Microsoft Threat modelling tool 2016 | Set 1
下載 Microsoft Threat Modeling Tool
Threat Modeling Tool feature overview