首页 资讯 招标 项目 展会 更多

位置:首页 > 新闻频道 > 技术动态


成果介绍: 一种基于VT-d技术的虚拟机安全隔离框架研究

2015-12-12 09:02:33 安装信息网

相关链接: 中国安全网 中国质量网 中国论文网 中国资讯网

   作者:郑晓敏

    云计算以资源管理集中化、应用和服务托管化的核心理念,使计算机资源真正实现了按需服务,极大提高了IT资源利用率及各行业的信息化水平。虚拟化技术作为云计算平台IaaS(infrastructure as a service,基础设施即服务)的重要技术支持,具有提供系统资源的隔离性、封装性以及对虚拟资源良好的可管理性等特点,有助于各种网络环境的跨平台、松散耦合的若干服务资源的协同。然而,云计算在提高资源利用率、降低服务成本以及增加应用智能性等的同时,面对的安全威胁相比传统PC来说也更为严峻。国内外近几年发生的重大安全事件证实了云计算安全威胁的严重性,如2013年Amazon重大中断事故、Dropbox崩溃事故、Facebook事故;2014年eBay数据大泄露,阿里云、腾讯云服务器相继宕机;近两年Google -直存在的数据泄露事件等。正如Gartner调查报告的结果,安全与隐私成为人们对云计算最为担心的问题。作为云计算的重要组成部分,虚拟化技术也存在着许多安全问题,如来自虚拟化管理平台的管理员内部攻击、来自虚拟层的虚拟机内核提权漏洞利用攻击等。Coogle数据泄露事件就是最典型的虚拟化攻击案例。

    云环境中的安全机制通常建立在为虚拟机构建隔离执行环境之上,虚拟化技术有助于提升该类隔离环境的安全性。系统虚拟化技术包括对CPU、内存及设备等物理资源的虚拟。目前两大芯片厂商Intel和AMD从硬件的角度对CPU的虚拟化提供了较好的技术支持,但内存和设备虚拟化方面的安全问题还有待解决。此外,可信计算组织TCC提出的将可信平台模块( trusted platform module,TPM)作为整个系统的可信根的信任链传递思想则为构建虚拟机的安全执行环境提供了一定的借鉴。为此,本文提出一个Xen平台上基于独立域思想及VT-d虚拟化技术的虚拟机安全隔离框架,该框架能够满足虚拟机在I/O访问和内存管理两方面的安全隔离需求。

