威脅建模是一種預先識別應用程式架構中可能存在弱點的方法。 它涉及繪製應用程序,識別安全漏洞並緩解這些缺陷。
閱讀本文後,您將能夠:
複製文章連結
威脅建模是在應用程式及其環境中尋找安全漏洞的練習。 它涉及創建具有其所有組件的應用程序的表示形式,然後識別弱點。 理想情況下,開發人員和安全工程師在整個軟件開發過程中使用威脅模型-在應用程序上線之前,而不僅僅是之後。 威脅建模可以幫助使應用程序比其他方式更安全,但不應該期望使應用程序堅不可摧。
在搶劫電影中,主角經常檢查他們計劃搶劫的設施的藍圖,找出弱點-可以進入建築物的位置,安全攝像頭看不到的角度等等。 同樣,威脅建模就像檢查給定應用程序的"藍圖一樣。" 不同之處在於,威脅建模是由希望保持應用程序安全的人員完成的,而不是潛在的劫匪。
威脅建模需要團隊建立應用程式的完整檢視。 然後,它涉及到像一個可能想要妥協應用程序的人一樣思考。 攻擊者會怎麼做? 他們可能會利用弱的 API 安全性嗎? 他們會否利用 供應鏈攻擊 來感染整合式系統庫? 儘管並非所有攻擊都可以預期,但威脅建模有助於在發生之前阻止其中一些攻擊。
威脅建模有很多可能的方法,並且沒有任何一種方法可以應用於每種情況。 但通常涉及這四個主要步驟:
威脅建模者嘗試識別並描述:
如果特裡寫了一個簡單的應用程序,顯示氣球的圖片,他的應用程序圖可以如下所示:
請注意,這是一個非常簡單的示例,真正的威脅建模應用程序圖可能會更加複雜。
看到以這種方式佈置的應用程序可以更容易地識別缺陷。 例如,特里可能會注意到他的氣球照片數據庫和他的 Web 服務器之間的通信不使用傳 輸層安全性(TLS)。 這表示伺服器無法透過數位簽章驗證對方的身分,進而讓攻擊者冒充資料庫伺服器並將惡意內容傳送至網頁伺服器。
由於威脅建模是在整個開發過程中進行的,因此緩解缺陷可能意味著更改應用程序架構的計劃,或將修復部署到進行中的應用程序構建。
為了減輕他發現的威脅,Terry 可以重新配置他的數據庫服務器和 Web 服務器以使用 TLS 進行連接-或者更好的是,使用 相互 TLS(MTL) 並相互驗證。
此時,Terry 可能會在測試環境中執行應用程式,並檢查 1) 伺服器是否依設定使用 TLS,以及 2) Web 伺服器是否接受來自未驗證伺服器而非資料庫伺服器的 HTTP 流量。 他會針對已套用的任何其他緩和措施執行類似的檢查。
威脅建模方法是識別威脅的一種方法。 方法為威脅建模過程提供了結構,否則在複雜的系統中可能會令人不知所措。 組織可以從各種威脅建模方法中進行選擇,甚至可以開發自己的方法。 一些最常見的方法包括:
還有其他幾種威脅建模方法。 其中一些,例如 " Trike " 和各種混合方法,甚至沒有首字母縮略詞。
威脅建模旨在在軟件開發之前和期間進行,並在整個應用程序的生命週期中進行。 如果應用程式在沒有任何威脅模型或緩解措施的情況下發佈,使用者或攻擊者可能會在安全性團隊發現之前先發現安全性瑕疵。 這可能會導致 數據洩露 ,並引入更大的 零時差威脅風險。
但是,由於威脅模型並未發現系統中的所有風險,因此即使在發布後,開發人員和組織也應繼續執行此過程。 除了威脅模型之外,他們還可以通過以下方式實現:
Cloudflare 還提供 威脅情報 和操作服務 Cloudforce One,以保護客戶免受最新威脅的侵害。 Cloudforce One 由世界級的威脅研究團隊領導,該團隊在破壞全球規模攻擊者方面擁有豐富的經驗。 在此處了解有關雲力一的信息。