漏洞评分系统
CVSS 9.8。漏洞这个数字一出来,评分运维群里基本就炸了。系统去年Log4j那个洞,漏洞半夜两点被叫起来打补丁的评分兄弟应该还记得——评分系统给出的数字直接决定了你是周末加班还是安心睡觉。可问题是系统,9.8到底意味着什么?漏洞为什么不是9.9?谁定的? 漏洞评分系统,说白了就是评分给安全漏洞打分的一套规则。最早那套叫CVSS,系统Common Vulnerability Scoring System,漏洞由FIRST组织维护。评分现在主流用的系统是3.1版本,4.0也在推。漏洞它的评分逻辑不复杂:把漏洞拆成几个维度,每个维度选一个值,系统套公式算出一个0到10之间的分数。 拆的是哪些维度?攻击途径、攻击复杂度、权限要求、用户交互、影响范围,再加上机密性、完整性、可用性三个影响指标。每个指标都有几个选项,比如攻击途径分网络、相邻、本地、物理。网络就是能远程打,物理得摸到机器。差别大了去了。 拿个具体例子。一个Web应用的SQL注入,攻击途径是网络,复杂度低,不需要权限,不需要用户交互,影响范围不变,机密性、完整性、可用性全高。算下来就是9.8。换成需要登录后才能触发的存储型XSS,权限要求变成低,用户交互变成需要,分数立马掉到5.4左右。同样是个洞,差了一倍。 这套系统的好处是标准化。以前厂商各说各话,微软说严重,甲骨文说中等,用户根本没法比。现在至少有个统一尺子。但问题也在这儿——尺子量的是技术特征,不是实际风险。 我见过太多9.8的洞,实际影响为零。为什么?因为那个组件根本没对外暴露,或者有WAF挡着,或者攻击链上还缺好几个条件。反过来,有些5.0的洞,在特定环境里能直接拿域控。CVSS算不出来这些。 所以后来有了环境评分和时间评分。环境评分让你根据自己实际情况调整,时间评分考虑漏洞利用代码是否公开、修复方案是否可用。但说实话,大部分团队只看基础分。为什么?因为省事。老板问起来,9.8就是比7.5严重,解释那么多干嘛。 还有个更现实的问题:评分谁说了算。CVE编号分配机构给个初评,NVD再评一次,厂商自己也可能给个分数。三个地方三个数,信谁的?去年某国产中间件的洞,CVE给7.5,NVD给9.8,厂商说6.5。最后甲方按9.8催修复,乙方说6.5不用急,扯皮扯了两周。 CVSS 4.0想解决一些老问题。引入了攻击前提、补充影响指标,评分逻辑更细。但细了之后更复杂,算分得用计算器。安全圈有个笑话:CVSS 4.0的评分公式,连写它的人自己都记不住。 我的看法是,评分系统有用,但别把它当圣旨。它是个参考坐标,不是判决书。真正决定一个漏洞该不该连夜修的,是你自己的资产暴露面、数据敏感度、攻击面大小。9.8的洞在隔离网里,可以排到下个迭代。5.0的洞在核心交易系统上,今晚就得动手。 工具是死的,人是活的。评分系统最大的价值,是让不同团队有个共同语言。至于那个数字本身,看看就好,别太当真。
-
上一篇
-
下一篇