1安全威胁

    云环境下虚拟机面临的安全威胁来自多方面。从虚拟机应用层往底层平台延伸,包括:1)虚拟机自身的数据和代码可能被攻击者窃取;2)虚拟机之间的数据传输安全性易受威胁;3)攻击者从特权域或利用虚拟机的内核提权漏洞“窥探”虚拟机内存信息;4)虚拟机发起恶意DMA操作访问其他虚拟机信息甚至重写DMA内存区域导致整个系统崩溃等

    针对上述问题,国内外学者按照系统层级来区分,主要从虚拟机管理层( VMM)和虚拟机层两方面进行虚拟机隔离方案的研究。Overshadow[31、Bastiod、SecureME等通过增加VMM功能来提高宿主机安全性,但是这会增加系统可信基( TCB)的大小,使得系统安全性问题更多;相反HyperSafe、CloudVisor、SICE、Barrier、SplitVisor等则通过减少VMM功能以减少TCB大小,提高安全性。虚拟机层面的安全主要是利用VMM提供的虚拟机自身隔离性在软件层面实现,包括基于硬件的H-SVMSilakov、Ramya、Butterworth和基于软件的TerravTPM、TVEM等,前者修改硬件开销较大,后者提升了效率但安全性无法保障。此外,许多研究者基于硬,辅助虚拟化技术如VT-d技术对虚拟机安全进行了研究如减少中断次数的ELI方法、Paul的保护策略以及习形rIOMMU[2U模型等,在提升效率的同时提供基于硬件保护的设备I/0安全,但这些研究均没有提出系统的虚拟机隔离方案。因此,本文利用VT-d技术将内存区域划分,基于DMA重映射和中断重映射机制,提出一个虚拟机安全隔离框架,着重提升虚拟机之间的设备I/0访问隔离及内存访问隔离,并结合基于独立域的vTPM域,保护虚捌机内密钥等敏感数据。

2安全架构

    针对云环境下虚拟机之间的安全隔离需求,即虚拟机的数据安全存储、虚拟机之间的I/0访问隔离及内存访问隔离,本文基于VT-d技术和可信计算技术,提出一个虚拟机安全隔离框架(如图1所示),该框架包括vTPM域模块、Mgnt管理域模块、授权表策略管理模块以及VT-d硬件设备抽象模块。

2.1功能模块描述

2.1.1 vTPM域模块

    1) vTPM功能实现

    vTPM域模块封装了Xen的mini- OS微型操作系统,作为独立域运行。vTPM提供了类似硬件TPM的功能,包括密码功能、密钥管理、策略管理、vPCR管理等。本框架使用硬件TPM对vTPM域的密钥及内存数据进行加密保护,虚拟机中的数据则通过vTPM提供的密钥进行安全存储。vTPM域的密钥层次如图2所示,其中虚拟机的可信身份由vEK和EK/EPS的映射关系标识,基于该映射关系将信任链由物理平台扩展到虚拟平台。

    2) vTPM前/后端驱动

    Xen-4.3.0架构目前只为PV虚拟机提供vTPM支持,本框架通过修改Xen底层模拟软件Qemu来兼容支持HVM虚拟机。前端驱动功能比较简单,接收来自vTPM后端驱动的请求,将根密钥的获取、加解密密钥等命令转发给Mgnt管理域的后端驱动,最终交由硬件TPM处理,其他命令则直接由vTPM域模块完成。

    vTPM后端驱动用于接收和转发虚拟机发送的TPM命令。qemu-frontend前端驱动实际上包含了两个部分:qemutpm tis驱动和Xen stubdoms backend驱动。其中,qemu tpmtis驱动由Qemu模拟生成,作为虚拟tpm驱动供HVM虚拟机使用,用来接收HVM虚拟机的vtpm命令请求;Xenstubdoms backend驱动则用于处理Qemu与vTPM域间的通信。在Qemu为HVM虚拟机初始化系统资源时,Qemu将qemu-frontend挂到xenbus总线上,并建立与vTPM域的连接通道。

2.1.2 Mgnt管理域模块

    Mgnt管理域独立于Xen的特权域Dom0,负责每个独立的vTPM域的创建、删除、恢复等操作,并负责建立vTPM域与虚拟机的唯一对应关系。Mgnt管理域的命令过滤模块负责过滤vTPM域的一些改变TPM状态的特殊命令;vTPM域中的资源如密钥由Mgnt管理域的根密钥SRK'加密保护存储;多个vTPM域对硬件TPM的请求通过Mgnt管理域的调度模块处理;迁移管理则由Hypervisor触发,将虚拟机对应的vTPM域一同迁移到目标平台。Mgnt后端驱动用于接收来自vTPM域的加解密、签名验证等请求,TPM驱动tpm_tis则通过passthrough的方式访问硬件TPM。

2.1.3授权表策略管理模块

    本框架中vTPM域与虚拟机及Mgnt管理域之间采用授权表机制实现内存共享。Xen授权表相关操作由20号超级调用-_HYPERVISOR_grant_table_op处理。通过对虚拟机之间的内存映射进行分析,发现该映射过程没有对授权索引GR的来源进行验证,导致内存非法映射请求成功,从而访问内存共享页。因此,该模块将扩展对授权表机制的访问控制策略(如图3所示)。

    经过授权表机制系统调用代码的追踪,虚拟机之间的内存映射最终是在函数do_granttable_op()中完成,因此将该函数作为截获授权操作的位置。X SM模块本身包含了一个函数xsm_grant_mapref()用来处理授权表的检查,但是该函数只是简单地对虚拟机的ssid号进行判断,因此本文在截获位置处添加对授权索引GR的访问控制策略,这里只关心gnttab_map_grant_ref()和gnttab—unmap_grant_ref()两个函数的操作。扩展过程包括3个步骤:1)在XSM模块中添加hooks扩展操作;2)在FLASK模块中添加对授权索引的处理函数;3)在do_grant_table()中调用已定义好的接口。

