IT领域的所有新技术几乎都是双刃剑,在带来好处的同时,也带来挑战和意想不到的后果。
可以说,自从计算方式出现的时候开始就已经在围绕虚拟化技术讨论,当大家还在困惑虚拟化时,微软公司就声称已经研究虚拟化多年,从某种程度来看,他们是正确的,只要在计算机系统出现分层或者抽象化,就会出现某种“虚拟化”的东西,因此后来出现了虚拟化内存、虚拟化磁盘和虚拟机等。
虚拟化的最后一种形式是目前最受关注的,更加具体来说,就是适用于X86服务化技术。在过去,服务器计算机还没有足够的马力来运行多个虚拟机(当然大型计算机可以,但价格比较贵)。现在有了可以建立虚拟化架构的多核处理器(使运行虚拟机的速度与物理机的速度一样快),服务器虚拟化已经开始成为主流。
从安全角度来看,虚拟化有很多好处。首先,虚拟化能够加强级别安全原则“纵深防御”的部署,虚拟层能够提供额外的抽象层,如果使用核心应用程序就需要将该抽象层破解。这样,就有一点像NAT(网络地址转换),能够让核心程序免受攻击。
虚拟化还能够提供被称为“关注点分离”的功能,也就是说,不同的工作负载(如应用程序)可以在自己的虚拟机内运行,当一个虚拟机出现问题的时候,其他虚拟机也不会受到影响。建立在这些原则之上,安全功能可以内置在虚拟层内。
然而,虚拟化也存在其安全缺点。例如上文提到的额外的虚拟层,这可以作为管理程序或者对操作系统内核的扩展(如在Linux中使用KVM)。要使额外层的有效性,必须保证它的安全性,从某些方面来看,要比操作系统已经托管应用程序要安全,这样如果被攻击,就都会受到影响。
附加层的存在比如带来安全负担,而不会减轻安全威胁。不仅仅需要保护管理程序的安全,同样也要保护相关管理工具的安全(可能容易受到试图登录的暴力攻击)。存在很多减轻这些风险的方法,包括对具体漏洞的补丁修复,以及对防火墙和其他保护措施的适当使用在虚拟架构中建立安全,在虚拟层建立这种安全性仍然出于开发中的工作。
还有虚拟化的灵活性带来的额外风险问题,例如,虚拟机可以从高度保护的服务器转移到另一个不太受保护的机器,这种情况的发生可能是因为对配置或者虚拟机的管理缺乏足够的控制,虚拟机甚至可以转移到第三方服务器,这带来很大的安全问题。
也许目前来说,最大的安全威胁就是企业在部署虚拟化技术时,通常都没有考虑安全问题。很多企业表示,部署虚拟化技术主要是出于成本原因,而很少考虑安全问题。因为安全措施也是要花费成本的,例如容错功能和其他风险管理功能。急于涌入虚拟化浪潮的企业还可能带来这些问题,包括虚拟机的扩散问题等,从而导致更加复杂(也更具安全风险的)环境。
最近的FreeformDynamics研究机构的研究结果表明,只有不到四分之一的企业感觉他们的虚拟化技术处于“专家级”操作,这也表明,大多数企业都缺乏对虚拟化部署最佳安全做法的知识。
最后,需要记住的是,现在急于部署虚拟化还为时尚早,毫无疑问虚拟化存在一定的好处,这当然不是从安全角度来说的。然而,现在部署虚拟化的企业最好能够确保虚拟化不会增加他们的安全风险。在部署任何虚拟化解决方案前,如果能够进行简单的风险评估以及从安全角度对供应商和产品的全面调查,这样将帮助企业减少事后不必要的负担。