如何应对层出不穷的虚拟化安全问题?

理想情况下,服务器应该足够稳定,能够抗御互联网的所有攻击,网络提供最优的端到端传输。但现实情况是,数据中心网络总是通过嵌入的防火墙实现主要的安全保护来减少暴力攻击造成的拒绝服务,对入站流量极少执行TCP端口过滤。

使用防火墙来保护数据中心网络的物理服务器已经很难了,把它用于保护虚拟服务器,或者私有云环境,那么难度会更大。毕竟,虚拟服务器会经常迁移,所以防火墙不需要必须位于服务器物理边界内。有几种策略可以为虚拟环境提供防火墙保护。

虚拟网络安全

传统数据中心架构的网络安全设计众所周知:如果服务器的物理边界属于同一个安全域,那么防火墙通常位于聚合层。当你开始实现服务器虚拟化,使用 VMware的vMotion和分布式资源调度(Distributed Resource Scheduler)部署虚拟机移动和自动负载分发时,物理定界的方式就失去作用。在这种情况下,服务器与剩余的网络之间的流量仍然必须通过防火墙,这样就会造成严重的流量长号,并且会增加数据中心的内部负载。

虚拟网络设备能够让你在网络中任何地方快速部署防火墙、路由器或负载均衡器。但当你开始部署这样的虚拟网络设备时,上述问题会越来越严重。这些虚拟化设备可以在物理服务器之间任意移动,其结果就是造成更加复杂的流量流。VMware的vCloud Director就遇到这样的设计问题。

使用DVFilter和虚拟防火墙

几年前,VMware开发了一个虚拟机管理程序DVFilter API,它允许第三方软件检查网络和存储并列虚拟机的流量。有一些防火墙和入侵检测系统 (IDS)供应商很快意识到它的潜在市场,开始发布不会出现过度行为的虚拟防火墙。VMware去年发布了vShield Zones和vShield App,也成为这类供应商的一员。

基于DVFilter的网络安全设备的工作方式与典型的防火墙不同。它不强迫流量必须通过基于IP路由规则的设备,而是明确地将防火墙插入到虚拟机的网卡(vNIC)和虚拟交换机(vSwitch)之间。这样,不需要在虚拟机、虚拟交换机或物理网络上进行任何配置,防火墙就能够检测所有进出vNIC 的流量。vShield通过一个特别的配置层进一步扩充这个概念:你可以在数据中心、集群和端口组(安全域)等不同级别上配置防火墙规则,在创建每个 vNIC的策略时防火墙会应用相应的规则。

并列防火墙自动保护虚拟机的概念似乎是完美的,但是由于DVFilter API的构架原因,它只能运行在虚拟机管理程序中,所以它也有一些潜在的缺点。

虚拟机防火墙的缺点:

每一个物理服务器都必须运行一个防火墙VM。防火墙设备只能保护运行在同一台物理服务器上的虚拟机。如果希望保护所有物理位置的虚拟机,那么你必须在每一台物理服务器上部署防火墙VM。

所有流量都会被检测。你可能将DVFilter API只应用到特定的vNIC上,只保护其中一些虚拟机,但是vShield产品并不支持这个功能。部署这些产品之后,所有通过虚拟机管理程序的流量都会被检测到,这增加了CPU使用率,降低了网络性能。

防火墙崩溃会影响到VM。防火墙VM的另一个问题是它会影响DVFilter API。受到影响的物理服务器上所有虚拟机网络都会中断。然而,物理服务器仍然可以运行,并且连到网络;因此,高可用特性无法将受影响的VM迁移到其他物理服务器上。

相同流量流会执行多次检测。DVFilter API在vNIC上检测流量。因此,即使虚拟机之间传输的流量属于同一个安全域,它们也会被检测两次,而传统防火墙则不会出现这种情况。

虚拟交换机在虚拟化安全中的作用

虚拟化安全设备制造商也可以选择vPath API,它可用于实现自定义虚拟交换机。思科系统最近发布了虚拟安全网关(Virtual Security Gateway ,VSG)产品,该产品可能整合传统(非DVFilter)虚拟防火墙方法和流量流优化技术。思科宣布VSG只进行初始流量检测,并将卸载流量转发到虚拟以太网模块(Virtual Ethernet Modules,VEM:虚拟机管理程序中改良的虚拟交换机),从而防止出现流量长号和性能问题。如果这一切是真的,那么VSG可能是工程师部署安全云服务的最理想工具。