漏洞级别

去年某电商平台被曝出用户数据泄露,漏洞级别涉及七百万条记录。漏洞级别安全团队复盘时发现,漏洞级别攻击者利用的漏洞级别只是一个未授权访问漏洞——在CVSS评分里只有5.3分,中等危害。漏洞级别可就是漏洞级别这5.3分,撬动了整个数据库。漏洞级别漏洞级别这东西,漏洞级别从来不是漏洞级别纸面上的数字那么简单。

CVSS(通用漏洞评分系统)把漏洞分成四档:低危、漏洞级别中危、漏洞级别高危、漏洞级别严重。漏洞级别低危通常是漏洞级别信息泄露但利用条件苛刻,比如需要本地物理接触设备。漏洞级别严重级别呢?远程未授权直接执行代码,或者一行命令拿到root权限。听起来很清晰对吧?但实际工作中,我见过太多人把评分当圣旨。

前年有个开源组件爆出反序列化漏洞,CVSS给了9.8分,严重。整个安全圈炸了锅,所有公司连夜排查。结果呢?那个组件只在特定Java版本下、且开启了某个调试端口时才可利用。大部分生产环境根本不满足条件。反倒是另一个评分6.5的中危漏洞——一个简单的越权查询接口——被忽略了。后来那个接口被爬走了几十万用户手机号。评分低,是因为利用需要登录态,可攻击者早就通过其他途径拿到了普通用户账号。

漏洞级别还跟业务场景死死绑在一起。一个SQL注入漏洞,在内部测试系统里可能只是中危,因为外网访问不了。可同样的代码复制到了面向公众的电商站点,那就是严重级别。我见过一家公司,内部漏洞库给某个漏洞标了“低危”,理由是“仅影响非核心业务”。结果那个非核心业务是用户登录的辅助验证通道。攻击者从那儿绕过去,直接登录了管理员后台。级别是静态的,业务是动态的。

厂商的漏洞公告也经常让人迷惑。微软的“重要”级别补丁,有时候比“严重”级别更该优先打。为什么?因为“严重”可能只影响已经停止支持的旧版本,而“重要”影响当前主流版本,且已有在野利用。光看级别标签,容易踩坑。我的习惯是:先看影响版本是否在资产清单里,再看利用条件是否匹配现有防护,最后才看评分。顺序反过来,就是给自己挖坑。

还有一类漏洞根本没有CVE编号,也就没有官方级别。比如逻辑漏洞——密码重置时验证码可爆破、订单金额可篡改。这些在CVSS体系里很难打分,因为“利用复杂度”不好量化。可实际危害呢?一个支付逻辑漏洞能让公司直接损失真金白银。我参与过的一次应急,攻击者利用退款接口的并发漏洞,十分钟刷走了四十万。那个漏洞在内部系统里只标了“中危”,因为“需要用户认证”。认证用户?注册一个不就行了。

漏洞级别的本质是一套沟通语言,不是决策依据。它帮你在海量漏洞里快速排序,但排序之后要做什么,得看你的资产、你的业务、你的攻击面。把级别当唯一标准,要么过度修复浪费人力,要么漏掉真正要命的东西。我见过最离谱的案例:一个团队花了三天修复了所有“严重”漏洞,却对一个“低危”的SSRF漏洞视而不见。那个SSRF能访问内网元数据接口,最终导致云凭证泄露。级别低?因为需要服务器发起请求。可攻击者就喜欢这种“低危”。

所以下次看到漏洞级别,别急着关掉或打开修复工单。先问三个问题:这个漏洞在我的环境里能触发吗?触发后能拿到什么?拿到的东西值多少钱?答案比那个数字重要得多。