現在資訊產品的漏洞這麼多,有些影響程度很輕微,放著不理他也不會造成很大的影響,但有些漏洞如果沒修補,就會導致大型悲劇,例如前陣子沸沸揚揚的WannaCry勒索病毒所利用的漏洞就是一個例子。
那我們應該如何判斷一個漏洞的嚴重程度呢?今天要介紹的就是一個可以評斷漏洞嚴重程度的分數標準,也就是通用漏洞評分系統 (Common Vulnerability Scoring System, CVSS)。CVSS的研究是由美國國家基礎建設諮詢委員會 (National Infrastructure Advisory Council, NIAC)從2003年所發起的,並在2005年2月完成第一版CVSS (CVSSv1),後續則轉由FIRST(不知道FIRST是什麼的朋友請看https://ithelp.ithome.com.tw/articles/10197572 )進行進一步改善及研究發展,FIRST也因此建立一個CVSS特別興趣群 (CVSS Special Interest Group, CVSS SIG),負責以現行CVSS為基準,研擬下一版本的CVSS應如何進行修正及改善。在採納各方意見後,2007年6月第二版的CVSS (CVSSv2)正式出爐,而隨著各界持續提供許多意見,在2015年6月則發布了目前正在使用的第三版CVSS (CVSSv3.0)。
既然往事已矣不可追,我們就直接來介紹目前正在使用的CVSSv3.0是如何評斷漏洞的嚴重性的吧!
CVSSv3.0以3個群組來進行判斷,分別是基本矩陣群 (Base metric group)、暫時矩陣群 (Temporal metric group)及環境矩陣群 (Environmental metric group),其中基本矩陣群會訂定出基本分數,暫時矩陣群及環境矩陣群則分別以基本矩陣群所產出的分數為基準,進行進一步的判斷,以獲取更嚴密的分數,但也因為後兩項算是進階選項,如果使用者想要進一步評估漏洞才會使用,大部分都只使用了基本矩陣群的部分。
(圖來源:https://www.first.org/cvss/specification-document )
接著介紹基本矩陣群,他以8個面向來進行評分,並得出一個0.0~10.0分的分數,分數越高代表漏洞危險程度越高:
舉個例子,WannaCry使用的漏洞CVE-2017-0144的CVSSv3分數是8.1,其中8項選項如下:
Attack Vector (AV): Network
Attack Complexity (AC): High
Privileges Required (PR): None
User Interaction (UI): None
Scope (S): Unchanged
Confidentiality (C): High
Integrity (I): High
Availability (A): High
如果想要試著玩看看各項排列組合產出的分數是多少,可以到FIRST網站上的CVSSv3計算機去試試看:https://www.first.org/cvss/calculator/3.0 。系統也會根據你的選擇產出一個向量字串 (Vector String),用於描述你對這個漏洞的各項選擇,例如CVE-2017-0144的向量字串長相則為「CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H」,我們也可以看出來,這個字串是根據上述8個面向分別描述選擇的答案為何所產出的。
(圖來源:https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:F/RL:T/RC:R )
由於在CVSSv3問世前,CVSSv2也已經使用了不短的時間,所以現在有時候也可以看到有人在描述漏洞的時候,會同時給CVSSv2跟CVSSv3的分數,兩者都有一定參考性,就端看使用者怎麼應用囉。
參考資料:
[1] https://en.wikipedia.org/wiki/Common_Vulnerability_Scoring_System
[2] https://www.first.org/cvss/
[3] https://nvd.nist.gov/vuln/detail/CVE-2017-0144