Breakpoints:An Analysis of Potential Hypervisor Attack vectors (断点:潜在的管理程序分析攻击变量)

摘要

云计算正在迅速转变信息服务的交付。它提供了一个可扩展,可靠的平台,为地理分布式用户动态配置计算资源。尽管低成本计算和基础设施随需应变的好处是,受到影响的云的风险会降低许多潜在的使用者。云服务由称为虚拟机的虚拟化操作系统实现。虚拟机驻留在称为虚拟机管理程序的专用服务器上。管理程序为底层的硬件和资源提供管道。由于它们的重要作用,它们也是攻击的主要目标。它们不仅包含虚拟机,还允许访问硬件资源。越来越多的公开漏洞表明,攻击者将目光瞄准管理程序。本研究考虑了ESXi 5.0虚拟机管理程序平台中的漏洞。它专注于攻击,这些攻击升级了利用主机元数据的权限。识别和分析四个潜在的攻击载体。建议应对这些日益增长的威胁的建议。

关键词:云计算,虚拟机管理程序,虚拟化,云安全,性能监控,ESXi 5.0。

 

I简介

云服务很受欢迎,因为它们提供了一种简单,无缝的方式来配置应用程序和信息服务。它们经常降低成本,尽可能减少系统总损耗,按需提供可扩展性,并缩短企业响应时间。小型企业采用了云计算基础设施,因为它与大型企业的竞争环境相当。它允许访问相同的平台和系统,这些平台和系统历史上是除了最大的企业之外的所有平台和系统。云计算的目的是将系统和硬件商品化,从而将重点转移到内容和服务交付。然而,这比以往都更依赖于完善的基础设施。渲染云服务的关键组件之一是称为虚拟机管理程序的专用服务器。该服务器托管虚拟化操作系统并且为云服务提供支持的应用程序。这些管理程序能够同时托管多个虚拟机。它们是云架构中的重要组成部分

然而,管理程序也为攻击者提供目标。恶意管理程序为攻击者提供了双重机会:访问信息和令人印象深刻的计算能力[1]。虚拟机管理程序可以在其内部文件系统上保存虚拟机,也可以访问远程虚拟机存储。他们还可以访问数据存储和另一个隔离的管理网络。复制,销毁或修改大量输出的能力。通过设计,虚拟机管理程序位于重要的计算硬件上。他们的操作系统通常是基于Unix的,比较稀疏。这成为进行非法活动和服务的理想平台。即使没有更改数据,未安装未授权的程序,虚拟机也可能被拒绝执行正常工作所需的资源。这种拒绝服务是另一种形式的攻击。在另一个方面上,如果损坏的虚拟机管理程序报告系统状态的更新,则云操作的稳定性可能会受到损害。通过更改元数据,可以在其他管理程序上绑定资源,强制虚拟机的迁移,并将负载平衡进程混淆在系统管理器中。这些风险有一个可怕的含义:如果一个管理程序不被信任,整个云都会变得很危险[2]。

为了减少风险,有必要确定可能损害必要元数据的点——硬件监控,性能分析和运营管理中使用的信息。尤其是本研究集中在管理程序中的元数据攻击向量。它集中在可以替换,伪造或销毁正在传达给其他基础架构组件的状态更新的领域。这些实体可能包括虚拟化管理器,云监视器和系统日志记录器。由于大多数以前的研究倾向于Xenserver或Qemu等开源平台,本研究的重点是ESXi 5.0,一种广泛分布和高度信任的专有管理程序。分析确定了四个潜在的断点。它们是(1)在防火墙上,(2)在SSH代理API,(3)代理和其关联的库之间,以及(4)代理和底层内核之间。本文的目的是更详细地分析这些威胁。

本文的其余部分安排如下:第2节提供有关云计算,虚拟化和以前关于虚拟机管理程序安全性的研究的背景信息。 第3节回顾了VMware ESXi 5.0管理程序的体系结构。 第4节考虑各种监测程序。 第5节描述了假设的威胁模型。 它考虑了各种操作收集和分发的元数据的使用类型。 第6节分析潜在的攻击向量。 最后,第7节提供了对未来研究的总结和预测。

 

 

 

II相关研究

