我在玩弄虚拟机,不知何故发现自己在一个恶意网站上(在虚拟机 → Ubuntu、Firefox 中)。我完全没想到的是,我的主机上的Avast Antivirus会发送通常的“威胁阻止”通知。
根据 Avast 的说法,威胁的来源是我在我的 VM 上访问的网站。这怎么可能?我认为虚拟机应该完全从主机沙盒化。事实上,我想先在虚拟机上测试潜在的恶意软件,然后再在我的主机上运行它。这里发生了什么?
我在玩弄虚拟机,不知何故发现自己在一个恶意网站上(在虚拟机 → Ubuntu、Firefox 中)。我完全没想到的是,我的主机上的Avast Antivirus会发送通常的“威胁阻止”通知。
根据 Avast 的说法,威胁的来源是我在我的 VM 上访问的网站。这怎么可能?我认为虚拟机应该完全从主机沙盒化。事实上,我想先在虚拟机上测试潜在的恶意软件,然后再在我的主机上运行它。这里发生了什么?
VM 不能完全隔离,因为它没有自己的硬件。它使用主机的硬件资源,例如磁盘、CPU、GPU和网络适配器。
VM 通过 VirtualBox 及其虚拟驱动程序使用所有这些硬件。
Avast Antivirus 正在监视主机的网络适配器,因此它可以监视来自主机或 VM 的所有请求和响应。由于它在主机上而不是在 VM 中运行,您将在主机上看到它的通知和操作。
正如@harrymc 所说,这是由于网络配置。
您可能将 VirtualBox 中的网络适配器配置为 NAT。根据 Avast 的工作方式(免责声明:我不运行它),您可以尝试:
我在网络测试中使用了后者,主机无法干扰网络流量。
我自己也确实看到了这一点。问题的一部分是虚拟机在主机的硬件上运行,是的,但是如前所述,防病毒软件不应该能够看到 HTTPS 流量(如果受感染的站点不仅仅是一个 HTTP 流量)。
这就是有趣的部分发生的地方。尤其是 Avast Antivirus,还有许多其他此类工具实际上安装了一个中间人代理,以防病毒甚至读取您的加密 Web 流量。(Avast 还使用这些信息对人们如何使用 Internet 进行调查。)这也适用于整个网络连接,而不仅仅是浏览器(如果您想检查其他协议或服务,这很有意义)。
一个很大的警告(除了隐私问题)是,在许多此类实现中,如果原始站点的证书不存在或已过期,则防病毒程序自己的证书会导致该站点仍然显示为“安全”,即使您的连接通过更广泛的互联网不会。
不过,关于沙箱被转义,我之前在 Virtualbox 中进行过各种操作,使我的整个操作系统崩溃了好几次。这还不是沙箱逃逸,但这种 BSoD 可能表明某些设计有问题的代码正在运行,可以利用这些代码进行沙箱逃逸。