补丁发布前的电脑洞最那几个小时,才是系统最危险的。
2017年5月12日,有漏英国NHS系统里弹出勒索页面时,恰当很多医院的电脑洞最IT管理员还在过周末。WannaCry利用的系统是NSA泄露的永恒之蓝漏洞,微软其实在两个月前就发了补丁。有漏但英国还有大量机器跑着Windows XP,恰当那些机器根本没资格接收更新。电脑洞最结果呢?系统手术取消,急诊停摆,有漏救护车堵在门口。恰当问题不在于漏洞本身,电脑洞最在于补丁就在那儿,系统没人装。有漏
所以你说电脑系统有漏洞,最恰当的做法是什么?我的答案很直接:先评估,再隔离,然后打补丁,最后改配置。顺序不能乱。
很多人一听说漏洞,第一反应是马上打补丁。这没错,但顺序错了会出事。2018年我见过一个案例,某公司运维半夜收到漏洞警报,直接推了补丁到生产环境的数据库服务器上。补丁和某个老旧的存储驱动不兼容,重启后数据库起不来,业务停了六个小时。漏洞没被利用,补丁先把系统干趴了。所以第一步永远是评估:这个漏洞影响哪些系统?有没有现成的利用代码?攻击面是内网还是公网?把这些搞清楚再动手。
评估完,如果漏洞正在被积极利用,或者利用门槛极低,那就先隔离。拔网线、关端口、加防火墙规则,什么都行。2019年某电商平台爆出一个反序列化漏洞,他们的安全团队先是在WAF上加了一条规则挡住攻击流量,然后花了两天时间测试补丁。这两天里攻击者一直在尝试,但全被挡在外面。隔离不是懦弱,是给自己争取时间。
补丁测试这件事,很多人觉得麻烦就跳过。但跳过的人迟早会付出代价。我自己的做法是:先在测试环境跑48小时,重点看CPU占用、内存泄漏、和关键应用的兼容性。没问题再上生产。生产也不是一把梭,先推10%的机器,观察一天,再全量。微软的补丁质量参差不齐,2019年有个Windows更新直接把用户的开始菜单搞崩了,你如果第一时间全量推,那就是给自己找事。
补丁打完了,事情还没完。配置也得跟着改。比如永恒之蓝那个漏洞,微软其实在补丁之外还建议禁用SMBv1协议。很多企业只打补丁,SMBv1照开不误。后来出了一种绕过补丁的攻击方式,专门打没关SMBv1的机器。漏洞修复不是单一动作,是一套组合拳。补丁堵住已知入口,配置调整关掉不必要的门。
还有一个容易被忽略的点:老旧系统怎么办?Windows XP、Windows Server 2003,这些系统早就不支持了。你打不了补丁,那就只能靠网络隔离。把老机器圈在一个VLAN里,只开放必要的端口,外面加一层防火墙。我见过一家工厂的做法很聪明:他们的生产控制机器还在跑Windows 2000,但整个车间网络和办公网物理隔离,连U盘都禁用。漏洞永远存在,但攻击者够不着,风险就降到了可控范围。
最后说一个反直觉的观点:不是所有漏洞都值得你熬夜加班。CVSS评分10分的漏洞,如果它影响的组件你根本没装,那就跟你没关系。真正需要你半夜爬起来的是那种:影响面广、利用简单、且你的系统暴露在公网。其他的,按正常流程走就行。安全不是比谁更累,是比谁更清醒。
补丁管理这件事,说到底就是三个字:别偷懒。评估、隔离、测试、部署、验证,每一步都做到位,漏洞就只是漏洞,不会变成事故。WannaCry之后,NHS花了大力气升级系统,但下一次呢?漏洞永远会有,你的流程得比漏洞更靠谱。