通用漏洞评分系统
CVSS 3.1的通用满分是10.0。一个漏洞拿到9.8,漏洞意味着什么?评分意味着攻击者不需要任何认证,不用跟系统交互,系统隔着网络就能把目标打穿。通用2017年的漏洞永恒之蓝,CVSS评分9.3。评分2021年的系统Log4Shell,10.0。通用这两个数字一出来,漏洞全球安全团队连夜加班,评分不是系统因为有人告诉他们"这个漏洞很严重",而是通用因为评分系统已经把严重程度量化成了一把尺子。 这把尺子就是漏洞通用漏洞评分系统(Common Vulnerability Scoring System)。它不负责告诉你漏洞怎么修,评分也不负责判断这个漏洞对你有没有影响。它只做一件事:给漏洞的固有属性打分。 CVSS把评分拆成三组指标。基础指标(Base)衡量漏洞本身——攻击路径是网络还是本地、需不需要认证、对机密性和可用性造成多大破坏。时间指标(Temporal)看的是漏洞利用代码有没有公开、补丁有没有发布、修复难度多大。环境指标(Environmental)最灵活,让每个组织根据自己的网络架构和安全控制措施去调整分数。 很多人搞混一件事:这三个维度不是先算基础、再算时间、最后算环境。它们是同时存在的。一个基础分9.8的漏洞,如果官方补丁已经发布且你打了补丁,时间分可能降到7.5。如果你的网络做了微隔离,环境分可能再降到5.0。反过来,一个基础分6.5的漏洞,如果暴露在公网且没有WAF,环境分可能飙到8.0以上。 我见过一个团队,拿着扫描器导出的CVSS 7.5的漏洞列表,从高到低排优先级。排到第三页才发现,有个9.8的漏洞被他们忽略了——因为扫描器输出的是基础分,而那个漏洞的利用代码早就公开了,时间分一分没降。只看基础分,等于只看了三分之一。 CVSS 3.1的计算公式不是拍脑袋定的。攻击向量(AV)从物理到网络,权重差异很大。网络攻击向量给0.85,本地给0.55,物理给0.2。这个梯度反映了一个事实:远程可利用的漏洞,攻击面天然比本地漏洞大一个数量级。 机密性、完整性、可用性三个影响指标,每个都有高、低、无三档。高影响给0.56,低影响给0.22。为什么不是线性的?因为"完全泄露"和"部分泄露"之间的差距,远大于"部分泄露"和"无泄露"之间的差距。 有个细节值得注意:CVSS 3.1里没有"部分影响"这个选项。要么高,要么低,要么无。这种离散化处理牺牲了精度,换来了评分的一致性。两个分析师评估同一个漏洞,基础分应该完全一样。实际工作中能做到吗?很难。但至少框架是统一的。 CVSS 9.8的漏洞,如果跑在一个完全隔离的内网系统上,实际风险可能低于一个CVSS 5.0但暴露在公网的漏洞。这就是为什么CVSS文档里反复强调:基础分不是风险分。风险 = 漏洞严重性 × 资产重要性 × 威胁环境。CVSS只负责第一项。 很多漏洞管理平台把CVSS分数直接当风险值用。扫描器报9.8,工单优先级就是P0。扫描器报5.0,优先级就是P3。这种一刀切的做法,导致安全团队被高分漏洞淹没,真正需要紧急处理的问题反而被埋没。 我的判断是:CVSS是一个沟通工具,不是决策工具。它让不同团队在讨论漏洞时有一个共同语言。但最终决定先修哪个,得看资产、看暴露面、看攻击者动机。分数是起点,不是终点。 CVSS 4.0已经在2023年底正式发布。新版本引入了补充指标,把安全评估从"漏洞本身"扩展到"漏洞利用后的影响链"。但核心逻辑没变:用结构化的方式,把主观判断变成可比较的数字。这件事本身,比任何一个具体分数都重要。三个维度,不是三个步骤
分数背后的逻辑
评分不等于风险
- 随机阅读
- 搜索
-
- 友情链接
-