一、综述

5月12日,全球爆发的勒索病毒WannaCry借助高危漏洞“永恒之蓝”(EternalBlue)在世界范围内爆发,据报道包括美国、英国、中国、俄罗斯、西班牙、意大利、越南等百余个国家均遭受大规模攻击。我国的许多行业机构和大型企业也被攻击,有的单位甚至“全军覆没”,损失之严重为近年来所罕见。

本报告将从传播途径、危害方式和结果、受威胁用户群等角度,逐一厘清这个恶性病毒方方面面的真相,用以帮助大家认识、解决该病毒,防范未来可能出现的变种病毒,同时澄清一些谣传和谎言。

1.1病毒攻击行为和结果

遭受WannaCry病毒侵害的电脑,其文件将被加密锁死,惯常来说,受害用户支付赎金后可以获得解密密钥,恢复这些文件。但是根据火绒工程师的分析,遭受WannaCry攻击的用户可能会永远失去这些文件。

WannaCry病毒存在一个致命缺陷,即病毒作者无法明确认定哪些受害者支付了赎金,因此很难给相应的解密密钥,所以用户即使支付了赎金,也未必能顺利获得密钥该电脑系统及文件依旧无法得到恢复。

至于网上流传的各种“解密方法”,基本上是没用的,请大家切勿听信谎言,以防遭受更多财产损失。一些安全厂商提供的“解密工具”,其实只是“文件恢复工具”,可以恢复一些被删除的文件,但是作用有限。

因为病毒是生成加密过的用户文件后再删除原始文件,所以存在通过文件恢复类工具恢复原始未加密文件的可能。但是因为病毒对文件系统的修改操作过于频繁,导致被删除的原始文件数据块被覆盖,致使实际恢复效果有限。且随着系统持续运行,恢复类工具恢复数据的可能性会显著降低。

1.2传播途径和攻击方式

据火绒实验室技术分析追溯发现,该病毒分蠕虫部分及勒索病毒部分,前者用于传播和释放病毒,后者攻击用户加密文件。

其实,蠕虫病毒是一种常见的计算机病毒。通过网络和电子邮件进行传播,具有自我复制和传播迅速等特点。此次病毒制造者正是利用了前段时间美国国家安全局(NSA) 泄漏的Windows SMB远程漏洞利用工具“永恒之蓝”来进行传播的。

据悉,蠕虫代码运行后先会连接域名:

http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com

如果该域名可以成功连接,则直接停止。而如果上述域名无法访问,则会安装病毒服务,在局域网与外网进行传播。

但是无论这个“神奇开关”是否开启,该病毒都会攻击用户,锁死文件。另外,这个开关程序很容易被病毒制造者去除,因此未来可能出现没有开关的变种病毒。

1.3易受攻击用户群

目前看来,该病毒的受害者大都是行业机构和大型企业,互联网个人用户受感染报告很少。下面我们从操作系统和网络结构两个角度,来说明容易受到攻击的用户群。

首先,该病毒只攻击Windows系统的电脑,几乎所有的Windows系统如果没有打补丁,都会被攻击。而Windows Vista、Windows Server 2008、Windows 7、Windows Server 2008 R2、Windows 8.1、Windows Server 2012、Windows Server 2012 R2、Windows Server 2016 版本,用户如果开启了自动更新或安装了对应的更新补丁,可以抵御该病毒。

Windows10是最安全的,由于其系统是默认开启自动更新的,所以不会受该病毒影响。同时,Unix、Linux、Android等操作系统,也不会受到攻击。

同时,目前这个病毒通过共享端口传播同时在公网及内网进行传播, 直接暴露在公网上且没有安装相应操作系统补丁的计算机有极大风险会被感染, 而通过路由拨号的个人和企业用户,则不会受到来自公网的直接攻击。

1.4火绒将持续追杀WannaCry

目前,对抗“蠕虫”勒索软件攻击的行动仍未结束,在此,火绒安全专家提醒广大用户无需过度担心,“火绒安全软件”已迅速采取措施,完成紧急升级,通过火绒官网下载软件,升级到最新版本即可防御、查杀该病毒。