2.1.4 VT-d硬件设备抽象模块

    该模块由基于硬件的VT-d设备虚拟化实现虚拟机的域隔离。VT-d技术能够将内存区域分割成多个独立的域并使每个虚拟机只能访问相应的域,结合DMA重映射技术实现虚拟机之间的内存访问隔离,中断重映射技术则禁止虚拟机直接发送恶意MSI中断,提高了虚拟机的隔离性。本框架为虚拟机直接分配物理网卡设备以提升虚拟机之间的域隔离性(如图4所示)。

    Xen架构中的Dom0负责所有设备的管理和分配。因此,通过PCIBACK机制屏蔽Dom0中需要分配的物理设备信息(即进行设备隐藏)后,就可以在虚拟机配置文件中加入PCI设备信息而将设备直接分配给虚拟机。PCI配置空间为上层应用提供一个编程接口,其中PCI BAR( PCI base address register,PCI基址寄存器)为操作系统访问设备提供了设备寄存器或设备RAM的I/O地址空间或MMIO地址空间,Xen接收到直接设备分配请求并由Qemu完成虚拟设备的注册和中断绑定后,建立虚拟设备的PCI BAR和硬件设备的PCI BAR之间的映射。

    为了使虚拟机能基于VT-d技术直接访问设备,在虚拟机内需要做三件事情:首先在虚拟机中建立对设备访问的端口PIO和内存映射MMIO转换表;然后通过Dom0中reassign_device()操作实现将设备直接分配给虚拟机;最后通过虚拟机中的VT-dl/0页表索引到的真实物理设备地址进行访问。

2.2模块之间调度关系

    基于VT-d技术提升虚拟机之间域隔离性需要硬件CPU虚拟化特性的支持。在BIOS中启用VT-d支持,在宿主机内核中打开VT-d相关驱动和总线BUS接口,启用DMA重映射和中断重映射。系统引导阶段,由BIOS将重映射硬件单元通过ACPI表报告宿主机上层软件,完成物理平台上的VT-d硬件探测。Dom0启动前则对VT-d硬件进行初始化,即对物理平台上的VT-d硬件进行解析和填充描述,为虚拟机上的VT-d硬件设备抽象模块做好准备工作。

    系统启动之后,当需要创建具备vTPM功能的虚拟机以及需要直接访问物理设备时,首先由Xen LibXL库读取虚拟机配置文件,将读取到的vtpm参数和pci参数传递给底层Qemu,调度Mgnt管理域模块创建相应的vTPM域。然后由Qemu和Xen -起调度VT-d硬件设备抽象模块完成设备直接访问。最后,虚拟机到vTPM域以及vTPM域到Mgnt管理域间的通信通过授权表策略管理模块控制。

3框架实现

    在本文提出的基于VT-d技术的虚拟机安全隔离框架的基础上,以Xen为云计算基础设施平台,实现该隔离框架的原型系统。实验平台为Xen-4.3.0国产服务器,配置Intel E5-2620 6核CPU,8 GB RAM,Ubuntu-13.10Server。vTPM域和Mgnt管理域都为2 MB内存的Xenmini- OS系统,虚拟机测试用例为PV(Ubuntu-13.10/Redhat-6.4)和HVM( Ubuntu-13.10/Fedora20/Win 7)。

