上周三凌晨两点,信息系统运维老张给我打电话,漏洞声音发颤——生产环境的整改核心数据库被人拖库了。查了审计日志,报告攻击者走的信息系统是一条我们三个月前就发现的高危漏洞,一直没排期修复,漏洞因为“业务优先”。整改数据没丢,报告但备份被加密,信息系统勒索信挂在首页。漏洞这事之后,整改漏洞整改不再是报告季度PPT里的一个章节,而是信息系统每天早会的第一项议程。
漏洞清单其实早就躺在那里。漏洞扫描器每个月跑一次,整改报告能打印出两百页,但真正需要人工研判的,往往不超过二十条。整改的第一步不是补,而是砍——把无人维护的测试接口、暴露在公网的旧版VPN、还有三台忘记下线的临时服务器,直接断网下线。这些“影子资产”占了我们高危漏洞的六成,删掉它们,风险面立刻小了一圈。
剩下的才算真问题。比如那个反序列化漏洞,官方补丁打了会影响老版本业务逻辑,开发说改不动,运维说不敢重启。我们试了个土办法:在WAF层加了一条规则,拦截特定URL参数里的恶意载荷,同时用流量镜像做了两周观察,确认没有异常访问才敢动代码。整改不是非黑即白,有些漏洞可以临时缓解,但必须设定复查日期,写进值班表,别让“临时”变成“永久”。
最麻烦的是人的习惯。财务部有台共用电脑,密码贴在显示器边上,系统从不更新,因为“财务软件老崩溃”。我们没没收电脑,而是给那台机器单独划了VLAN,禁止访问内网其他段,再装了轻量EDR,允许它继续跑旧系统,但每次开机强制弹窗提示补丁状态。两周后,财务主动找我们说“那个红点太烦了”,这才把系统升了级。有时候,让用户自己觉得烦,比一百条制度管用。
整改过程中,我记录了一个有意思的数据:高危漏洞的平均修复时长,从最初的45天缩短到了9天。原因不是我们加了人手,而是把漏洞情报直接对接到了开发群——扫描器发现新漏洞后,自动提取影响范围、利用难度和修复建议,推送给对应的代码负责人。开发不用再翻几十页PDF,手机上瞄一眼就知道该干嘛。技术问题,往往靠流程简化解决,而不是靠加班。
这次事件还有个意外收获。我们顺手把供应商的远程运维账号全部收回了,改成每次临时申请、双人审批、操作录屏。有个外包工程师抱怨麻烦,但两周后他告诉我们,他们公司另一个客户也被拖库了,就是因为账号长期有效没人管。你看,漏洞整改这事,兜住的不只是自己的底线,有时候还能帮别人少踩一个坑。
现在每个季度,我会把整改报告里那些“已修复”的条目翻出来,随机挑三个,去生产环境验证是否真的堵上了。不是不信同事,而是漏洞这东西,就像老房子的墙缝——你填平了这处,说不定隔壁又裂开一道。唯一让人踏实的,是手里那份不断更新的清单,和每天早会上那句“昨天新增几个、还剩几个没关”。