安全漏洞如何評級?

常使用的WVS掃描器對反射型XSS的評級是高危,但是我想知道為什麼會評為高危?安全漏洞又是如何評級的?這樣評級合理么?


定義漏洞的等級,總的說來,可以認為是看漏洞"帶給業務的影響"。具體操作層面,俺這裡有兩個方式,一個是標準模型,一個是實踐經驗。兩個互補,可以綜合考慮。

1.DREAD模型

1.1什麼是DREAD模型?

DREAD模型,包括5個方面:

a.危害性 (damage):如果被攻擊了,會造成怎樣的危害

b.持續生產 (reproducibility):攻擊後恢復運營的簡易度?

c.難度係數 (exploitability): 實施此項攻擊的難度是如何?

d.受影響用戶數 (affected users): 有多少用戶會受到此項攻擊影響?

e.發現係數 (discoverability): 這項威脅是否容易被發現?

1.2如何評價?

這5個方向根據高中低三個程度,可以劃分如下:

1.3如何計算?

一個漏洞具體的等級,可以按照上面的標準,計算給定威脅的值 (1–3)。結果範圍為 5–15。這樣就可以將總分 12–15 的威脅評價為高度危險,8–11 的威脅評價為中度危險,5–7 的威脅評價為低度危險。

道哥的《白帽子講web安全》給出了如下例子:

在一個web網站中,存在用戶賬號被盜威脅,根據DREAD進行評分如下:

a.網站登陸頁面存在暴利破解:D(3)+ R(3) + E(3) + A(3) + D(3) = 15

b.密碼找回存在邏輯漏洞:D(3)+ R(3) + E(3) + A(3) + D(2) = 14

c.密碼可能被嗅探:D(3) + R(3) + E(3) + A(1) + D(3) = 13

d.服務端腳本漏洞(如SQL等): D(3) + R(3) + E(2) + A(3) + D(1) = 12

e.釣魚網站:D(3) + R(1) + E(3) + A(2) + D(3) = 12

f.XSS或其他客戶端威脅:D(3) + R(2) + E(2) + A(2) + D(2) = 11

g.病毒或木馬:D(3) + R(1) + E(2) + A(1) + D(1) = 8

根據計算結果,我們可以得出漏洞的具體等級。

2.個人實踐中增加的兩個應用

實際的在企業的應用時,除了DREAD模型本身,還可以考慮的方式,事先梳理好企業有哪些核心業務,並且根據企業的業務性質和漏洞本身的危害,梳理出不同漏洞類型的默認等級。

2.1核心業務

舉個例子,電商類的企業,電商主站和涉及資金交易的,更可能是核心業務;搜索類的企業,涉及競價排名的,更可能是核心業務.......或者更簡單的方式,大一些的公司自己會梳理自身的核心業務,一般每次發季報年報,榜上有名的都跑不了。一般這種是先考慮企業業務重要性,再考慮安全重要性,當然有些非核心,但是經常出現安全問題,甚至重大安全問題的業務,也考慮劃分在內。

除了核心業務,可以定出非核心業務,或者定出一般業務和邊緣業務。

是否核心業務本身,也是不少企業或者src評價漏洞的標準。當然,核心業務一旦產生安全漏洞,損失和受影響的用戶,往往也是高的,這個與上面的DREAD模型並不衝突,是便於評判的補充。

2.2漏洞類型和默認危害

這個也是個比較容易操作的衡量基準。為啥叫基準而不是標準?因為這裡僅僅指,按照不同的漏洞類型可以給出一個漏洞本身的危害,然後在這個基礎上利用DREAD模型和是否核心進行調節。

舉個例子,SQL注入常見等級嚴重或高危,XSS中存儲型風險高一些,但是反射型一般低一些。以此類推,可以梳理一張不同漏洞類型默認等級,在計算時能夠更快速的判斷漏洞等級。

個人淺見,請多指教。

上面核心內容引自道哥的,白帽子講web安全。


漏洞被利用可能引起損失大致包括三個最終方向:用戶數據泄露,系統root許可權被拿,業務不可用。

漏洞的評級跟該漏洞被利用可能導致的損失掛鉤。比如說有一個漏洞,利用了它,就能獲取系統的root許可權。那麼這個漏洞自然是高危的。即使不能直接獲取root許可權,但是利用它使你在獲取root許可權的道路上前進了一大步,它仍然可能被評為高危。

現在掃描器的報告有的會參考cvss標準。

但是掃描器給的漏洞評分只是個參考值,在實際環境中,由於受其他安全防護策略的限制,利用難度的不同,漏洞對業務可能造成的實際危害也應該根據具體環境有所調整。

實際的評分應該是:危害度*可利用性


對於XSS來說,高危低危都有可能,需要具體場景具體分析。但是對於掃描器來說,一種類型的漏洞就是設定好的級別。

關於漏洞評分的話,我主要參考DREAD和CVSS。可以參見OWASP的這個Threat_Risk_Modeling頁面:Threat Risk Modeling

另外一方面也就像安惞所說,需要結合自己的業務,比如影響到PCIDSS相關的業務。另外可以對數據進行分級,比如敏感數據,用戶私人數據,公開數據。


推薦閱讀:

輸入驗證碼保護賬號安全的原理是什麼?
信用卡管理 Apps 通過郵件讀取賬單,為什麼會有這麼過分的設計?
二維碼的每塊區域代表什麼信息?
為什麼滲透測試中經常利用power shell入侵但是它還是默認開著?
搞滲透是否需要掌握至少一門伺服器腳本語言 還需要什麼基礎呢? 豐富的網路知識?

TAG:網路安全 | 信息安全 | 漏洞 | 滲透測試 |