如果我使用 VMWare 或 VirtualBox(或其他任何软件)在 Windows 7 主机上运行 Windows 7 虚拟机,并且虚拟机中完全充斥着病毒和其他恶意软件,我是否应该担心我的主机?
如果我在主机上安装了防病毒程序,它会检测到任何问题吗?
答案1
到目前为止,每个答案都忽略了一点:攻击媒介不仅仅是网络连接和文件共享,还包括虚拟机的所有其他部分 - 尤其是虚拟化硬件方面。下面显示了一个很好的例子(参考文献 2),其中客户操作系统可以使用模拟的虚拟 COM 端口突破 VMware 容器。
几乎所有现代处理器都包含另一种攻击媒介,有时默认启用,即x86 虚拟化。虽然您可以争辩说在虚拟机上启用网络是最大的安全风险(事实上,这是一个必须考虑的风险),但这只能阻止病毒通过网络在其他每台计算机上传播。这就是您的防病毒和防火墙软件的用途。话虽如此......
已经有一些病毒爆发,它们实际上可以“突破”虚拟机,这有过去已有记录(有关详细信息/示例,请参阅下面的参考文献 1 和 2)。虽然一个有争议的解决方案是禁用 x86 虚拟化(并承受运行虚拟机的性能损失),但任何现代(像样的)防病毒软件应该能够在有限的范围内保护你免受这些病毒的侵害。即使环境保护署会在一定程度上提供保护,但病毒只能在实际操作系统(而不是虚拟机)上执行,不会提供更多保护。再次注意下面的参考资料,除了网络适配器或指令虚拟化/转换(例如虚拟 COM 端口或其他模拟硬件驱动程序)之外,恶意软件还有许多其他方法可以突破虚拟机。
最近还增加了I/O MMU 虚拟化对于大多数新处理器来说,它允许直接接入无需计算机科学家就能看到,允许带有病毒的虚拟机直接访问内存和硬件,以及能够直接在 CPU 上运行代码,存在很大风险。
我提出这个答案,只是因为所有其他的答案都暗示你相信你只需要保护自己免受文件,但我认为让病毒代码直接在处理器上运行的风险更大。有些主板默认禁用这些功能,但有些则不禁用。缓解这些风险的最佳方法是禁用虚拟化,除非您确实需要它。如果您不确定是否需要它,禁用它。
虽然有些病毒确实可以针对虚拟机软件中的漏洞,但是当考虑到处理器或硬件虚拟化时,这些威胁的严重性会大大增加,尤其是那些需要额外主机端仿真的威胁。
如何通过 Themida 恢复虚拟化 x86 指令(微软 Jim Wang 真祥)
通过 COM1 退出 VMware Workstation(Kostya Kortchinsky,谷歌安全团队)
答案2
如果您使用共享文件夹或虚拟机与主机之间有任何形式的网络交互,那么您可能需要担心一些事情。我说的潜在影响取决于恶意代码的实际行为。
如果您不使用共享文件夹并且没有启用任何类型的网络,那么您应该没问题。
除非您有共享内容,否则主机上的防病毒软件不会在您的虚拟机内进行任何类型的扫描。
答案3
如果虚拟机感染了病毒,而该病毒的目标是利用 VMWare Tools 等虚拟机软件,那么病毒可能会逃逸,但我认为目前还没有任何东西能够做到这一点。如果主机存在漏洞,病毒还可能通过网络利用主机。
除非病毒位于共享文件夹中,否则主机系统上的防病毒软件不应该看到虚拟机中的病毒。
答案4
应该没问题,只需在初始感染期后关闭文件共享访问并杀死虚拟机内的网卡。