虚拟机中的恶意软件

逆向工程 恶意软件 虚拟机
2021-06-29 03:43:03

对恶意软件样本执行静态分析后,我接下来会在虚拟机中运行它。

  • 这是否让恶意软件有机会传播到真机?
  • 这是否会给恶意软件提供跨网络传播的机会?
  • 我可以遵循哪些步骤/提示来防止恶意软件从 VM 传播?

我使用VMwareW。

4个回答

恶意软件可以在以下几种情况下从 VM 传播到主机:

  • 如果 VM 软件中存在错误。这不是很常见,但有可能。
  • 如果主机操作系统中存在错误。专门允许恶意软件从 VM 中突破的错误不太可能,但又是可能的。
  • 如果处理器有问题。这更不可能,但在数学上仍然不是不可能的。
  • 如果恶意软件有办法与主机交换信息。这可以通过网络;在这方面,使用 VM 和使用单独的物理机之间没有区别,因此您需要适当地对 VM 设置防火墙(仅允许最低限度,不要做任何可能允许服务器劫持客户端的事情,例如 SSH与 X 转发)。另一个向量是通过 VM 工具,例如文件和剪贴板共享:在 VM 中运行的软件可能会读取和写入共享文件、访问主机剪贴板等。因此,在 VM 中运行恶意软件时,您应该禁用所有这些便利工具(禁用它们在 VM 配置中,仅仅避免安装来宾软件是不够的,因为恶意软件可能自带)。

有关该主题的更多信息,请阅读https://security.stackexchange.com/questions/9011/does-a-virtual-machine-stop-malware-from-doing-harmhttps://security.stackexchange.com/questions /12546/is-it-safe-to-install-malware-in-a-vm

总而言之,大多数恶意软件都可以在正确配置的虚拟机中安全地进行分析。禁用所有来宾功能,不要使用任何允许服务器影响客户端的协议连接到 VM。对虚拟机进行防火墙保护,就好像它是敌对的一样(确实如此);您应该使用仅限主机的网络,以便您可以轻松控制那里的内容。

您可能更喜欢物理机而不是虚拟机还有另一个原因。有相当多的恶意软件试图检测它是否正在被分析,并且在它被分析时不会表现出恶意行为。很明显,恶意软件试图检测的常见事情是它在调试器下运行的迹象:检查它是否正在被跟踪(或 Windows 等价物),检查执行过程中是否突然暂停,......并且一些恶意软件寻找 VM 的迹象,例如常见的 VM 软件模拟的硬件驱动程序,或者在模拟 CPU 之外不存在或很少见的 CPU 奇数。这并不是说您不能在 VM 中分析恶意软件:有时可以,有时不能,这取决于恶意软件。如果您从虚拟机开始并没有发现任何东西,那么您需要准备转移到物理机。

请注意,物理机也存在风险:恶意软件可能会尝试将自身植入主板和外围设备上的众多固件之一这方面的工具包开始出现,例如RakshasaMebromi因此,如果您在物理机上分析一些复杂的恶意软件,请永远不要再相信这台物理机。

重播中有很多说法,但我想从实践的角度强调一些答案:

  • 网络连接- 不久前我同意简单地将虚拟机与网络断开连接将解决通过网络传播的问题。今天,有越来越多的恶意软件只有在与 CnC 的连接已经建立或至少可以 ping 到外部世界时才会起作用,因此我建议您应该考虑更严肃的解决方案,而不仅仅是断开电缆:
    • 设置另一个用作网关的虚拟机,这也将帮助您记录流量
    • 使用像 iNetSim 这样的网络模拟软件,当您需要伪造 CnC 返回的结果时,它可以在某些情况下提供帮助
    • 设置防火墙并尽量不使用网络共享或至少将它们设为只读
  • VM 设置- 不安装 vm 工具是一种从恶意软件中隐藏 vm 的方法,但在这样的 vm 上工作真的很困难。您至少应该做的是,以更隐蔽的方式设置 VM。我找到了一些可能对此有所帮助的链接,但还有更多其他解决方案:
    • 绕过 VMWare Workstation 上的虚拟机检测- 您可以在此处找到 vmware 配置选项以进行更隐蔽的工作和其他一些内容。
    • 恶意软件反 VM 技术- 关于什么有助于恶意软件检测 vm 的一些解释
    • 下一步是开发不同的专有工具,可以帮助您进行研究和更先进的反虚拟机技术。
    • 尝试以这种方式设置您的环境,以便主机和来宾是不同的操作系统 - 主机是 linux/unix/osx 而来宾是 windows。这将进一步降低宿主感染的风险。
  • 物理机- 从实际的角度来看,使用物理机非常烦人,而且耗费时间并要求很高的准确性,尤其是在处理未知恶意软件时,我不是在谈论机器被感染后的恢复开销。

希望这会有所帮助:)

如果您使用的是 VMWare,我建议使用仅主机连接。通常,当您创建 VM 时,它将使用 NAT 或桥接,共享主机 IP 和/或网络适配器。使用 Host-Only 可以让 VM 仅在没有互联网连接的情况下本地连接到该特定适配器(它被分配了自己的本地 IP 并使用自己的网关)

通常,在实时运行恶意软件时,您希望使用此设置。您的其他解决方案正在使用沙盒软件,例如布谷鸟沙盒或沙盒。他们具有记录恶意软件正在做什么并将其保存在沙盒中的附加功能(它通常不会以任何方式接触系统文件或感染系统)

如果 VM 软件有错误,恶意软件也可以从 VM 传播出去并感染主机。

底层处理器(如果您正在使用硬件虚拟化)也有可能存在一个错误,让恶意软件逃脱 VM。

如果您有网络连接,则恶意软件可能会通过网络传播。因此,为了防止这种情况,您必须选择一个可能永远不会有网络连接的设置。即使在来宾中禁用网络也是不够的。必须设置 VM,以便无法连接网络。

为了防止恶意软件的传播,您必须断开测试设备(主机)与网络的连接,并为每个恶意软件重新设置它。另请注意,恶意软件可能会使用 MBR 或 BIOS 嵌入您的计算机。