去年,寫過一篇《漏洞運營規範化》,當時有些朋友問,無論是使用cvss,dread,owasp,或者是現有國內各大s rc的評級標準,能不能有一套可以减少爭議,能够自動化實現的方法呢?
在這一年中,和團隊成員不斷的探索中,進行了關於漏洞評級的模型選型,標準化,自動化計算,以及根據實際情況的小範圍內測和公測,探索了一套基於DREAD模型的漏洞計算模式。
這套模式仍在不斷摸索中,歡迎感興趣的朋友,一起進一步溝通和探討。
一、選型
如前文所述,已知的漏洞計算模型包括cvss,dread,owasp,還有各大s rc現在應用的管道,真正準備進行標準化前針對各個模型進行了初步的調研。
調研前首先明確,這套模型需要明確幾個概念:
- 目標對象是用在SRC收集漏洞上,而不是單純的內部掃描器穩定產出的結果,這就意味著收到的漏洞可能場景更複雜,更難以按照類型單一標準化。
目標對象
是用在SRC收集漏洞上,而不是單純的內部掃描器穩定產出的結果,這就意味著收到的漏洞可能場景更複雜,更難以按照類型單一標準化。
- 目標人群外界的白帽子是第一優先用戶,內部安全工程師是第二用戶,內部的各個業務方包括開發運維測試是第三用戶。也就是說,這裡面大部分的用戶都是非企業安全建設的用戶。
目標人群
外界的白帽子是第一優先用戶,內部安全工程師是第二用戶,內部的各個業務方包括開發運維測試是第三用戶。也就是說,這裡面大部分的用戶都是非企業安全建設的用戶。
- 漏洞等級的定義依據是——“可能帶來的影響”。可能帶來的影響,既不是指某類漏洞的危害(這裡指漏洞的等級不止需要考慮該漏洞本身,同時要考慮這個類型的漏洞實際影響的業務等多個維度),也不是已經帶來的影響(已經帶來影響的,可能已經是安全事件了)。
漏洞等級的定義
依據是——“可能帶來的影響”。可能帶來的影響,既不是指某類漏洞的危害(這裡指漏洞的等級不止需要考慮該漏洞本身,同時要考慮這個類型的漏洞實際影響的業務等多個維度),也不是已經帶來的影響(已經帶來影響的,可能已經是安全事件了)。
- 漏洞類型的範圍除了傳統的Web安全性漏洞,系統網路安全漏洞和移動用戶端的安全性漏洞,可能還需要包括業務安全、業務邏輯,協力廠商平臺資訊洩露等,因為隨著安全的發展,出現的各種新型安全問題越來越多,也超出了原本科技漏洞的範疇,是更廣義上的漏洞。
漏洞類型的範圍
除了傳統的Web安全性漏洞,系統網路安全漏洞和移動用戶端的安全性漏洞,可能還需要包括業務安全、業務邏輯,協力廠商平臺資訊洩露等,因為隨著安全的發展,出現的各種新型安全問題越來越多,也超出了原本科技漏洞的範疇,是更廣義上的漏洞。
幾個定義明確了之後,那哪個更適合應用在SRC呢?
結合以上應用場景,以及各個評分標準下,如果想在SRC進一步進行標準化,那麼DREAD成為了優選的對象。
二、等級計算
由於歷史原因,SRC的漏洞危害,包括忽略的情况下,一共分為5個大類,11個小類,分別是
等級大類
等級小類
嚴重
10
嚴重
9
高危
8
高危
7
高危
6
中危
5
中危
4
中危
3
低危
2
低危
1
忽略
由於後續的積分體系,獎勵體系都是依照這個等級規則來的,在等級不變的情况下,想與DREAD模型進行匹配,就需要進行一定的適配。
DREAD模型的計算管道:等級=危害性+複現難度+利用難度+受影響用戶+發現難度
已有的等級計分分數標準,結合DREAD的等級計算管道,最終適配出來的分數是:
等級[忽略(0),嚴重(10)]=(危害性[0,4]+複現難度[0,4]+利用難度[0,4]+受影響用戶[0,4]+發現難度[0,4])/2
其中,
- 危害性、複現難度、利用難度任意一個值為0,總分即為0;
危害性、複現難度、利用難度任意一個值為0,總分即為0;
- 等級為0總分除以2後取整。
等級為0總分除以2後取整。
三、等級定義
1.危害性(Damage)
危害性Damage,即how bad would an attackbe?(來源於維琪百科,下同)意指:如果被攻擊了,會造成怎樣的危害?這裡根據系統受危害程度,洩露資訊的數據敏感性,資損,系統受危害程度等方面來衡量危害。
首先是數據敏感性。各公司一般會數據根據敏感程度分等級,可以是對外公開,內部公開,秘密數據,機密數據等
其次,對於資金的損失,可以按照實際的金額的某些區域進行劃分,也可以按照某個比例計算
再次,對於系統的破壞包括但不限於,上面說的數據洩露、資金損失外,能够完全獲得許可權、執行管理員操作、非法上傳更為嚴重。
由此可參攷以下等級劃分:
0分:未洩露敏感資訊,不涉及資金損失
1分:洩露內部公開的數據,或存在較少資金損失
2分:洩露秘密數據,或存在一定資金損失
3分:洩露機密數據,或資金損失較大
4分:獲取完全驗證許可權,或執行管理員操作,或非法上傳文件,或資金存世巨大
2.複現難度(Reproducibility)
複現難度Reproducibility,即how easy is it to reproduce theattack?意指,複現這個攻擊的難易程度是怎樣的?重點在於這個漏洞是不是容易複現成功,有難度和概率問題。
(注意,有的地方的翻譯是,攻擊後恢復運營的簡易度,經過幾番考察,這裡不是恢復運營的簡易度,reproduce指的是複現,即把這個漏洞重複演示,而不是恢復運營,國內有的地方按照恢復運營翻譯是有問題的)。
0分:非常困難或者不可能複現,即時對於應用管理員
1分:很難複現,複現成功率較低,需要多種因素限制並對科技有較高要求
2分:可以複現,但有時間或其他因素限制
3分:容易複現,需要一步或兩步,可能需要變成授權用戶
4分:非常容易複現,僅僅一個瀏覽器和地址欄就ok,不需要身份認證
3.利用難度(Exploitability)
利用難度Exploitability,即how much work is it to launch theattack?意指,需要什麼才能利用這個漏洞?這裡特指的是,使用什麼才能實現這個攻擊,這裡關注的重點是具體使用的工具。
0分:漏洞無法利用
1分:利用條件非常苛刻,如未披露的0day
2分:熟練攻擊者可攻擊,需自定制腳本或高級攻擊工具
3分:中級攻擊者能攻擊,已存在可用工具或可被輕易利用
4分:初學者短期能掌握,僅需Web瀏覽器即可
4.受影響用戶(Affected Users)
受影響用戶Affected Users,即how many people will beimpacted?意指,多少用戶會被影響到?實際應用的模型裏,添加了業務的重要程度,以及多少算“多”的概念。
業務的等級,同現在大多數公司對於業務的概念,氛圍覈心、一般和邊緣,這個由公司各業務主導業務定級,安全團隊進行參攷和微調
數量的概念,參攷新頒佈的網路安全法,如果是敏感數據超過50條即可判刑來看,只要敏感數據超過50條即可認為是大量。
0分:對用戶無影響
1分:一般邊緣業務的少量用戶
2分:一般邊緣業務的大量用戶或覈心業務的少量用戶
3分:覈心業務的大量用戶
4分:所有用戶或涉及多個覈心業務的大量用戶
5.發現難度(Discoverability)
發現難度Discoverability,即how easy is it to discover thethreat?意指,發現這個威脅的難以程度?實際應用做了一些具體場景化的舉例。
當對已有應用進行安全稽核時,“可發現性”將依照慣例被設定為4分,也就是默認此風險會被發現。
0分:非常困難,甚至不可能發現;需要源碼或者管理員許可權
1分:發現漏洞很困難,可以通過猜測或者監測網絡活動來發現
2分:在私有區域(如內網),部分非可見(如有許可權限制),有時間或其他因素限制,需要深入挖掘的漏洞
3分:容易發現,錯誤的細節已經在外部公共平臺上披露,而且可以用搜尋引擎輕易發現,攻擊條件較易獲得
4分:非常容易發現,資訊在web瀏覽器的地址欄或者表單裏可見(通常是外網)
四、問題和校正
在以上等級定義和計算下,經過一段時間的內測和小範圍公測,也發現了一些問題。
- 問題:根據DREAD模型計算的5個維度的權重都是1,而通常情况下更多人更看重漏洞危害對等級的影響,或者有的只看重危害和利用難度,或者有的只看重危害+利用難度+影響用戶,那麼權重是不是需要調整呢,或者删掉一些維度呢?迴響:這個可能需要大量的數據和實踐來支撐,現時DREAD模型的標準權重是1,這個是模型的理論基礎,後續結合實際情況再看是否和如何調整。
問題:
根據DREAD模型計算的5個維度的權重都是1,而通常情况下更多人更看重漏洞危害對等級的影響,或者有的只看重危害和利用難度,或者有的只看重危害+利用難度+影響用戶,那麼權重是不是需要調整呢,或者删掉一些維度呢?
迴響:
這個可能需要大量的數據和實踐來支撐,現時DREAD模型的標準權重是1,這個是模型的理論基礎,後續結合實際情況再看是否和如何調整。
- 問題:大部分時間計算下來的漏洞都是中危以上,基本上很難計算出來低危的漏洞,而實際上確實有低危的情况。迴響:1)方法一:這就要引入部分漏洞類型,當選擇這些類型的時候,會默認給出一些參攷值。2)方法二:調整漏洞等級的大分和小分的值,例如現有低危計算是1~2,可以調整為0.5~3.5都是低危。
問題:
大部分時間計算下來的漏洞都是中危以上,基本上很難計算出來低危的漏洞,而實際上確實有低危的情况。
迴響:
1)方法一:這就要引入部分漏洞類型,當選擇這些類型的時候,會默認給出一些參攷值。
2)方法二:調整漏洞等級的大分和小分的值,例如現有低危計算是1~2,可以調整為0.5~3.5都是低危。
- 問題:除了常見的5個維度,有些情况下,如果通盤考慮,除了傳統意義上的安全風險,可能還有覆蓋不全的?迴響:1)安全維度本身,有時候需要考慮觸發條件等因素,可以酌情進行調整。2)公關風險和法律風險,可以作為加分項。
問題:
除了常見的5個維度,有些情况下,如果通盤考慮,除了傳統意義上的安全風險,可能還有覆蓋不全的?
迴響:
1)安全維度本身,有時候需要考慮觸發條件等因素,可以酌情進行調整。
2)公關風險和法律風險,可以作為加分項。
參攷
- DREAD(risk assessment model)維琪百科:https://en.wikipedia.org/wiki/DREAD_(risk_assessment_model)
DREAD(risk assessment model)維琪百科:
https://en.wikipedia.org/wiki/DREAD_(risk_assessment_model)
- ThreatRisk Modeling(OWASP翻譯4)簡書(侵删):https://www.jianshu.com/p/3534c30c0a83
ThreatRisk Modeling(OWASP翻譯4)簡書(侵删):
https://www.jianshu.com/p/3534c30c0a83
- 6步教你搞定網絡威脅建模(侵删)http://www.sohu.com/a/123809332_505884
6步教你搞定網絡威脅建模(侵删)
http://www.sohu.com/a/123809332_505884
- DREAD:安全風險評估模型(侵删):http://www.aiuxian.com/article/p-1962153.html
DREAD:安全風險評估模型(侵删):
http://www.aiuxian.com/article/p-1962153.html
特別感謝:
sixwhale小姐姐,一起探索模型並用python編寫成了小算盘;
IT小丑,Leej,松松_,hwan,一起測試優化;
M,友人A,HJK,在小範圍公測中給予大量意見和建議。
p.s.以上是最近這段時間對於基於DREAD模型的研究,其中很多地方都有不成熟甚至錯誤的地方,還請大家多多討論和指教,如果有好的意見建議和錯誤指正,會送上小禮物一份。
p.p.s節前和晨晨小姐姐一起交流過,漏洞怎麼樣去重和稽核更合適,感興趣的小夥伴且看下回分解——漏洞去重。