Organizations已经很快将云计算整合到其信息技术战略中。云在计算硬件和最终用户消费的服务之间提供了额外的抽象层。云可以设计用于私人或公共访问。它们可以在组织内托管或通过服务级别协议签约。一些公司租用基础设施,有些公司使用该平台,而另外一些则支付软件即服务的费用。尽管有很多细微之处,但所有的云都是基于相同的概念:它们是为地理分散的个人提供信息服务的平台。一些因素刺激了这一基础设施的发展。例如,云降低了IT基础架构的成本。数据中心需要持续投资计算机硬件。云提供相同的访问资源,而不需要预付费用。此外,它们提供可扩展性,没有高集中性或块状投资。可根据需要增加更多存储空间。最后,云提供了一致的全局访问。来自世界各地的员工,客户和合作伙伴都可以访问组织的信息资源。

Fig:1.虚拟化的概念与云基础设施的形成结合在一起

虚拟机在具有虚拟机管理程序的专门程序的主机上运行。有两种类型的虚拟机管理程序。第一种类似于可以安装在计算机现有操作系统上的应用程序。 它们最适合用于虚拟机的早期开发和配置阶段。第二类管理程序是独立的操作系统。 因此,它们通常被称为“裸机”管理程序。以更少的开销,它们更有效率和更容易定制。因此,数据中心最常用他们的主机装备裸机管理程序。因为数据中心通常使用数百甚至数千个虚拟机管理程序,所以使用专门的服务器来管理虚拟机管理程序。这些服务器根据其管理功能的范围,通常称为虚拟化或云管理器。它们聚合管理程序的计算资源并分发虚拟机的工作负载。

由于其在配置信息服务方面的关键作用,管理程序通常是攻击目标。他们的slim操作系统具有最小的安全功能,使其相对容易进入。这可以通过暴力,社会工程或特权升级来实现。一旦获得访问权限,攻击者可能会瞄准虚拟机或数据存储,或者他们可以选择利用虚拟机监控程序的操作系统作为运行非法程序的基础[3]。 此外,攻击可能侧重于在云中造成破坏,使用虚拟机监控程序作为注入系统状态的恶意元数据的工具[4]。 由于以前的一些研究已经探讨了对虚拟机的威胁,本研究集中在后两个方面。

本节的其余部分专门用于审查以前针对虚拟机管理程序漏洞的研究。它们倾向于专注于内存,因为内存代表了虚拟化中最弱点。它进一步得出结论,这在本研究中是有意义的。一项研究分析了内存虚拟化技术的潜在风险[1]。 管理程序目前通过相同的技术来控制内存分配和内存隔离—地址转换。虚拟机管理程序确定要分配给虚拟机的一组内存页面,并为每个虚拟机维护一个映射表。它处理了一个嵌套页表,以进一步解除与实际硬件的内存分配。这种方法似乎使得虚拟机难以逃避其分配空间的限制,但它并不能防止攻击者访问系统内存并损害元数据。

       为了进一步减少虚拟机管理程序攻击面,提出了一种名为NoHype的系统,允许客户在底层硬件上本机运行,同时保持运行多个虚拟机的能力[2]。没有炒作预分配的内存和处理器核心,所以虚拟机管理程序不必动态地执行。这消除了虚拟机直接与虚拟机管理程序交互的需要,减少了注入恶意代码的机会。该系统的缺点是大多数企业超额订购其计算资源,以最大限度地提高云实用性。

III系统架构

       该研究的使用平台是VMware并入的ESXi 5.0管理程序。存在关于开源虚拟机管理程序(如Xen或KVM)的脆弱性的研究,但对于其他专有平台研究较少。这可能是由于公有领域的信息有限。

       这项研究的目的不是对ESXi平台产生任何负面的暗示,而是帮助确定潜在的安全威胁,邀请解决方案,并乐观地鼓励其他同行为有限的研究领域做出贡献。

在识别潜在的破坏性威胁之前,首先要了解架构的内部工作是非常重要的。 ESXi平台是一个裸机管理程序,由其自己的专有操作系统组成。操作系统具有POSIX类型的风格,具有受限参数,以减少管理交互的需要,同时尝试最大限度地提高安全性ESXi由几个组件组成:VMkernel,数据存储,直接控制台用户界面(DCUI)以及从基础架构代理到公共信息模型(CIM)的各种各样的典型组件[5]

Fig.2 ESXi 5.0架构的细分

命名为VMkernel(版本版本#768111)的内核是操作系统的核心。它包括几个关键的功能组件,包括API接口,资源调度算法,设备驱动程序(存储,网络,VM文件系统)以及虚拟机管理器(VMM)之间的接口。VMkernel还直接与主机(主机管理服务)和SNMP等系统代理进行交互。

在所有的代理中,hostd是最关键的。该代理负责在vSphere虚拟机管理器和ESXi虚拟机管理程序之间提供管道。如果主机代理终止,则在运行期间,管理程序将立即从vSphere断开并发出脱机状态。从这里,需要重新启动系统才能重新启动代理并将ESXi重新联机。

但是,只有vmware-watchdog代理已被终止,因为该代理负责确保hostd正在运行,否则将重新启动它。关于hostd的另一个重要注意事项是,通过逆向工程,确定该代理在广度和脆弱性方面大部分系统调用。还有一个ws-man代理,用于协助主机硬件健康监控的共同信息模型。

提供了ESXi架构的概述后,应讨论一些额外的安全细节。系统利用文件结构,在启动时将基本文件解压缩到内存中[6]。初始化后,这些文件用于运行操作系统,并作为固件的一部分进行写入。为了减少恶意软件和内核损坏的风险,系统架构在重新启动时不会维持对操作系统组件的修改。这使得很难长期利用系统功能。更改只能通过使用VMware设置的特殊配置文件(例如/etc/rc.local目录下的rc.local文件)来持久化。此外,访问操作系统内核是有限的,只能通过使用DCUI进行访问。 BusyBox接口可以提供有限数量的服务命令。 总而言之,尽管ESXi虚拟机管理程序不是绝对的,但它确实包含了几个有效的限制。

IV Hypervisor监视操作

       感兴趣的一个特定领域是如何建立和执行管理程序监视。能够监控硬件健康状况,主机性能和互连操作是维护运营云基础架构的绝对必要条件。任何监测部门的失败都可能导致客户不满意提供的服务质量,甚至造成灾难性的破坏。监控系统可以检测到问题,要被识别的优先级和要启动的故障排除操作。由此,必须在管理程序中的几个阶段部署监视。ESXi 5.0如何进行监控如下:

A硬件健康监测(Hardware Health Monitoring

       管理程序监控的第一阶段是能够对硬件资源进行健康检查。包括外部元素(如虚拟化管理器)的内核需要被通知硬件组件的功能。ESXi通过分析每个硬件的系统心跳来做到这一点。系统心跳是VMware简化我们的一个概念,以简化集中管理程序监视的过程。心跳指示硬件组件的状态。例如,内核检查物理存储设备的心跳以查看其是否可操作。存储设备定期发送心跳信号。如果内核检测到具有心跳信号的超时,则会触发来自存储设备的故障信号。这将由系统记录,并将通知转发给负责实体。

B主机性能监控(Host Performance Monitoring

       监控的下一个阶段是指主机性能。即使硬件组件正常运行,了解组件的性能十分重要。主机性能的特点是监控主机硬件资源的利用率。这将包括诸如CPU利用率,内存故障,磁盘的字节读取/写入以及通过每个NIC发送/接收的字节等指标。这是特别导入的,因为管理程序负责向虚拟机提供计算资源。(维持主持人业绩的信息展望,可以引导人们注意资源过度利用或利用不足,加快决策过程。)Maintaining an informative outlook on hostperformance can channel attention towards resources that are beingover-utilized or underutilized and as well as expedite the decision makingprocess.  这也可能导致基于异常资源状态的安全威胁检测。

C运营管理监控( Operations Management Monitoring

         最后,云基础架构的上层阶梯依赖于运营管理监控。这对于能够对主机资源的供应和需求进行交响乐的请求是必要的。为了使虚拟机(VM)变得可操作并实现最大性能,必须有效地管理主机资源。运营管理由查询主机资源可用性(资源池)的模块组成,并根据供需情况进行委托。 它还负责确定哪些虚拟机有权在竞争中接收资源的共享。

D.妥协的管理程序和监控的问题(Problems with a Compromised Hypervisor andMonitoring

       虚拟机监控程序监控的最前沿的一个问题是可能的受损管理程序。攻击者获得root权限后,可能会采用托管虚拟机或利用底层硬件资源进行其他恶意活动,例如托管恶意代码进行网络钓鱼诈骗或参与拒绝服务攻击。为了隐藏被劫持的服务器的证据,攻击者可以利用虚拟机管理程序元数据,使系统正常运行。监控框架已经将很少的安全控制措施纳入其中,使系统状态报告成为可能。例如,通过低估硬件使用情况,可以绕过与性能阈值相关的集中式报警。

V威胁模型

       这项研究假设攻击者没有物理访问数据中心,并且可以信任硬件。据推测,对手能够通过对设备驱动程序,软件应用程序,主机操作系统或0 day攻击的攻击颠覆虚拟机管理程序。攻击向量也可能来自受到攻击的客人,对访问凭据的强力攻击,或升级自己的权限后获得root权限的用户。目标可能是利用虚拟机管理程序或引起整个云端的混乱。两个议程需要修改管理程序生成的有关系统性能,虚拟机状态和硬件状态的元数据。获得root权限后,假设管理程序监视元数据将被泄露以掩盖攻击。此外,预计攻击者将重点放在驻留在虚拟机管理程序内存中的元数据上,并尝试在虚拟化/云管理器共享之前更改值。本研究着重于识别攻击向量,从中可以从管理程序中访问和修改此信息。

VI潜在的攻击向量

如前所述,已经鉴定了几种潜在的攻击载体。每个向量使用不同的技术,但它们集中在一个单一的目标上:篡改hypervisor元数据的交换。攻击者可以通过技能,知识或人力(团队)等可用资源的影响来选择一个向量。无论是通过重定向HTTP流量还是挂钩系统调用,这些元数据将被破坏。

因此,对ESXi 5.0管理程序分析了四个潜在的攻击向量。他们都以试图隐藏恶意活动为借口的目标元数据。相对于公开可用的架构信息,以下向量以升级难度级别的顺序表示。攻击大纲如下:

A使用防火墙端口重定向数据流(Redirecting Data Flows Using Firewall Ports

第一个攻击载体旨在将要传输到其他计算机的元数据。在升级用户权限之后,可以修改防火墙,以便在离开主机之前将数据重定向到rootkit。这是通过防火墙中的更改端口规则来实现的。这项研究的首选端口是22号,其中一个由ESXi的默认配置定义的少数开放端口之一。其他港口将包括但不限于:端口443(HTTPS访问,ws管理),端口902(主机到主机访问,心跳线)和端口5989(CIM与HTTPS)[7]。

端口22用于安全外壳(SSH)服务器的输入传输控制协议(TCP)。SSH是一个很好的目标,因为它是虚拟机管理程序中的内部代理,通过传递数据包通过防火墙与外部网络进行通信。而在这里攻击变得可行。

为了说明,首先必须修改包含管理程序上的防火墙规则的配置文件。这是在/etc/vmware/firewall/service.xml的目录路径下列出的service.xml文件。必须将权限分配给文件以允许读写活动。对文件的修改将不会持续。然而,由于虚拟机管理程序已经被破坏以允许修改持续,这不再是一个障碍。该规则将允许传入数据通过端口22流入防火墙,然后在内部重新路由到另一个端口,例如号码1000.从这里,已经战略性地放置在管理程序内的恶意应用程序可以拦截元数据。它将分析或伪造它,然后将其通过另一个端口1001传回防火墙。一旦数据被中继,防火墙将将数据引回到正确的端口22路径,其中预期的目的地是SSH代理商因此,有可能用合理报告替代低估的信息。SSH代理在不知不觉中接收到操纵的元数据并继续进行交换,而不会在虚拟机管理程序上引发任何flags。如Fig3:

Fig3: 通过修改端口的防火墙规则来重定向元数据

可能会出现关于数据请求超时和触发报警的问题。这可以通过进一步研究管理程序的配置文件并进行攻击者认为合适的必要调整来解决。

B.渗透应用程序可编程接口(Infiltrating the Application ProgrammableInterface

       下一个攻击向量突出显示了应用程序可编程接口(API)对恶意元数据的利用。API是将应用程序连接到应用程序并允许数据的翻译交换的通信网关。代理商将通过API与另一个代理进行通信,并传递数据,无论编程语言障碍如何。通过利用应用程序结构,可以拦截在ESXi中的应用程序之间传递的元数据。

目前公开的有关ESXi API开发,功能和部署的丰富知识。VMware甚至提供包含以Java编译的示例脚本的软件开发工具包(SDK),以帮助开发人员将其应用程序连接到适当的API调用。

       这种类型的攻击集中在管理程序级别上。从这里,目标是修改系统配置文件以调用恶意脚本,该脚本将使用API协议来处理关键代理。然后在离开代理程序之前截取这些协议,并在将其传递给预期的接收方代理之前分析其中的元数据。Fig 4.攻击者可以根据可用的文档确定要拦截的API协议。然后攻击者的恶意脚本可以使用与所需元数据相关的必要API进行改装。最后,可以利用元数据。这提出了可能对虚拟机管理程序基础结构造成重大损害的问题,因为元数据可能涉及可能会将攻击扩散到云中其他地方的任何各种关键系统信息。

       SSH代理和hostd代理之间的程序接口是一个特别成熟的攻击目标。这是因为操作元数据以纯文本形式通过这个管道; 在加密和发送到服务器之前,或者解密并发送到内核。这也适用于vmware-watchdog代理和ws-man代理程序。

Fig 4:拦截应用程序可编程接口协议,分析代理之间交换的元数据。

C. HookingLibrary Calls

向更深层次的转变带来了第三个攻击向量,挂钩库调用。挂钩的概念是在将其恢复到呼叫的原始目标之前拦截,分析和自定义系统或库调用的能力,即包含功能的系统或库文件的目标。这些功能是产生所需操作的代码脚本,例如打印到另一个脚本或者直到与内核交互。 没有首先在运行时预加载自定义库之前,不能拦截呼叫。然而,这可以通过配置系统文件来存储自定义库文件,然后将库文件预加载到系统来实现。

在这个攻击向量中,目标是用于检索库函数的库调用元数据。这涉及一个恶意脚本,该脚本等待从应用程序到库的调用,然后拦截该调用。然后,脚本可以在将调用发送到库以访问库函数之前分析和自定义该调用。如Fig5:

这种攻击需要对ESXi系统架构的更深入的了解,这些架构不容易公开使用。或者,研究平台的实验可以说明。挂钩库调用的好处是元数据将以纯文本格式传递,已经通过SSH解密算法。

D挂钩系统调用(Hooking System Calls

最后,类似于挂钩库调用的方法也可以应用于挂接系统调用。系统调用与库调用不同,后者扩展了应用程序与库之间的可移植性。 系统调用提供应用程序和内核之间的交互。应用程序可以使用系统调用直接与内核进行交互,而不是使用库函数。这需要知道内核特定的编程结构。但是,由于VMware创建了与ESXi5.0内核交互的代理,因此可以集成直接调用。 通过使用诸如strace之类的实用程序来记录系统调用,可以确定未公开函数的含义。经验和逆向工程的结合提供了支持后续开发的必要意义和背景。

       关于访问库函数的库调用,系统调用指向维护系统函数的系统调用表。在这里,内核使用系统功能进行关键任务; 如处理,内存分配,设备驱动程序管理等。它是从挂钩系统调用截取元数据的地方,形成最终攻击向量的动机。

Fig 6:挂起从ESXi代理发送到VMkernel的系统调用的恶意脚本。

 

再次,一个恶意脚本预计会有一个呼叫,但这次是来自一个代理的系统调用。一旦系统调用被发送,恶意脚本会插入调用并解释元数据,然后加快回调到内核,反之亦然。如前所述,hostd代理是一个主要的目标,因为它使得系统调用最多。显示这些调用可以直接访问物理内存。这具有的破坏性的影响是,现在的恶意脚本可以通知攻击者进一步找出资源进行剥削。例如,当代理需要将数据存储在内存中时,它会向内核发送系统调用来处理请求。内核分析可用的内存资源并在其中分配一个位置,然后将回复发送回代理中继专门存储数据的位置。当该系统调用被恶意脚本拦截时,攻击者现在可以将存储器中的数据存储在哪里并直接访问。这种易于访问现在迫使数据变得容易受到虐待。此外,强大的计算机科学知识和对ESXi系统架构的细致直观的掌握是必不可少的,以便在没有检测到的情况下成功执行这个潜在的攻击向量。尽管如此,这可以实现。

VII总结

这项研究分析了虚拟机管理程序的潜在缺点。它查看了可能访问和修改,删除或将元数据注入与云/虚拟化管理器的虚拟机管理程序通信中的潜在点。这些区域在防火墙,SSH API和代理之间,代理程序及其相关的库之间以及代理程序和系统内核之间。发现基本技术,如挂钩系统调用和重新路由数据是潜在的妥协点。通过提供误导性数据,可以颠覆虚拟化活动,甚至颠覆云计算。提供了基本建议。未来的研究将旨在了解云操作对修改或注入的元数据的敏感性。这项研究可能会加强虚拟化,降低云计算的风险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值