虚拟化技术虽然能为CSO带来极大的安全助益,但也为黑客留下了新的安全隐患。
如今,虚拟化技术已经是企业数据中心的热门话题了。微软、VMware和XenSource等公司的虚拟服务器可以让多台虚拟机在一台实际的计算机系统上运行。这意味着,用户机房里的二三十台虚拟服务器可以变成同等数量的虚拟机,它们运行在配有两路、四路或者八路处理器的同一个物理系统上。
把30台计算机变成一台计算机,这可以大幅减少供电、冷却、布线及管理等方面的支出。典型虚拟服务器耗用的处理功能是物理计算机的5%~10%,且虚拟化技术通常能让企业的应用系统运行得更快而不是更慢。但除了作为节省费用的一种强大工具外,虚拟化技术现在还成了CSO及其他信息安全工作人员手中日趋重要的强大工具之一。
充当测试机
早在几年前,许多安全顾问就使用一台或者多台“测试机”(Crash-and-Burn Machine),对可能有危害的程序进行试验,譬如间谍软件、特洛伊木马和计算机病毒。如今,这些剖析工作大部分已经转移到了虚拟机领域。这种转移除了可以明显节省磁盘空间和电源功耗外,还可以比较容易地弄清楚某个间谍软件对虚拟机造成了什么破坏,比在物理机器上进行分析来得更为容易。
使用充当“测试机”的虚拟机分析起来也要比使用物理机器快得多。笔者原来用的“测试机”要处理绝对乏味的任务,其中一项任务就是需要把操作系统安装到多个硬盘驱动器上、为这些硬盘驱动器制作镜像、间谍软件造成破坏后恢复镜像等。笔者在一个9GB驱动器中安装上了Windows 2000,在另一个9GB驱动器上安装上了Linux,还有多个9GB驱动器上装有多个版本的这些系统,而这些系统处于不同的破坏和攻击状态。笔者完成了对一个新的间谍软件进行试验后,就会把参考硬盘逐个数据块拷回到工作硬盘上。这样可以确保安装了干净的操作系统,可以准备另一次试验。
用虚拟机的磁盘镜像来处理要快得多,因为如今的虚拟服务器比物理服务器更善于巧妙地管理硬盘。虚拟服务器不是对逻辑驱动器进行逐个数据块的拷贝,而是采用各种压缩和重新映射方法,那样虚拟磁盘只含有虚拟机实际需要的磁盘扇区。有些虚拟服务器,如Microsoft Virtual PC甚至可以将虚拟磁盘保存到两个文件上:一个是“基准”或参考文件;另一个文件只是跟踪变更内容。如果使用这种配置方法,第二个文件准确无误地记录下了间谍软件造成的破坏。要恢复原始状态的计算机,你只要丢弃这第二个文件就可以了。还有比这更简单的吗?
一次性使用的虚拟机其用途绝不仅仅限于测试间谍软件。如今最安全的上网浏览方式就是下载一份VMware Player及VMware公司的“Browser Appliance”虚拟机。但如果某个黑客组织设法找到了漏洞,从而得以接管你的虚拟机,你要担心什么呢?漏洞的最大危害就是破坏虚拟机——但黑客的恶意程序无法脱离VMware Player去感染你的桌面系统。同样,跨站脚本攻击同样无法窃取你的家庭银行验证信息,某个零日漏洞(Zero-day Exploit)也无法寻找你的机密文档。
减少远程攻击
企业用户还可以使用VMware Player这种工具为员工提供一套稳定的应用系统,用于家庭计算机或者安全远程访问。你可以建立一台VMware虚拟机,预先配置这些东西:可信的操作系统、贵组织所有与业务有关的软件以及虚拟专用网络客户软件,不必使用资源密集型的远程访问系统如Citrix或者微软终端服务。员工可以运行该虚拟机来访问公司的软件或者网络资源,把各自的工作成果保存在不同的虚拟机、主机操作系统或者网络共享区上。软件更新版也可以通过全新的虚拟机来发布。
我们越来越多地看到这一幕:用户使用属于客户的敏感网络工作时,虚拟机成了保护自己的一种方法。我用不着在家用计算机上启动VPN客户软件,而是可以创建虚拟机,然后用它连接到客户。现在我可以确信,桌面上任何毫不相关的活动不会无意中进入客户的网络。同样也可以确信,我下载的任何机密信息都只放在这个虚拟机上。
许多学术研究人员力图将这个概念应用到易于使用的桌面界面上,那样可以把典型的家庭计算机分成多个不同的虚拟机,担当家庭用户通常扮演的不同类别的“角色”。譬如说,用户可能会有一个虚拟机用于文字处理;第二个虚拟机用于家庭银行业务及其他高价值、高风险的活动;第三个用于浏览互联网、玩游戏;第四个用于高风险活动,如运行别人通过电子邮件发给我的程序。
难以避免的阴暗面
一些聪明的安全专家也认识到,虚拟化技术同样存在着阴暗面。
因为Cookie和浏览器缓存文件连同其他各种内容保存在虚拟机里面,所以使用VMware的Browser Appliance浏览互联网的坏人不会在他的PC上留下任何这些可以作为证据的痕迹。这样一来,要证明某个人使用计算机从事非法活动(如下载儿童色情内容),难度就会大大增加。笔者在近期出席的一次技术取证大会上,就听说有些手段高明的攻击者如今就在这么做,他们闯入其他机器后不会留下任何痕迹。
黑客还可以利用虚拟化技术来隐藏病毒、特洛伊木马及其他各种恶意软件的踪迹,不过目前这种攻击主要局限于概念证明阶段。理论上,恶意软件可以成为虚拟服务器本身,受害的操作系统会作为客户机运行。迄今为止,能够做到这点的惟一一个人就是Joanna Rutkowska,她是总部设在新加坡的IT安全咨询公司Coseinc的研究人员。Rutkowska编制的恶意代码名为“蓝色药丸”(“Blue Pill”)。这种方法基于AMD公司的SVM/Pacifica 虚拟化技术,据说甚至可以绕过Windows Vista x64的安全机制。
对于计算机安全而言,虚拟化技术并不是万灵药。不过,世上本来就没有万灵药。