在新公司快速分享什麼事 CVSS 順手整理一下 :)
CVSS (Common Vulnerability Scoring System) 是一種安全嚴重程度的評斷方式
目前版本已經到 v3.1[0] 可以根據各種維度來判斷一個安全性問題
簡單可用兩個部分來解讀:影響範圍 (Impact Metrics) 與 攻擊方式 (Exploitability Metrics)
## 影響範圍 ##
為了我解釋方便,簡單將範圍分為 可讀(Confidentiality)、可寫 (Integrity)、不可用 (Availability)
實際的描述還是請參考 CVSS Spec 上的描述
當一個 bug 被視為是安全性問題時 CVSS 判斷至少影響一個範圍
像是 CWE-548[1] 就可以當作對 C 有影響 而 CWE-400[2] 則是對 A 有影響
而每個 CIA 又可以分為三種程度:None (不影響)、Low (部分)、High (全部)
## 攻擊方式 ##
除了影響範圍之外 CVSS 也判斷攻擊者利用哪些方式、前提 才可以真正地進行攻擊
像是 AV (Attack Vector) 維度 就是判斷需要利用網路、內網、網路無關或實體接觸
很明顯的 網路跟實體接觸代表不一樣的攻擊難度 相對的 CVSS 分數也會不一致
而 PR (Privileges Required) 代表攻擊者需要擁有何種身份
## 舉例 ##
Shellshock (CVE-2014-6271) 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Heartbleed (CVE-2014-0160) 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
兩個都是知名的安全性漏洞 分別對應到不一樣的 CVSS 分數
用 CIA 來看 Shellshock 三者都是 H (C:H/I:H/A:H) 而 Heartbleed 只有 C 為 H IA 皆不影響
代表 Shellshock 攻擊後就可以為所欲為 (可讀、可寫、可破壞) 但 Heartbleed 只能夠任意讀
用攻擊難度來看兩者都是 AV:N/AC:L/PR:N/UI:N/S:U。分別代表
AV:N -> 網路可連線對象就可以攻擊
AC:L -> 攻擊不需要滿足複雜的前提
PR:N -> 攻擊者不需要登入、擁有特定權限
UI:N -> 攻擊者不需要跟任意使用者互動 (e.g. 釣魚)
S:U -> 攻擊者擁有的權限跟服務權限一致
[0]: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator
[1]: https://cwe.mitre.org/data/definitions/548.html
[2]: https://cwe.mitre.org/data/definitions/400.html