iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
Security

Izumi從零開始的30日WEB馬拉松系列 第 26

Day-26 認識威脅建模

  • 分享至 

  • xImage
  •  

今天我們要來學習新的觀念,叫做威脅建模,他可以幫助我們系統性地找出可能被利用的攻擊頁面、評估風險、並決定優先修補項目。

什麼是威脅建模?

威脅建模是一種系統化的方法,用來在系統設計或開發階段中識別、分析與評估潛在的安全威脅與風險。透過了解系統的資產、攻擊面與可能的攻擊者,威脅建模能協助團隊預先找出弱點,制定防禦措施,從而在問題發生前降低安全風險。

威脅建模的四個核心步驟

1.列出資產(Assets):敏感資料、憑證、API、資料庫、服務、第三方套件
2.畫出資料流程圖(DFD):把系統分成使用者、前端、後端、DB、第三方,標出輸入點與信任邊界
3.識別威脅(Threats):用 STRIDE 或其他框架找可能的攻擊種類(Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege)
4.評估與優先順序(Risk):對每個威脅評估可能性與影響(例:1-5 分),計算風險分數,列出可行的緩解措施(mitigations)

資料流程圖範例:

[User] --> (Web UI) --> (API Server) --> (DB)
                       \-> (第三方 OAuth)
  • 輸入點:Web UI 的表單、檔案上傳、API參數
  • 信任邊界:使用者瀏覽器 ↔ 伺服器、伺服器 ↔ 第三方

用STRIDE尋找威脅

  • S-Spoofing(冒用):攻擊者假冒使用者或服務
    緩解:強化認證(MFA)、使用短期token、OAuth驗證流程

  • T-Tampering(竄改):資料在傳輸或儲存被修改
    緩解:資料簽章、TLS、輸入驗證、完整性檢查

  • R-Repudiation(否認性):行為無法追溯或證據不足
    緩解:完整日誌(含時間、來源 IP、user id)、不可否認性的審計紀錄

  • I-Information disclosure(洩密):敏感資料被外洩
    緩解:資料加密(at-rest & in-transit)、最小權限、避免在日誌寫入敏感欄位

  • D - Denial of Service(拒絕服務):資源被耗盡,導致服務不可用
    緩解:速率限制、彈性擴展、WAF、資源配額

  • E - Elevation of privilege(權限提升):低權限帳號取得更高權限
    緩解:細粒度授權、權限分離、審計、最小權限原則

最簡易的評分方式

  • 可能性Likelihood:1(低)–5(高)
  • 影響Impact:1(小)–5(大)
  • 風險分數=Likelihood * Impact(>12為高風險)

舉例:SQLi在搜尋欄被利用,Likelihood=4, Impact=5 → 風險=20(高優先修)

威脅卡

  • 名稱:
  • 位置(Asset/Endpoint):
  • 觸發條件(如何被利用):
  • 影響範圍:
  • 可能性(1-5):影響(1-5): 風險分數:
  • 緩解措施(短期/長期):
  • 驗證方法(PoC/Test Case):

優先排序與決策

1.先修高風險(風險分數>12),特別是可導致權限取得或敏感資料外洩的漏洞
2.能大幅降低多個威脅的控制優先(例如:開啟HTTPS、加強日誌、設定HttpOnly cookie)
3.易修且高效益的項目先做(低投入、高回報)

快速檢查清單

  • 我列出最重要的5個資產了嗎?
  • 我標示了所有輸入點與信任邊界?
  • 我用STRIDE檢查過每個DFD節點嗎?
  • 每個高風險威脅有PoC與修補計畫?
  • 我已把修補優先順序列成待辦(Top 3)?

以Web登入流程舉例

  • 資產:使用者憑證、session cookie
  • DFD重點輸入點:登入表單、密碼重設、Cookie
  • 可能威脅:
    SQLi(Tampering/I):攻擊者讀取密碼雜湊或繞過登入
    XSS(I/R):竊取session cookie
    Session固定(S/E):會話被劫持
  • 修補順序:
    SQLi:使用參數化查詢(高風險,立即修)
    XSS:對輸出進行 HTML escape(中高)
    Session cookie:加HttpOnly; Secure; SameSite=Lax(低成本高效益)

今日小結

今天我們學了基本的甚麼是威脅建模,並且說明如何簡易的製作及評估,明天開始我們會進入總結


上一篇
Day25-QUIC實作
系列文
Izumi從零開始的30日WEB馬拉松26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言