nday漏洞
2017年4月14日,漏洞Shadow Brokers扔出一堆文件,漏洞里面有个叫EternalBlue的漏洞东西。三周后,漏洞WannaCry横扫150个国家,漏洞英国医院手术取消,漏洞德国火车站屏幕变红,漏洞中国高校的漏洞毕业答辩PPT被锁。微软在3月就发了补丁,漏洞但全球仍有几十万台机器没打。漏洞这不是漏洞漏洞的问题,是漏洞人的问题。
Nday,漏洞全称"n-day vulnerability",漏洞指已经公开披露、漏洞补丁已发布的漏洞。跟0day相对。0day是攻击者手里捏着的未知漏洞,Nday是全世界都知道的旧伤疤。听起来Nday威胁不大——都知道怎么修了,修了不就完了?现实是,修不完。
我见过一个工厂的内网。Windows XP跑着一条产线的控制软件,软件供应商2009年就停止更新了。工程师知道有漏洞,但升级操作系统意味着重新验证整条产线的兼容性,停线一天损失几十万。他们选择把网线拔了。物理隔离。后来有人插了个U盘。
这就是Nday的生存土壤。不是技术难,是决策难。
Nday利用的典型路径是这样的:漏洞公开→补丁发布→攻击工具流出→自动化扫描器集成→大规模无差别攻击。每个环节都在降低门槛。EternalBlue公开后几个月,Metasploit集成了利用模块,再往后,连脚本小子都能一键拿下未打补丁的445端口。门槛低到尘埃里。
2019年,我在一个安全会议上碰到某三甲医院的信息科主任。他说他们内网还有200多台Windows 7,因为一套影像归档系统只兼容Win7。厂商说新版本要等明年。他每年写报告申请预算,每年被驳回。理由永远一样:没出事,为什么要花钱?
Nday的可怕之处在于它的确定性。0day攻击你,你还能说自己倒霉,遇上了未知威胁。Nday攻击你,就像门锁坏了你三个月没换,然后被偷了。丢东西不冤,冤的是你明明知道锁坏了。
更麻烦的是Nday的规模化。0day通常定向使用,因为珍贵,要省着用。Nday不一样,公开的利用代码谁都能拿,蠕虫化之后自动传播。WannaCry的传播速度是每分钟感染数千台机器。NotPetya更狠,直接破坏主引导记录。这些都不是什么高级技术,全是已经修好的漏洞。
有个做漏洞管理的朋友跟我吐槽:他们公司扫描出3000多个Nday,按CVSS评分排序,前100个修了半年。修完再扫,又出来800个新的。因为资产在变,软件在更新,旧系统下线又上线。漏洞管理不是一次性工程,是持续对抗。但很多公司把它当项目做,项目有结项日,漏洞没有。
补丁管理为什么难?三个字:怕出事。打了补丁,业务崩了,谁负责?不打补丁,被黑了,谁负责?前者责任明确,后者可以赌概率。于是很多人选择赌。赌自己不是那个倒霉蛋。直到成为那个倒霉蛋。
Nday不会消失。只要还有Legacy系统,只要补丁还可能导致兼容性问题,只要安全预算还排在业务需求后面,Nday就永远有市场。攻击者不需要0day,他们只需要等。等你忘记那个漏洞,等你觉得"应该没事",等你的防护出现一个缝隙。
我自己的习惯是:看到Nday披露,先查自己有没有受影响。有,立刻修。修不了,就想办法隔离。隔离不了,就写进风险清单,定期看。这不是什么高级操作,就是承认一个事实——漏洞是客观存在的,侥幸是主观的。
WannaCry爆发那天,我认识的一个运维在朋友圈发了一张图:机房屏幕上全是勒索信息。配文是:"补丁打了,但有一台测试机没打,那台机器连着内网。"一条缝,就够了。









