威脅建模是一種方式用來評估一個環境、架構、程式等等可能有風險的方法,重點是盡可能讓相關人員意識/發現到各種危害去避免,因此有別於條列式檢核表,更視覺化的方式去呈現
使用OWASP Threat Dragon演練威脅建模
線上版 https://www.threatdragon.com/
選預設樣板Explore a sample threat model
接著選擇Generic CMS
有一個只有架構,還沒評估風險的樣板

圖案的說明
| 元素 | 符號 | 說明 | 範例 |
|---|---|---|---|
| 外部實體(External Entity) | 矩形 | 系統之外的人或系統 | 使用者、第三方支付閘道、外送員 App |
| 處理程序(Process) | 圓形 | 系統內處理資料的元件 | 訂單服務、認證服務、通知服務 |
| 資料儲存(Data Store) | 兩條平行線 | 資料存放的地方 | 使用者資料庫、訂單資料庫、Redis 快取 |
| 資料流(Data Flow) | 箭頭 | 資料的流動方向 | 登入請求、訂單資料、付款結果通知 |
點選Save匯出設定
後續使用Threat Dragon AI分析,如果內容有中文會出錯,要改英文
Threat Dragon AI 設定
Open Model > 複製一份剛建立的 json檔案 > Generate Threat and Mitigations
會用AI將評估的風險填入設定檔(情境寫得越完整,產出結果越好)


| 威脅 (Threat) | 所違反的安全屬性 | 說明 | 範例 |
|---|---|---|---|
| Spoofing (偽冒) | 認證 (Authentication) | 假冒成其他人或其他事物的身分 | 偽造身分驗證權杖 (tokens) |
| Tampering (竄改) | 完整性 (Integrity) | 未經授權地修改資料或程式碼 | 塗改資料庫紀錄、修改組態設定檔 |
| Repudiation (否認) | 不可否認性 (Nonrepudiation) | 執行了某項操作後卻矢口否認有做過 | 明明下了單購買卻聲稱沒這回事 |
| Information Disclosure (資訊外洩) | 機密性 (Confidentiality) | 將資訊暴露給未經授權的個人方 | 系統錯誤訊息直接把堆疊追蹤 (stack traces) 傾印印在畫面上 |
| Denial of Service (阻斷服務) | 可用性 (Availability) | 使系統癱瘓無法使用或效能嚴重衰退 | 用海量的請求灌爆伺服器 |
| Elevation of Privilege (權限提升) | 授權 (Authorization) | 在未獲授權的情況下取得更高的存取能力 | 利用系統漏洞設法取得系統管理員 (admin) 的權限 |
| 因素 (Factor) | 試圖回答的問題 |
|---|---|
| Damage Potential (潛在損壞程度) | 如果這個攻擊成功了,情況會有多糟糕? |
| Reproducibility (可重現性) | 重現這個攻擊手法有多容易? |
| Exploitability (可利用性) | 成功發動這項攻擊需要多少努力、資源或專業知識? |
| Affected Users (受影響使用者) | 會有多少使用者遭遇波及衝擊? |
| Discoverability (可發現性) | 攻擊者發現這個漏洞點的難易程度為何? |
Mapping: Domain 4.4 (Threat Modeling) / STRIDE 模型、DREAD 評估與信任邊界劃分。
Threat Dragon AI Tool
https://www.threatdragon.com/docs/usage/ai-tool.html
Threat modelling for everyone everywhere Game
https://github.com/tng/elevation-of-privilege
https://copi.owasp.org/