网络安全 频道

我们亟需应对虚拟化带来的安全问题

    危及虚拟机管理程序(hypervisor)安全的攻击如今成了IT人员最害怕的噩梦。你为此做好准备了吗?

    今年3月,Gartner公司指出了一个明显的事实:虚拟化技术为攻击者带来了新的机遇,从而在博客圈引发了热烈争论。现在虚拟安全方面的局势仍然很不明朗,也许只有时间才能证明谁在背后炒作、故弄玄虚。新的虚拟化安全“设备”厂商显然在其中有着利害关系。但许多企业现在认识到:自己仓促上马虚拟化项目,却没有考虑到这对数据保护政策有什么影响,所以IT专业人士自然担心有多少宝贵资源被攻击虚拟机管理程序得逞的不法分子消耗掉了。

    如果你现在就坐立不安,需要搞清楚答案的一大问题是:现在我们面临攻击的风险到底有多大?毕竟,Gartner就在同一份报告中预测,2008年年底之前会在主流产品中发现需要打补丁的虚拟机管理程序漏洞。这些潜在的安全漏洞分为两大类。首先,如果你能避开客户机操作系统、潜入主机操作系统,就能访问这台机器上其他所有客户机操作系统上面的数据。其次就是众多全新的rootkit,它们旨在充分利用虚拟化技术的弱点。

    安全咨询公司Neohapsis的首席技术官Greg Shipley说:“有人一直在竭力突破VMware环境中来宾操作系统(guest OS)的安全,这已有一段时日。对任何一家组织而言,虚拟机管理程序被植入rootkit都将是一种严重威胁。不过,我不认为rootkit的发展会成为重大挑战。”

    真正让Shipley关注的是部署这类rootkit的方法。

    “什么需要我们付出更多的努力:是研究哪个安全漏洞让我们可以突破来宾操作系统的安全、进而控制虚拟机管理程序层?还是以管理员为目标、劫持安装rootkit所需的证书,就像任何其他应用程序那样?如果这个任务摆在了我的面前,我知道该走哪条路。”

    至于突破客户机镜像的安全,咨询公司Intelguardians在前不久举行的SANSFire展会上演示了这样一种攻击是如何侵入主机操作系统的。有关这个漏洞的细节内容没有公之于众,所以这种攻击针对哪个目标得逞也就无从得知,但可以肯定:不是只有这些研究人员在从事虚拟安全方面的研究。

    得到的教训是,如今公司企业需要假设:动机足够强烈的攻击者有能力钻这样一种漏洞的空子,并为此做好相应的规划。其中关键是深层防御以及良好的虚拟机部署和设计,包括同一个主机系统上不同虚拟机要有不同的安全状况和要求。

    为了弄清楚读者在这方面准备得如何,我们开展了一项调研,有些结果令人大跌眼镜。我们忍不住想这个事实:43%的调查对象表示自己认为虚拟机就跟传统环境一样安全可靠,其实他们只是借吹口哨壮胆。在接受调查的384名IT操作和安全专业人士当中,只有区区12%的人部署了保护虚拟机的正式策略。

    现在,很多人表示自己依赖现有的IT政策和工具包来管理及保护虚拟服务器,这在一定程度上是明智之举。虚拟化环境确实面临着与传统服务器同样的诸多运营威胁和风险,但它们还面临另外的隐藏问题:从主机内威胁、审查第三方的虚拟机管理程序驱动程序插件,到为公司信息安全政策添加新的要求项目,不一而足。

    咱们还是面对现实吧:如果一台传统的1U服务器安全遭到了威胁,你多少会觉得脸上无光,于是会重新部署、评估破坏程度、解决问题,然后继续使用。大多数公司部署了相应的策略,以便把内部破坏限制在局部地方,并且布下了第二道和第三道防线,避免系统安全接二连三地受到威胁。可问题是,很少有网络监控和管理工具有能力来保护来宾虚拟机。当传统服务器遭到了攻击、开始出现异常或者可疑行为,就会警报大作。但如果所有机器到机器的通信在“一体化数据中心”里面的虚拟机之间进行,你那些久经考验的网络监控工具又有多少效果呢?在你明白过来怎么回事之前,不法分子探查、测试并且钻主机内漏洞的空子只需要多长时间呢?

    另外,针对虚拟机的环境其安全性让人忧心忡忡,这是不是杞人忧天呢?甚嚣尘上的说法至少向人们敲响了警钟:危险就在我们眼前。

    夯实基础

    为了评估理论上的风险以及确定哪些新的应用程序可能遭到旧方法的攻击,你就要明白虚拟化主机的底层设计。

    虚拟化技术创建了一个抽象层,它把来宾操作系统与底层硬件分离开来,这样在一台服务器上就可以运行多个虚拟机。虚拟机可能依赖简洁的虚拟机管理程序,后者使用短小的特权代码库作为这个抽象层的基础;这种方法的优点在于,虚拟机上运行的应用程序其性能几乎可以达到本地运行的效果。针对企业服务器市场的产品都青睐虚拟机管理程序设计,其中包括VMware ESX、英特尔公司的VPro、Virtual Iron和XenEnterprise。

    另外,桌面虚拟机和微软公司的虚拟服务器产品使用了传统的“胖操作系统”模式。在这种模式下,来宾虚拟机运行在成熟完备的主机操作系统上面。

    虽然虚拟机管理程序提供了经过优化的性能,并且缩小了攻击面,但它们也带来了新的安全漏洞,因此需要从一开始就考虑到安全性,而不是事后才添加上去。这里有个没有答案的重要问题:是依靠开源社区来检查及测试Xen产品来得更安全?还是VMware及其他专有虚拟机管理程序厂商才是保护主机安全的非常好的路线?

    Shipley说:“据我了解,VMware的质量保证工作做得相当好。与其他许多公司相比,它简直就像是摇滚明星。知道Oracle在今年发布了多少补丁?多达三位数,想跟踪都跟踪不过来。”

    XenSource公司的首席技术官Simon Crosby说,与此同时,XenEnterprise即将发布的4.0版本虚拟机管理程序会有6万行左右的代码,这已经很精简了。代码越少,意味着可能出现的故障越少。另外,XenSource(最近已同意被思杰系统公司收购)采用了IBM公司的安全虚拟机管理程序技术;XenEnterprise还经历了开源社区的考验,获得了公共标准5级认证。

    芯片设计公司和虚拟机软件厂商也在竭力驾驭这场安全之战。英特尔公司的商业客户架构主管Steve Grobman表示,英特尔的VT-X服务器和桌面虚拟化产品就是从头到尾经过设计的,旨在加强安全性。比方说,英特尔最新的VT增强型服务器芯片组为传统的三层CPU代码特权上的虚拟化提供了三层新的代码特权。

    当然,VMware主导着企业级虚拟化市场,这家公司的地位相当牢固。

    VMware的联合创办人兼首席科学家Mendel Rosenblum说:“VMware ESX服务器的设计、测试和部署与传统的大型平台操作系统形成了鲜明对比;从编写第一行代码开始,我们就关注安全问题。我百分之百地确信,我们的虚拟机管理程序不会因设计缺陷而面临安全威胁。”

    我们当然希望事实证明他的这种自信是有根据的。的确,到目前为止,几家虚拟化软件厂商并没有出过安全问题。

    世界末日

    在基于虚拟机管理程序的主机环境下,最糟糕的一幕是什么?那就是虚拟机管理程序被劫持(hyperjacking),即安全漏洞导致了平台受到危及,不法分子从而得以全面访问某台机器上的所有来宾操作系统。恶意软件在破坏虚拟机管理程序的过程中,轻而易举就能掩藏行踪,安装在基于主机操作系统分区上或者虚拟机管理程序上一层的任何软件层上的传统安全工具发现不了。

    这种存在漏洞的情形就好比这种威胁:精心掩盖的rookit对独立的服务器操作系统构成了安全威胁。如果你操纵了虚拟机管理程序,也就操纵了经过虚拟机管理程序传送的所有数据,而且完全有条件采样、重定向或者欺骗对你胃口的任何内容。要是没有某种故障防护机制,来宾操作系统根本不知道自己就在岌岌可危的平台上运行。

    如果涉及的是那些大规模的虚拟化平台,在一个硬件系统上提供10个、50个乃至上百个虚拟服务器,那这正是可怕之处。控制权旁落他人、经济蒙受收入的潜在风险极大。

    解决办法就是,在部署多道故障防护机制时保持虚拟机管理程序的完整性,以便虚拟操作系统能够确保与之通信的虚拟机管理程序没有受到破坏,虚拟机管理程序可以充当通向底层硬件和外部连接的桥梁。如果在核心层(Ring 0)外面运行未经修改的操作系统,虚拟机管理程序就必须拦截“违禁的”Ring 0指令,并在其他地方仿真这些指令――而来宾操作系统不知道发生的情况。硅生产商期望能在这方面助一臂之力;比如说,英特尔和AMD两家公司针对虚拟机市场而推出的新芯片,就能够在Ring 0下面插入一个新的特权层。两家公司新提供的机器代码指令都只能在Ring 1层执行,旨在归虚拟机管理程序管理。这样一来,来宾操作系统不必修改,并且减小了仿真操作给性能带来的影响。

    虚拟机管理程序的任务就是让每个来宾操作系统确信:只有它才能访问主机服务器上的物理资源,同时协调好各路访问,确保各程序和数据不会从操作系统外泄出去。最新芯片组上的虚拟化平台上使用了额外的代码特权层,这样万一出现安全泄密或者应用程序异常,厂商们就可以减小行为失常的来宾操作系统造成的不利影响。

    为了进一步尽量减小安全受到危及的平台拦截来宾操作系统与底层硬件之间的通信这种风险,就需要部署某种交易确认机制。

    可信计算组织得到最广泛采用的标准是可信平台模块(TPM)。TPM是可信虚拟机管理程序的一个关键部分,提供了基于硬件的可信任的根证书、用于进行度量的可信位置,以及用来存储度量标准的几个存储库。TPM硬件加密提供了一种有保障的方法,以便来宾操作系统可以审查与虚拟机管理程序之间的通信。

    TPM的目的是提供篡改检测及预防;比如说,英特尔实施的技术在托管平台上提供了可信虚拟机监视程序白名单。TPM在任何软件加载之前启用,让用户对启动顺序做到心里有把握,同时确保在加装过程中每个系统部分真实无误。简而言之,只有虚拟机管理程序加装之后处于已知、可信的状态,TPM才会把平台的控制大权交给它。

    是不是觉得这些概念很耳熟?在Vista的高级版本中,微软正是依赖基于芯片组的TPM来提供BitLocker功能,用于对保存在本地硬盘上的数据进行加密。英特尔和AMD的未来硬件平台也计划使用TPM,以便与附加外设之间建立可信路径,并依靠它来生成及保存对数据路径进行硬件级加密所需的独特密钥。这种加密机制,加上确认虚拟化组件的功能,有望为拦截TPM/虚拟机管理程序的切换加大难度,这样IT人员就更能确信操作系统与虚拟机管理程序之间的通信完好无损。

    简明道理

    就像一个人开车时不系安全带、老担心会被闪电击中那样,你最有可能遇到的是与虚拟化技术有关的普通危险。比方说,胖主机和基于虚拟机管理程序的主机都面临这种风险:来宾操作系统因传统的威胁途径和漏洞而受到危及。某台面向公众的服务器要是没有打上补丁或者保护不力,就会面临险境,不管它在独立机器上运行,还是作为其中一个虚拟机在大型主机平台上运行。

    不过常识表明,一家组织面临的风险与其对虚拟化和服务器整合的依赖程度成正比:每个平台上的虚拟机数量越多,未检测到的主机内问题扩散开来的危险就越大。实际上,传统的独立式(off-box)防御机制发现不了主机内威胁。外部防火墙及其他安全工具无法检查或者控制主机内通信;在这种通信中,数据包从来不会离开主机、进入到有线基础设施。实际环境中存在一些常见问题,在复杂的主机环境下很难被发现,它们包括:外来或者可疑的主机内串话干扰伪装成合法通信,这表明存在端口扫描、病毒行为或者其他恶意软件;以及直接(针对性)或者偶然的拒绝服务攻击,由于耗用了CPU周期、输入/输出资源或者虚拟化网络带宽,这些攻击会影响其他来宾虚拟机。

    Neohapsis公司的Shipley说:“纯粹从操作的角度来看,‘把更多鸡蛋放在一只篮子’这种风险与不断变化的威胁途径关系不大,主要与无所作为的IT有关。”他补充说,IT部门同样的一幕曾经出现在早期的存储区域网络上。“大多数组织通过额外容量设计、进行虚拟服务器迁移演练以及及时打上补丁,就能够管理这个风险。”

    最后一条经验值得重申。

    他说:“即使我认为VMware在减小攻击范围方面做得很好,但ESX/VI3仍是从Linux发展而来的操作系统;正因为如此,它需要打上补丁。问题在于,给ESX服务器打补丁的风险比较大,带来的干扰也比较大,因为你停掉的不仅仅是一个操作系统,停掉的还有在上面运行的所有操作系统。”

    好消息是,迄今为止我们看到关键的VMware补丁相对较少。

    虚拟世界的安全之道

    现在,我们都在耐心等待,等生产环境虚拟机管理程序或者虚拟机监视程序出现首次被人攻击得逞的消息。要确保你的网络避免成为众矢之的,那么在设计主机系统的架构时,就要尽可能减小潜在的攻击范围。查出第三方的设备驱动程序驻留在什么地方:在虚拟机管理程序内部(旨在改善性能);还是在更高一层上,这样性能略微受到了影响,却能减小安全风险。

    在主机平台和来宾平台上关闭不必要的仿真设备,并牢牢控制无关特性和闲置不用的服务。记住:虚拟机仍是一种机器。虽说道理很明显,但IT人员还是要像对待传统服务器那样认真对待虚拟机,包括遵守安全政策和准则。在我们的调查中,36%的调查对象承认自己没有部署任何IT安全或者保护计划;23%的人坦言,安全政策还在制定当中。考虑到70%以上的调查对象已经至少部署了一个主机平台,很显然:没有打补丁或者没有受保护的虚拟服务器成了等别人来钻空子的安全漏洞。

    要确保安全事宜、权限以及环境设置得到了合理安排,以便和虚拟机一起转移到新主机上――尽管环境方面的灵活性是像VMware ESX这些企业级产品的主要优势,但要是未经合理规划,动态转移虚拟机的功能反而会埋下祸根。

      Shipley说:“在减小攻击范围和整体暴露程度方面,我看到有些组织把VMware管理基础设施这部分与网络的其余部分隔离开来,限制了哪些人可以访问、可以访问哪些内容。很显然,数据中心里面的防火墙是一个比较新的趋势,但这个趋势肯定不是完全由VMware推动的。说到网络分段,我见过的比较先进的IT部门确实在开始考虑‘最小特权’(least privilege)模型这个概念;组织可以通过严格限制针对VMware管理基础设施的访问,从而减小风险系数。”

    Shipley还强调,IT人员绝不能把虚拟化主机放在需要部署网络区域的部位,比如说让ESX主机平台上运行进出非军事区(DMZ)的来宾虚拟机。
 

    能够买来安全吗?

    力求创新的专门虚拟化安全设备厂商如今致力于虚拟化技术,认为这是解决安全问题的方案,而不是只是另一个攻击途径,其中包括Reflex公司的VSA和Blue Lane公司的VirtualShield。尽管我们喜欢把“设备”这个词专门留给带有三孔插头的装置,但我们认识到自己在打一场无望取胜的战争:VMware在推广“嵌入式”(drop-in)专门虚拟机概念;这种虚拟机专门设计而成,预先经过了配置,可满足特定的安全或者管理要求;另外许多厂商也开始涌向这个新兴领域;虽然没有哪家大厂商给出正式通知,但我们预测:像赛门铁克这些传统的安全厂商很快就会挟带专门定制的产品,大批进入这个市场。

    那么,这对IT人来说是一桩好事吗?

    Shipley说:“我忍不住想知道,要是有些厂商只是看了一下市场上的所有虚拟化产品,就说‘嗨,我怎样才能把安全产品卖给使用VMware产品的所有那些公司?用户/消费者肩负的一部分压力就是探讨自身网络中真正的威胁途径有哪些,然后关注相应工具。”

    不过,还没有谁因为采购了防止所在组织成为下一个TJX的某个安全设备而被解雇。VMware公司的那些聪明人明白这点,于是最近收购了Determina,这家公司销售的内存防火墙能够防范堆栈溢出(stack overflow)和堆溢出(heap overflow)漏洞。尽管这个保护目标相当狭窄,却很重要。问题在于,对某些应用而言,Determina内存防火墙有可能大大降低总体性能。

    VMware还采用了Determina的LiveShield技术,该技术可以动态打上补丁――不需要重启服务器,就在内存中打上补丁。当然,这正合VMware的心意,因为这项技术与其自身的二进制仿真系统有些相仿,这种仿真系统在加载过程中会改写部分可执行代码。

    虽然给运行中的操作系统或者应用程序打补丁这个想法听上去很不错,但还是需要在打上补丁之前先进行测试。通常延误时机的正是这种测试,而不是需要重启服务器。

    这时候,Blue Lane公司的补丁仿真产品(既有物理设备,也有针对VMware的虚拟设备)就有了用武之地。其想法是,发现进来的攻击;一旦真正出现了补丁,就打上补丁来解决问题,这样入侵数据包根本接近不了服务器。虽然反对这家公司的同样大有人在,但VirtualShield在我们测试中的表现名副其实。而且,近日它得到了又一家公司的批准,这回正是大名鼎鼎的微软:微软测试了其物理设备,结果发现与微软产品完全兼容。

      在虚拟环境,结合使用这三款产品就能构筑起一张相当稳固的安全网。内存防火墙将防范溢出漏洞,而Blue Lane公司的技术让IT人员有了时间来对补丁进行必要测试;而一旦测试通过,LiveShield让你可以动态打上补丁。

    最后,预计虚拟机会在桌面领域扮演越来越重要的角色,而笔记本电脑和个人电脑从设计之初就支持由管理员锁定的虚拟机分区,分区不断监控所有运行中的区域,安全地隔离用户安装的恶意软件或者人为错误造成的安全隐患。

    最后给各位的一条忠告就是,要竭力加强安全意识。我们读者调查中的最后一个问题是没有确定答案的,询问读者之前在虚拟化安全方面有没有其他担心或者看法。当然结果不出所料,有些厂商恶评如潮,而有些厂商好评如潮,不过一个反复出现的主题是:“我之前一点也不担心,直到完成了这次调查才开始担心起来。”

    如果说知识就是力量,就要考虑为自己装备这种力量。
 

0
相关文章