虚拟化已经在数据中心证明了它的价值,但它能在战术环境中工作吗?是的,但前提是它是安全的。
允许移动数据的计算能力的发展为将战术车辆转变为滚动数据中心铺平了道路。这些令人印象深刻的机器为作战人员主宰战场提供了宝贵的资源。不幸的是,尽管将悍马或坦克与实时智能计算设备打包有明显的好处,但这些功能的代价并不那么明显:牺牲了宝贵的动力、冷却能力和后勤空间来容纳新设备。例如,太多的计算机可能会对能见度产生不利影响或在已经灼热的环境中产生额外的热量,使士兵的反应时间变慢,并可能增加健康和安全风险。
有趣的是,这些滚动数据中心正在经历许多与当今企业数据中心相同的挑战 - 再次,功耗,冷却不足和空间不足。为了应对这些挑战,数据中心经理已转向虚拟化来执行物理到虚拟服务器的整合,定期实现 10:1 或更高的优化。数据中心虚拟化的经验教训是否也能使战术车辆环境受益?包含不同分类级别内容的战术车辆的特殊安全要求如何?了解虚拟化和物理服务器整合之间的独特挑战和相似之处,以及开源社区取得的一些安全虚拟化进步至关重要,这些进步可以直接应用于帮助作战人员。
虚拟化的好处
在现场和数据中心部署虚拟化有几个好处,包括整合、统一性、实时迁移和性能,这可以专门帮助作战人员并提高前线的效率。
固结
当工作负载通过虚拟化进行整合时,硬件利用率会提高。可以用更少的硬件完成更多工作,从而节省电源、空间和冷却。在战术环境中,可以通过计算要求的名义增加来添加功能。通过在更少的物理系统上整合工作负载,新可用的空间可以重新用于额外的任务功能、更多的子弹,并为机组人员提供更多的肘部空间。
均匀
虚拟化允许数据中心管理员从操作系统中抽象硬件。这使数据中心经理能够以尽可能低的价格获得性能最佳的硬件,而无需重新认证软件堆栈。硬件供应商可以相互竞争以提供最佳价值。在战术环境中,这种优势更加深远,不需要每个应用程序都有自己的计算机,具有异国情调的外形、电源要求、专有连接器等。因此,可以更轻松地添加新功能,并且可以更快地进行硬件更新,因为如前所述,重新认证时间缩短了。此外,并非每辆车都需要相同的功能,因此无论是否使用该功能,都需要严格预算功率、空间和冷却。最后,统一性使战士更加灵活。
实时迁移
如果在数据中心的虚拟机管理程序上检测到即将发生的硬件故障,则可以实时迁移工作负载,而无需停机。即使虚拟机监控程序意外失败,在其上运行的虚拟机也可以在其他硬件上重新启动,而无需用户干预。在战术环境中,导致计算机损失的战斗损坏可能会导致战斗激烈时所需的关键能力的损失。通过直接在物理硬件上运行工作负载,在作战人员返回进行维修的车辆之前,该功能可能无法恢复,这可能为时已晚。如果工作负载是虚拟化的,则可以将其实时迁移到车辆中其他位置的功能服务器上或在计算机上重新启动,而无需作战人员干预。因此,作战人员在长时间的战斗中失去关键任务组件的可能性降低。
性能
某些需要在系统之间进行低延迟或高带宽通信的工作负载在同一硬件上进行虚拟化时实际上运行得更快。这是因为虚拟网络通信是通过系统背板完成的,而不是通过更慢、延迟更高的网络基础结构从一个物理系统到另一个物理系统。这种提高的性能和更低的延迟可以帮助作战人员在激烈的战斗中更快地做出反应。
虚拟化安全吗?
不是本身。如果虚拟机管理程序遭到入侵,不仅该虚拟机受到威胁,在其上运行的虚拟机以及连接到虚拟机管理程序的虚拟机磁盘文件也会受到威胁,这些虚拟机管理程序可能在其上运行、在另一个虚拟机管理程序上运行或处于静态状态。发生虚拟机管理程序攻击时,需要从已知的可靠备份还原所有虚拟磁盘文件。如果无法确定漏洞利用时间,则可能需要从头开始完全重新安装。许多虚拟化安全解决方案为虚拟机提供了相互通信的可靠方法,但在虚拟机管理程序遭到入侵时,这些工具不提供保护。如果要在战术环境中部署虚拟化,虚拟机管理程序必须是安全的,以便作战人员可以信任支持任务的组件的完整性。那么,是否存在防止此类漏洞利用的技术呢?是的,感谢开源社区。
使用 sVirt 进行安全虚拟化:sVirt 是一个安全的虚拟化开源项目,建立在 NSA 和商业软件行业开创的经过时间考验的 SELinux 开源项目之上,该项目可追溯到 1999 年。sVirt 用于安全地将 KVM(或基于内核的虚拟机)与虚拟机管理程序隔离,以及彼此之间。在我们进入sVirt的细节之前,让我们快速回顾一下SELinux和KVM:
SELinux 早于基于 x86 的虚拟化,最初用于锁定物理系统,以防止流氓应用程序相互伤害以及主系统。SELinux 是关于标签的。SELinux 系统上的每个对象都根据其功能进行标记。这包括进程、用户、文件、硬件设备、网络端口和适配器等。SELinux 策略允许具有某些标签的对象显式访问具有其他标签的对象并拒绝其他所有内容。例如,如果流氓 Web 服务器进程想要读取密码文件,SELinux 将阻止并记录访问,因为 SELinux 策略没有明确允许具有 Web 服务器标签的进程访问标记为密码文件的文件。SELinux 不是 Linux 的附加组件 - 它是内置的。自 2007 年以来,SELinux 已在主流企业 Linux 发行版中默认启用。
KVM 是一个开源项目,于 2006 年出现,并于 2007 年在上游 Linux 内核中被接受,如今可以在许多 Linux 发行版中找到。KVM 的独特之处在于所有 KVM 虚拟机都是 Linux 进程。因此,KVM 非常精简,因为它可以利用久经考验的 Linux 操作系统来管理虚拟机、执行硬件支持,并利用电源效率和性能方面的进步,仅举几例。作为一个巨大的副作用,就像 Web 服务器进程可以用 SELinux 策略限制一样,前面提到的带有 SELinux 策略的 KVM 虚拟机进程(称为 sVirt)也可以受到限制。
在高层次上,sVirt 的工作原理是在虚拟机周围放置 SELinux“力场”,这限制了它们可以做的事情。 sVirt 甚至可以保护没有 SELinux 内置保护(如 Windows)的虚拟机来宾,如图 1 所示。
图1:具有 sVirt 保护的 KVM 的高级概述
当虚拟来宾启动时,sVirt会给KVM Linux进程一个唯一的SELinux标签。相应地,该虚拟机的虚拟磁盘文件被赋予一个匹配的标签。除了进程和虚拟磁盘文件之外,系统上没有其他对象具有相同的标签。当第二个虚拟机启动时,第二个虚拟机的 KVM Linux 进程和虚拟磁盘文件会被赋予自己唯一但匹配的标签。这一切都如图 2 所示。
图2:sVirt 独特的虚拟机进程和磁盘文件动态标记
如果虚拟机能够执行虚拟机管理程序攻击并获得管理员访问权限,则内核级别的 sVirt 将虚拟机限制为 sVirt SELinux 策略允许的内容,即查看自己的磁盘文件(而不是其他文件),使用虚拟机严格允许的其他资源,而不是其他资源。
听起来不错,但 sVirt 真的有效吗?实际上,是的。在2011年美国黑帽大会上,Nelson Elhage提出了一种破坏KVM的方法,但使用sVirt挫败了他的方法。
旁注:有趣的是,sVirt创建的标签是多类别安全(MCS)标签。MCS(和多级安全或MLS)标签是直接源自NSA和其他机构推动的安全计算工作的概念。令人着迷的是,这展示了具有分类数据要求的机构如何帮助开源社区将其需求从利基市场转变为主流。通过利用 SELinux 经过验证的 MCS 功能,使用 sVirt 对 KVM 进行通用标准认证变得更加容易。
Red Hat 是 sVirt 和 KVM 项目以及 SELinux 的贡献者,利用其 Red Hat Enterprise Linux 和 Red Hat Enterprise Virtualization 产品。
今后的工作
事情总是可以变得更好、更安全。集成到虚拟化中的另一个概念是资源控制组或 cgroups 的概念。就像 SELinux 可以限制 Linux 进程的访问一样,cgroups 用于控制 Linux 进程消耗的 CPU、网络、内存和其他资源。由于 KVM 虚拟机是 Linux 进程,它们也可以像被 svirt 限制一样被 cgroups 限制。这为虚拟化多租户的资源公平性铺平了道路。一个集成商的虚拟机不会过度消耗其公平的系统资源份额,这可能会对同一虚拟机监控程序上的另一个集成商的虚拟机产生负面影响。从安全角度来看,cgroups 还可用于防止对一个虚拟机的拒绝服务攻击导致整个虚拟机监控程序瘫痪。
另一个正在考虑的开源努力是可信计算。随着包含敏感数据的计算资源越来越深入战场,启动和信任数据中心中未锁定和受保护的联合系统的安全方法变得至关重要。开源社区以及政府机构以及硬件和软件供应商正在积极研究可信计算技术来满足这些需求。由于KVM是Linux进程,因此快速采用这些新兴的可信计算方法的能力变得更加简单,而不是发明全新的东西。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !