背景

据多家媒体报道,2019年3月18日,世界最大的综合性铝业集团之一的挪威海德鲁公司(Norsk Hydro)在美国和欧洲的多个工厂遭受勒索软件攻击[1],导致IT系统无法使用,造成多个工厂关闭和部分工厂切换为手动运营模式。该公司临时关闭多个工厂,并将挪威、卡塔尔和巴西等国家的工厂运营模式部分改为“可以使用的”手动模式,以缓解对生产的影响。该勒索病毒似乎还攻击了美国的化工企业Hexion和Momentive,以至于部分员工无法正常登陆系统。[3]

360威胁情报中心对该勒索病毒(LockerGoga)进行了进一步的详细分析,发现该勒索病毒极可能为定向攻击的破坏性勒索病毒,其在病毒父进程中遍历文件,然后通过在多个子进程中加密文件的方式来提高加密的速度和效率,充分利用了CPU的多核特性来加快破坏效率(子进程的数量会一直等于处理器数量)。

样本分析

360威胁情报中心对相关样本进行了详细分析,分析报告内容如下。

PE基本信息

MD5

7e3f8b6b7ac0565bfcbf0a1e3e6fcfbc

SHA256

7bcd69b3085126f7e97406889f78ab74e87230c11812b79406d723a80c08dd26

文件大小

1.19  MB (1,249,144 字节)

编译信息

VS2015

数字签名

ALISA  LTD

该样本有数字签名,基本属性如下图所示:

通过工具可以看出它是由VS2015编译的32位可执行程序:

执行流程简介

Lockergoga首次运行时会把自身移动到当%UserTemp%目录下,移动后的文件被重命名为zzbdrimpxxxx.exe(xxxx为4个随机数字),重命名后的程序随后将被启动并传入参数"-m"。该进程将遍历文件,并以"-iSM-zzbdrimp -s"为参数启动更多的子进程以加密用户文件。

程序运行起来后会获取命令行参数,根据不同的参数执行不同的流程:

与参数相关的字符串:

接着会检查参数,参数不合法时程序会直接退出:

最后根据不同的参数对功能函数进行动态调用,以执行对应的流程:

参数详细分析

以-m为参数的进程主要是起调度作用:首先会创建互斥体(MX-zzbdrimp),然后创建线程遍历磁盘文件,随后进入一个循环,在这个循环中会以"-iSM-zzbdrimp -s "为参数创建更多的子进程。父进程会检测子进程数量以及子进程状态,以保证子进程的数量规模与CPU核心数一致。

以"-iSM-zzbdrimp -s"为参数的子进程用于加密文件。待加密文件路径由父进程提供,之间的通信会用到互斥体(MX-zzbdrimp)来进行同步。父进程把待加密文件的路径进行Base64编码后传给子进程。子进程使用随机生成的AES密钥,利用AES_128算法来加密该文件。AES密钥通过内置的RSA公钥加密后,附加到被加密文件的末尾。

无命令参数

对应例程函数首先进行各种权限调整:

然后生成目标文件名,创建进程把自身移动到当前用户的Temp目录下:

接下来以-m为参数运行移动后的程序:

最后调用位于0x410D40地址处的函数,创建并写入用户说明文件,即桌面上的README_LOCKED.txt文件:

-m参数

首先创建互斥体(MX-zzbdrimp),用于同子进程进行同步:

接下来创建线程遍历磁盘文件:

随后开始循环创建子进程并传入参数"-iSM-zzbdrimp -s",代码会确保子进程的数量不超过处理器的核心数。

同时监控子进程的状态,若意外中止则重新创建:

-i SM-zzbdrimp -s参数

首先尝试打开命名互斥体(MX-zzbdrimp)获取该互斥体的句柄,若不存在则会导致该函数出错,程序就直接退出:

子进程获取从父进程传入的待加密文件路径,路径名需经Base64解码:

接下来加载Rstrtmgr.dll动态库,调用RmStartSession、RmRegisterResources以及RmGetList函数来解除对待加密文件的占用,防止因其它程序正在使用该文件导致加密失败:

加密时首先生成32字节的随机数,用于AES密钥生成:

接下来解码程序中硬编码的RSA公钥:

公钥对应内容为:

-----BEGIN PUBLIC KEY-----

MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQC9dR7jfOdn8AZTi0plXQRQKHWJAxLlykYr

9V4ZMXLJ9d9kmyHUoKturoTYNZZisiW5ncP6/2YtG5ezGSXnQXUQtZTAnVesTalNvLyd6tBe

t81p8mxflulX99T2WKubEnc2OR0Yj2a6EJppt2IVx6H/BiF7G3Z2z4qg/tsXBant4wIBEQ==

-----END PUBLIC KEY-----

加密后的文件名后缀为.locked:

LockerGoga使用CBC模式的AES算法加密文件,前16字节随机数作为初始向量iv,后16字节随机数作为密钥key:

AES密钥和初始向量(即生成的32字节的随机数)将被AES加密后追加到对应文件的末尾:

其它参数

使用Ollydbg的脚本来测试参数,发现只有3种参数有效:

-i SM-zzbdrimp -s

-m SM-zzbdrimp -s

-l SM-zzbdrimp -s

经过测试发现前两种参数并无区别,第三种参数会在C盘根目录下创建一个C:.log的文件用于记录还有多少文件尚未被加密,如下图所示:

加密文件类型

LockerGoga在加密文件时会对文件后缀进行比较,但我们在实际运行调试中发现所有类型的文件都被加密(包括exe以及dll等),另外有些文件还可能被加密多次。

总结

经过分析,LockerGoga会加密各种类型的文件,包括PE文件、系统目录以及启动目录下的文件,因此具有很强的破坏性。它通过在父进程中遍历文件,然后在多个子进程中加密文件以及充分利用CPU的多个核心的方式来提高加密的速度和效率(子进程的数量会一直等于处理器数量)。针对本次的病毒技术特点以及结合以往的病毒传播方式,我们给出以下安全建议:

  • 不要运行来历不明软件

  • 及时更新操作系统安全补丁,防止病毒利用漏洞传播

  • 安装360天擎等终端杀毒软件并引入威胁情报,定期扫描电脑,及时升级更新病毒库保持杀毒软件的良好运行

  • 提高安全意识,保持良好的上网习惯,重要数据做好备份

IOCs

SHA256:

14e8a8095426245633cd6c3440afc5b29d0c8cd4acefd10e16f82eb3295077ca

47f5a231f7cd0e36508ca6ff8c21c08a7248f0f2bd79c1e772b73443597b09b4

5b0b972713cd8611b04e4673676cdff70345ac7301b2c23173cdfeaff564225c

6e69548b1ae61d951452b65db15716a5ee2f9373be05011e897c61118c239a77

7852b47e7a9e3f792755395584c64dd81b68ab3cbcdf82f60e50dc5fa7385125

7bcd69b3085126f7e97406889f78ab74e87230c11812b79406d723a80c08dd26

8cfbd38855d2d6033847142fdfa74710b796daf465ab94216fbbbe85971aee29

9128e1c56463b3ce7d4578ef14ccdfdba15ccc2d73545cb541ea3e80344b173c

ba15c27f26265f4b063b65654e9d7c248d0d651919fafb68cb4765d1e057f93f

bdf36127817413f625d2625d3133760af724d6ad2410bea7297ddc116abc268f

c3d334cb7f6007c9ebee1a68c4f3f72eac9b3c102461d39f2a0a4b32a053843a

eda26a1cd80aac1c42cdbba9af813d9c4bc81f6052080bc33435d1e076e75aa0

f3c58f6de17d2ef3e894c09bc68c0afcce23254916c182e44056db3cad710192

参考链接

[1].   挪威海德鲁铝业集团网络攻击事件的初步分析

[2].  https://www.recordedfuture.com/lockergoga-ransomware-insight/

[3].  https://motherboard.vice.com/en_us/article/8xyj7g/ransomware-forces-two-chemical-companies-to-order-hundreds-of-new-computers

[4].  https://www.bleepingcomputer.com/news/security/lockergoga-ransomware-sends-norsk-hydro-into-manual-mode/

[5].  https://www.bleepingcomputer.com/news/security/new-lockergoga-ransomware-allegedly-used-in-altran-attack/

[6].  https://go.recordedfuture.com/hubfs/reports/cta-2019-0320-yara-rules.yar

[7].  https://gist.github.com/Blevene/7b0221bd1d79bec57fb555fe3613e102#file-lockergoga-csv

声明:本文来自奇安信威胁情报中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。