为何WannaCry疫情如此严重?Why the Wannacry outbreak was so bad
2017年5月12日爆发的WannaCry勒索病毒利用CVE-2017-0144漏洞在全球传播,感染数万台Windows设备。尽管微软早在两个月前就发布了MS17-010补丁修复该漏洞,但许多机构仍未更新系统,导致疫情失控。文章分析指出,补丁管理缺失、老旧系统普遍存在以及应急响应迟缓共同放大了此次事件的破坏力。
Dave Farquhar
2017年5月12日,名为Wannacry的勒索软件开始在全球范围内传播,利用CVE-2017-0144漏洞感染并加密Windows系统。该漏洞已被两个月前发布的微软补丁MS17-010修复。
它迅速成为历史上最严重的Windows安全事件之一。为什么会如此严重?又该如何避免重蹈覆辙?
可靠的漏洞利用代码
通常情况下,真正可靠且高质量的漏洞利用代码不会在短时间内广泛传播。但MS17-010的情况并非如此。美国国家安全局(NSA)早已知晓该漏洞,并开发了可靠的利用工具,却未向微软报告以协助修复。后来,一个名为“影子经纪人”的黑客组织窃取了这些工具。NSA无奈之下只能公开漏洞信息,促使微软紧急发布补丁,以防“影子经纪人”泄露其内容。因此,在此案例中,可靠的利用代码从第一天起就已存在——唯一需要的只是有人围绕NSA的数字武器“永恒之蓝”发起攻击活动。
安全从业者常挂在嘴边的“周二打补丁,周三被利用”,但现实中,真正可靠的利用代码很少能在补丁发布当天就投入使用。通常需要数周甚至数月时间。而Wannacry之所以成为灾难,正是因为在此情况下,已验证可用的利用代码出现在补丁发布之前。
补丁延迟问题
Troy Hunt观察到,一台设备若落后两个月的补丁更新,就会成为Wannacry的攻击目标。想知道一个见不得光的秘密吗?实际上,落后两个月补丁的情况并不罕见。我常因此被指责,但这正是我专业领域的核心所在。
我曾长期从事补丁部署工作,对此驾轻就熟。我的平均修复时间(MTTR)约为21天,成功率高达100%。在长达四年的高强度工作中,我只有一次未能按时完成。我当时负责约一千台系统,估计可将规模扩展至两三千台,仍能在一个月内完成所有补丁部署。但若规模再大,我的成功率就会下降,因为超过一半的工作量都花在手动排查那些未能通过自动补丁工具更新的个别系统上。
坏消息来了
问题是,太多公司让一个人负责一万、两万甚至十万个系统。即便你以98%的成功率自动化推送补丁,每月仍有数百或数千次失败。而98%的成功率其实已经非常优秀。更常见的是成功率仅约65%,因为某款主流补丁工具的代理程序只有80%的时间能响应,且每次响应后成功执行任务的概率也只有80%。
我不知道为什么从来没人讨论这个。
这还只是工具层面的问题。操作员习得性无助的现象也真实存在。基于以上及其他诸多原因,我已成为自主补丁部署的坚定倡导者——前提是所用工具允许设定截止时间与可执行窗口,确保窗口外不会发生任何潜在破坏性操作,并能智能地部署最新补丁。
更糟的消息是
另一个肮脏的秘密是,有时负责打补丁的人可以立即开始部署。可能是因为报税季节的原因,有些公司在2017年3月或任何其他年份都没有进行部署。大多数行业都有一个繁忙期,在此期间他们干脆完全推迟打补丁。我不会详细说明哪些行业可能在3月份跳过打补丁,但至少有两个行业会这样做。某些行业几乎每个月都有理由跳过打补丁。
情况甚至更糟。猜猜如果你部署了1月份的更新,跳过了重启,然后应用了2月份的更新,又跳过了重启,接着应用了3月份的更新并重启会发生什么?你不会得到3月份的更新,而是停留在1月份的状态。这是一种常见做法:先部署更新,跳过重启,之后再手动重启系统。这种技巧让你可以提前一两天开始部署。通常没有时间完成部署、等待其结束,并在维护窗口期间重启所有系统。但这个技巧的问题在于,很容易遗漏一些系统,结果从一个问题变成了两个问题。现在你有了补丁债务和重启债务。
我的专长是帮助公司发现这些问题,并让安全团队像骆驼穿过针眼一样,穿越业务需求和IT要求之间的重重障碍。是的,通常需要两次才能成功。
这是在那些当前可用且相对容易打补丁的系统上。哦,对了,我还有更坏的消息告诉你。你知道在《鲨鱼坦克》里,交易只会越谈越糟吗?打补丁比那还要糟糕得多。
供应商提供的系统
当WannaCry爆发时,有人问我为什么医院还有老旧的Windows XP设备在使用。这是因为制造这些设备的厂商只认证了XP系统,升级它们违反了服务合同。甚至应用微软为XP发布的紧急补丁MS17-010也可能违反合同。
大多数公司都有很多这样的系统。可能是控制门禁读卡器的系统,也可能是某种专业软件。在这些情况下,提供系统的厂商负责打补丁,而不是使用系统的公司。他们可能每季度或每年才打一次补丁。与此同时,这些系统仍处于易受攻击状态。
而当操作系统生命周期结束时,它将永远处于易受攻击状态。操作系统有10年的预期寿命,但它可能是某个预计使用20到30年的系统的一部分。
老旧设备
大多数公司都很谨慎,不会随便谈论这个,但他们通常仍有一些老旧系统在使用。“老旧”通常指Windows Server 2003,有时甚至更糟,比如Windows 2000、NT 4.0或Windows 98。大多数安全部门都知道如何处理这些机器。有些人拥有政治权力来解决这个问题。
好的公司会在这些系统很少使用时将其关闭,只在极少数需要时才重新启用。而差的公司则会用“至今为止还没出过事”来合理化它们继续使用这些系统,认为可以再保留10到20年也没问题。我希望我是在夸大其词。我也希望我在职业生涯中只经历过一次这样的对话。我不会说这种情况很常见,但它确实比应该发生的要多。
这些系统当然永远存在漏洞,除非微软为某些已终止支持的操作系统(如 MS17-010 事件中的情况)发布紧急补丁。即便如此,由于担心补丁可能导致系统异常,也不保证你一定能部署它。
比“为什么 WannaCry 如此糟糕”更好的问题
坦率地说,我不认为“为什么 WannaCry 如此糟糕”是一个公平的问题。我从事漏洞管理工作已有约13年。多年来我一直在问自己一个不同的问题:为什么类似 WannaCry 的灾难没有更频繁地发生?我的理论是,像 WannaCry 这样的灾难通常需要两个条件:一是极易被利用的漏洞,二是环境本身存在严重问题——账户权限过高、密码泄露或缺乏安全加固等,这种组合我称之为“有毒组合”。
微软认为,只要政府持续囤积0-day漏洞,这种情况就会越来越频繁。而泄密几乎是不可避免的。
鉴于全球企业总部普遍存在补丁管理人手不足的问题,大规模再次发生此类事件只是时间问题。虽然不会每个月都发生,甚至可能几年才一次,但未来终究会发生,而且不止一次。
在小范围内,情况有所不同。每月确实都会有人遭遇类似 WannaCry 的灾难,只是我们通常不会公开听到这些事件。
实际上,与 WannaCry 所利用的漏洞一样危险甚至更危险的漏洞并不少见,几乎每月都有新漏洞出现。是的,通常还不止一个。但每个月都具备的两个关键要素是:该漏洞在当天就能被可靠利用,以及存在大规模的有毒环境组合,使攻击得以成功实施。
我知道这听起来没什么安慰作用。
David Farquhar 是一名计算机安全专业人士、企业家和作家。自1991年起他就开始专业从事计算机相关内容的写作,当时复古电脑还是新鲜事物。自1994年以来他一直在IT行业工作,自2013年起专注于漏洞管理。他持有 Security+ 和 CISSP 认证。如今他每周写博客五次,主要围绕1975至2000年间的复古电脑和复古游戏展开。
需要完整排版与评论请前往来源站点阅读。