安全漏洞如何評級?
常使用的WVS掃描器對反射型XSS的評級是高危,但是我想知道為什麼會評為高危?安全漏洞又是如何評級的?這樣評級合理么?
定義漏洞的等級,總的說來,可以認為是看漏洞"帶給業務的影響"。具體操作層面,俺這裡有兩個方式,一個是標準模型,一個是實踐經驗。兩個互補,可以綜合考慮。1.DREAD模型1.1什麼是DREAD模型?
DREAD模型,包括5個方面:
a.危害性 (damage):如果被攻擊了,會造成怎樣的危害b.持續生產 (reproducibility):攻擊後恢復運營的簡易度?c.難度係數 (exploitability): 實施此項攻擊的難度是如何?d.受影響用戶數 (affected users): 有多少用戶會受到此項攻擊影響?e.發現係數 (discoverability): 這項威脅是否容易被發現?1.2如何評價?這5個方向根據高中低三個程度,可以劃分如下:道哥的《白帽子講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入侵但是它還是默認開著?
※搞滲透是否需要掌握至少一門伺服器腳本語言 還需要什麼基礎呢? 豐富的網路知識?