Sorry, this page is not available in English yet.

WannaCrypt 勒索软件

那是在 2017 年 5 月 12 号晚上,我母亲刚刚跟我说“看了一个汶川大地震 9 周年的视频,北川的地震废墟真是惨不忍睹”,随后给我分享了一个探访北川的视频。与此同时,我看到了一名平时在微信上与我交流比较少的同学忽然问我:“你了解比特币吗?”我当时有点儿纳闷,这名平时以打篮球、玩游戏和看《人民的名义》为爱好的同学为什么忽然对这个在中国几乎无人关注或使用的虚拟货币产生了兴趣。我对比特币也是略知一二,于是凭我对比特币有限的认知与他寒暄了几句,因为当时也很晚了,我已经准备上床睡觉了。

第二天早上起来,我照例先浏览一下新闻,看看在我睡着的几个小时中,这个地球上都发生了什么事情。不一会儿,我看到了关于敲诈勒索型恶意软件大面积传播的新闻报导。新闻说英国若干家医院、德国和西班牙的企业、以及国内若干所高校校园网用户的计算机都遭受了病毒攻击。这些计算机上弹出的恶意软件窗口称,该计算机上的重要文件已被加密,若要解密则需要向一个账户支付等价于 300 美元的比特币。我顿时就明白为什么那个同学要问我比特币的事情了:他昨晚就看到了这件事的新闻。

后来我又仔细查看了一下我和那名同学的聊天记录,他说他之前在虎扑上就看见有人电脑中毒了,要拿比特币解毒。我就反思了一下为什么我前一天晚上没有注意到这条消息,也许我是觉得这只是个例吧,没有想到这场攻击已经席卷全球。

我也对这款恶意软件产生了好奇心,便在网上简单了解了一下。它使用早在 2017 年 3 月就被发现并已被微软修复的 MS17-010 漏洞进行传播,主要通过 445 端口散播到网络上的其它电脑。因为国内部分大学校园网未屏蔽 445 端口直连公网,所以中招的人群大多是大学生,其中还不乏有一些正在写毕业论文或者做毕业设计的学生,相关的文件全部被勒索软件加密。而大多数宽带运营商,在几年前一次类似的利用 445 端口进行散播的蠕虫攻击之后,都关闭了 445 端口的连接。

看到这则消息之后,我便对周围的电脑进行了一番检查。我的笔记本已经更新了最新的 Windows 10 1703,这个版本是在 MS17-010 解决后发布的,所以虽然我已经安装了 5 月的安全更新,但就算没有安装任何更新,也不会受到这个漏洞的影响。家里有一台电脑还在运行 Windows 10 1607,不过也早已安装漏洞修补程序。我又检查了我母亲的还没升级到 1607 的笔记本,发现它运行的不是我之前以为的 1511,而是 2015 年 7 月发布的、已经停止支持的 RTM 版本……系统更新里已经有了 1607 的推送,但一直都无法安装。好在 5 月的安全更新也已经安装了。我忽然想起来,笔记本的另一块硬盘上还装了一个 Windows 10 1607,后来进那个系统发现还是 14393.351,便赶紧安装了最新的更新。我还从微软下载了 5 月安全更新的离线安装程序,以便在病毒依然猖狂的时候,如果需要重装 1607,可以在联网之前先修复这个漏洞,毕竟这个恶意软件是无需任何操作就会被自动下载的。

很快,这次攻击在互联网上大范围传开了。我在上贴吧之前,就料到贴吧里会有人说碰到了这款恶意软件,求助如何解决,没想到一上来就遇到了两个。仔细浏览了一下求助帖,的确有很多大学校园网用户收受到影响,有人甚至称“整层宿舍的电脑都一个接一个地被感染”。我还在贴吧上讨论这次攻击的帖子里看到知乎上关于这次勒索软件的提问,发现大学图书馆、机房、充值系统、甚至电子公告板都已沦陷。中午,维基百科将此次攻击事件放在了首页上的“新闻动态”里,并且为这次攻击的主角——WannaCry——专门创建了一个词条。

维基百科首页上关于 WannaCry 的内容

微软认识到了这次攻击事件的严重性,并在下午破天荒地为 Windows XP、Windows Server 2003 和 Windows 8 等已停止支持的操作系统产品发布了修复此次攻击利用的漏洞的更新。当我看到 Microsoft Update Catalog 上的 “Security Update for Windows XP SP3” 时,我有点不敢相信自己的眼睛。想必自从大概 3 年前 Windows XP 停止支持以来,还没有出现过这么严重的攻击事件。我心想,我正在经历一场影响力有如 2003 年冲击波蠕虫和 1998 年 CIH 病毒的攻击,而这次攻击也将和那两次攻击一样,被载入史册,在未来被人提起。

