漏洞评分系统 cvss
CVSS不是漏洞万能药。2021年Log4Shell爆发时,评分这个漏洞的系统CVSS 3.1基础评分是10.0——满分。可实际情况呢?漏洞一台内网老旧的测试服务器,跟一个面向公网的评分支付网关,拿到同一个10.0,系统风险能一样吗?漏洞显然不是。CVSS只回答一个问题:这个漏洞本身有多严重。评分它不回答:你的系统系统会不会被打穿。
先把这个系统拆开看。漏洞CVSS全称Common Vulnerability Scoring System,评分由FIRST组织维护,系统目前主流版本是漏洞3.1,4.0也在逐步铺开。评分它的系统核心逻辑是把漏洞拆成若干维度,逐项打分,最后算出一个0到10的数字。0是毫无影响,10是灾难级。
评分分三组指标。Base组是基础分,描述漏洞的固有属性——攻击途径是网络还是本地、利用需不需要认证、对机密性完整性可用性各造成什么影响。这组分数一旦确定就不会变,同一个漏洞谁算都是同一个基础分。Temporal组考虑时间因素,比如漏洞利用代码是否已经公开、有没有官方补丁。Environmental组最灵活,让企业根据自己的环境调整——你的系统里这个组件到底重不重要,你的安全控制能不能挡住。
问题恰恰出在这里。大多数人只看Base分。安全团队收到扫描器报告,一列CVSS 9.8的漏洞排在最前面,然后按分数从高到低修。听着合理,做起来要命。一个CVSS 9.8的漏洞如果在一个隔离的内网打印服务器上,利用条件苛刻,实际风险可能还不如一个CVSS 6.5但直接暴露在公网、有现成exp的漏洞。
我见过真实案例。某企业安全团队花了两周时间紧急修复一批CVSS 8.0以上的漏洞,结果真正被攻击者利用的是一个CVSS 5.3的SSRF——因为那台服务器有云环境的元数据访问权限,攻击者直接拿到了临时凭证。5.3的分数,在CVSS框架里属于“中等”,连很多公司的修复阈值都没到。
CVSS 4.0试图解决一些老问题。它引入了更细的粒度,比如攻击者可以利用多个弱点链式攻击时,评分能更好地反映复合风险。还增加了对安全决策更直接的指标,比如“可被利用性”和“易受攻击系统的脆弱性”。但说到底,任何通用评分系统都无法替代你对自身环境的理解。
我的建议很直接:CVSS分数当参考,别当圣旨。把Base分当作初筛工具,快速过滤掉那些确实无关紧要的漏洞。然后必须叠加环境信息——资产重要性、暴露面、现有控制措施、威胁情报。一个简单做法是维护一张资产关键性表,把CVSS分数乘以一个0.5到2.0的系数。公网核心业务系统乘2,内网测试机乘0.5。这样排出来的修复优先级才靠谱。
还有个容易忽略的点:CVSS评的是漏洞,不是风险。风险等于漏洞乘以威胁乘以资产价值。CVSS只覆盖了第一项。安全团队如果只盯着CVSS分数做决策,本质上是在用一把尺子量所有东西——量得出长度,量不出重量。
最后说个数据。NVD(美国国家漏洞数据库)里超过一半的CVE漏洞CVSS基础分在7.0以上。如果按分数修,你永远修不完。真正有效的做法是建立自己的评分逻辑,CVSS只是其中一个输入项。别让一个数字替你做判断。
(责任编辑:热点)














