開始使用威脅模型化工具

Microsoft Threat Modeling Tool 2018 於 2018 年 9 月發行為 GA,作為免費 隨選即用下載。 傳遞機制的變更可讓我們在每次開啟工具時,將最新的改進和錯誤修正推送給客戶,讓您更容易維護和使用。 本文將引導您完成開始使用 Microsoft SDL 威脅模型化方法的程式,並示範如何使用此工具,將絕佳的威脅模型開發為安全性程式的骨幹。

本文以 SDL 威脅模型化方法的現有知識為基礎。 如需快速檢閱,請參閱使用 2006 年發行的 STRIDE 方法 MSDN 文章,將威脅模型化 Web 應用程式和封存版本的發現安全性缺陷。

為了快速總結,此方法牽涉到建立圖表、識別威脅、減輕威脅,以及驗證每個風險降低。 以下是醒目提示此程式的圖表:

SDL Process

啟動威脅模型化程式

當您啟動威脅模型化工具時,您會注意到一些事項,如下圖所示:

Blank Start Page

威脅模型區段

元件 詳細資料
意見反應、建議和問題按鈕 帶您進行所有 SDL 的 MSDN 論壇 它可讓您閱讀其他使用者正在執行的動作,以及因應措施和建議。 如果您仍然找不到您要尋找的內容,請傳送電子郵件 tmtextsupport@microsoft.com 給我們的支援小組以協助您
建立模型 開啟空白畫布,讓您繪製圖表。 請務必選取您想要用於模型的範本
新模型的範本 您必須先選取要使用的範本,才能建立模型。 我們的主要範本是 Azure 威脅模型範本,其中包含 Azure 特定的樣板、威脅和風險降低。 針對一般模型,請從下拉功能表中選取 SDL TM 知識庫。 想要建立您自己的範本,或提交所有使用者的新範本? 請參閱我們的 範本存放庫 GitHub 頁面以深入瞭解
開啟模型

開啟先前儲存的威脅模型。 如果您需要開啟最新的檔案,[最近開啟的模型] 功能就很棒。 當您將滑鼠停留在選取範圍上方時,您會發現 2 種方式可開啟模型:

  • 從這部計算機開啟 – 使用本機記憶體開啟檔案的傳統方式
  • 從 OneDrive 開啟 – 小組可以使用 OneDrive 中的資料夾,在單一位置儲存及共用其所有威脅模型,以協助提高生產力和共同作業

用戶入門指南 開啟 Microsoft 威脅模型化工具主頁面

範本區段

元件 詳細資料
建立新範本 開啟空白範本以供您建置。 除非您對從頭開始建置範本有廣泛的知識,否則建議您從現有的範本建置
開啟範本 開啟現有的範本,讓您進行變更

威脅模型化工具小組不斷努力改善工具功能和體驗。 一年中可能會進行一些次要變更,但所有主要變更都需要在指南中重寫。 請經常參考,以確保您會收到最新的公告。

建置模型

在本節中,我們會遵循:

  • 克莉絲蒂娜(開發人員)
  • 里卡多(項目經理) 和
  • Ashish (測試人員)

他們正在經歷開發其第一個威脅模型的程式。

里卡多:Hi Cristina,我處理了威脅模型圖表,並想要確保我們得到詳細數據正確。 你能幫我看看嗎? 克莉絲蒂娜:絕對。 讓我看看。 里卡多開啟此工具,並與克莉絲蒂娜分享他的螢幕。

Basic Threat Model

克莉絲蒂娜:好吧,看起來很簡單,但你能走我通過嗎? 里卡多:當然! 以下是明細:

  • 我們的人類用戶會繪製為外部實體,也就是正方形
  • 他們正在將命令傳送至我們的網頁伺服器— 圓形
  • 網頁伺服器正在諮詢資料庫(兩條平行行)

里卡多剛才顯示的 Cristina 是 DFD,簡稱為 「數據流圖」。 威脅模型化工具可讓使用者指定以紅色虛線表示的信任界限,以顯示不同實體控制的位置。 例如,IT 系統管理員需要 Active Directory 系統進行驗證,因此 Active Directory 不在其控制之外。

克莉絲蒂娜:看起來對我。 威脅呢? 里卡多:讓我給你看。

分析威脅

一旦他從圖示功能表選取專案單擊分析檢視(含有放大鏡的檔案),他就會被帶到根據預設範本找到的威脅模型化工具所產生的威脅清單,該範本使用稱為 STRIDE 的 SDL 方法(詐騙、竄改、否認、資訊洩漏、拒絕服務及提高許可權)。 其概念是,軟體受到一組可預測的威脅,可使用這6個類別找到。

