2ndOpinion.FYIEN登录
genius.wiki

#1131 2017 · Marcus Hutchins (security researcher, MalwareTech) · Cybersecurity

一位研究员花 10.69 美元买下勒索病毒代码里的一个域名,挡住了一场全球攻击

问题

WannaCry 勒索病毒几个小时内就感染了 150 多个国家的数十万台电脑

背景

2017 年 5 月 12 日,WannaCry 勒索蠕虫病毒开始在互联网上扩散,利用一个泄露的 NSA Windows 漏洞加密受害电脑上的文件、勒索赎金,一天之内就瘫痪了英国国民保健署、西班牙电信公司 Telefónica、联邦快递、雷诺的工厂,还有全球多国的政府系统。它靠机器与机器之间自动传播,不需要任何人点击任何东西,所以打补丁、更新杀毒软件病毒库、发用户警告这些常规防御手段,全都跟不上一场已经以网络速度扩散的疫情。

23 岁的英国研究员马库斯·哈钦斯(Marcus Hutchins)在德文郡父母家里,把这个恶意软件的样本拆开分析,注意到它在做任何事之前,都会先查询一个又长又没意义的域名——他一查,发现这个域名从来没被人注册过。

换别人会怎么做

给每一台有漏洞的机器打补丁、推送杀毒软件病毒库更新,这是应对恶意软件爆发的标准做法。但这次它根本来不及生效,因为 WannaCry 已经在 150 个国家之间以网络速度自动传播,要在蠕虫病毒到达之前,把全球每一套暴露在外的系统都更新一遍,无论如何都赶不及。

他们看到了什么

哈钦斯注意到,这个病毒在动手之前会先查一个没被注册的域名。他不需要比一个以网络速度扩散的蠕虫更快地打补丁,只需要把它早已写死、会去信任的那一个地址买下来。

那一手

哈钦斯花 10.69 美元注册了这个还没被人占用的域名,主要是想借此记录哪些受感染的机器在连接它,这是一种常规的「黑洞」研究手法。他当时并不知道,这个域名检测其实是病毒内置的自毁开关——很可能是作者写来对付沙盒分析环境的反侦测手段——直到他一注册,域名解析成功,全世界受感染的电脑立刻停止了加密文件,他才明白过来。

为什么管用

WannaCry 的作者在病毒的每一份拷贝里都写进了一次域名检测,本意是用来识破安全研究员的沙盒分析环境——这类环境通常会对任何查询的域名都伪造一个解析结果。但因为那个域名从来没被真正注册过,现实世界里每一台受感染的机器,也在做同样的查询,得到的也是「域名不存在」的结果——也就是说,这个自毁开关在所有地方都处于待命状态,只等着有人把这个地址买下来。一旦注册成功,所有受感染机器内置的那次检测,会同时从「假」翻转成「真」——这就是为什么一次 10.69 美元的购买,能触及一场全球补丁推送根本来不及触及的机器。

值了多少

这次注册在几个小时内挡住了 WannaCry 的扩散,而当时它已经感染了 150 多个国家的 23 万多台电脑。

什么时候会失灵

这套机制只有在对手的系统里,含有一个第三方能合法拿到手、又被系统无条件检测的东西——一个域名、一个文件、一组凭证——时才管用;没有这种写死的依赖关系的恶意软件,找不到对应的杠杆。它还要求这个东西没被人占用、便宜到能迅速拿下;而且一旦攻击者更新代码、绕开刚被拿走的那个地址,这套机制立刻就会失效——WannaCry 的操盘者几天之内就试过这么干。

后来呢

哈钦斯被誉为无意中挡下 WannaCry 的英雄,这起事件也成了网络安全行业里的一个标志性案例,展示了勒索病毒的自毁开关、域名黑洞和域名注册可以怎样被用作防御手段;他后来因为少年时代一桩与此无关的恶意软件案件被起诉并认罪,但这个事实并不会改变那天那次域名注册所起到的作用。

资料来源

  1. [1]The sinkhole that saved the internetTechCrunch, 2019techcrunch.com
  2. [2]'WannaCry hero' sentenced for selling Kronos malwareTechCrunch, 2019techcrunch.com

收下它

返回档案库