威脅建模是什麼?
威脅建模(STRIDE):透過站在「攻擊者或是竊取者一樣的思路」以結構化的方法以及系統的識別,來評估產品、資訊系統或內部竊取的風險和威脅。針對這些風險與威脅,制定消除(減)措施的建模手段。建議再搭配ATT&CK 的12項元素(界定在APT3.0的技術元素),若仔細分析,可以發現可是更細膩STRIDE可以形成更完善的威脅建模,更可用在Hacking 行為、Insider Threat、以及Malware APT防護上。
威脅建模可以在產品設計階段、架構評審階段或產品運行時展開,強迫我們站在攻擊者的角度去評估產品的安全性與防禦有效性,分析產品或是系統中每個元件是否可能被篡改、偽造,是否可能會造成資訊洩露、遭受攻擊。威脅建模的作用更偏向於確保產品架構、功能設計的安全,無法保證編碼的安全,但是輸出的威脅建模報告中包含了全面的安全需求,這些安全需求不僅包括大的方案設計,如要身分認證(Authentication)、取得授權 (Authorization)、稽核(Auditing),也可以包括安全細節的實現,採用具體的驗證方式、密碼使用安全的演算法儲存、生成安全亂數等。所以,威脅建模雖不能保證Encoding的安全,但可指引R&D編寫出安全的代碼,並輔助滲透測試的展開工作。
為什麼要做威脅建模
- 站在攻擊者的角度通過識別威脅,盡可能多的發現產品架構和功能設計中的安全風險
- 制定措施消減威脅,規避風險,確保產品的安全性與防禦強度
應該在什麼時候做威脅建模
威脅建模應融入企業的軟體發展安全生命週期(SDL)中。
- 新產品或新功能的設計階段
應展開威脅建模,發現風險、制定消減措施,消減措施是安全需求的一部分,需落入產品需求追蹤,確保產品安全。
- 系統運行過程中
可以展開威脅建模,發現的風險可以為企業滲透測試提供支援,盡可能發現更多的漏洞。
常用的威脅建模方法—STRIDE
STRIDE 是微軟開發用於威脅建模的方法和工具。
STRIDE 的六類威脅
STRIDE 是從攻擊者的角度,把威脅劃分成 6 個類別,分別是 Spooling(偽造)、Tampering(篡改)、Repudiation(抵賴否認)、Information Disclosure(資訊洩露)、DOS(阻斷服務) 和 Elevation of privilege (提權)。
為什麼劃分這 6 類,這與資訊安全三要素和資訊安全基本的三個屬性相關。
資訊安全三要素 |
資訊安全三屬性 |
保密性 |
身分認證(Authentication) |
完整性 |
取得授權(Authorization) |
可用性 |
稽核(Auditing) |
威脅 |
安全屬性 |
定義 |
舉例 |
偽造(S) |
認證 |
冒充人或物 |
冒充其他用戶帳號 網址偽造偽裝某個的網站 |
篡改(T) |
完整性 |
修改資料或代碼 |
修改訂單資訊、修改軟體所需要的DLL植入惡意程式,或是竄改封包 |
抵賴否認(R) |
稽核 |
不承認做過某行為 |
不承認修改行為、否認發送過某個 Email,或拒絕承認瀏覽過某個網站 |
資訊洩露(I) |
保密性 |
資訊被洩露或竊取 |
使用者資訊被洩露,無論是惡意或是無意,將重要的客戶資料流出,讓未經授權的人使用 |
阻斷服務(D) |
可用性 |
消耗資源、服務可不用 |
DDOS 導致網站不可用,系統無法運作,或是網站無法服務 |
提權(E) |
授權 |
未經授權獲取、提升許可權 |
普通用戶提升到管理員,讓一個遠端一般使用者,透過非正常的管道,提升權限能夠執行一些只有系統管理員才能使用的指令集 |
隨著全球對隱私保護重視程度的加大,隱私安全也成了產品的一個重要威脅,因此 STRIDE 的 6 個威脅也添加了一項隱私(Privacy),也就變成了 ASTRIDE,A 代表 Advanced。