微软虚拟服务器安全:十项技巧与设置(1)
虚拟化为那些尽力使服务器数量跟上业务压力增长的企业管理人员及工程师们创造了巨大的实用价值。它使硬件资源得到最大程度的利用,同时让企业设计及实施新方案的过程变得更为灵活。然而,虚拟化的逐步推进也带来了一些相关的安全问题。
微软的服务器虚拟化技术能够很容易地通过正确的规范及处理方式来确保其安全性。而相关应用标准与IT专业人士的有效努力则可以进一步将安全体系打造得固若金汤。
基础知识
在我们开始之前,首先需要确定一点,也就是我们已经足够了解本文中将会涉及到的微软服务器虚拟化技术。请看图一。
图一:微软服务器虚拟化组件
主机操作系统
一个虚拟化的硬件平台需要一套由系统工程师加装了虚拟化组件的基础性操作系统(即OS)。在Windows Server 2008 R2环境中,所需要的是64位的标准化服务器、企业或者数据中心。总之要么是一套标准化的装置、要么是一套具备服务核心的执行设备。在本文稍后的部分中,我们会看到大家选择的执行设备如何对安全性造成影响。
Hyper-V
虚拟机上始终具备一套虚拟机管理系统,它记录着主机服务器的硬件信息。微软将这套管理系统命名为Hyper-V。这是一套非常小巧的底层工具,用以完成下列任务(详见图二)
◇ 优化虚拟机的中断调用指令
◇ 对共享内存进行管理
◇ 一般来说,它使虚拟机无需通过主机操作系统即可实现对系统资源的调用,同时也管理着配置中指定分配给操作系统的资源
它绝对不会运行除上述功能以外的任何其它进程。举例来说,它不会运行第三方驱动程序。由Hyper-V所提供的小规模攻击防御层本身可以被视为一种不折不扣的安全掌控机制。Hyper-V及其相关管理文件被作为Hyper-V服务的一部分安装在主机上。
图二:微软虚拟化服务器(简称微软MSDN,2011)
分区
各个分区由虚拟环境内部的诸多操作单元加以分割。根据微软MSDN(2011)中的描述,“每个分区都是一个独立的逻辑单元,由虚拟机管理器进行支持,而操作系统则运行于分区之中”(见第二节)。而另一种更表面化的定义是:分区是那些次级操作系统执行时所处的区域。然而,并非所有分区都有对等的优先级。
Windows 服务器中的主(又称‘母’)分区(简称RP)就是这样一种强制性的实体。虚拟化堆栈就存放在这里,而系统管理员则通过它对虚拟机项目进行创建、启动、停止以及管理。而它与子分区的区别在于,它能够直接访问硬件资源(摘自微软MSDN,2011)。尽管主分区如此重要,但生产系统却并不运行于其中。这是子分区所要负责解决的问题。
子(或称为次级)分区(简称CP)包含生产系统以及操作系统,正如常见的硬件所扮演的角色。而不同之处在于这些子分区没有足够的权限来直接访问由底层硬件平台所提供的资源。换句话来说,“它们具备一种虚拟化的处理外观,并运行于为每个子分区单独分配的虚拟内存地址之中”(摘自微软MSDN,2011,第四节)。主分区以及虚拟机管理器能够实现对内部及外部资源的调用,包括来自物理网络连接上的各类资源。
我们当然可以进一步挖掘微软虚拟机中所应用的各种服务功能及端口,但这种比较深入的话题会引发更多关于Hyper-V及虚拟机的安全争议。关于图二中所描述的各组件的详细信息,请参阅文章附带的参考文献。
缩小遭受攻击的范围
对于微软虚拟服务器环境的攻击可能针对以上谈到的所有项目,包括全部支持文件以及驱动程序。然而,实际遭受攻击的范围取决于我们对下列步骤的执行是否到位:
步骤1: 对主机进行强化
步骤2: 对管理系统以及虚拟机操作系统进行强化
步骤3: 确保全部用户都以最低权限进行访问
步骤4: 将管理员对于主机、主分区以及虚拟机管理系统的操作权限进行隔离
步骤5: 确保虚拟机文件,包括硬盘、备份以及归档的安全性
步骤6: 启用审核机制
步骤7: 注意更新虚拟机归档文件补丁
步骤8: 使用VLAN及复数网卡对虚拟机访问及管理系统加以隔离
步骤9: 利用虚拟网络对同一台主机上的诸多虚拟机进行隔离
步骤10: 控制虚拟化技术的应用范围