近年来随着信息技术在全球的迅猛发展,云计算已受到各界广泛关注。云计算的特性可归结为虚拟化、分布式部署和动态扩展性,其中虚拟化是云计算有别于传统IT环境的最关键特性。而在众多虚拟化技术中,应用最广泛的当属服务器虚拟化,此项技术可以将一台或一群物理服务器构建成虚拟化环境,在其中虚拟出更多可按需灵活配置的虚拟系统,每个系统相互独立。此项技术可以充分改进硬件资源的利用率,降低能耗,有效实现计算资源整合的目的。然而服务器虚拟化并未止步于此,发展到今天,它已支持跨越IT架构实现各个资源层面的灵活部署,可谓突飞猛进。它的快速发展直接推动了当代云计算应用日趋多样化和复杂化,开启了人类跨入大数据时代的大门。
然而万事有利必有弊。正是由于各种虚拟化技术的引入和发展,使得云计算遇到了传统IT环境前所未有的安全挑战。通过和传统IT环境的对比情况来看,笔者认为云计算的安全问题大致可以划分为三类:①许多传统IT环境未能解决的安全问题,延续到云计算中仍然无能为力;②一些传统IT环境中已经能够克服的常规安全问题,但进入云计算后表现得更新颖、更复杂、更棘手;③包括服务器虚拟化技术在内的各种虚拟化技术,它们自身存在漏洞缺陷有待完善。
尽管云计算的安全问题饱受争议,但是它的优势也是有目共睹的,在没有找到更优秀的替代技术之前,人们不应因噎废食,必须迎难而上,针对新的安全困难逐一寻找对策。人们应该明白一个道理,若想找出一揽子的方案来解决云计算中的所有安全问题,那只能是一种不切实际的美丽幻想。云计算的安全课题内容过于宽泛,本文仅从云计算最核心的技术之一——服务器虚拟化技术出发,着重论述基于此项技术所产生的安全风险,并尝试在生产应用实践中给出解决方案或思路。
1.服务器虚拟化实现模式介绍
目前市面上流行的服务器拟化软件有好多种,一些主流的实现技术往往异同并存,因此技术界对它们的技术分类也莫衷一是。本人经过综合研究,认为当今真正能够用于商用的企业级服务器虚拟化系统,基于它们的实现模式来分类,大致也只有三大“流派”,分别是:全虚拟化,半虚拟化,以及硬件辅助虚拟化。至于其它如硬件仿真和操作系统级的虚拟化,它们更多是应用于硬件开发环境和个人使用环境,它们目前的技术发展难有质的突破,暂时不可能成为企业级商用虚拟化技术的主流,更不会成为云计算的基础,因此本文不讨论它们的安全问题。本节针对这三种主流虚拟化实现技术进行简要概述。
1.1 全虚拟化
图1 全虚拟化示意图
如图1所示,全虚拟化的实现方式是:在客户操作系统(即虚拟机系统)和原始硬件(即物理机硬件资源)之间插入一个虚拟机监视器VMM(Virtual Machine Monitor),又称为Hypervisor,通过VMM在虚拟机和原始硬件之间进行协调。文献指出,VMM实时探测虚拟机发出的指令流,动态识别特权或敏感指令(Ring 0),一旦识别出这些指令,VMM就拦截它们,通过二进制转译(VMWare的BT技术)来模拟这些指令的行为,向原始硬件发出指令。当然,如果虚拟机发出的只是用户级的指令(Ring 3),VMM不拦截,因为二进制转译对性能将产生巨大负荷,而非关键指令并不控制硬件或威胁系统安全,因此可以放行。这种策略在提升效率的同时,也保障了安全。
全虚拟化的典型代表就是VMWare vSphere。它的优点是操作系统无需任何修改就可以直接运行,问题是二进制转译工作往往造成性能大幅下降,而且目前尚未找到加速二进制转译的好办法。
1.2 半虚拟化
并行虚拟化(paravirtualization)惯称为半虚拟化。它与全虚拟化的共同点是,都采用一个VMM实现对底层硬件的共享访问。但是半虚拟化将许多与虚拟化相关的代码植入了虚拟机操作系统,于是不再需要VMM捕获特权指令和二进制转译。半虚拟化为每个虚拟机提供一个特殊的API,但要求在客户操作系统中进行大量修改。文献[4]描述道,有个智能编译器协助客户操作系统通过Hypercall来调用那些无法虚拟化的OS特权指令。传统的x86处理器提供四级指令环:Ring 0—3。环数越低,表示执行的指令权限越高。OS负责管理硬件和特权指令在Ring 0执行,而用户级的应用程序只在Ring 3执行。
虽然并行虚拟化可降低负荷,提升虚拟化性能,但它也会导致其它问题。首先,它的兼容性较差,比如像Windows系统就不支持OS核心的修改;其次,维护半虚拟化可能需要大幅修改OS核心,造成维护成本高企;最后,半虚拟化的性能会因工作负载的变化而产生极大差异。与全虚拟化相比,半虚拟化简单切实,它提供了与未经虚拟化的系统更接近的良好性能。如果大量采用XenLinux系统效果最佳。
值得一提的是,在Xen和微软Hyper-V中,都引入了一个辅助VMM进行驱动和虚拟化辅助管理的虚拟机,它的权限和安全级别都要高于其余普通的虚拟机,它们都是在VMM启动之后,先于其余普通虚拟机加载启动的,否则无法辅助VMM提供虚拟化服务。VMM将许多辅助管理功能剥离到该虚拟机中,因此使得自己瘦身。VMM只包含服务器虚拟化最核心的部分,这也使得VMM的性能和安全性同时得到提升。这种虚拟机在Xen中被定义为Domain0,而在Hyper-V中则定义为父分区。尤其是Hyper-V独特的技术实现方式,其VMM代码量小到仅有几百K字节。
从功能上来说,通常Domain0或父分区可以被看作就是宿主机的操作系统。虽然笔者认为这一特性并非半虚拟化技术的必要特征,但它目前在类似半虚拟化模式中运用普遍。而在VMWare vSphere之中目前仍未引入这一概念,在VMWare中所有的虚拟化功能全部由VMM提供,因此它的代码量十分庞大。
以Xen为例,图2展示了半虚拟化的典型实现模式。
图2 基于Xen的半虚拟化实现模式
1.3 硬件辅助虚拟化
为了简化服务器虚拟化技术,许多硬件厂商不惜投入大量精力和资本来开发新特性。Intel的VirtualizationTechnology(VT-x)和AMD的AMD-V,在CPU增加了root模式,root模式特权级别高于Ring 0(微软定义为Ring-1)。令VMM运行于root模式。于是关键指令能够在VMM上直接执行而无需进行二进制转译,自然也不必像半虚拟化技术要向虚拟机种植入部分虚拟化功能。虚拟机的状态保存在VT-x或AMD-V中。但要注意支持Intel VT-x和AMD-V的CPU只是近几年才在市场上推广。
尽管硬件辅助虚拟化技术前景美好,但由于严格的编程模式要求造成VMM到虚拟机之间的转换损耗严重,目前市场上的硬件辅助虚拟化性能远远未达预期,很多指令运行效果反而逊色于VMware的BT技术。但是硬件辅助虚拟化的未来发展前景是值得期待的。
1.4 服务器虚拟化技术的融合
上述三种技术流派能够在众多技术中脱颖而出,自然有它们各自成功的道理。但是随着不同技术流派的相互取长补短,这三种虚拟化流派也大有逐渐融合的趋势。比如VMware ESX最初借由BT技术实现了全虚拟化,后期也支持硬件辅助虚拟化实现局部功能,而近期它又提出将部分设备资源的虚拟化功能通过半虚拟化方式来实现;又比如开源的Xen早期版本是典型的半虚拟化,它借助Domain0域完成大量虚拟化功能,然而Xen后期版本中又通过另一种不同于BT的技术实现了对全虚拟化的支持,目前它也支持硬件辅助虚拟化;再如内核虚拟机KVM,目前也融合支持三种虚拟化模式,尽管它是一种独特的虚拟化方式,但大致未跳出三种主流技术的框架;至于微软的Hyper-V,其虚拟化模式原本就与半虚拟化的Xen很相似,而且它必须借由硬件辅助以达到性能和安全方面的突破。
万变不离其宗,无论如何,服务器虚拟化技术的首要目的就是要高效灵活地完成不同层面计算资源的调配任务,它将包括CPU、内存、网络、存储和其它硬件在内的各类硬件资源严格地隔离开来,从而实现资源的动态化部署和充分利用,并且防止资源冲突。
2.服务器虚拟化安全风险解析及解决方案
从上一节描述的几种技术特性分析,服务器虚拟化技术除了要防范来自传统IT环境已有的安全威胁,还将面临由于其自身缺陷所带来的新的安全问题。与传统IT环境安全相对比,由服务器虚拟化引起的新安全隐患主要来自三个方面:一是VMM的设计缺陷;二是虚拟机之间通讯引起的风险;三是虚拟化管理平台存在漏洞。针对来自这些方面的风险,目前有一部分风险已经有了成熟的防范措施,而另一些还需继续研发出有效措施。
2.1 VMM设计缺陷
当前虚拟机系统的安全机制,都是建立在假设VMM完全安全可信的前提之上的,遗憾的是在几种服务器虚拟化实现技术中,VMM的安全性并未获得增强的防护能力。VMM的设计过程中确实存在一些漏洞可供攻击者利用,此外VMM内部的安全措施无法识别和阻止来自外部的篡改和替换。例如,虚拟机逃逸攻击(VM Escape)就是对于VMM安全漏洞的利用,如果入侵者获得VMM的访问权限,可直接对其他虚拟机进行攻击,假如入侵者关闭了VMM,将导致宿主机上所有虚拟机关闭。
目前针对VMM的攻击途径有两种:一是通过应用程序接口(API)攻击,操控一台虚拟机向VMM发出请求,VMM缺乏安全信任机制来判断虚拟机发出的请求是否经过认证和授权。二是通过网络对VMM进行攻击,如果网络配置有缺陷,缺乏配套的安全访问控制,入侵者就可能连接到VMM的IP地址;即使入侵者无法暴力破解VMM的登陆口令,但是依然可以发动拒绝服务攻击,如果VMM资源耗尽,那么运行在其上的所有虚拟机也将宕机。此外管理人员还无法通过网络连接VMM,只能重启VMM和上面所有的虚拟机。
针对上述VMM设计缺陷造成的虚拟化安全风险,目前的主要对策是结合以下两种手段:①针对API攻击防范的思路,是将可信计算术与虚拟化技术结合,构建可信虚拟化平台,形成完整的信任链,允许同时运行不同安全等级的应用。宿主机应选用具有可信计算平台安全模块的服务器。所谓可信平台模块(Trusted platform module,TPM)定义了一套安全规格,TPM是服务器主板上的一块安全芯片,它能抵抗软件攻击,从而可以作为系统的可信根。TPM提供包括密钥生成,加密,解密,签名,安全Hash运算,以及随机数生成等功能,芯片内部的少量的安全存储空间,可以存储私钥和对称密钥等敏感信息。通过虚拟化TPM模块获得每台虚拟机的vTPM[7],再与VMM和宿主机、虚拟机之间可以构建完善的信任链,保障VMM不受恶意代码的API攻击。值得一提的是,从安全战略角度考虑,如果完全采用国外的TPM,我国安全体系的控制权就将落入他人之手。好在我国和国际上其他组织几乎是同步进行可信计算平台的研究,其中最核心的密码技术完全采用我国自主研发的密码算法和引擎,我国称之为可信密码模块(Trusted Cryptography Module,TCM),我们也可以将TCM虚拟化成vTCM,供虚拟机使用。②虚拟化平台中的每台物理机上的VMM必须严格分配不同的Vlan子网,实现网络的逻辑隔离,只有处于特权级别的虚拟化平台管理机,才可以通过防火墙访问控制策略来实现对平台中所有VMM进行监控管理。
2.2 虚拟机通讯风险
服务器虚拟化之后,与传统服务器环境相比,网络格局的变化相当大,相应地产生了许多安全问题。传统IT环境中的一些有效安全措施,一旦移植到服务器虚拟化网络环境中就容易出现水土不服现象。
(1)网络安全防护困难。服务器虚拟化之前。可以用防火墙划分多个安全域,对不同安全级别的服务器采用不同策略的安全管理。理论上讲,严密的网络安全隔离可以限制一台受到攻击的服务器将危害向外蔓延。但是自从有了服务器虚拟化技术之后,寄居于同一台宿主机的所有虚拟机只通过一个共享网卡与外部网络通信。这就造成安全问题极易扩散的隐患。因此传统的防火墙部署方式和安全域的划分模式有必要大幅改进。
此项困难的解决思路是:在Vlan基础上严格设置安全域,这种安全域必须按照安全级别的区别和虚拟机用户区别两个维度进行划分(在云计算中必须如此)。采用分布式防火墙实现虚拟机之间通讯的安全访问控制,甚至通过VPN通讯。但若要实现虚拟机在异地数据中心的迁移和漂移,那么防火墙策略如何随着虚拟机的迁移而调整,也需要有解决方案。目前CISCO公司基于其Nexus系列交换机和分布式防火墙已发布了完整的解决方案,但该方案需完全采用CISCO公司的产品和协议,投资成本高昂,并非局部性的升级部署可以实现。
(2)VM Hopping攻击。一些虚拟化技术为了方便应用且提高性能,虚拟机之间的通讯可以通过共享内存交换方式进行,但这又制造了一个虚拟机之间的通讯风险。入侵者可以通过原本掌握的某台虚拟机A监控到在同一宿主机H上的另一台虚拟机B,当入侵者劫持了虚拟机B后,还可能以B为跳板,再以同样方式继续入侵其他虚拟机。入侵者甚至可以直接劫持宿主机H,从而完全控制同一宿主机上所有其他虚拟机的运行。这一攻击过程就叫做VM Hopping。一旦宿主机H的操作系统访问权限被劫获,后果将不堪设想。
防范这一问题最好的办法,仍然是采用具有TPM和TCM的服务器构建可信虚拟化平台,不过在不支持这些安全可信模块的原有服务器上就无能为力了。
(3)拒绝服务(DoS)攻击。此外还有一种服务器虚拟化环境中特有DoS危害扩散问题。在虚拟化环境下,资源(如CPU、内存、硬盘和网络)均由虚拟机和宿主机共享。因此,针对某一台虚拟机A的DoS攻击不仅可能耗尽A自身的资源,还会由此传递到整个宿主机H上所有的资源,造成H上的全部虚拟机获取不到资源而无法正常提供服务。可见在服务器虚拟化环境中的DoS攻击所造成的伤害影响范围比传统IT环境有所放大。
针对DoS攻击,尤其是分布式拒绝攻击(DDoS),即使在传统网络环境中也难以彻底应对。但是针对上述服务器虚拟化环境中DoS攻击受害影响范围易于扩大化的问题,仍然可以采用一些手段进行限制:VMM或宿主机操作系统应实时监控虚拟机的运行性能状况,一旦发现某台虚拟机CPU或网络等利用率过载,VMM或宿主机操作系统可以怀疑该虚拟机受到DoS或其它异常攻击,它们有权切断受攻击虚拟机相应的硬件资源使用权,从而切断该虚拟机将受攻击影响扩散至整个宿主机的途径。
当然,这种策略的有效实施又面临着另一个问题:即如何防止因错误怀疑而错误切断正常虚拟机的资源使用权,并且造成不必要的损失。首先这需要VMM或宿主机系统变得更“智能”,这也许需要基于大量经验和历史数据挖掘分析的基础上做出判断;其次对于重要业务应用的虚拟机应该部署多台负载均衡,或者部署容错服务器等。当然这些实现方法大幅增加了技术难度和投资成本。
2.3 管理平台漏洞
(1)远程管理漏洞。此外,各种服务器虚拟化软件都要通过网络上的一个远程管理平台来管理虚拟机。例如VMWare有VCente,微软有SCVMM。这些控制台也可常会引起一些安全风险,例如管理平台的自助WEB服务系统就可能引起跨站脚本攻击、SQL注入等传统风险。攻击者一旦获取了管理平台的管理权限,那么即便他未掌握平台中虚拟机的登陆口令,也可以直接在管理平台中关闭任意一台虚拟机。防范这一问题的思路是:严格控制管理平台的访问权限控制,若服务器虚拟化管理平台支持用户自助式管理服务,应关闭此项服务。用户自助式服务最多只提供虚拟机资源申请单提交功能,而不允许普通用户通过服务器虚拟化管理平台的任何远程管理入口登陆虚拟机。管理平台的权限应该通过双因素认证系统绑定到管理员的身份上。
(2)迁移攻击和副本离线破解。出于高可用性的设计考虑,主流的服务器虚拟化软件及其管理平台均支持虚拟机的迁移。攻击者如果控制了管理平台的管理权限,就可以在线地将虚拟机从一台宿主机移动到另一台上。由于虚拟机的内容是以特定的镜像文件格式存储的,当虚拟机被迁移的过程中,虚拟机或虚拟磁盘的镜像文件将被重新创建,攻击者借此机会可以替换原虚拟机的配置文件和参数特性。此外,攻击者还可能通过网络复制出某台虚拟机的镜像文件。一旦得到完整的镜像文件,攻击者可以将其导入自己的虚拟化平台,拥有充足的时间离线攻克其中的安全设定,包括破解登陆口令,提取通信密钥,获取所有重要信息等。由于该镜像文件只是在线虚拟机的一个副本,追踪和防范此类威胁是极其困难的。
防范措施:此漏洞的受攻击的情况与远程管理漏洞表现不同,但它们的解决办法基本一致,此处不重复。
(3)数据安全风险。作为云计算的基础,服务器虚拟化技术必须关注数据的安全问题,包括数据的私密性、完整性和可用性等。由于不同的虚拟机的全部数据存储在一个共享的物理存储设备中,如何保证严格的数据隔离就显得尤为重要。
另外,在服务器虚拟化环境中。数据残留问题更有可能会无意泄露敏感信息。由于虚拟化平台中的虚拟机可以执行新建、删除和迁移等操作,这些功能虽然为平台的管理带来的巨大的便利性,也为容灾备份和高可用性提供了多种实现手段,但是所有这些操作都会留下数据痕迹。因为一台虚拟机的数据曾经存储过的空间允许被释放并再分配给其他虚拟机使用,如果不采用特别措施,服务器虚拟化平台很难保证存储资源被重新分配之后,敏感信息是否依然有残留。
防范上述数据安全风险的关键技术就是数据加密。加密技术已经非常成熟,比如对称密码技术、非对称密码技术等。数据加密还可以结合数据切分、散列存储等技术一起使用,这样一来即便是虚拟化平台管理员,也无法获取虚拟机得完整数据,更无法破解其中的内容。经过以上技术处理,数据残留问题也就不成为问题了,出于谨慎考虑,用户只需对于保存数据的解密秘钥的极小存储空间进行多次擦除操作即可(据说连续7次擦除操作即可保证数据不可恢复)。
(4)虚拟机补丁更新管理困难。虚拟机的补丁管理存在以下困难:采用虚拟化管理软件提供的虚拟机复制克隆等方式,很容易为虚拟机提供一个副本镜像,作为冷备份存于异地离线库中,当需要时便可利用启用异地离线库中存储的虚拟机实现灾难恢复。但是这台用于灾备的虚拟机的杀毒软件、系统补丁和应用软件版本均未即时更新到最新版本,一旦启用必然出现各种缺陷,这样的虚拟机在正式启用后很可能会引发安全问题。
解决方案:目前微软和VMWare都拥有虚拟机补丁自动更新功能和离线虚拟机服务工具,如果使用的是这些厂商的虚拟化软件,可以直接启用功能模块。现在问题为如何合理制定补丁的自动更新任务表,既保证所有虚拟机的补丁最新,又不对平台网络造成太大负担。
(5)快照和状态回滚漏洞。这是一项虚拟机特有的管理和备份方式,对于系统和数据的备份和恢复起到重要作用,但却给入侵者提供了一种攻击的新方法。入侵者可能将虚拟机恢复到过去某个时间节点的状态,获取一些已被删除的敏感信息。可能的漏洞防范思路:第一能想到的手段依然是数据加密技术,快照和回滚内容经过加密之后,攻击者想要破解就不那么容易了。此外解密的密钥必须通过双因素认证系统绑定到虚拟化平台管理员的身份上。经过这些处理之后,入侵者既不能从快照和状态回滚存储的内容中获取信息,也不能通过回滚到早期状态来恶意破坏虚拟机正常服务。
(6)共享剪切版漏洞。许多服务器虚拟化软件支持虚拟机和宿主机之间的共享剪切板功能,为虚拟化的灵活应用提供便利,但这一功能可能造成安全问题。解决思路:最简单的想法就是直接禁用此项功能。
3.结语
云计算的安全问题受到许多专业人士的诟病,作为云计算的首要基础核心的服务器虚拟化技术首当其冲。排除传统IT环境中共同存在的安全问题,本文只针对服务器虚拟化技术中存在的安全风险进行逐项探讨,并给出相应的对策。文中所述各项的安全风险的防范措施,要点可以总结为以下六方面:①采用带有TPM或TCM的服务器构建可信虚拟化平台;②采用分布式防火墙实现多维度的安全域划分;③增强对物理机和虚拟机资源使用情况的实时监控;④多方位禁止普通用户接入服务器虚拟化平台的任何管理接口;⑤数据加密技术的充分利用;⑥增强虚拟机补丁管理能力。服务器虚拟化的安全问题显然不止于此,新的漏洞还将不断被挖掘出来,安全风险防范措施必须与时俱进,不断完善。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:服务器虚拟化安全风险防范措施
本文网址:http://www.toberp.com/html/consultation/10839513393.html