今天的恶意软件并不罕见,包括某种类型的内置虚拟机检测。

虚拟机(VM)是恶意软件分析师的工作环境的重要组成部分。毕竟,我们不想让我们的身体或“裸金属”电脑感染 - 对恶意软件可以做的所有讨厌的东西。相反,我们可以将恶意软件放置在VM环境(VME)中,并在感染发生后轻松“刷新”我们的VM。

由于恶意软件作家很清楚这一点,它们通常使用各种技术来定位虚拟机。其中一些技术是原始的或简单的,并且只读注册表键值。然而,还有其他在机器语言级操作的技术,并且更难以检测。

让我们遵守一个实际的例子。下面是来自未包装的DLL ransomware的代码,用于查找计算机的显示设备中的VM相关字符串。

VME_detection(点击放大)

要更轻松地进行分析,请修补此检查并将其删除。但是对于更永久的补救措施,还有其他选项,可以包含卸载VMware Tools。我已经在我的沙箱VM上完成了这个。下面是它检查我的显示时相同的勒索软件的输出

vme-notools.

但是,作为分析师,确定是否发生了VM检测,并不总是很容易。硬化你的VM可能是一个漫长的过程,并且可以涉及很多工作。在某些情况下,您可能需要其他工具用于隐藏VM创建的进程,文件和注册表项。

最后,如果使用VMware,如果执行恶意软件分析,则将这些选项添加到下电.VMX文件将具有很大的值。

isolation.tools.getptrlocation.disable =“true”
isolation.tools.setptrlocation.disable =“true”
isolation.tools.setversion.disable =“true”
isolation.tools.getVersion.disable = " TRUE "
monitor_control.disable_directexec =“true”
monitor_control.disable_chksimd =“true”
monitor_control.disable_ntreloc =“true”
monitor_control.disable_selfmod =“true”
monitor_control.disable_reloc =“true”
monitor_control.disable_btinout =“true”
monitor_control。disable_btmemspace = " TRUE "
monitor_control。disable_btpriv = " TRUE "
monitor_control.disable_btseg =“true”

这些“无文件记录的”选项来自研究论文但在阻止某些vm检测技术方面仍然有用。但是请注意,这将破坏一些VM功能,因为这些选项切断了主机和虚拟机之间的通信通道。

_________________________________________________________________

约书亚Cannell是Malwarebytes的恶意软件智能分析师,他执行了研究和恶意软件分析必威平台APP。推特:@joshcannell.