3.1功能测试与分析

    功能测试包括:将硬件TPM直接分配给Mgnt管理域;为PV和HVM虚拟机分配独立的vTPM域,并在虚拟机中使用vTPM域执行加解密和签名操作;为虚拟机使用VT-d技术直接分配物理网卡设备。

    1)为虚拟机分配vTPM域

    为了将硬件TPM直接分配给Mgnt管理域,在特权域Dom0的内核中采取了未编译TPM的驱动来隐藏该设备,这样在Dom0中加载tpm_tis驱动时将会发现没有该设备,提供给应用程序的/dev/tpm0接口也不会呈现,如图5所示。图5中,vtpmmgr是Mgnt管理域,vtpml和vtpm2分别是提供给HVM虚拟机ubtHVM-l和PV虚拟机ubtPV-2的vTPM域。vTPM域的密钥将按照本文设计的密钥结构来实现。图6则为vTPM域中的EK公钥。

上述实验表明,本文框架实现了对PV和HVM虚拟机的vTPM兼容管理,提供了对HVM虚拟机vTPM域的支持。框架将Mgnt管理域和每个vTPM域都作为独立域独立于特权域Dom0,减小了系统TCB的大小,减少了来自Dom0的直接外部攻击,且有效利用了Xen虚拟域的地址空间隔离性。

    2)虚拟机加解密及签名

    为便于测试和比较,本文使用应用层TSS协议栈来访问vTPM域。首先采用类型为TSS_KEY_TYPE_BIND的RSA密钥对一个BYTE数组rgbDataToBind(内容为{‘1’h,i,s,e,c,r,e,l})进行加解密测试。RSA的密钥长度有1024位和2048位两种,加密结果写入test.txt中,解密结果则通过读取该文件并对文件内容解密得到。接着验证vTPM的签名功能,签名密钥类型为TSS_KEY_TYPE_SIGNING,对字符串“this is sign verify!”进行哈希运算然后签名。在此只给出2048位的加解密和签名验证结果,分别如图7和图8所示。

实验结果表明,vTPM独立域能够为虚拟机提供加解密及签名功能,且vTPM的密钥层次结构采用受硬件TPM保护的密钥结构,能够在提升执行效率的同时增加密钥的安全性。不同的密钥长度(加密密钥/签名密钥)使得加解密和验证签名哈希值的时间有所不同。

    3)使用VT-d技术为虚拟机分配设备

    本测试为PV/HVM虚拟机通过VT-d技术直接分配网卡设备(设备的BDF号为00:19.0)。该设备在分配之前被宿主机elOOOe驱动占用(如图9所示),利用PCIBACK机制静态隐藏后,该设备分配给虚拟机ubt-HVM-l。通过lspci命令可查看虚拟机中的设备分配情况。由图10可见,网卡驱动由pciback驱动接管,将网卡直接分配给虚拟机后可直接通过该设备进行网络访问。

    实验结果表明,使用VT-d技术将网卡设备直接分配给虚拟机后,只能在该虚拟机中看到该设备信息,其他虚拟机都无法得知该设备的具体信息。因此,VT-d技术能够保证虚拟机之间设备I/O及内存访问的隔离性。

3.2性能测试比较

    1)密钥产生时间

    利用硬件TPM和在虚拟机中调用vTPM域分别产生RSA 1024/2048位密钥的时间来进行性能比较,实验结果如图11所示。硬件TPM产生RSA 1024位和2048位密钥的平均时间分别为1504 ms和2193 ms;vTPM域使用软件模拟器产生密钥(vTPM域的根密钥受TPM保护),产生vRSA 1024位和2048位密钥的平均时间分别为26 ms和155 ms,产生时间较快。由此可见,本文采用的安全隔离框架在密钥产生时间性能上较原生设备有较大提高。