自5月12日,WannaCry病毒一出,各机构和用户人心惶惶,草木皆兵,日前更是出现了2.0新变种等耸人听闻的言论。截止到今日,火绒已经收集到的所谓的“WannaCry”最新版本的“变种”,但通过对比分析发现,该“变种“有明显的人为修改痕迹,是好事者在造谣蹭热度。火绒实验室可以负责任地告诉大家,目前还没有出现新版本变种。

而日后病毒是否会变异出现新“变种”?火绒实验室将持续跟踪新的病毒变种,一旦遇到新变种会随时升级产品。火绒产品默认自动升级,请广大用户放心使用,无需做任何设置。内网用户通过外网下载火绒产品升级到最新版本,然后覆盖安装内网电脑即可。

此次勒索病毒WannaCry传播速度快,影响范围广,是互联网历史上所罕见的一次“网络安全事故”。对安全厂商而言,是一次极大的考验,“安全”重回主流势在必行,同时也促进了全社会对网络安全意识的提升。

二、样本分析

该病毒分为两个部分:

1.

蠕虫部分,用于病毒传播,并释放出勒索病毒。

2.

勒索病毒部分,加密用户文件索要赎金。

2.1 蠕虫部分详细分析:

2.1.1.

蠕虫代码运行后先会连接域名:

http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com

如果该域名可以成功连接,则直接退出。

关于这个“Kill Switch”的存在网络上众说纷纭,我们认为相对可靠的解释是:开关的存在是为了检测安全软件沙箱。这种手法多见于恶意代码混淆器,但是除了看到几个人为修改“Kill Switch”的样本外,该病毒并没有批量生成、混淆的迹象。另外,如果真是为了对抗安全软件沙箱,和以往对抗沙箱的样本比起来,这段代码过于简单,而且出现的位置也过于明显。所以,放置这样一个“低级”的“Kill Switch”具体出于何种原因,恐怕只有恶意代码作者能够解释了。

2.1.2.

如果上述域名无法访问,则会安装病毒服务,服务的二进制文件路径为当前进程文件路径,参数为:-m security,并启动服务。

2.1.3.

释放资源到C:\WINDOWS目录下的tasksche.exe(该程序是勒索病毒),并将其启动。

2.1.4.

蠕虫病毒服务启动后,会利用MS17-010漏洞传播。传播分为两种渠道,一种是局域网传播,另一种是公网传播。如下图所示:

局域网传播主要代码如下图:

病毒会根据用户计算机内网IP,生成覆盖整个局域网网段表,然后循环依次尝试攻击。相关代码如下:

公网传播主要代码如下图,病毒会随机生成IP地址,尝试发送攻击代码。

SMB漏洞攻击数据包数据,如下图所示:

Worm病毒的PE文件中包含有两个动态库文件,是攻击模块的Payload,分别是:x86版本的payload,大小0x4060和x64版本的payload,大小0xc8a4。

两个Payload都是只有资源目录结构没有具体资源的无效PE动态库文件。病毒在攻击前,会构造两块内存,在内存中分别组合Payload和打开Worm病毒自身,凑成有效攻击Payload,代码如下图所示:

有效攻击Payload模型如下:

完整的攻击Payload的资源如下图,资源中的第一个DWORD是病毒大小,之后就是病毒本身。

然后使用MS17-010漏洞,通过APC方式注入动态库到被攻击计算机的Lsass.exe,并执行Payload动态库的导出函数PlayGame,该函数非常简单,功能就是释放资源“W”到被攻击计算机“C:Windows\mssecsvc.exe”,并执行,如下图所示:

火绒剑监控被攻击计算机的如下:

被攻击的计算机包含病毒的完整功能,除了会被勒索,还会继续使用MS17-010漏洞进行传播,这种传播呈几何级向外扩张,这也是该病毒短时间内大规模爆发的主要原因。如下图:

目前,攻击内网IP需要用户计算机直接暴露在公网且没有安装相应操作系统补丁的计算机才会受到影响,因此那些通过路由拨号的个人用户,并不会直接通过公网被攻击。如果企业网络也是通过总路由出口访问公网的,那么企业网络中的电脑也不会受到来自公网的直接攻击。但是,现实中一些机构的网络存在直接连接公网的电脑,且内部网络又类似一个大局域网,因此一旦暴露在公网上的电脑被攻破,就会导致整个局域网存在被感染的风险。

