「CVSS 10.0」「CVSS 9.8 的 RCE」——這是漏洞新聞裡必然出現的數字。它不是憑氛圍打的分,而是從既定的評分標準(指標)和公式算出來的。下面從零術語開始講解它的讀法。
先看「分數的對照」
| 分數 | 等級 | 體感 |
|---|---|---|
| 9.0 – 10.0 | Critical(重大) | 立即處理。多為接管級 |
| 7.0 – 8.9 | High(高) | 盡早處理 |
| 4.0 – 6.9 | Medium(中) | 有計畫地處理 |
| 0.1 – 3.9 | Low(低) | 觀察處理 |
如果說 CVE 是表示「是哪個漏洞」的名字,那麼 CVSS 就是表示「它有多嚴重」的分數。例如「CVSS 10.0 的 RCE」,意味著最高等級的遠端程式碼執行=最壞等級。
評分標準,是實實在在存在的
CVSS 的分數大體由 3 個評估組搭建而成。現實中公布的「CVE-XXXX 是 CVSS 9.8」,絕大多數指的是最上面那一組 基礎評估(Base) 的分數。
基礎 Base
漏洞本身的性質。公布出來的主體分數。
威脅 Threat
按利用程式碼的流傳程度隨時間修正。
環境 Environmental
按你自己的設定・重要度重新計算。
① 易被利用程度
② 影響的大小
基礎評估大致由 「① 易被利用程度」×「② 影響的大小」 決定。攻擊越簡單、危害越大,得分越高。下面兩個表就是這些評分項目的內容。
① 易被利用程度(攻擊有多容易)
| 指標 | 可取值 | 偏向高分的條件 |
|---|---|---|
| 攻擊途徑 (AV) | 網路 / 相鄰 / 本機 / 實體 | 網路(隔著網際網路)最危險 |
| 攻擊複雜度 (AC) | 低 / 高 | 低(不需要特殊條件或運氣)危險 |
| 所需權限 (PR) | 不需要 / 低 / 高 | 不需要(連登入都不用)危險 |
| 使用者互動 (UI) | 不需要 / 需要 | 不需要(受害者什麼都不做也能成立)危險 |
如果全部都落在「最危險的那一側」,那就意味著可以隔著網路、輕鬆、免認證、無需對方操作地發起攻擊,這是最壞的前提。
② 影響的大小(一旦成功會發生什麼)
CIA 是資訊安全三大支柱 機密性・完整性・可用性 的首字母。
| 指標 | 可取值 | 「高」的含義 |
|---|---|---|
| 影響範圍 (S) | 無變化 / 有變化 | 有變化=侵害越過了原有權限的「盒子」波及到其他地方 |
| 機密性 (C) | 高 / 低 / 無 | 能把資料一網打盡地讀取 |
| 完整性 (I) | 高 / 低 / 無 | 能隨意竄改資料 |
| 可用性 (A) | 高 / 低 / 無 | 能徹底停掉服務 |
「影響範圍(S):有變化」會把分數推高
比如,是只在容器內部的危害(無變化),還是從那裡侵蝕到主機乃至其他服務(有變化),區別就在這裡。這個「是否越過盒子」即便在相同條件下也會讓分數大幅變動。
向量字串:分數的「配方」濃縮在一行裡
CVSS 的分數必定附帶一段叫 向量字串的短字串。它記錄了「選了哪些指標、各自怎麼選的」,是分數的依據,讀懂它就能明白分數的來由。
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H → 10.0 (Critical)把這一行拆開,就能看到所有項目都落在了「最危險的那一側」。
| 分段 | 含義 | 本例的選擇 |
|---|---|---|
AV:N | 攻擊途徑 = 網路 | 可隔著網路攻擊 |
AC:L | 攻擊複雜度 = 低 | 輕鬆成立 |
PR:N | 所需權限 = 不需要 | 免認證即可 |
UI:N | 使用者互動 = 不需要 | 無需受害者操作 |
S:C | 影響範圍 = 有變化 | 越過盒子波及 |
C:H / I:H / A:H | 機密性・完整性・可用性 = 全部高 | 全被讀取・被竄改・被停掉 |
區分「10.0」與「9.8」的關鍵
上例中如果影響範圍變成「無變化(S:U)」,那麼即便條件相同,分數也會降到 9.8。是否為 S:C(越過盒子)就是能否摸到最高分 10.0 的分水嶺。所以 9.8 和 10.0 可以理解為「兩者都是最壞等級,只是危害擴散的方式差了一檔」。
v3.1 與 v4.0:如今兩者並存
CVSS 有版本之分,現行最新是 v4.0(2023 年公開)。不過現實中的 CVE 大多仍用 v3.1(2019 年) 打分,短期內會並存。
| CVSS v3.1 | CVSS v4.0 | |
|---|---|---|
| 公開 | 2019 年 | 2023 年 |
| 表記 | 分數 + 向量 | 用 CVSS-B / BT / BE / BTE 明示用途 |
| 使用者互動(UI) | 不需要 / 需要 的 2 檔 | 細分為 不需要 / 被動 / 主動 的 3 檔 |
| 影響範圍 | Scope(S) 單一項目 | 分開評估「受擊系統」和「波及目標系統」 |
| 補充資訊 | 無 | 增加是否可自動化・可復原性・安全性等參考指標 |
別被分數牽著走
懂了評分標準,CVSS 就是個強大的工具。但別忘了分數是 「最壞條件下的理論值」。在實務中,把分數再乘上下面兩點來決定優先順序,才比較貼近現實。
看是否真的在被利用(KEV)
現實中已觀測到攻擊的漏洞(KEV=Known Exploited Vulnerabilities),無論分數高低都是最優先。比起理論值,「此刻是否正在挨打」更重。
確認你自己是否在用這個功能
即便是 CVSS 10.0,只要沒在用對應的功能或元件,實際危害就很小。反過來,中等分數但在你的生產環境裡必然中招,那就是最優先。以「實際在跑的版本」來判定是鐵律。
實例:曾有人把已公開的 CVSS 10.0 當作「與我無關」放著不管,結果被踩中而導致非法扣費。分數絕不能成為「可以放著不管的理由」。→ 放任 CVSS 10.0 的故事
接下來閱讀
- 術語:CVE 是什麼(給漏洞標注的「流水號」) / RCE 是什麼(最壞等級的危害)
- 對策:把 CVE/CVSS 納入維運(相依套件的機器化監控)
- 事故:放任已公開的 CVSS 10.0 而被非法扣費的故事
FAQ
QCVSS 有評分標準嗎?是憑感覺定的嗎?
有明確的標準。選定攻擊途徑(AV)・攻擊複雜度(AC)・所需權限(PR)・使用者互動(UI)・影響範圍(S)・機密性/完整性/可用性(CIA)這些既定指標,再透過公開的公式算出 0.0~10.0。它被設計成:只要輸入相同,誰來評估都會得到相同分數——是一套可重現的機制。
Q分數是誰定的?
規範本身由 FIRST(全球事件回應組織的聯盟)制定並公開。每個 CVE 的具體分數,由美國的 NVD(NIST)或廠商(產品提供方)按規範的指標打分並公布。同一個漏洞,不同評估者打出的分數有時會略有差異。
QCVSS 多少分算危險?
大致是 9.0~10.0 為 Critical(最嚴重),7.0~8.9 為 High(高),4.0~6.9 為 Medium,0.1~3.9 為 Low。不過分數是「最壞條件下的理論值」,所以還要結合你自己的環境裡是否真的中招來一起判斷。
QCVSS 高就一定要最優先修復嗎?
基本上是,但更重要的是「是否真的觀測到了被利用(KEV)」和「你自己是否在用這個功能」。CVSS 10.0 但沒在用的話,影響也可能為零;反過來,中等分數但正在被利用,就是最優先。
Qv3.1 和 v4.0,該看哪個?
現行最新是 2023 年公開的 v4.0,但現實中大量 CVE 仍然用 v3.1 打分。短期內兩者會並存。讀法的基本原理(用指標透過公式算出 0~10)是相通的,所以本文的思路對哪個版本都適用。