2)加解密和签名验证时间

    该测试调用TSS协议栈中的加密函数Tspi_Data_Bind()和解密函数Tspi_Data_UnBind()完成加解密测试。加密密钥长度不同,得到的加密结果也不同,其中1024位加密密钥的加密结果为128字节,2048位加密密钥的加密结果为256字节,因此加密的时间不同(如图12所示)。解密时从文件中读取密文数据,RSA 1024位的加密结果其解密时间平均需要3815 ms,而vRSA 1024位平均需要60 ms:RSA 2048位平均需要4896 ms,而vRSA 2048位平均需要245 ms(如图13所示)。可以看出,基于硬件TPM保护的vTPM域的实现效率有较大幅度提升。

    本文使用vTPM域对PV虚拟机内核和initrd引导程序进行完整性度量并将度量值写入平台寄存器PCR04和PCR05中,通过身份证明密钥AIK对寄存器PCR值进行签名并验证,对签名验证时间的比较如图14所示。由图14可见,不同长度的签名密钥在验证签名值时,硬件TPMRSA 1024位和2048位签名验证平均时间分别为1249 ms和3041 ms,而vTPM RSA 1024位和2048位的平均时间分别为50 ms和260 ms。由此可见,vTPM域的签名验证时间性能优于硬件TPM。

    3)网络访问吞吐量及CPU使用率

    本文将使用VT-d技术将为虚拟机直接分配的物理网卡性能与设备模拟生成的虚拟网络设备性能进行比较。本文采用较为简单的netperf测试工具,在支持VT-d技术和不支持VT-d技术两个环境下,测试在虚拟机之间批量发送TCP_STREAM包的网络吞吐量,并对比测试网络访问过程中系统的CPU使用率。在宿主机上部署netserver服务器端,在HVM虚拟机中部署netclient客户端。虚拟机I/O访问吞吐量结果如图15所示,实验过程中的CPU使用率如图16所示。

  上述结果表明,当HVM虚拟机通过设备模拟的虚拟网卡进行网络访问时,VMM需要频繁地参与到虚拟机I/O访问过程中,这会带来性能开销,虚拟机I/O访问平均吞吐量为1595 Mbps。启用VT-d技术之后,虚拟机直接访问物理网卡的I/O平均吞吐量(2449 Mbps)几乎能达到原生设备的I/O平均吞吐量(2792 Mbps),CPU的使用率也接近原生设备。因此,通过VT-d技术为虚拟机分配网卡设备性能较有保障。

