导语:FortiGuard Labs一直在监控GandCrab因其灵巧的开发方法而引发的更新,本报告简述了GandCrab自2018年7月发布4.0版以来的发展。
在过去的两个月里,FortiGuard Labs一直在监控GandCrab因其灵巧的开发方法而引发的更新。其中一些更新包括重大更改,而有些则很微小。在此期间,研究人员见证了勒索软件作者和韩国安全公司Ahnlab之间就其7月中旬发布的免疫工具进行了一系列针锋相对的争斗。在某些时候,威胁攻击者甚至发布了针对Ahnlab反病毒应用程序的拒绝服务攻击的POC。
本报告简述了GandCrab自2018年7月发布4.0版以来的发展。关于同一主题的最新研究博客请参阅。
一、GandCrab v4.x 时间轴
下图显示了过去两个月GandCrab开发过程中产生的各种版本和事件。一般来说,它可视化了GandCrab的开发速度,包括作者在短短几天内发布多个恶意软件更新版本。幸运的是,在文件中明确包含该信息,此恶意软件对其构建版本一直是透明的。这使得在每个版本中映射更改变得更加容易。
图1.GandCrab v4.0-v4.4时间表
图2 .GandCrab的主函数包含纯文本的内部版本
二、GandCrab变身
图3 .GandCrab v4.0赎金票据
就在7月初v4.0发布前几个月,GandCrab的快速发展速度开始平缓下来。与之前的版本相比,新版本完全转型。最值得注意的变化是将其文件加密算法从RSA切换到更快的Salsa20算法,同时拥有了加密网络共享的能力。为了能够加密未连接到互联网的设备,它还完成了命令与控制(C2)服务器通联。它还添加了一个有趣的行为,在用户的COMMONAPPDATA目录中检查名为<8hex-chars> .lock的文件。这个特别的文件在此恶意软件的后续迭代中发挥了重要作用。我们之前在这篇文章中讨论了相关细节。
在v4.1中,添加了一个网络通信,将从受害者收集的加密数据发送到一长串URL,尽管没有明确的目的。这也是新SMB扩展器功能猜测开始流传之时。我们在这里可以找到有关这些改进的详细报告。
在v4.1.1中仅观察到微小的变化,主要用于代码优化。
三、针锋相对
在发现v4.1.1两天后,Ahnlab发布了一种免疫工具,可以在加密任何文件之前停止执行此恶意软件。该工具通过手动创建在加密之前由恶意软件检查的.lock文件来达成目的。安全研究人员对此有不同的反应,这主要是因为公开发布这种缺点会引起威胁行动者关注,然后他们可以简单的进行一些修改来解决这个问题。
事实确实如此,仅仅四天后GandCrab v4.1.2发布,其修改旨在绕过该工具。此版本通过将Salsa20算法合并到流程中来更改生成.lock文件名的过程,从而使Ahnlabs的免疫工具无效。作为曝料的安全研究人员和公司的一部分,在此版本的开发过程中Fortinet和Ahnlab一直是他们的目标。作为反驳,Ahnlab发布了第二个版本以解决这一修改。
图4.在GandCrab v4.1.2中生成.lock文件的步骤
在v4.1.3中没有观察到变化。
当发现v4.1.2的更新变体时,版本变得有些混乱,正如预期的那样,它是对Ahnlabs新免疫工具更新的报复。这一次,他们不是检查.lock文件是否存在,而是切换到检查恶意软件的互斥锁是否存在,从而再次绕过该工具。
生成互斥锁名称的过程与旧的v4.1.2版本使用的过程相同 – 仅基于指向Ahnlab的新模拟字符串。该字符串包含一个俄语文本图像的链接,大致翻译为“我已将你添加到我的gay列表中。我暂时使用了一支铅笔,“暗示列入名单是暂时的”。
图5. GandCrab v4.2字符串列表以及俄语图片的链接
在撰写本文时,我们尚未在免疫工具中看到任何的更新,说实话,我们并不期待它们。为了应对这一新变化,除了在用户系统中手动创建互斥锁之外,疫苗还需要系统持久化,这意味着它必须始终在后台运行,并且还必须注册以在系统开机时执行。在我们看来,为临时补救做这么长的事情既极端又不切实际,特别是考虑到威胁行为者监控工具开发的程度以及他们发布新版本以绕过补救措施的速度。
作为恶意软件开发人员灵巧开发过程速度的一个例子,在确定4.1.2绕过的同一天,发现v4.2包含一些基本的沙盒逃避技术。但是,这种沙盒检测功能是短暂的,因为在v4.2.1中没有再观察到。
有趣的是,尽管免疫工具没有更新,但开发人员通过发布可能导致Ahnlab V3 LiteTSFltDrv.sys服务驱动程序拒绝服务(DOS)攻击的概念验证(POC)源代码的链接继续攻击。 触发后,此攻击会在导致蓝屏死机(BSOD)。实际的POC也被集成为恶意软件中的新功能。我们在Ahnlab V3 Lite 3.3.46.1上使用TSFltDrv.sys文件版本9.6.0.5确认了此事。
此恶意软件利用的潜在漏洞是由于缺少用户模式输入参数清理,可以由非特权用户发送到易受攻击的模块。简而言之,POC通过向服务驱动程序发送不存在的内存地址来工作。当驱动程序尝试访问它时,会导致错误。此外,我们发现此内核模块当前还没有在其设备对象接口上设置适当的安全属性。这开辟了另一个潜在的攻击面,可能被利用来进行特权提升,这证实了GandCrab作者提出的问题。
幸运的是,Ahnlab宣布此漏洞已在V3 Lite 3.3.46.2中得到修复,这是撰写本文时的最新版本。这只是为什么确保始终运行最新版本的应用程序始终至关重要的另一个示例。
图6 .GandCrab v4.2.1字符串列表以及DOS POC的链接
随着v4.3的发布,GandCrab作者继续他们的一系列更新,其中包括一个额外的反汇编技巧,使分析复杂化。虽然这不是高级技术或新技术,但它确实增加了分析恶意软件的步骤。破解此技术的一个选项是修改恶意软件二进制文件并忽略(NOP-ing)添加的不必要代码以显示“真实”代码。这种技术有点粗糙,但在此情形下,不失为一个很好的快速解决方案。
图7.忽略不必要的代码绕过反反汇编
GandCrab的最新版本v4.4,是威胁行为者的意外举动。它不是恶意软件的升级版本,而是自己的疫苗。4.4版本基本上是v4.3的变体,它已被大致修补以执行一个函数,该函数创建恶意软件在加密之前检查的互斥锁,然后无限期的睡眠在后台运行。除了VirusTotal之外,我们无法找到通过其他来源分发的变体,这可能是有意义的。它的唯一目的似乎是继续嘲笑以前的免疫工具。当然,实际上使用该工具作为疫苗是不可能的。我们已经看到这个开发团队可以快速轻松的发布修改以减轻这些对策。
四、总结
正如我们在之前有关kill-switch报告中强烈建议的那样,免疫工具不应被视为永久性解决方案,特别是对于像GandCrab这样积极开发的恶意软件。相反,最好的响应是使系统保持最新的漏洞补丁,并且应该就每个人的优先级实施隔离备份作为防御所有勒索软件攻击的最后一道防线。
FortiGuard Labs将继续监控此恶意软件的开发。
IOCs
6c1ed5eb1267d95d8a0dc8e1975923ebefd809c2027427b4ead867fb72703f82 (4.0) – W32/GandCrypt.CHU!tr
37e660ada1ea7c65de2499f5093416b3db59dfb360fc99c74820c355bf19ec52 (4.1) – W32/Gandcrab.IV!t
8bd9ca75496baa5fcc5a39995e7c8f8c84a73dc56122d67fbf2bc9ea1c53c2e1 (4.1.1) – W32/GandCrab.D!tr.ransom
ce093ffa19f020a2b73719f653b5e0423df28ef1d59035d55e99154a85c5c668 (4.1.2) – W32/GandCrab.D!tr.ransom
768d3ffd942d8aea0f5def0c113d1a4e86bf9f78732b49c42222fa94bae3cf71 (4.1.3) – W32/GandCrab.D!tr.ransom
a1a60f808ef6804231cad1d78f87b90561f31e897c068db9dfae349beef13a61 (new 4.1.2) – W32/GenKryptik.CFUK!tr
3b0096d6798b1887cffa1288583e93f70e656270119087ceb2f832b69b89260a (4.2) – W32/GandCrab.D!tr.ransom
4b6db1a59ce31c78b9958342e6315a2d40e9b078747def487b9606e312cad630 (4.3) – W32/Filecoder_GandCrab.D!tr
be32aec1e61303c28ec294939260d4daa2e20f003c3f5c190c9b29153b0bf712 (4.4) – W32/Filecoder_GandCrab.D!tr