本篇文章笔者想和大家再一同探讨下虚拟化的防病毒保护。虚拟化的防病毒同虚拟化备份在功能上差异很大,两种产品负责不同安全层面上的防护,但在技术实现上有很多的相似性。
我们先了解下虚拟化为什么要部署防病毒软件?
刚接触虚拟化的用户往往都存在这样的一个误区,“上虚拟化的目的就是为了安全,比如有一个虚拟机感染病毒了,直接通过虚拟机快照就可以回退到历史状态,上杀毒软件没用,而且给虚拟机部署杀毒软件会引起虚拟机资源过度消耗,完全没有必要。”
然而事实并非如此:
笔者以自己亲身经历的两个事件为大家举例分析。
案例1:去年,一朋友联系我,某企业使用的Hyper-v虚拟化平台,虚拟机磁盘VHD文件遭遇勒索病毒加密,虚拟机无法开机,快照无法使用。分析发现hyper-v宿主机被勒索病毒感染,后接存储设备内所有VHD虚拟磁盘文件无一幸免。
就在我准备发出这篇文章的时候,宁夏一个客户就出现的这样的问题,虚拟机文件被加密。下图为昨天(5月8号)客户被感染的截图。
案例2:某高校,同样是去年,VMware虚拟化平台虚拟机,遭遇永恒之蓝入侵,其中一台虚拟机受到攻击后,通过VMware虚拟网络向其他虚拟机蔓延,导致虚拟机大面积蓝屏,同时虚拟机资源消耗极高,很快将ESXI主机资源耗尽,客户使用的是VMware桌面虚拟化,发生问题后重置快照数次均无效,短时间内再次发生大面积蓝屏。
从上面的两个案例可以看出,虚拟化病毒的传播特性是交叉感染方式,交叉感染主要有两个:一个是通过宿主机底层直接感染虚拟机磁盘文件。另一个是通过虚拟网络进行传播。
通过宿主机底层感染虚拟机主要出现在使用半虚拟化架构的虚拟化平台中,半虚拟化平台由操作系统+虚拟化层构成(例如:Windows+hyper-v和linux+KVM),病毒可直接感染底层操作系统,从而大面积破坏虚拟机磁盘文件。
也就是说,在虚拟化环境下,原来物理环境中所有的风险依然存在,同时相比之前的物理环境,又多了一个来自底层宿主机的风险,而这个风险则有可能是为企业带来灭顶之灾,出问题不仅仅是某一台服务器的问题,而是所有。
此外,通过虚拟网络病毒传播主要出现在以VMware为代表的裸金属部署架构的虚拟化环境中(例如:ESXI\思杰的XEN等)。由于虚拟化本身的特性,网络结构扁平化,传统的边界防御设备无法感知到虚拟网络层内部的威胁。因此,传统的网络安全设备应对虚拟化网络的安全威胁中基本无效,要保护虚拟化网络的安全必须从虚拟化网络内部入手,感知威胁。
总之,借用美国国家标准与技术研究组织的一句话,“一个有安全威胁的虚拟机往往会影响整个虚拟化架构”
针对虚拟化系统,目前很多用户使用传统的方式,将防病毒软件安装在虚拟机上,来保护虚拟化平台的安全。
这种方式看似是比较简单的,他把虚拟机当成了一台传统的物理机去处理,可以实现杀毒软件的所有功能,同时也不用考虑客户的虚拟化用的是什么平台,只要看虚拟出来的虚拟机是什么操作系统就好。
但事实上是传统的防病毒软件并不适用于虚拟化这种新型平台中去。主要原因如下:
1.“防病毒风暴”问题
我们都知道,杀毒软件在执行文件反病毒扫描时,计算机的内存和CPU消耗都会升高不少,计算机可能变慢,原因是反病毒软件会遍历磁盘中所有文件同病毒库进行比对,确认病毒文件。因此,在虚拟化平台中,虚拟机数量众多,如果大批虚拟机同时执行文件反病毒扫描任务,会导致资源竞争,加重ESXI主机负担以及虚拟机的计算资源。在扫描期内,形成资源消耗风暴,影响虚拟机性能以及业务。
2.“防护间隙”问题
虚拟化平台中,虚拟机数量众多,如果每个虚拟机都安装防病毒软件,部署难度大。且虚拟机一旦关机或暂停,传统的防病毒软件不再起任何作用(主动防御停止),病毒库更新延迟,当虚拟机开始加载到启动后防病毒软件启动这一段时间,虚拟机实际上处在一个无保护的状态,在安全上有时间漏洞,存在保护间断的问题。
3、其他问题。
在传统模式下,我们要为每一台虚拟机上安装反病毒程序和病毒库,不仅在扫描和更新时占用大量的计算资源(包括CPU和内存),也会占用大量的磁盘空间。也降低的虚拟化的密度,降低的虚拟化的效率,同时在管理上也不方便。
近些年,虚拟化厂家也发现了虚拟化平台日益突出的安全问题,主流的虚拟化厂家相继为第三方安全厂家开辟安全接口,用于反病毒,防火墙等一系列安全功能。
目前市面上主流的技术是无代理反病毒技术(这点很像之前文章中提到的无代理备份技术)。无代理反病毒,其实同无代理备份很类似。
以VMware为例,VMware在vsphere6.0版本之前,为用户提供vshieldmanager安全套件(VMwarevsphere6.0开始整合到了VMwareNSX网络套件中)。用户在自己的VMware虚拟化平台中部署vshield后,即可在ESXI主机中开启endpoint反病毒插件。该插件为第三方安全厂家提供防病毒接口。第三方安全厂家仅需在集群中每个ESXI是部署SVM(安全代理虚拟机)即可,无需为每个虚拟机安装杀毒客户端。如下图:
无代理反病毒示意图
虚拟化的无代理反病毒的优势非常明显,首先,解决了防病毒风暴问题,当大批量虚拟机需要防病毒扫描时,主要扫描负载压力集中在SVM虚拟机上,显著降低各个业务虚拟机的资源负担以及ESXI主机的资源负担。
无代理反病毒VS传统反病毒资源消耗对比(来自于VMware)
其次,无代理反病毒运维方式更为简单,部署相对容易,无需在每个虚拟机上安装客户端程序。同时每个SVM上提供集中式的病毒库引擎,供所有虚拟机使用,消除保护间断以及解决病毒库更新问题。最后还可支持虚拟机vmotion漂移技术,即时虚拟机发生漂移,保护也随之跟进。
最后,第三方安全厂家大多都会集成网络虚拟化保护技术,在虚拟化网络内部部署IPS\IDS虚拟设备,对虚拟网络内部流量进行清洗和过滤。
因此,无代理模式自推出起,就受到了广大虚拟化用户的喜爱,成为虚拟化用户的首选解决方案。但无代理模式在实际的运行中也存在一定的不足之处(跟无代理备份一样)。
1.无代理防病毒技术依赖于虚拟化厂家的防病毒接口,实现的保护功能有限,大部分仅能实现文件防病毒。例如:杀毒软件的另一个主要功能主动防御、反网络攻击等技术无法使用(受虚拟化厂家接口限制)。(个人观点:主动防御非常重要,对未知病毒的检测阻断完全靠主动防御机制的保护)。
2.无代理防病毒软件版本升级受制于虚拟化厂家,当虚拟化平台更新后(例如从ESXI5.5升级至6.0后)无代理防病毒软件可能需要重新部署,原因在于虚拟化平台底层安全接口变化,新接口不支持老版本防病毒软件。当虚拟化厂商有新的版本推出后,防病毒厂商才能在新的平台上开发新的针对该平台的防病毒系统,存在较长的时间差,因此,无代理模式的版本更新较传统模式要慢。我们也经常遇到客户第一时间升级到了最新的VM版本,但相应的无代理防病毒系统却迟迟不能推出而无法安装部署,老的版本又不能支持新版本的虚拟化平台,致使整个虚拟化平台处于无保护状态。
3.无代理防病毒部署,经常遇到虚拟化平台防病毒接口不稳定的情况,例如:安装vshield插件速度慢等一系列问题。
4.无代理防病毒特别依赖VMwareTools工具。很多用户在安装VMwareTools组件时大都会选择典型安装,如果使用无代理反病毒,虚拟机在安装VMwareTools时必须自定义或完整安装,典型安装VMwareTools工具时默认组件不包含endpoint反病毒插件,因此,之前已经典型安装过VMwareTools的虚拟机要全部修改安装一遍,否则,无代理反病毒无法工作。
5.无代理反病毒对于较新版的VMware用户来说,使用无代理反病毒需要向VMware支付额外费用。VMwarevsphere6.0以上版本部署无代理反病毒需要VMwareNSX网络套件的支持,而VMwareNSX网络套件需要单独向VMware购买,且价格不低。
为了解决无代理的这些不足,又有第三方安全厂家提出了一种新型的虚拟化平台防病毒保护方案,称之为“轻代理保护”,轻代理防病毒汲取了无代理资源消耗低的特点和传统端点防护的保护面广的优势,在性能和防护上较为均衡。
轻代理防护由安全代理虚拟机以及轻代理客户端组成,与传统端点防护和无代理防护的优势在于,轻代理反病毒将资源消耗较高的文件反病毒、邮件反病毒、网页反病毒等模块集成在安全代理虚拟机上,业务虚拟机上的客户端仅安装一个轻量级的代理程序,该代理程序仅包含控制功能以及主机HIPS、反网络攻击功能。客户端轻量级资源占用少,同时结合安全代理虚拟机的模块,防护面广。
虚拟化轻代理防病毒示意图
相比无代理,轻代理是性能和防护面折中的方案,资源消耗相比无代理高一点,但比传统端点防护方案资源消耗低。保护面同传统端点安全产品功能基本一致。同时不依赖于虚拟化厂家的反病毒接口,可支持任意版本的虚拟化平台,兼容性好。而且无需向虚拟化厂家购买独立安全套件,性价比较高。但轻代理防护方案也有美中不足,主要体现在轻代理客户端部署相对比较麻烦,受保护的虚拟机必须安装轻量级客户端程序。尽管轻代理程序很小,但面对规模庞大的虚拟化系统,安装部署也行对比较麻烦。
因此,在实际项目中,我们一般推荐在大型虚拟化环境采用无代理+轻代理组合部署较为合理。例如:服务器虚拟化使用无代理防护,性能资源消耗低,有益于生产业务。桌面虚拟化环境可使用轻代理防护,防护面广,适用于终端工作场景,且轻代理可同虚拟机镜像模板打包生成,完成批量快速部署。
传统模式、轻代理和无代理的对比:
根据以上介绍,用户在选用虚拟化反病毒产品时,可从以下几个方面来考量:
1.当然是杀毒能力,这是选择杀毒软件的基础,毕竟杀毒软件是用来杀毒的。这里要考察的因素包括病毒库大小、更新速度、对未知病毒的防范能力、发现新病毒后的反应能力等。对于我们普通用户而言,可能没有能力对杀毒能力做出准确的判断,那么可以参考一些国际知名的测评机构的评测报告。例如:AV-TEST、VB100、AV-Comparatives等。杀毒软件不同于其他应用软件,不是功能多就是好,而是要看杀毒能力的强弱,这是以后能否防范病毒的重要指标。
2.应有专门的针对虚拟化的解决方案,虚拟化防病毒产品应既可以支持无代理也可以支持轻代理,且授权通用,用户可根据实际情况随时进行调整部署模式,避免授权不通用导致用户的二次消费。
3.多平台支持。虚拟化产品应支持不同的虚拟化平台,如常见的VMWARE\CTRIX\HYPER-V\KVM等,且授权文件通用,避免以后更换虚拟化平台时授权无效导致的二次消费。
4.本地化服务能力,道高一尺,魔高一丈,从杀毒软件的技术原理可知,从来都是先有病毒,后有反病毒,任何一个杀毒软件都不敢保证能清除所有的病毒,因此必须要结合服务才能最大化的保证用户的安全。
5.性价比。在满足以上杀毒能力和功能的基础上,再对比价格的因素。如果不考虑以上因素单纯的对比价格是没有意义的。