目前所有使用的虚拟化技术(容器- BSD、OpenVZ、Hypervisors -Hyper、KVM等)的安全性如何?
我听说了VMware软件中的一个漏洞,它可以让您冲出客服机器。
最安全的选择是什么?我需要这个来分析恶意软件。
发布于 2019-05-04 11:21:02
首先,这是一个相当广泛的问题,因为有许多虚拟化技术。因此,请不要期待一个深入的比较每一个这些。实际上,互联网上有几个资源可以提供更详细的信息,比如来自enisa的虚拟化的安全方面。简单的Google搜索将提供更多的资源。因此,这主要是一个总结,没有太多的细节,只涉及主要技术:
主要的虚拟化技术有KVM、VirtualBox、vmware ESXi、Hyper-V等提供的完全虚拟化技术,以及基于容器的虚拟化技术,如LXC、OpenVZ、BSD监狱等。
在完全虚拟化中,虚拟机与一些硬件辅助分离共享性能关键的主机硬件(如CPU和RAM ),但模拟其他硬件(如网卡或显示器)(但也有技术共享这些硬件的部分)。在客户VM中,有一个完整的操作系统,如Windows或Linux,它不需要特殊的驱动程序来处理虚拟化。但是通常还是会有一些特殊的驱动程序,因为这些驱动程序可以提供更高的性能(比如使用硬件辅助的主机资源共享)和更大的灵活性(比如改变RAM和CPU的数量而不重新启动来宾VM)。
完全虚拟化的主要攻击路径是这种硬件仿真,因为它通常需要主机和来宾之间某种复杂的交互。这种分离中的Bugs允许客户进行虚拟化。但是,通常在客户VM中运行的攻击者必须打破几个安全层才能成功:首先,他需要在他的执行环境中发现一个问题,使用它来提升客户VM中的特权,使用它来突破来宾,然后查找并使用针对VM主机的攻击。
基于
基于容器的虚拟化更弱,但也提供了更高的性能,因为虚拟化进程只是运行在主机OS中并使用主机内核的正常进程。这种分离是用名称空间完成的,即网络名称空间、用户名称空间、进程ids等等。这也意味着您不能在容器内运行完全不同的操作系统,即不能在像LXC这样的Linux容器中运行Windows。不过,您可以在运行在Ubuntu上的LXC中运行RedHat,因为他们都使用Linux内核。
与完全虚拟化中的小型管理程序相比,基于容器的虚拟化要复杂得多,并且提供了更大的攻击面。另一方面,也不需要复杂的硬件仿真,因为来宾使用与主机相同的内核。但是内核内部的安全问题允许来宾内部的攻击者接管主机,而在完全虚拟化的情况下,只允许攻击者接管来宾VM。
与基于容器的虚拟化相比,完全虚拟化提供了更多的安全性。此外,基于容器的虚拟化限制了您可以做的事情,特别是您无法运行不同的操作系统。因此,它可能不是一个可用于恶意软件分析的平台。
但是,如果您可以在容器内或VM中进行分析,那么实际上可以将两者结合起来,以提供更多的安全性:您可以运行一个具有完整操作系统的VM,然后使用这些虚拟操作系统中的容器来添加额外的隔离层,以增加安全性。
https://security.stackexchange.com/questions/209504
复制相似问题