什麼是威脅模型?

威脅建模是一種預先識別應用程式架構中可能存在弱點的方法。 它涉及繪製應用程序,識別安全漏洞並緩解這些缺陷。

學習目標

閱讀本文後,您將能夠:

  • 定義威脅模型
  • 描述威脅建模的四個主要步驟
  • 比較常見的威脅建模方法

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是威脅模型?

威脅建模是在應用程式及其環境中尋找安全漏洞的練習。 它涉及創建具有其所有組件的應用程序的表示形式,然後識別弱點。 理想情況下,開發人員和安全工程師在整個軟件開發過程中使用威脅模型-在應用程序上線之前,而不僅僅是之後。 威脅建模可以幫助使應用程序比其他方式更安全,但不應該期望使應用程序堅不可摧。

在搶劫電影中,主角經常檢查他們計劃搶劫的設施的藍圖,找出弱點-可以進入建築物的位置,安全攝像頭看不到的角度等等。 同樣,威脅建模就像檢查給定應用程序的"藍圖一樣。" 不同之處在於,威脅建模是由希望保持應用程序安全的人員完成的,而不是潛在的劫匪。

威脅建模需要團隊建立應用程式的完整檢視。 然後,它涉及到像一個可能想要妥協應用程序的人一樣思考。 攻擊者會怎麼做? 他們可能會利用弱的 API 安全性嗎? 他們會否利用 供應鏈攻擊 來感染整合式系統庫? 儘管並非所有攻擊都可以預期,但威脅建模有助於在發生之前阻止其中一些攻擊。

威脅模型的步驟是什麼?

威脅建模有很多可能的方法,並且沒有任何一種方法可以應用於每種情況。 但通常涉及這四個主要步驟:

1. 評估和繪製應用程序

威脅建模者嘗試識別並描述:

  • 應用程序的組件,包括數據庫服務器,Web 服務器,網關,庫和用戶界面
  • 這些元件的連線方式,例如用於交換資料的 通訊協定 ,以及保護傳輸中資料的任何 加密 方式

如果特裡寫了一個簡單的應用程序,顯示氣球的圖片,他的應用程序圖可以如下所示:

簡單的威脅模型範例:應用程式介面、閘道、網路伺服器、資料庫和連線圖

請注意,這是一個非常簡單的示例,真正的威脅建模應用程序圖可能會更加複雜。

2. 識別應用程序構建中的安全漏洞

看到以這種方式佈置的應用程序可以更容易地識別缺陷。 例如,特里可能會注意到他的氣球照片數據庫和他的 Web 服務器之間的通信不使用傳 輸層安全性(TLS)。 這表示伺服器無法透過數位簽章驗證對方的身分,進而讓攻擊者冒充資料庫伺服器並將惡意內容傳送至網頁伺服器。

威脅模型的簡單範例:網頁伺服器與資料庫之間的連線未加密

3. 進行修復這些缺陷的更改

由於威脅建模是在整個開發過程中進行的,因此緩解缺陷可能意味著更改應用程序架構的計劃,或將修復部署到進行中的應用程序構建。

為了減輕他發現的威脅,Terry 可以重新配置他的數據庫服務器和 Web 服務器以使用 TLS 進行連接-或者更好的是,使用 相互 TLS(MTL) 並相互驗證。

威脅模型的簡單範例:網路伺服器與資料庫之間的連線現已安全

4. 確認已套用這些變更,並正確減輕威脅

此時,Terry 可能會在測試環境中執行應用程式,並檢查 1) 伺服器是否依設定使用 TLS,以及 2) Web 伺服器是否接受來自未驗證伺服器而非資料庫伺服器的 HTTP 流量。 他會針對已套用的任何其他緩和措施執行類似的檢查。

有哪些不同的威脅建模方法?

威脅建模方法是識別威脅的一種方法。 方法為威脅建模過程提供了結構,否則在複雜的系統中可能會令人不知所措。 組織可以從各種威脅建模方法中進行選擇,甚至可以開發自己的方法。 一些最常見的方法包括:

  • 步幅: 這種方法由微軟開發,是用於識別安全威脅的助記符設備。 "STRIDE 的字母"代表"欺騙,篡改,否認, 信息洩露, 拒絕服務,權 限提高。" ("此處"的否認意味著無法驗證數據的來源和完整性。) 我們的想法是在應用程序的架構中尋找這六種特定類型的威脅。
  • 麵食: 這代表攻擊模擬和威脅分析的"過程。" 「麵食」是識別、列舉和評分威脅的七個步驟。
  • VAST: 視覺化、敏捷和簡單威脅 (VAST) 方法與 ThreatModeler (一種自動化的威脅建模軟體產品) 相關聯。
  • SQUARE: 安全質量要求工程(SQUARE)方法有助於在開發過程的早期發現安全問題。

還有其他幾種威脅建模方法。 其中一些,例如 " Trike " 和各種混合方法,甚至沒有首字母縮略詞。

威脅建模何時進行?

威脅建模旨在在軟件開發之前和期間進行,並在整個應用程序的生命週期中進行。 如果應用程式在沒有任何威脅模型或緩解措施的情況下發佈,使用者或攻擊者可能會在安全性團隊發現之前先發現安全性瑕疵。 這可能會導致 數據洩露 ,並引入更大的 零時差威脅風險。

但是,由於威脅模型並未發現系統中的所有風險,因此即使在發布後,開發人員和組織也應繼續執行此過程。 除了威脅模型之外,他們還可以通過以下方式實現:

  • 威脅搜尋: 這涉及主動搜尋針對系統的威脅。 威脅搜尋 可以是安全分析師進行的手動調查程序、安全性工具完成的自動化程序,或兩者的組合。
  • 滲透測試: 滲透測試或筆測試是一種安全工作,其中道德黑客試圖在計算機系統中發現和利用漏洞。 為了有效,滲透測試應由某人在沒有系統的事先知識的情況下進行,因此必須與威脅建模過程完全分開進行。 通常,那些構建應用程序的人太接近它,無法識別所有缺陷,就像安全設施的架構師可能無法預測允許劫匪團隊在搶劫電影中闖入的缺陷一樣。
  • 其他應用程式安全措施: 應用程式安全性 是複雜的學科。 任何系統或應用程式都不應被視為完全安全。 Web 應用程序防火牆(WAF) 可以對保護 Web 應用程序有很長的路要走。

Cloudflare 還提供 威脅情報 和操作服務 Cloudforce One,以保護客戶免受最新威脅的侵害。 Cloudforce One 由世界級的威脅研究團隊領導,該團隊在破壞全球規模攻擊者方面擁有豐富的經驗。 在此處了解有關雲力一的信息。