当前位置:首页 > 综合

漏洞中变

2017年5月12日,漏洞中变WannaCry勒索病毒横扫全球。漏洞中变英国 NHS 系统瘫痪,漏洞中变手术取消,漏洞中变救护车被拒之门外。漏洞中变西班牙电信员工盯着屏幕上红色的漏洞中变倒计时,不知道该怎么办。漏洞中变那个周末,漏洞中变我恰好在一家小型软件公司的漏洞中变运维群里,看着他们连夜给几十台服务器打补丁。漏洞中变有人骂微软,漏洞中变有人骂黑客,漏洞中变只有一个老工程师说了句:"这漏洞,漏洞中变NSA 自己养了好几年。漏洞中变"

他说的漏洞中变没错。EternalBlue 这个漏洞利用工具,原本是美国国家安全局开发的网络武器。2016年,黑客组织 Shadow Brokers 把它偷了出来,公开挂在网上。半年后,有人拿它做出了 WannaCry。从武器到灾难,中间只隔了一次泄露。

这里有个让人不舒服的事实:漏洞本身不会变,变的是谁在用、怎么用。

EternalBlue 利用的是 Windows SMB 协议的一个缺陷。这个缺陷存在了很久,微软早在2017年3月就发布了补丁 MS17-010。但两个月后,全球仍有大量机器没打补丁。为什么?因为打补丁这件事,在多数组织里优先级极低。IT 部门申请停机窗口,业务部门说不行,老板说再等等。等到病毒来了,所有人都在问"为什么没提前修"。

漏洞没变,变的是时间窗口。同一个缺陷,在补丁发布前是"未知威胁",在补丁发布后是"已知风险",在病毒爆发后是"重大事故"。三种身份,三种应对方式,三种责任归属。但技术层面,它从头到尾就是那几行代码的问题。

我后来跟那个老工程师聊过。他说了一句让我记了很久的话:"你以为你在修漏洞,其实你在跟人的惰性打仗。"

他给我看了他们公司的补丁记录。有一台服务器,补丁从2015年拖到2019年,每次申请停机都被驳回。直到2019年那次,服务器自己崩了,业务停了三天,老板才批了停机窗口。补丁装上去,重启,二十分钟搞定。四年的拖延,换来三天的停摆。

这事跟技术关系不大。漏洞一直在那里,变的是周围的一切——攻击者的工具在变,漏洞的曝光程度在变,组织的容忍阈值在变,但那个缺陷本身,从被写进代码的那天起就没动过。

还有个更微妙的层面。同一个漏洞,在不同人手里是完全不同的东西。安全研究员拿到它,写篇论文,拿个 CVE 编号,完事。渗透测试员拿到它,写进报告,标个"高危",收工。攻击者拿到它,写个利用工具,开始扫 IP 段。NSA 拿到它,存进武器库,等合适的时机用。Shadow Brokers 拿到它,挂到网上,标价出售。

漏洞是中性的。让它变成灾难的,是人的选择。

WannaCry 爆发后,微软破例给已经停止支持的 Windows XP 发布了补丁。这个决定本身就很讽刺:一个不再维护的系统,因为一次大规模攻击,突然又获得了维护。漏洞没变,变的是微软的态度。而微软的态度之所以变,是因为攻击规模够大,大到上了头条,大到 CEO 不得不出面。

所以每次看到"某漏洞被利用"的新闻,我都会想:这个漏洞是什么时候被发现的?谁先发现的?发现之后做了什么?补丁什么时候发布的?为什么没打?这些问题串起来,才是一个完整的故事。单独看"漏洞"两个字,什么都说明不了。

那个老工程师后来跳槽了。走之前他在群里说:"我修了十年漏洞,最后发现最难修的是流程。"没人接话。但我知道他说得对。

分享到: