本文介绍对多个LockerGoga不同样本的分析,描述勒索软件工作的原理以及如何应对。
发现勒索软件家族LockerGoga加入了新的特征来加密受害者文件,并要求受害者支付赎金才可以解密。
技术分析
LockerGoga是一款非常特别的勒索软件,分析发现与其他勒索软件家族相比,它有一些独特的函数和功能。
分析LockerGoga不同样本发现,LockerGoga与其他勒索软件家族的不同包括产生多个不同的进程来加速系统中的文件加密过程:
与其他恶意软件类似,LockerGoga使用了系统中所有可用的CPU资源,分析机器中的CPU使用如下所示:
大多数LockerGoga样本都以相同的方式工作,但研究人员也发现恶意样本在开发生命周期内会增加和溢出特定类型的功能。
首先,勒索软件需要以特权账户运行。
LockerGoga以主从(master/slave)配置工作。恶意软件通过在%TEMP%文件夹安装自己的副本开启终端感染模式。
复制完成后,会用-m参数开始一个新的进程。
Master进程以-m参数运行,负责创建要加密的文件列表和创建slave。
Slave进程会以不同的参数来执行。每个slave进程只加密很少一部分文件,以防被终端安全产品发现。要加密的文件列表是通过IPC从master进程处获取的。通信过程是使用名为SM-<name of binary>的映射section通过IPC完成的。
LockerGoga使用的IPC技术有:
· Master进程 (以<LockerGogaBinary> -m运行)在系统上为IPC创建一个section
· Section名为SM-tgytutrc
· master 进程将要加密的文件路径复制到section “SM-tgytutrc”
· slave进程用该section来获取文件路径并加密目标文件
Master进程的沙箱复制如下所示:
· 创建section并命名
· 在终端上创建slave进程来加密目标文件
Slave进程(加密进程)的沙箱复制如下所示:
· 获取master进程创建的section的访问
· 根据section中的文件路径找到对应的文件并加密
勒索软件会在终端上创建多个slave进程来加密文件。研究人员这是为了加速加密的过程,但研究人员认为加速加密的过程可以通过多线程方法实现而并非要要多进程方法。
研究人员猜测可能的原因有:
· 减少攻击痕迹:如果每个加密进程都只加密终端上的一部分文件,那么整个攻击活动在终端上留下的痕迹就会比较少,而且很难将多个加密进程相关联到同一个威胁中。
· 沙箱绕过。一些基于沙箱的检测系统会监控写入系统的文件的阈值,并将其与相关的文件扩展关联在一起。比如,一个进程读取沙箱中的200个文件,但只创建同一个特定的扩展,就会被认为是异常行为。LockerGoga可能也是为了绕过这样的检测技术。
· 基于文件I/O的检测绕过。多进程的方法可以确保每个加密进程的文件 I/O的数量在一个特定的范围内,这样就可以绕过基于文件I/O的检测技术。
· 可靠性。即使加密进程被终端用户中止,master进程仍然在运行,新的slave进程会继续加密文件的过程。如果勒索软件进程不使用多进程方法,进程中止就会导致整个加密过程的结束。
Username Administrator:
Username Tinba:
恶意软件作者使用一个日志函数,启用后可以在样本执行中使用参数-l来保存所有结果到log.txt文件中:
在执行过程中,研究人员启用了log函数,看到了勒索软件加密系统的整个过程,包括高CPU使用率和打开勒索新。下图是受感染系统的界面:
这看起来更像是开发者使用的调试函数:
在log函数的帮助下,研究人员也更加了解勒索软件的工作原理,并建立了LockerGoga加密系统的顺序:
1.在C盘上创建log文件
2.文件夹和文件枚举
3.进行文件加密和在桌面文件夹创建勒索信
在进行文件加密前,恶意软件会在垃圾箱中首先搜索文件。研究人员尚不清楚这一步骤的目的,但勒索软件也可能会加密用户本来都不需要的文件:
LockerGoga会枚举系统中的所有文件夹和文件开始加密过程。这个枚举过程是并行的,所以并不会花费太多时间。
枚举完成后,勒索软件会在受害者创建勒索信:
勒索信也是与加密文件并行创建的,并且硬编码在样本中:
与其他勒索软件类似,LockerGoga会创建勒索信文件来要求用户支付赎金以恢复加密的文件。
勒索信的内容示例如下:
与创建勒索信息并行,LockerGoga会将加密的文件加上.locked扩展。该扩展也被其他勒索软件广泛使用:
LockerGoga将代码嵌入文件扩展中,示例如下:
样本也配置了加密过程要跳过的文件夹和位置以防破坏操作系统的运行。勒索软件加密的所有文件都有一个FileMarker:
FileMarker表明勒索软件的版本应该是最新的1440.
研究人员在分析过程中还发现了以下版本:
· 1200
· 1510
· 1440
· 1320
基于二进制编译的时间和提取的版本,研究人员认为攻击者为不同的目标或活动创建了不同的LockerGoga版本:
加密完成后,LockerGoga会执行cipher.exe来移除空闲位置以防文件恢复。当文件都被删除后,有时候还会残留在硬盘的空闲区域,理论上是可以恢复的。
数字签名的样本:
研究人员分析发现一些LockerGoga样本的签名是合法的。使用的数字签名有:
· MIKL LIMITED
· ALISA LTD
· KITTY’S LTD
使用合法的数字签名可以帮助攻击者绕过一些系统中的安全保护。
作为感染过程的一部分, LockerGoga会在系统中船舰如下格式的MUTEX:
MX-[a-z]\w+
研究人员发现的mutex有:
MX-imtvknqq MX-tgytutrc MX-zzbdrimp
其他字符串
研究人员在分析过程中还从LockerGoga样本中提取出一些其他的字符串,包括:
LockerGoga crypto-locker goga
恶意软件开发者可能忘记从样本中移除这些字符串了,研究人员可以利用这些字符串来识别恶意软件家族和开发过程中使用的框架。
传播方法
恶意软件是通过远程文件拷贝在本地网络上传播的。使用简单拷贝就可以复制.batch文件到远程机器的TEMP目录:
copy xax.bat \\123.123.123.123\c$\windows\temp
恶意软件会复制自己和工具PSEXEC.EXE到相同的位置。所有文件都复制后,恶意软件会使用一下名来运行.bat文件:
start psexec.exe \\123.123.123.123 -u domain\user -p “pass” -d -h -r mstdc -s accepteula -nobanner c:\windows\temp\xax.bat
这些.bat文件中每个都含有要在远程机器上执行的恶意软件的命令行。使用的命令如下:
start wmic /node:”123.123.123.123″ /user:”domain\user” /password:”pass” process call create “cmd /c c:\windows\temp\kill.bat”
Batch文件还会尝试kill到相关的杀毒软件或禁用安全工具。在脚本的最后,远程机器上的恶意软件拷贝会从c:\windows\temp\taskhost.exe执行。
由于batch文件的存在,以及恶意软件没有直接引用,研究人员相信传播机制是攻击者手动或从未知目录中执行的。脚本中硬编码的路径、用户名和密码都表明攻击者对该环境是熟悉的。
下面是恶意软件禁用的进程和服务列表:
研究人员在LockerGoga执行的受感染的系统中发现的batch文件会停止与系统关键服务和安全软件相关的服务和进程:
总结
在分析过程中发现了LockerGoga的许多从未出现的新特征,比如并行加密系统中的文件、使用log文件进行调试等等。没有发现传播LockerGoga的相关方法,因此认为攻击者可能是在获取系统访问权限后进行传播的。截止目前,所有的样本都没有加入复杂的防保护和反分析方法。而且LockerGoga还会加密一部分合法的DLL,破坏系统中特定应用的功能,还会再加密过程中加密自己,导致无法进行运行: