【IT168 专稿】如今,客户机/服务器应用程序与多核千兆级处理器日趋融合,虚拟化正是一项应运而生的技术。它是一种理想的解决方案,可以将如今服务器中大量可用的处理能力和内存资源分配给诸多应用程序,又能为诸应用程序提供近乎完美的隔离机制。实际上,虚拟机管理程序和虚拟机已成为了互联网应用时代的大型机。就像大型机便于企业内部IT部门拥有和运营的私有系统迁移到可供任何人使用的公共分时服务那样,虚拟机也跨越了私有环境与公共环境之间的鸿沟,基于云的基础设施即服务(IaaS)提供商则按小时数对外出租机器时间。
▲
裸机虚拟机监控器(VMM)是经过高度完善和调整的系统,旨在把多个访客操作系统彼此完全隔离开来。在严格控制的企业数据中心中,每个虚拟机用户的身份和职责是已知的,所以虚拟机隔离技术绰绰有余;然而随着企业环境转向公共云,这项隔离技术也许不堪重任。安全研究人员目前仍在研究其他云用户引起的全面的虚拟机安全风险,但安全风险不仅仅局限于VMM本身的薄弱之处,那是因为在云中,网络和存储也是共享的。尽管目前还没有发生跨虚拟机攻击的风险,但专家们警告这一幕并非没有可能;狡猾的黑客破解虚拟机管理程序可能只是个时间问题。不过在云中,由于控制机制只针对操作系统,所以最终用户只是安全环节上的一部分,他们只好信任服务提供商履行其所承诺的相应条款。
潜在的威胁
要了解公共云威胁状况,一个办法是将操作环境划分为三个抽象层,最早提出这种方法的是思科公司安全技术事业部的云和虚拟化解决方案主管Christofer Hoff,他还是云安全联盟(Cloud Security Alliance)的创始成员兼技术顾问。处于最低层的是基础设施安全,涵盖云托管环境的核心部分:底层的网络、服务器硬件和存储阵列。
第二层是IaaS服务层的安全,包括虚拟机监控器、部署、协调和计费软件。最后一个安全层涵盖在IaaS访客虚拟机上运行的操作系统和应用程序。Hoff指出,云用户控制的只是这最后一个安全层,只好信任其服务提供商在全面确保各方面的安全。
Hoff说:“令人惊讶的是,提供商可能拥有异常安全的环境,但最终用户把自己一头的安全工作搞砸了。”反过来,云用户可能采用军事级安全措施来牢牢保护其应用程序和操作系统,但如果提供商的基础设施中存在敞开的漏洞,云用户仍容易受到攻击。
保护虚拟机环境带来了几个新的挑战。Hoff指出了七种攻击途径。在虚拟机这一层,这些攻击途径包括:访客对访客的攻击、访客对主机(服务器)的攻击以及访客对自身的攻击,而来自云外面的攻击途径有外部对主机的攻击和外部对访客的攻击。最后,企业内部人员攻击针对服务器或虚拟机管理程序本身;而想钻硬件漏洞的空子,就需要拥有访问物理服务器的权限。
据Hoff声称,针对公共虚拟机的攻击可能采取多种多样的形式,包括针对虚拟机管理程序的恶意软件、传统的根工具包(rootkit),或者是所谓的虚拟机管理程序劫持(未授权的虚拟机管理程序完全控制了服务器)。服务器外设也很容易中虚拟机恶意软件的招;有些攻击利用被恶意软件感染的U盘,攻击网卡或硬件BIOS存在的漏洞,Stuxnet蠕虫就采用了这种手法。
虽然针对虚拟机访客操作系统的攻击与针对独立系统的攻击很难辨别开来,但是针对底层虚拟机管理程序和服务器硬件的威胁仍然基本上只是理论上有这种可能。不过Hoff提醒,尽管研究人员已经研究了虚拟机方面的每条威胁渠道,但是将来总有人会竭力寻找系统中的漏洞;如果真的有安全漏洞,就会被人钻空子。
技术和服务保护
从大多数方面来看,保护IaaS云中虚拟系统的安全与保护企业数据中心中独立服务器的安全没有什么不同——同样的非常好的安全实践依然适用。
Hoff说:“你平时怎样保护服务器安全,现在就要以同样的方法来保护虚拟机安全。”他警告说,公共云需要用户提高警惕性。
可能最重要的是,针对应用程序和(虚拟)操作系统要有一套详细而可靠的监控机制。对于云托管的应用程序来说,Hoff建议内置遥测功能,那样连极小的性能异常或干扰也能主动检测出来。
由于实施的安全机制大多不在云用户的控制范围之内,Hoff竭力主张提供商与用户之间加大透明度。他表示,当用户把核心的业务应用程序托付给第三方时,用户了解和监控第三方的安全和数据保护政策、标准遵守情况以及事件响应流程显得很重要。实际上,简化证实云提供商声称的安全措施是否可靠,并且使之自动化,正是CloudAudit标准项目组织的首要目标。
软件开发商也正在加强虚拟机的安全。虽然这些改进减小了黑客破解虚拟机管理程序,从而攻击同一台服务器上其他虚拟机的可能性,但是IaaS用户应该采取另外的防范措施。
KnowThreat安全公司的创始人兼首席顾问L. Taylor Banks建议,用户将所有数据存储到云中之前,先在本地加密数据,密钥管理要放在本地进行。Banks强调必须把安全性融入到云托管的应用程序中。Hoff同意这个观点;他补充说,云用户必须重新设计应用程序的架构,成为“具有存活能力的系统”:那样某个云提供商出现了安全泄密或系统停运事件,也能存活下来。
Solera Networks公司的市场营销和产品管理副总裁Pete Schlampp表示,云用户还应该要求提供商采用网络取证技术,对任何攻击采用逆向工程处理。他补充说,取证技术充当了“网络上的安全摄像头”,可以回放任何事件。
附文:来自云安全联盟的建议
云安全联盟制定的指导准则强调了下面这两项工作的重要性:采用第三方的入侵检测系统(IDS)和反恶意软件扫描来加强云提供商安全控制机制,同时验证虚拟机映像系统的安全“谱系”。由于服务器内部的虚拟机流量通过虚拟交换机来传送,因而对外部网络安全控制机制来说是看不见的,于是云安全联盟建议用户:应根据应用程序类型和数据敏感程度,把云虚拟机隔离到“安全区”。
文章要点
•托管在云中的虚拟机的许多安全要素不在用户的控制范围之内。用户必须要求IaaS提供商的安全政策、合规和日常事件响应机制具有透明度,要求对方提供在线仪表板或标准的应用编程接口(API)。
•针对主机托管虚拟机的安全实践类似针对企业内部服务器的安全实践,但是要更全面。用户必须保持警惕性,确保基于主机/操作系统的标准安全控制得到了采用和监控。
•从一个虚拟机到另一个虚拟机的安全攻击,或针对虚拟机管理程序的安全攻击,其可能性仍限于理论上的,但是很可能不可避免,所以用户将敏感数据发送到云之前应该先加以保护,并让云托管的应用程序具有灵活的适应力。