3.3安全性分析

    1)虚拟机I/O安全性分析

    下面通过两种方式验证本文方案I/0隔离的有效性。方式一:使用vTPM域提供的受硬件TPM保护的密钥对虚拟机内用户关心的敏感数据进行加密,在Dom0中以mount命令挂载虚拟机镜像,发现无法查看加密后的数据,实验结果如图17所示。方式二:使用qemu-img命令对HVM虚拟机镜像加密,发现此时使用fdisk - u-l命令已经无法查看镜像的分区信息,从而无法挂载镜像,实验结果如图18所示。

    上述结果表明,攻击者就算能够获取加密后的敏感数据,但由于无法获取由硬件TPM保护的vTPM密钥,因而无法读取虚拟机镜像的敏感信息。3.1节中已经完成了使用VT-d技术为虚拟机直接分配网卡设备,未分配到网卡的虚拟机(包括Dom0)都不能发现并使用该设备。因此,本文的安全隔离框架能够保证虚拟机之间对物理设备I/O访问的隔离和对DMA内存映射的隔离。

    2)虚拟机内存安全性分析

    虚拟机内存安全是指虚拟机安全隔离框架中,每个虚拟机只能访问分配给它的vTPM域的内存区域,且虚拟机的内存不能通过设备DMA方式被访问到,以提升虚拟机之间的内存访问隔离性。

    首先,验证框架中VM-vTPM的唯一绑定性。创建一个虚拟机并为该虚拟机分配一个vTPM域(配置文件参数为vtpm=["backend=vtpm2”])。再创建一个虚拟机,把配置文件的vtpm参数也做相同修改,启动该虚拟机,实验结果如图19所示。由结果可以看出,再创建的虚拟机启动时发现该vTPM域已经和其他虚拟机进行了绑定,因此将vTPM域的前后端驱动状态修改为“关闭”,实现VM-vTPM的唯一绑定。

    其次,验证框架中虚拟机的内存访问隔离性。本文框架扩展XSM安全模块,增加了授权表机制中对内存映射过程的访问控制。内存攻击实验采取在host虚拟机中调用LibVMI库获取虚拟机DomU进程列表的方法,实验结果如图20所示。LibVMI通过读取Xen系统内存映射中的init_task寻找虚拟机的初始进程,根据该进程的地址计算进程的id和name。由于在XSM模块中增加了虚拟机之间授权表访问控制策略,上述host虚拟机获取DomU进程列表的内存页映射过程中,Hypervisor会截获该内存页授权索引来判断host虚拟机是否满足这些策略,如果不满足,则阻止其对该地址范围的映射,此时再调用LibV MI库将无法读取虚拟机DomU进程列表信息,实验结果如图21所示,因此本文框架能提升虚拟机之间的内存访问隔离性。

    最后,验证VT-d技术提供虚拟机内存设备DMA访问隔离性。前文实验完成了使用VT-d技术为虚拟机直接分配物理网卡设备,并验证了虚拟机独享该设备后,其他虚拟机无法发现和使用该设备。VT-d技术提供DMA重映射和中断重映射机制,使得只有获取了相应物理设备信息的虚拟机才有权限请求DMA内存映射访问,且通过开启VT-d中断重映射,使得恶意虚拟机无法利用MSI中断直接发送攻击性的中断消息给虚拟机管理层。因此,VT-d技术的重映射机制较好地提升了虚拟机之间设备I/O访问隔离性和内存映射隔离性。

4结束语

  本文提出了_一个基于VT-d技术和可信计算技术的虚拟机安全隔离框架,该框架通过vTPM独立域为虚拟机提供加密保护,虚拟域间的内存映射采用文中设计的XSM访问控制策略扩展机制,并利用VT-d技术提供的DMA重映射和中断重映射机制,避免虚拟机直接通过设备内存访问或直接发送恶意中断消息攻击其他虚拟机,提升了虚拟机之间的隔离性。但是,仍然存在某些问题制约该框架的安全性。例如,硬件TPM设备目前作为热插拔PNP设备并未挂载到PCI总线上,文中的Mgnt管理域“穿透”访问TPM存在一定的安全风险。又如,文中虚拟机间XSM策略扩展机制的粒度较粗,并不能较好控制内存映射过程。这些工作将在下一步研究中继续开展。

5摘要:

虚拟化技术作为云计算IaaS服务的支撑,能从根本上解决云计算平台上虚拟机面临的安全威胁问题。针对目前云计算虚拟机隔离执行环境在设备I/O和内存访问隔离方面的不足,文章结合基于硬件辅助虚拟化的VT-d技术以及可信计算中虚拟可信平台模块(vTPM)独立域的思想,提出了一个在Xen云平台上的安全隔离框架。该框架中由vTPM独立域对虚拟机内的数据和代码进行加密保护,并基于独立域思想对虚拟机镜像本身加密;使用VT-d技术为虚拟机直接分配网卡设备,并扩展XSM安全模块,增加了虚拟机之间授权表策略控制。实验与分析表明,该框架能够有效确保虚拟机之间的设备I/O及内存访问安全隔离,提升虚拟机隔离环境的安全性,且能较好满足系统运行性能。

关键字:

上一篇:氧化铝蒸发车间培训最新教材

下一篇:成果介绍:近十年蓝莓化学成分及药理活性研究进展

行业资讯月点击排行

展会信息月点击排行

招商信息月点击排行

首页 资讯 招标 项目 展会
关于我们 | 广告服务 | 友情连接 | 联系我们
触屏版 电脑版
安装信息网 www.36qyk.cn.