2.2 勒索病毒部分详细分析:

2.2.1 该程序资源中包含带有密码的压缩文件,使用密码“WNcry@2ol7”解压之后释放出一组文件:

1) taskdl.exe,删除临时目录下的所有“*.WNCRYT”扩展名的临时文件。

2)taskse.exe,以任意session运行指定程序。

3) u.wnry,解密程序,释放后名为@WanaDecryptor@.exe。

4) b.wnry勒索图片资源。

5)s.wnry,包含洋葱路由器组件的压缩包。病毒作者将勒索服务器搭建在”暗网”,需要通过tor.exe和服务器进行通信。

6)c.wnry,洋葱路由器地址信息。

7)t.wnry,解密后得到加密文件主要逻辑代码。

8)r.wnry,勒索Q&A。

2.2.2 通过命令行修改所有文件的权限为完全访问权限。命令行如下:

iCAcls . /grant Everyone:F /T /C /Q

2.2.3 解密t.wnry文件数据得到含有主要加密逻辑代码的动态库,通过其模拟的LoadLibrary和GEtProcADDress函数调用该动态库中的导出函数执行其加密逻辑。

调用勒索动态库代码,如下图所示:

勒索主逻辑执行,先会导入一个存放在镜像中的RSA公钥,之后调用CryptGeNKEy生成一组RSA算法的Session key。之后将这组Key的公钥通过CryptExportKey导出,再写入到00000000.pky文件中。将Session key中的私钥用刚导入RSA公钥进行加密,存放在00000000.eky如下图所示:

如果遍历到的文件扩展名在欲加密的文件扩展名列表中,如下图所示:

则会将当前文件路径加入到文件操作列表中,在遍历文件结束后一并进行文件操作。代码如下图:

对于每个需要加密的文件,都会调用CryptGenRadom随机生成AES密钥,之后使用Session Key中的RSA公钥对AES密钥进行加密,存放在加密后的数据文件头中,之后将原始文件数据用该AES密钥进行加密。如下图所示:

整体加密流程,如下图所示:

因为病毒是生成加密过的用户文件后再删除原始文件,所以存在通过文件恢复类工具恢复原始未加密文件的可能。但是因为病毒对文件系统的修改操作过于频繁,导致被删除的原始文件数据块被覆盖,致使实际恢复效果有限。且随着系统持续运行,恢复类工具恢复数据的可能性会显著降低。

三、关于“WannaCry”新变种的说明

早期版本的“WannaCry”病毒存在“Kill Switch”开关,也就是病毒中检测:

“http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com”

这个网址是否可以访问的代码片段,如果可以访问则不会利用“永恒之蓝”漏洞继续传播。

现在这个域名已经被注册,这个版本“WannaCry”传播功能等于已经关闭,因为这段代码本身没有加密,所以很可能会被得到改病毒样本的“骇客”修改,放开开关,使病毒继续传播。

截止到今日,火绒已经收集到的所谓“WannaCry”最新版本的“变种”,正如我们推测的一样,网上两个“热炒"变种, SHA256分别为:

32f24601153be0885f11d62e0a8a2f0280a2034fc981d8184180c5d3b1b9e8cf

c8d816410ebFB134ee14d287a34cea9d34d627a2c5e16234ab726cf9fde47ec6

和早期的“WannaCry”相比

SHA256:

24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c

有明显人为修改痕迹,如下图所示:

这个样本仅仅是16进制修改了两个字节,让"Kill Switch"失效,这个修改不会影响火绒的检测。

另外一个样本除了修改了"Kill Switch"域名,还修改了病毒携带勒索模块。经过测试勒索代码已经被修改坏了,无法运行。如下图:

除了以上两个样本,火绒还截获另一个人为修改的” WannaCry “样本,同样被修改的不能运行,火绒依然可以检测。SHA256如下:

99c0d50b088df94cb0b150a203de6433cb97d4f8fd3b106ce442757c5faa35c4

截止到本篇分析完成火绒还没截获所谓关闭“Kill Switch”开关的病毒样本。?

四、附录

样本SHA256