当前位置:首页 > 时尚

高危漏洞有必要修复吗

2021年12月,高危Log4j2 被曝出一个远程代码执行漏洞,漏洞CVSS 评分满分 10 分。有必那几天,修复我认识的高危一个运维半夜被电话叫醒,爬起来给十几台服务器打补丁,漏洞折腾到天亮。有必事后他跟我说了句话:"要是修复没修,被人扫到了,高危我这辈子可能就交代了。漏洞"这不是有必夸张。Log4j2 几乎嵌在所有 Java 应用里,修复攻击者只需要往日志里塞一段特定字符串,高危就能在服务器上执行任意代码。漏洞那段时间全球的有必扫描量暴涨,很多小公司根本不知道自己用了这个组件。

高危漏洞要不要修?答案不是"要",而是"看情况"。但大多数情况下,你得修,而且得快。

问题在于,"高危"这个词本身就很模糊。CVSS 打了 9.8 分就叫高危了,可你的系统到底暴不暴露在攻击面里,是另一回事。一个只在内部局域网跑、不接外网、访问还要过三层跳板机的老系统,上面挂着一个 CVSS 9.8 的漏洞,跟一个直接暴露在公网、谁都能访问的 API 接口上挂着 CVSS 7.5 的漏洞,哪个更急?显然是后者。

我见过太多团队在漏洞修复上走两个极端。一种是"全修",安全扫描器报一个修一个,不管三七二十一,结果开发团队被折腾得够呛,业务迭代全停了。另一种是"全不修",觉得反正没出事,修了还可能引入新问题。这两种做法都有问题。

比较务实的做法是看三个维度:暴露面、利用难度、影响范围。

暴露面最直观——这个漏洞对应的服务,外网能不能碰到?如果答案是能,那优先级直接拉满。利用难度看的是有没有公开的 PoC 或者 EXP。一个漏洞被公开了利用代码,跟一个只是理论上存在、实际利用条件极其苛刻的漏洞,紧迫程度差着数量级。影响范围则是说,一旦被打穿,是丢一台机器还是丢整个数据库。

2017 年的 EternalBlue 就是典型。微软在 3 月发了补丁,但很多人没当回事。结果 5 月 WannaCry 爆发,勒索病毒用这个漏洞横扫全球,医院、学校、企业的机器成片沦陷。那些没打补丁的机器,不是因为不知道,是因为觉得"哪有那么巧轮到我"。安全这件事上,侥幸心理是最贵的。

但话说回来,也不是所有高危漏洞都得连夜修。有些老系统,厂商已经不维护了,补丁打不了,你只能靠网络隔离、访问控制来缓解。有些漏洞虽然评分高,但触发条件极其特殊,比如需要特定的配置组合,而你的环境恰好不符合。这种情况下,记录在案、持续监控、制定应急预案,比强行打补丁导致业务中断更合理。

关键在于,你得知道自己为什么修,或者为什么不修。这个判断不能拍脑袋,得有依据。资产清单、网络拓扑、漏洞详情、业务影响分析,这些基础工作做到位了,决策才站得住脚。

我自己的习惯是:外网暴露的、有公开 EXP 的、能直接拿权限的,24 小时内必须处理。内网核心系统的,一周内评估完并给出方案。边缘系统、测试环境、已经隔离的,排期处理,但不拖过一个月。这个节奏不一定适合所有团队,但至少有个谱。

高危漏洞修复这件事,本质上是在风险和成本之间找平衡。不修,赌的是没人来打你。修,付出的是时间和人力。赌输了,代价可能是数据泄露、业务停摆、甚至公司关门。这笔账,其实不难算。

分享到: