昨天,一位名为@beatsball的推特用户在得知一个俄罗斯论坛上有一个明显恶意的小飞贼安装程序可供下载后,给我发了一条消息,该论坛致力于分享Torrent链接。一篇帖子为小飞贼提供了一个洪流下载,紧随其后的是许多评论,称该下载包含恶意软件。事实上,我们发现它不仅是恶意软件,而且是通过盗版传播的一种新的Mac勒索软件变体。
对这个安装程序的分析表明,肯定有一些奇怪的事情在发生。首先,合法的“小飞贼”安装程序包装得很吸引人,而且是专业的,有一个制作精良的定制安装程序,并且有正确的代码签名。但是,这个安装程序是一个带有通用图标的简单Apple安装程序包。更糟糕的是,安装程序包在磁盘镜像文件中毫无意义地分发。
检查此安装程序后发现,它将把原来合法的Little Snitch安装程序和卸载应用程序,以及名为“patch”的可执行文件安装到/Users/Shared/目录中。
安装程序还包含安装后脚本-在安装过程完成后执行的shell脚本。此类安装程序包含用于准备和清理的预安装和/或安装后脚本是正常的,但在本例中,该脚本用于加载恶意软件,然后启动合法的Little Snitch安装程序。
该脚本将修补程序文件移动到似乎与LittleSnitch相关的位置,并将其重命名为CrashReporter。由于MacOS中有一个名为Crash Reporter的合法进程,因此如果在Activity Monitor中看到此名称,它将相当好地融入其中。然后,它将自身从/Users/Shared/文件夹中删除,并启动新副本。最后,它启动小飞贼安装程序。
在实践中,这并不是很有效。恶意软件被安装了,但是运行小飞贼安装程序的尝试被无限期地挂起,直到我最终迫使它退出。此外,恶意软件实际上并没有开始加密任何东西,尽管我让它运行了一段时间,并将一些诱饵文件放在自愿受害者的位置上。
在等待恶意软件做一些事情时-任何事情!-进一步的调查发现了另一个恶意安装程序,用于一些名为Mixed in Key 8的DJ软件,并提示也存在恶意Ableton Live安装程序(尽管还没有找到这样的安装程序)。毫无疑问,还有其他的安装程序也在四处漂浮,而这些安装程序还没有出现过。
尽管文件名和安装后脚本略有不同,但MIXED IN KEY安装程序非常相似。
这个不包括启动合法安装程序的代码,只是简单地将MIXED IN KEY应用程序直接放到了应用程序文件夹中。
一旦安装程序触发了感染,恶意软件就开始相当自由地在硬盘上传播。这两个变体都在以下位置安装了修补程序文件的副本:
每组文件(位于/private/var/root/中)中的后一种情况很可能是由于在用户文件夹中创建文件的代码中存在错误,从而导致在根用户的文件夹中创建文件。因为很少有人真正以root身份登录,所以这没有任何实际意义。
后者与原始补丁文件相同,但前者被以一种非常奇怪的方式修改。它包含补丁文件的副本,并将该文件中数据的第二个副本附加到末尾,后跟额外的9个字节:十六进制字符串03705701 00CEFAAD DE。目前还不知道这些文件或这些附加数据的用途是什么。
更奇怪的是,该恶意软件还修改了以下文件,这一事实至今仍令人费解:
这些文件都是可执行文件,是GoogleSoftwareUpdate的一部分,最常见的安装方式是在机器上安装Google Chrome。这些文件将补丁文件的内容放在它们前面,这当然意味着当执行这些文件中的任何一个时,恶意代码都会运行。然而,Chrome会看到文件已经被修改,一旦运行就会用干净的副本替换修改后的文件,所以还不清楚这里的目的是什么。
通过MIXED IN KEY安装程序安装的恶意软件也同样保持沉默,没有开始为我加密文件。我让它在一台真实的机器上运行了一段时间,没有任何结果,然后开始玩系统时钟。在将其设置为提前三天,断开网络连接,并重新启动计算机几次之后,它终于开始对文件进行加密。
然而,恶意软件在加密哪些文件方面并不是特别聪明。它似乎加密了一些设置文件和其他数据文件,如钥匙链文件。这导致在加密后登录时出现错误消息。
还有其他非常明显的错误迹象,例如Dock重置为其默认外观。
Finder也开始显示出麻烦的迹象,在选择加密文件时经常出现旋转的沙滩球。其他应用程序也会定期冻结,但Finder冻结只能通过强制退出Finder来管理。
尽管其他人报告说,创建了一个文件,其中包含支付赎金的说明,以及显示的警报,甚至使用文本到语音的转换来通知用户他们已经感染了勒索软件,但我无法复制这些文件,尽管我等待了相当长一段时间才完成勒索软件。
该恶意软件包括一些反分析技术,可在名为IS_DEBUGING和IS_VIRTUAL_MCHN的函数中找到。这在恶意软件中很常见,因为将调试器附加到进程或在虚拟机内运行都表明恶意软件研究人员正在分析它。在这种情况下,恶意软件通常不会显示其全部功能。
在Objective-See的一篇博客文章中,Patrick Wardle概述了这两个例程如何工作的细节。IS_VIRTUAL_MCHN函数实际上并不检查恶意软件是否在虚拟机中运行,而是试图在调整时间的过程中捕获VM。恶意软件包含延迟并不少见。例如,有史以来第一个Mac勒索软件KeRanger在感染系统和开始加密文件之间有三天的延迟。这有助于隐藏恶意软件的来源,因为恶意行为可能不会立即与三天前安装的程序相关联。
这一点,加上恶意软件包括诸如EI_TIMER_CREATE、EI_TIMER_START和EI_TIMER_CHECK之类的函数的事实,可能意味着恶意软件的运行有时间延迟,尽管目前还不知道这个延迟是什么。
Patrick还指出,由于存在对CGEventTapCreate的调用,恶意软件似乎包括一个键盘记录程序,CGEventTapCreate是一个允许监视击键等事件的系统例程。恶意软件对此功能的用途尚不清楚。它还向命令和控制(C2)服务器打开反向外壳。
还有一些悬而未决的问题将通过进一步的分析来回答。例如,此恶意软件使用哪种加密?它是安全的,还是很容易破解(就像解密FindZip勒索软件加密的文件一样)?它会是可逆的吗,或者加密密钥永远不会传回给背后的犯罪分子(也像FindZip一样)?
还有更多的东西需要学习,我们会随着更多的信息更新这篇文章。
如果您感染了此恶意软件,您会希望尽快将其清除。适用于Mac的MalwareBytes会将此恶意软件检测为Ransom.OSX.EvilQuest并将其删除。
如果您的文件被加密,我们不确定情况有多可怕。这取决于加密和如何处理密钥。进一步的研究有可能导致一种解密文件的方法,也有可能不会发生。
避免勒索软件后果的最好方法是维护一组良好的备份。至少保留所有重要数据的两份备份副本,并且至少有一份不应该一直连接到您的Mac上。(勒索软件可能会尝试加密或损坏连接的驱动器上的备份。)。
我个人有多个硬盘用于备份。我用时光机来维护一对,复印克隆人来维护更多的一对。其中一个备份总是放在银行的保险箱里,我会定期交换它们,所以在最坏的情况下,我总是把最近的数据存储在一个安全的位置。
如果您有良好的备份,勒索软件不会对您构成威胁。在最坏的情况下,您可以简单地擦除硬盘并从干净的备份中恢复。此外,这些备份还可以保护您免受驱动器故障、被盗、设备损坏等情况的影响。