跳到主要內容

DREAD 威脅風險量化評分模型:五大維度精準評估漏洞優先修補順序

面對數以百計的漏洞,資安團隊最大的挑戰不是「如何修」,而是「先修哪個」。DREAD 模型透過五個量化維度,將模糊的風險感受轉化為可比較的數字,讓修補決策有所依據。

什麼是 DREAD?五大維度拆解

DREAD 是由微軟提出的威脅評分框架,名稱來自五個英文維度的縮寫。每個維度以 1 到 10 分獨立評分,最終取平均或加總,得出該威脅的風險指數。

  • D — Damage(損害程度):漏洞一旦被利用,對系統或資料造成多大傷害?資料全毀得 10 分,輕微影響得 1 分。
  • R — Reproducibility(重現性):攻擊者能否每次穩定複現攻擊?100% 成功率得 10 分。
  • E — Exploitability(可利用性):利用此漏洞需要多少技術門檻?腳本小子可執行得 10 分,需高度專業得 1 分。
  • A — Affected Users(受影響用戶):有多少比例的用戶受影響?全體用戶得 10 分。
  • D — Discoverability(可發現性):攻擊者找到此漏洞的難易度?公開已知得 10 分,深藏內部得 1 分。

如何應用 DREAD 排定修補優先序

評分後,將五項分數加總除以 5 得出平均風險分數(Risk Score)。通常以 7 分以上視為高風險,須優先處理;4–6 分為中風險,排入常規修補週期;3 分以下可延後處理。

實務上,團隊可為每個已知漏洞建立評分表,讓不同成員獨立打分再取平均,減少個人主觀偏差。DREAD 特別適合在 Threat Modeling(威脅建模)階段整合使用,與 STRIDE 模型相輔相成:STRIDE 識別威脅類型,DREAD 量化其嚴重性。

# DREAD 風險分數計算(Python 範例)
scores = {"Damage": 9, "Reproducibility": 8, "Exploitability": 7,
          "Affected_Users": 10, "Discoverability": 6}
risk_score = sum(scores.values()) / len(scores)
print(f"DREAD Risk Score: {risk_score}")  # 輸出:8.0(高風險)

💡 重點整理

  • DREAD 五維度各自獨立評分(1–10),避免單一指標失真。
  • 平均分 ≥ 7 為高風險,應列入當前 Sprint 優先修補。
  • 與 STRIDE 搭配使用,可同時完成威脅識別與風險量化。
  • 多人獨立評分取平均,能有效降低主觀偏差。

DREAD 模型的價值在於將直覺判斷轉化為可溝通的數字。它不追求完美精確,而是提供一個讓團隊對齊優先順序的共同語言,讓有限的資安資源投入到最關鍵的地方。

📚 參考文獻

  1. Microsoft Security — The DREAD Risk Assessment Model:微軟原始提出 DREAD 框架的官方說明文件,收錄於《Writing Secure Code, 2nd Edition》。
  2. OWASP — DREAD Risk Rating Methodology:OWASP

留言