這種方法就像確保每扇門和窗戶都有一個鎖定機制,然後新增報警系統或追逐小偷來保護您的房子。

Basic Threats

Ricardo 的開頭是選取清單上的第一個專案。 以下是發生的情況:

首先,兩個樣板之間的互動已增強

Screenshot shows two stencils and the curved arrow connecting them in a heavier weight of line.

其次,有關威脅的其他資訊會出現在威脅 屬性視窗

Screenshot shows the Threat Properties window, which contains Title, Category, Description, Interaction, and Priority.

產生的威脅有助於他瞭解潛在的設計缺陷。 STRIDE 分類給他一個關於潛在攻擊媒介的想法,而額外的描述告訴他究竟有什麼問題,以及潛在的方法來減輕它。 他可以使用可編輯的欄位,根據組織的錯誤列,在理由詳細數據中撰寫筆記,或變更優先順序評等。

Azure 範本有其他詳細數據,可協助用戶不僅了解錯誤,還可以藉由將描述、範例和超連結新增至 Azure 特定檔來修正此問題。

描述使他意識到新增驗證機制以防止使用者被詐騙的重要性,揭示了要處理的第一個威脅。 在與 Cristina 討論幾分鐘後,他們了解實作訪問控制和角色的重要性。 里卡多填寫了一些快速筆記,以確保這些實作。

由於里卡多在資訊披露下受到威脅,他意識到訪問控制計劃需要一些只讀帳戶來進行稽核和報告產生。 他想知道這是否應該是一個新的威脅,但風險降低是一樣的,所以他注意到了威脅。 他還考慮了更多的資訊洩漏,並意識到備份磁帶需要加密,這是作業小組的工作。

由於現有的風險降低或安全性保證而不適用於設計的威脅,可以從 [狀態] 下拉式清單中變更為 「不適用」。 另外還有三個選項:[未啟動] – 預設選取專案、[需要調查] – 用來追蹤專案和緩和 - 一旦完全運作。

報表和共用

一旦里卡多使用 Cristina 完成清單,並新增重要注意事項、風險降低/理由、優先順序和狀態變更,他就會選取 [報告 -> 建立完整報告 -> 儲存報告],這樣會列印出一份不錯的報告,供他與同事一起完成,以確保執行適當的安全性工作。

Screenshot shows a representative Threat Modeling Report.

如果 Ricardo 想要改為共用檔案,他可以輕鬆地將其儲存在組織的 OneDrive 帳戶中。 一旦他這樣做,他就可以複製文件連結,並與同事共用。

威脅模型化會議

當里卡多使用 OneDrive 將威脅模型傳送給同事時,測試人員 Ashish 受到保護。 似乎里卡多和克莉絲蒂娜錯過了相當多的重要角落案件,這很容易被洩露。 他的懷疑是威脅模型的補充。

在此案例中,在 Ashish 接管威脅模型之後,他呼籲進行兩次威脅模型化會議:一個會議在程式上同步處理,並逐步解說圖表,然後進行第二次會議以進行威脅檢閱和註銷。

在第一次會議上,Ashish 花了 10 分鐘的時間走遍了 SDL 威脅模型化程式。 然後,他提取了威脅模型圖表,並開始詳細解釋它。 在五分鐘內,已識別出重要的遺漏元件。

幾分鐘后,Ashish 和 Ricardo 就如何建置網頁伺服器展開了延伸討論。 這不是會議進行的理想方式,但每個人都最終同意,早日發現差異將節省他們未來的時間。

在第二次會議上,小組逐步解說了威脅,討論了一些解決威脅的方法,並註銷了威脅模型。 他們會將檔簽入原始檔控制,並繼續開發。

思考資產

一些有威脅模型化的讀者可能會注意到,我們根本沒有談論資產。 我們發現許多軟體工程師比了解資產的概念以及攻擊者可能感興趣的資產更瞭解其軟體。

如果你要威脅模型房子,你可能會從考慮你的家庭,不可替代的照片或有價值的藝術品開始。 也許您可能從考慮誰可能會中斷和目前的安全性系統開始。 或者,您可以從考慮實體功能開始,例如集區或前門廊。 這些類似於考慮資產、攻擊者或軟體設計。 這三種方法中的任何一種方法都能夠運作。

我們在這裡呈現的威脅模型化方法比 Microsoft 過去所做的要簡單得多。 我們發現軟體設計方法適用於許多小組。 我們希望包括你們。

後續步驟

將您的問題、批註和疑慮傳送至 tmtextsupport@microsoft.com。 下載 威脅模型化工具以開始使用。