Microsoft Update Catalog 上的 KB4012598 更新程序列表

晚上,我得到了一个恶意软件样本,并在一台虚拟机内试验。尽管实机已经安装了更新,但为防不测,我在虚拟机上下载完样本后就立刻断开虚拟机的网络,然后开始运行下载好的样本。软件一开始运行时,会在源文件所在文件夹内创建一堆文件,此时还没有任何显示;接着会伪装成 DiskPart 开始运行,并一直占用磁盘读写;随后将桌面背景改为黑底红字的恐吓内容,弹出勒索比特币的界面,并执行一系列 CMD 命令,关闭卷影复制服务、删除卷影副本,并且通过 BCDEdit 设置启动选项:忽略所有启动错误和禁用 Windows RE 恢复环境。此外,CMD 命令还会用 wbadmin 删除系统完整备份目录,这样即使有计算机的完整备份,因为目录被删除也无法恢复。总而言之,这些命令的目的是阻止被攻击的电脑被修复或还原。之后,恶意软件就会开始对拥有指定文件扩展名的文件进行加密,占用大量磁盘 I/O,并且在此过程中慢慢侵蚀磁盘空间。因此,如果只有机械硬盘的电脑被感染,用户就会感觉电脑变卡变慢,这也就解释了一则新闻中一名学生反映“保存很慢,甚至白屏了半分钟”。

报导此次攻击事件的新闻

这次安全事件呈现出了一个有趣的现象:许多求助者拍摄的电脑屏幕和网上的被感染电脑的图片都显示,大部分被感染的电脑运行的都是 Windows 7,而其它系统版本,如 Windows Vista、8.1 和 10,几乎没有在那些图片里出现过。对于 Windows Vista 和 8.1,这两款操作系统的份额较低,可能是这两个版本报告被攻击的人较少的缘故。至于 Windows 10,因为微软在大多数版本中都没有提供自动更新选项,系统强制自动更新,所以大部分用户都收到并安装了微软早在 3 月就发布的修复 MS17-010 漏洞的更新,没有受到此次攻击影响。对于 Windows 7 用户,如果已经安装了 3 月的安全更新,也不会受到此次攻击;但 Windows 7 允许用户选择“自动下载并安装更新”、“仅自动下载更新”、“仅自动检查更新”和“不自动更新”,当用户选择不自动更新时,就不会收到 3 月安全更新,因此系统中仍然有此漏洞。遗憾的是,不少人听信了“关闭自动更新增强稳定性”的说法,或是认为自动更新过于繁琐,直接关闭更新,成为此次攻击的受害者。

但是这次事件不仅暴露了部分电脑用户对系统更新的错误认知,还显示出国内网民“见得风,识得雨”的特点。首先,有人看到没多少 Windows 10 用户受此次事件影响,就认为 Windows 10 增强的安全性让其在这次攻击中无懈可击,而 Windows 7 等旧版操作系统就不具备这种安全性。甚至有部分 Windows 10 用户产生了优越感,称“叫你升级的时候你不升级,现在傻眼了吧”、“Win10 用户笑而不语”。但他们忽视了 Windows 10 未受影响的根本原因:强制自动更新。如果 Windows 10 没有这种机制,并且那些用户仍然坚守着关闭自动更新的坏习惯,那么 Windows 10 就会出现和 Windows 7 一样的情况,也将成为此次攻击的重灾区。毕竟 MS17-010 漏洞在所有受支持的 Windows 版本中都存在,Windows 10 也不例外。其次,基于 Windows 10 更安全的错误结论,有人说“这是微软的阴谋,为了推广最新版的系统”。我希望他们只是在开玩笑,但看起来有一部分人是严肃地说出了这句话。首先,并没有证据证明微软在幕后指使或协助了此次攻击。相反,微软早在 2 个月前就已经修复了这个漏洞。微软不仅为 Windows Vista、7 和 8.1 都发布了修复 MS17-010 漏洞的更新,更是破例为 Windows XP 等早已停止支持的系统发布了修补程序。如果微软想借此提高 Windows 10 的占有率,为什么还给旧系统发布更新,甚至还做了一件它没有责任去做的事,破例给 XP 更新?我想他们在说出这样的话前,应该先全面了解清楚这一事件、动脑思考一下,而不是无脑地将对微软强推 Windows 10 的不满毫无根据地发泄出来。