安全生产_基于xen虚拟监控器的安全访问控制技术研究论文_第1页
安全生产_基于xen虚拟监控器的安全访问控制技术研究论文_第2页
安全生产_基于xen虚拟监控器的安全访问控制技术研究论文_第3页
安全生产_基于xen虚拟监控器的安全访问控制技术研究论文_第4页
安全生产_基于xen虚拟监控器的安全访问控制技术研究论文_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海交通大学 硕士学位论文 基于XEN虚拟监控器的安全访问控制技术研究 姓名:范晓光 申请学位级别:硕士 专业:计算机技术 指导教师:邓倩妮;朱世交 20091101 上海交通大学工程硕士学位论文 摘要 I 基于 XEN 虚拟监控器的安全访问控制技术研究 摘 要 基于 XEN 虚拟监控器的安全访问控制技术研究 摘 要 虚拟化技术是当前工业界和学术界研究的热点,随着虚拟机技术的发展,信息安 全变得越来越重要。这使得安全控制机制越来越难满足日益增长的各种应用的需求。 本文在一款 XEN 虚拟机的基础上,对它的安全虚拟监控器模块进行深入的研究, 结合虚拟监控器的相关特点,选择了 Flask 为安全框架的模型来建立安全控制模块, 并在该框架基础上应用了中国墙以及简单类型增强策略。 首先,通过对虚拟化技术的背景及其国内外发展现状的分析,罗列了三大虚拟机 模型的核心架构、虚拟化技术的相关特点,及虚拟监控器目前存在的安全隐患,并比 较了目前比较流行的安全控制模型,选择出适用于虚拟化环境的模型。 其次,以 XEN 虚拟机为基础,深入研究了它的安全虚拟监控器模块,提出了在虚 拟监控器的虚拟资源访问中增加安全钩子、 针对虚拟机对资源的访问进行相应的安全 控制,制定了安全虚拟监控器安全控制机制的流程,分析了安全钩子,安全策略管理 器,安全策略决策器这三大安全虚拟监控器模块之间的依赖关系。 最后,搭建了虚拟机安全控制实验环境,制定了测试方案,对实验结果进行了对 比分析。经过测试数据表明:加载安全虚拟监控器之后会对 XEN 虚拟机造成系统性能 的影响;但安全虚拟监控器对系统总体性能的影响不大,属于可接受的范围;从系统 缓存角度表明,加载安全控制机制之后还能提高虚拟机内存缓存的效率。 本文通过对虚拟机安全机制的研究, 提出了一种加载安全模块来增加虚拟机安全 的方法,对未来 XEN 虚拟机安全模块进一步优化以及性能改善提供了很大的帮助。 关键词:关键词:XEN,安全虚拟监控器,访问控制 上海交通大学工程硕士学位论文 符号说明 II The Security Access Control of XEN Hypervisor The Security Access Control of XEN Hypervisor ABSTRACT ABSTRACT With the growing of computer science, upgrading of the operating system, the security of network and information have become more and more important. Thus, the security issues face with great challenges. Based on XEN hypervisor, we study deeply with its SeHyper module. And combine with relevant characteristic, we analyze the structure of the security control module. The main works of the paper are as following: First of all, we introduce the status of virtualization technology, list the three major Hypervisor modules, analyze the key features of the virtualization technology, point out the security risks in the Hypervisor, and list the prevalence security control module. Secondly, based on the XEN, we deeply study its SeHyper. Analyze how to add security control when virtual machine access the relevant resource. And make clear with the processes of SeHyper security control mechanism and the dependency between security hooks, security policy manager and policy decision manager. Finally, we setup the experiment environment, make the test cases and analyze the test results. It turns out to be that SeHyper make a little slowdown to system performance. But the benchmark can be acceptable. And the SeHyper can improve a little efficiency for the system cache. KEY WORDS: KEY WORDS: XEN, SeHyper, Access Control 上海交通大学工程硕士学位论文 符号说明 III 符号说明 Abbreviations 缩略语 Full spelling 英文全名 Chinese explanation 中文解释 ACM Access Control Module 存取控制模块 ACM Access Control Module 存取控制模块 CISC Complex Instruction Set Computer 复杂指令集架构 CISC Complex Instruction Set Computer 复杂指令集架构 CW Chinese GreatWall 中国长城策略 CW Chinese GreatWall 中国长城策略 DAC Discretionary Access Control 任意访问控制 Discretionary Access Control 任意访问控制 HMC Hardware Management Console 硬件管理控制台 HMC Hardware Management Console 硬件管理控制台 ISA Instruction Set Architecture 指令集架构 ISA Instruction Set Architecture 指令集架构 MAC Mandatory Access Control 强制访问控制 MAC Mandatory Access Control 强制访问控制 MMU Memory Management Unit 内存管理单元 MMU Memory Management Unit 内存管理单元 SeHyper Security Hypervisor 安全虚拟监控器 SeHyper Security Hypervisor 安全虚拟监控器 TE Type Enforement 类型增强策略 TE Type Enforement 类型增强策略 TLB Translation lookaside buffer 旁路转换缓冲 TLB Translation lookaside buffer 旁路转换缓冲 ULM User Level Monitor 用户态管理器 ULM User Level Monitor 用户态管理器 VM Virtual Machine 虚拟机 VM Virtual Machine 虚拟机 注:在此缩略语按字母顺序排列,并非按文中出现顺序排列。 上海交通大学工程硕士学位论文 第一章 引言 1 第一章 引言 第一章 引言 1.1 课题背景课题背景 虚拟化技术最早起源于 20 世纪 60 年代,是计算领域的一项传统技术。在 20 世 纪六十年代中期, IBM 的沃森研究中心开发了 M44/44x 项目 1。 该架构基于虚拟机器: 主机是一台 IBM 的 7044,每个虚拟机是一个主机的实验印象,整个架构是通过虚拟 内存和多线程编程来实现。几乎是同时,IBM 开发了一套名为 VM/370 的操作系统, 事实上就是一个虚拟机。 使用虚拟化技术可以使得在传统的硬件之上可以运行多个操 作系统 1。以后随着计算机工业的发展,虚拟化被赋予了更多的涵义,即通过不同层 次的抽象提供虚拟化,如指令集的、进程级的虚拟化。本文关注的是计算机系统结构 和操作系统层面的虚拟化, 即通过软件抽象层将物理机划分成可以运行操作系统的多 个虚拟机,如图 1-1 所示。其中的软件抽象层称为虚拟机管理器(Hypervisor) , Hypervisor 运行的硬件平台称为宿主机(Host Machine) ,Hypervisor 虚拟出的运行 操作系统的虚拟计算环境称为虚拟机(Virtual Machine) 。 P进程 P1PnP2 Operating System Hardware Platform P1Pn Operating System Hardware Platform Virtual Machine Monitor (Hypervisor) P1Pn Operating System VM1VM2 A. Classical view of Operating System B. View of VMM 图 1-1 经典操作系统到虚拟机的转变 Fig.1-1 Transformation form classic operating system to virtual machine 上海交通大学工程硕士学位论文 第一章 引言 2 虽然从计算机工业的发展历史来看,虚拟机并不是一种全新的技术,也经历了兴 衰。在 IBM 虚拟机时代,研究虚拟机的目的在于充分利用相对昂贵的硬件资源,通过 虚拟机技术让更多人有机会通过终端设备使用计算机系统。但到了上世纪 80、90 年 代,随着多任务操作系统的应用和计算机硬件成本的降低 2,特别是 x86 系列处理器 带动了个人电脑的普及,使得人手一台电脑成为可能,虚拟化技术逐渐退出了计算机 体系结构的研究热点行列。到了 2005 年,随着计算机硬件性能的不断提高,系统级 虚拟化技术又重新成为计算机体系结构领域的研究热点, 只是此时的背景已经不同于 40 年前,主要有以下两方面原因:其一,经过 IC 产业的多年发展,处理器的性能正 按照摩尔定律变得更加强大, 计算机系统在性能提高的同时也因为更加复杂而难于管 理,特别是随着多核时代的来临,有更多的冗余硬件资源,这一矛盾趋势越发尖锐; 其二,当今的计算模式已经从以计算机为中心向用户为中心过多,用户关心的是计算 机系统能提供怎样的服务和接口, 而并不关心这些服务接口运行的系统软件平台甚至 硬件平台。因此,基于这样的背景,由于虚拟化技术能够隔离硬件体系结构和软件系 统之间的紧密依赖关系,比如使软件系统运行在异构平台上,实现透明化的可伸缩计 算系统架构,提供计算资源的利用效率,发挥计算资源的聚合效应,并向用户提供个 性化的计算环境,因而虚拟化技术重新得到了学术界和工业界的重视 2。 1.2 国内外虚拟化技术现状国内外虚拟化技术现状 此前,虚拟化技术在 x86 架构上进展缓慢的主要原因是 x86 架构本身不适合进行 虚拟化,不过这个障碍己经由英特尔、AMD 解决;还有一个原因是 x86 处理器的性能 不足,这一原因也由 x86 处理器在性能上的飞速提高得到了解决。由于 x86 架构的广 泛普及,x86 架构上的虚拟化技术也得到了比以前更大的关注。 随着在 x86 平台上的成功实现,虚拟化技术首次向人们展示了其广阔的应用前 景, 因为 x86 平台可以提供便宜的、 高性能和高可靠的服务器。 更重要的是, 一些 用 户己经开始配置虚拟化的生产环境,他们需要得到新的管理工具,从而随着虚拟化技 术的发展而得到更大的收益。 1.2.1国外虚拟化技术现状 国外虚拟化技术现状 在欧美发达国家,虚拟化已经成为一种现实,而且正处于普及推广的阶段,很自 然的,IBM, HP、微软,Intel 这些全球性的公司就会在国内进行推广。虚拟化对整 上海交通大学工程硕士学位论文 第一章 引言 3 个 IT 生态圈都是有利的,硬件厂商可以卖更高端的服务器,软件厂商可以买更多的 拷贝。财富 500 强企业中,99%都己经用到了虚拟化技术。IDC 也预测,到 2010 年, 企业在服务器虚拟化方面的花费将接近 150 亿美元, 超过 3/4 的 500 人以上的企业都 将部署虚拟化的服务器。另外,根据对全球 750 家企业做的服务器虚拟化调查,62% 的受访者表示,他们已经有一个虚拟化的解决方案,或者正在向虚拟化应用迁移的过 程中,只有 4%的受访者没有任何服务器虚拟化的计划。因此,正是大量厂商的共同 推动,使得虚拟化在国外己经成为一股热潮。 从技术上来看,随着 64 位、多核 CPU 的发展,X86 服务器性能的极大提升也为 虚拟化提供了温床。因为如果计算机的性能不够,应用会消耗掉大部分甚至全部的资 源,虚拟化也就很难应用起来。早期的虚拟化就曾面临当时计算机性能太低的困惑。 而且, 虚拟化技术本身是己经比较成熟的了, 逐渐摆脱对虚拟机单一应用方面的需求, 更多的是在网格计算以及计算机安全领域,进行了比较深入的研究。 1.2.2国内虚拟化技术现状国内虚拟化技术现状 在国内, 虚拟化技术才刚刚起步, 相对来其它国家来说, 还是有相当大的差距的。 我们处于虚拟化技术的应用的初期。到目前为止,国内还没有一款国人自己设计和实 现的虚拟机产品。专门从事虚拟化技术的理论研究工作的科研单位也寥寥无几,所幸 的是,基于国外设计和实现的虚拟机的应用还是有一些例子的。 据调查中国企市业单位中目前很少有用虚拟化的。比如,这几年我们也看到,政 府、垂直行业系统、高校、银行等领域正在把原来分散的信息中心或数据中心进行集 中,但又不希望增加太多成本,在这种条件下,虚拟化是个不错的选择。 调查数据显示,国内只有 1-2 成的用户用到了虚拟化技术。可见,国内外截然不 同的情况既证明虚拟化己经是一种成熟的技术,用户完全可以放心使用,同时也说明 中国潜在的发展空间还很大。成熟的技术和不成熟的市场之间存在巨大的鸿沟,这是 国内目前面临的一个很微妙的时期。 从总体上说,我们存在两方面的差距。一方面是虚拟化技术理论的研究,这个在 国内已经有企业着手此项目。第二方面是虚拟化技术的应用和推广。 1.3 研究的目标及其主要的内容研究的目标及其主要的内容 目前虚拟化计算系统能够动态组织多种计算资源,隔离具体的硬件体系结构和软 上海交通大学工程硕士学位论文 第一章 引言 4 件系统之间的紧密依赖关系,实现透明化的可伸缩计算系统架构,从而灵活构建满足 多种应用需求的计算环境,提高计算资源的使用效率,发挥计算资源的聚合效能,并 为用户提供个性化和普适化的计算资源使用环境。然而,大部分的应用程序例如数据 库、磁盘管理、网页浏览器、文件系统对于系统安全的需求不仅不同,同时还可能存 在着相互冲突的地方。因此,这些应用组件需要相互安全的隔离开来,使用适合他们 自己的安全控制机制。在商业系统中,通常都是由一组应用来构成一个应用集合体, 由应用集合体的各个应用共同协作来实现某类服务,为此在通用的整体式操作系统 中,需要提供非常复杂的安全控制机制,来保证整个系统的安全性,但是仍然不能够 为应用提供强隔离的特性。虚拟化技术的出现缓和此类问题带来的矛盾,但是,对于 一组应用集合体, 底层架构同样需要能够提供有效的资源共享和数据通讯的安全控制 机制。 当今,基本上各个对安全要求有冲突的应用程序运行在不同的硬件平台之上,或 者需要操作系统对这些应用程序进行隔离 1, 对于不同的类型, 使用不同的安全策略。 传统的操作系统并不能够解决隔离性的问题, 所有的安全控制技术都是存在于传统的 操作系统 3中,来控制各个任务之间的数据流的,这就需要例如他们需要共享库,文 件系统, 网络和显示等, 它不能提供强隔离性。 另外, 传统的任意访问控制策略(DAC) 3不能够解决病毒带来的问题,因为它不能够区分,什么是用户想要运行的程序,什 么不是用户想运行的程序。同样的,DAC 控制策略认为用户是已经被授权方式,易受 感染的程序或者粗心的用户可能会让病毒进入系统并且感染系统。SeLinux 3在 Linux 系统中提供了多种访问控制方式, 应用客体种类繁杂, 对安全需求也多种多样, 导致其使用的安全策略其过于复杂,很难同时满足各种应用的安全需求,其复杂的安 全机制成为鸡肋,操作系统仍然是容易被攻击和受感染的。 这些问题很难能够通过增加更高一级的安全架构来解决。考虑到各种恶意程序的 开发,位于分布式系统中的后门程序 3,启动扇区病毒3等等,很难从操作系统这个 层次来解决这些安全问题,因为安全控制机制很容易被这些威胁所更改。尽管现有的 完整性检查工具 3、 反病毒工具和类型的安全应用程序能够相应的减轻出现问题的情 况,但是由于他们本身很容易被病毒感染,所以他们最终很难实现安全上的保证。 Hypervisor 在客户系统和服务器上面已经成为一个比较普通的虚拟软件层。 他们 上海交通大学工程硕士学位论文 第一章 引言 5 同客户操作系统以及其上运行的恶意程序是完全隔离开来的。随着应用的发展,我们 需要 Hypervisor 在提供对上层操作系统部分隔离特性的同时,也提供可控制的安全 通讯和安全资源共享环境,从而可以构建 Hypervisor 级别、操作系统级别、应用级 别的多层次安全控制模型 3。 本文研究的 SeHyper 在保持了通用 Hypervisor 的隔离性的特点,还保证了上层 操作系统之间的完全隔离。同时,也兼顾了各个不同上层操作系统中应用进行数据通 讯的特点,为各个客户操作系统之间的数据通讯提供了可控制的受限的安全控制机 制。SeHyper 兼顾了以上两点,既能够有效的保证系统的安全通讯 3,也能够保证必 要的应用集合之间的数据通讯,在虚拟监控器层建立了安全控制机制。 1.4 本文的组织结构及其章节编排本文的组织结构及其章节编排 本文通过对虚拟机监控技术及安全控制技术的研究,提出了一种虚拟机安全控制 机制,并结合虚拟监控器的相关特点,分析安全虚拟监控器中安全访问控制架构,研 究了其具体的实现过程。 首先,通过对虚拟化技术的背景及其国内外发展现状的分析,罗列了三大虚拟机 模型的核心架构,对比了这些架构的优缺点。分析了虚拟机的核心技术,再结合虚拟 化技术的相关特点,及虚拟监控器目前存在的安全隐患,并比较了目前比较流行的安 全控制模型,选择出适用于虚拟化环境的模型。 其次,以 XEN 虚拟机为基础,深入研究了它的安全虚拟监控器模块,提出了在虚 拟监控器的虚拟资源访问中增加安全钩子、 针对虚拟机对资源的访问进行相应的安全 控制,制定了安全虚拟监控器安全控制机制的流程,分析了安全钩子,安全策略管理 器,安全策略决策器这三大安全虚拟监控器模块之间的依赖关系。 最后,搭建了虚拟机安全控制实验环境,制定了测试方案,对实验结果进行了对 比分析。经过测试数据表明:加载安全虚拟监控器之后会对 XEN 虚拟机造成系统性能 的影响;但安全虚拟监控器对系统总体性能的影响不大,属于可接受的范围;从系统 缓存角度表明,加载安全控制机制之后还能提高虚拟机内存缓存的效率。 本文各章节安排如下: 第二章首先分析了满足虚拟化要求的处理器架构的特征,包括中断、优先级分离 和虚拟内存管理机制;然后分析了虚拟机管理器的三种软件架构,包括主机模型、独 上海交通大学工程硕士学位论文 第一章 引言 6 立模型和混合模型,以及三个虚拟机管理器的比较,并重点探讨了虚拟化技术存在的 安全缺陷。同时,也分析了操作系统安全技术的相关背景知识,指出了安全技术在应 用中的相关技术瓶颈,为本文论述打下基础。 第三章首先给出了 SeHyper 的设计方向。 其次, 分析了 SeHyper 的设计框架结构, 概要介绍了其内部的各个安全模块, 对虚拟监控软件的安全访问控制机制的设计进行 了整体性的说明,包括安全服务器,安全控制实施模块和安全控制钩子等多个组件。 最后,说明了安全虚拟监控器系统中安全机制的主要运行流程,从体系架构和运行流 程等多个方面描绘了其整体架构的设计思想,为后面的详细研究打好基础。 第四章以安全虚拟监控器的运行流程的顺序对安全访问控制机制的各个组件模 块进行了详细的说明,包括安全控制钩子的设置,安全访问控制的配置策略,安全实 施模块操作的细节。 此外, 对安全控制策略更新的处理方法, 性能加速等进行了探讨。 第五章对加载 SeHyper 的虚拟机进行了对比实验测试, 从软硬件平台、 运行情况、 性能评估这三方面进行了说明, 从而对加载安全机制后系统性能的影响有了一个更加 精确的了解。 上海交通大学工程硕士学位论文 第二章 Hypervisor 及其安全控制技术 7 第二章 Hypervisor 及其安全控制技术 第二章 Hypervisor 及其安全控制技术 本章首先分析了 Hypervisor 的发展现状和分类,以及实现操作系统虚拟化需要 解决的处理器指令集、内存以及 I/O 虚拟化等问题的挑战,并简单分析了目前典型的 Hypervisor,包括 XEN,VMWare 和 KVM,然后在虚拟技术的相关基础上,通过举例说 明国内外相关系统的应用情况,并对其产品做相应的优缺点评价,以此来说明现有的 Hypervisor 中相关安全性方面的问题。 2.1 Hypervisor 2.1 Hypervisor 在虚拟机系统中,存在一个轻量级的软件层,向运行在它之上的虚拟机提供虚拟 硬件资源,同时分配和管理这些资源,并保证虚拟机之间的相互隔离。这个轻量级的 软件层称为 Hypervisor。 2.1.1 2.1.1 计算机体系结构 计算机体系结构 计算机体系结构(Computer Architecture)是指计算机系统的物理实现架构, 包括处理器内部逻辑模块的组织方式和处理器与外设之间的通信协议, 以及呈现给软 件编程的接口-指令集架构(ISA,Instruction Set Architecture) 。对软件编程 来讲,最重要的就是 ISA,这里通常讲的 CISC、RISC 以及 EPIC 就是按照 ISA 的不同 实现方式分类的。按照 Popek 和 Goldberg 定义的虚拟化准则 2,支持虚拟机技术的 计算机体系结构必须具有以下特征: ? 中断,处理器与外设之间的通信手段。 ? 优先级隔离, 有利于保护软件不同系统资源的访问, 比如 IA-32 架构和 IA-64 架构处理器都提供了四种不同优先级的执行模式。 ? 虚拟内存管理机制,实现各个虚拟地址空间之间的隔离。 本文所用到的两种计算机体系结构,IA-32 和 IA-64,都满足上述三个虚拟化特 征。IA(Intel Architecture) 4是指 Intel 旗下处理器架构的通称。Intel 的第一 代 32 位处理器以数字 8086 命名,其后产品依序以 8088、80186、80286 为代号命名, 在 80286 以后以 i386、i486 命名,因此被业界称为 x86 架构,从 i486 以后 intel 上海交通大学工程硕士学位论文 第二章 Hypervisor 及其安全控制技术 8 就不再以 x86 命名, 而以较为正式的 IA 命名。 IA-32 是指 Intel 的 32 位处理器架构, IA-64 是指 Intel 的 64 位处理器架构。迄今为止,IA-32 架构处理器被广泛应用于个 人电脑以及服务器市场,甚至嵌入式领域,使其成为当今计算机市场上几乎占垄断地 位的计算机体系结构。但 IA-32 是复杂指令集架构(CISC,Complex Instruction Set Computer) ,由于 CISC 的架构缺陷,比如过时的段式内存管理方式以及寻址方式,很 难达到摩尔定律预测的性能 4。因此,开发新的性能更高的计算机体系结构成为一种 必然选择, 因此 Intel 和 HP 联合开发出更为高效的 64 位处理器体系结构-显式并 行计算体系结构(EPIC,Explict Parallel Instrution Computing) 。Intel 将 EPIC 命名为 IA-64,开发出基于该架构的系列处理器,代号为 Itanium,中文代号为安腾。 第一代 Itanium 处理器提供对 IA-32 指令集的硬件支持, 从第二代 Itanium 处理器开 始,取消了硬件支持,转由软件支持,通过在 IA-64 操作系统中安装 IA-32 指令集的 动态二进制翻译器 IA-32 EL(IA-32 Execution Layer) 4来实现在 Itanium 处理器上 运行 IA-32 应用程序。 AMD64,又称“x86-64”或“x64”,是一种 64 位元的电脑处理器架构。它是建 基于现有 32 位元的 x86 架构,由 AMD 公司所开发,应用 AMD64 指令集的自家产品有 Athlon 64、Athlon 64 FX、Athlon 64 X2、Turion 64、Opteron 及最新的 Sempron 处理器。 AMD 试图以自家的 AMD64 指令集去清理 Intel 的 x86-32 专属的,并把 x86 更新至近似领先的 RISC 环境。曾参与设计 DEC Alpha64 位处理器的 Dirk Meyer 也有 份参与制定 AMD64 的规格,以及 AMD 的员工中有不少前 Alpha 处理器的工程师,因此 他们为 AMD64 立下不少功劳。部份重大改变如下: 新增暂存器地址阔度加长 SSE2、SSE3 指令“禁止执行”位元 (NX-bit): AMD64 其中一个特色是拥有“禁止执行”(No-Execute, NX)的位元,可以防止蠕虫病毒以缓 冲区满溢的方式来进行攻击(也称:缓冲区溢位攻击,Buffer Overflow) 。 市场分析 AMD64 代表 AMD 放弃了跟随 Intel 标准的一贯作风,选择了像把 16 位 的 Intel 8086 扩充成 32 位的 80386 般,去把 x86 架构扩充成 64 位版本,且兼容原 有标准。 AMD64 架构在 IA-32 上新增了 64 位暂存器, 并兼容早期的 16 位和 32 位软件, 可 使现有以 x86 为对象的编译器容易转为 AMD64 版本。除此之外,NX bit 也是引人注 目的特色之一。 不少人认为,像 DEC Alpha 般的 64 位 RISC 芯片,最终会取代现有过时及多变的 上海交通大学工程硕士学位论文 第二章 Hypervisor 及其安全控制技术 9 x86 架构。但事实上,为 x86 系统而设的应用软件实在太庞大,成为 Alpha 不能取代 x86 的主要原因,AMD64 能有效地把 x86 架构移至 64 位的环境,并且能兼容原有的 x86 应用程序。 2.1.22.1.2 Hypervisor 软件结构 Hypervisor 软件结构 按照 Hypervisor 在计算机系统中所处的地位,如图 2-1 所示,可以总结为三种 典型架构: 主机模型 Hypervisor(OS-Hosted Hypervisor) 独立模型 Hypervisor(Stand-alone Hypervisor) 混合模型 Hypervisor(Hybrid Hypervisor) User Applications User Applications User Level Monitor Device Models Device Models VM Guest OS and Apps Guest OS and Apps Driver Driver Host OS Ring 0 Hypervisor Ring 0 Hypervisor Device Device VM1 VM2 Guest OS and Apps Guest OS and Apps Hypervisor Devices Devices Guest OS and Apps Guest OS and Apps Device Model Device Model Driver Driver Service VM VM Guest OS and Apps Guest OS and Apps U-Hypervisor Devices Devices Service VM Service VM User Level Monitor User Level Monitor 图 2-1 典型 Hypervisor 软件架构 Fig.2-1 Classic Hypervisor software architecture 2.1.2.1 2.1.2.1 主机模型 Hypervisor主机模型 Hypervisor 在 Hypervisor 的实现方案中,一个比较直观的方式就是在已有的操作系统上构 建 Hypervisor,这种架构被称为主机模型 Hypervisor。这种 Hypervisor 包含两个模 块:运行于宿主 OS 内核空间的内核模块(Ring 0 Hypervisor) ;运行宿主用户空间 的用户态管理器(User Level Monitor,ULM) 5。其中 Hypervisor 内核模块负责系 统资源的管理,比如 CPU 调度,内存分配等。Hypervisor 内核会按照既定的调度策 上海交通大学工程硕士学位论文 第二章 Hypervisor 及其安全控制技术 10 略在宿主 OS 和虚拟机 OS 之间进行上下文切换。尽管虚拟机 VM 被允许直接执行在物 理 CPU 上,并且也能够直接访问 Hypervisor 内核分配的物理内存,但虚拟机 VM 对外 设的访问仍然会被截获并通过代理交由 Hypervisor 的 ULM 处理。ULM 作为一个进程 运行于宿主机的用户空间,它的主要功能是被用作处理其他虚拟机 VM 的 I/O 请求的 设备模型。这里的设备模型通过宿主机操作系统底层的文件系统、网络接口以及图形 接口函数处理虚拟机 VM 的 I/O 请求。 主机模型 Hypervisor 的优点在于可以充分利用宿主机操作系统的的 I/O 设备驱 动程序,减小了该类型 Hypervisor 移植的代价,极大的降低了 Hypervisor 的开发代 价。主机模型 Hypervisor 也有缺点: ? Hypervisor 的安全性依赖于宿主机操作系统的可靠性,如果宿主机宕机或者 重启,那么 Hypervisor 及其虚拟机也会重启; ? Hypervisor 的性能较差。 在正常运行状态下, Hypervisor 必须遵循宿主操作 系统的进程调度策略,宿主机操作系统会同时为其他应用程序服务。 在这种模型下,虚拟机可能因为分配不到足够的 CPU 执行时间而不能满足实时性 等服务质量的要求,这是不可接受的,从而引进了新的 Hypervisor 架构-独立模型 Hypervisor。 2.1.2.2 2.1.2.2 独立模型 Hypervisor独立模型 Hypervisor 为了使虚拟机 VM 获得更好的性能,引入了另外一种独立模型 Hypervisor (Stand-alone Hypervisor) 。在这种结构的 Hypervisor 实现中,它不依赖于宿主操 作系统,如图 2-1 所示,其直接运行于硬件平台上,管理所有物理资源,集成了 I/O 设备驱动、设备模型以及 VM 调度器 6。由于独立结构 Hypervisor 完全管理物理平台 资源,使得其通过调度能对所有虚拟机 VM 提供有效的服务质量保证。另外一个优点 就是该结构下的虚拟机 VM 能获得更好的 I/O 性能优势, 在主机模型 Hypervisor 下的 虚拟机 VM 完成一次 I/O 操作需要经过两次 I/O 栈的切换,第一次经由 Hypervisor 内核模块截获 I/O 操作请求,被转向到运行于宿主机操作系统的用户态设备模型中, 然后设备模型才通过宿主机器操作系统的本地驱动完成第二次 I/O 操作。 而在独立模 型 Hypervisor 中,则只需要一次 I/O 栈的切换,虚拟机 VM 操作 I/O 设备则如同其在 本征系统上操作设备一样。通过控制 Hypervisor 内核的规模。 独立模型 Hypervisor 不依赖任何操作系统,能提供安全可靠的执行环境。但独 上海交通大学工程硕士学位论文 第二章 Hypervisor 及其安全控制技术 11 立模型 Hypervisor 的性能优势是以其受限的可移植性为代价的。为了对每个虚拟机 VM 呈现 I/O 设备接口,Hypervisor 内核需要复用硬件平台的 I/O 设备,也即软件实 现 I/O 设备的状态机,因此在 Hypervisor 内核中必须包含 I/O 设备驱动程序。而这 些设备驱动程序在主机模型 Hypervisor 架构下是被复用的,只需要为每个设备维护 一个简单的状态机即可。并且由于 I/O 设备的多样性,独立模型 Hypervisor 的内核 会变得很庞大,为每个设备编写虚拟化驱动程序是一个很大的工作量,从而会抵消其 优势,比如 Hypervisor 内核的 I/O 设备驱动程序运行错误,则会影响 Hypervisor 和虚拟机 VM 的安全。因此,独立模型 Hypervisor 在实践中用得较少。 2.1.2.3 2.1.2.3 混合模型 Hypervisor混合模型 Hypervisor 为了同时利用独立结构 Hypervisor 的安全可靠性以及 OS 宿主 Hypervisor 的易 移植性,业界提出了一种混合模型 Hypervisor(Hybrid Hypervisor) 8,如图 2-1 典型 Hypervisor 软件架构所示。在混合结构 Hypervisor 的架构中,一个微内核(图 2 典型 Hypervisor 软件架构右图中的-hypervisor) 控制 CPU 以及物理内存, 而 I/O 资源则是由一个被降低运行优先级的服务虚拟机 VM(Service VM)管理。由于这个 服务虚拟机 VM 已经被 Hypervisor 降低了优先级, 其严格的代表 Hypervisor 操作 I/O 资源,不支持其他用户应用程序,因此有可能改善系统的总体安全性和可靠性。 混合结构 Hypervisor 集成了上述两种结构 Hypervisor 的优点,但也引入了新的 挑战。这个挑战主要集中在性能上,由于服务虚拟机 VM 和其他虚拟机 VM 与 Hypervisor 之间频繁的优先级切换,服务虚拟机 VM 的引入只可能在有硬件虚拟化支 持 DMA 的平台上才有可能获得良好的性能优势,Intel 将此 I/O 硬件虚拟化支持技术 称作 VT-d 8。这一点将会在后文的 I/O 虚拟化挑战中充分说明。XEN 就是混合模型 VM。这种模型在复杂度和性能之间取得良好的折衷,得到了广泛应用。 2.1.3 2.1.3 构建 Hypervisor 的挑战 构建 Hypervisor 的挑战 在一个计算平台上部署虚拟机方案,最关键的就是在该平台上创建一个虚拟机管 理器(Hypervisor) ,由 Hypervisor 创建可以独立运行操作系统的虚拟环境,称为虚 拟机(Virtual Machine) 。一个计算机系统主要包括处理器、内存、I/O 等资源,在 本小节中将分别分析它们的虚拟化挑战。Hypervisor 从最初的纯软件实现,发展到 上海交通大学工程硕士学位论文 第二章 Hypervisor 及其安全控制技术 12 现在有处理器的硬件支持。硬件支持可以简化 Hypervisor 的实现,但通过 VMWare 的两位研究人员对 IA-32 体系结构硬件虚拟化支持的分析 4, 其性能并不比纯软件方 案好。因此,本节主要分析了 Hypervisor 的软件解决方案,其硬件支持可以参考相 关手册 2。 2.1.3.1 2.1.3.1 CPU 虚拟化CPU 虚拟化 CPU 虚拟化特指 CPU 指令对虚拟化的支持。 按照 Goldberg 对第三代计算机体系结 构的总结 2,满足虚拟化要求必须具有以下特征: ? 至少两种处理器操作模式 ? 一种从非特权级程序调用特权级服务的方法 ? 内存重分配和保护的机制,比如 IA-32 架构的段和页式内存保护机制 ? 异步中断实现 I/O 系统能和 CPU 通信 Protection Rings Level 0 Level 2 Level 3 Level 4 Operating system kernel Operating system services Applications 图 2-2 IA-32 体系结构优先级保护机制 Fig.2-2 Privilege protection mechanism of IA-32 architecture 上海交通大学工程硕士学位论文 第二章 Hypervisor 及其安全控制技术 13 IA-32 架构符合 Goldberg 总结的四种特征。 IA-32 架构的处理器有四种操作模式, 被称环(Ring) ,或者是当前优先级(Current Privilege Level,CPL) ,从 0 到 3, 数字越小,表示优先级越高,如上图 2-2IA-32 体系结构优先级保护机制所示。最高 优先级 Ring 0 通常运行操作系统,应用程序运行在最低优先级 Ring 3。IA-32 架构 也在特权级之间切换的方法, 比如用户态程序执行 int 指令可以跳转到内核态执行系 统服务,通过指令 iret 则可以从内核态返回用户态。IA-32 架构同时支持段式和页 式(Segmentation and Paging)内存保护,并且同时实现了中断和异常机制,使得 I/O 系统能和 CPU 通信。 IA-32 架构拥有 16 个自定义的异常和 224 个用户可自定义的 中断。 但满足上诉四个架构的特征并不能说明现有的IA-32架构满足支持完全虚拟化的 要求。完全虚拟化是指 Hypervisor 直接运行在硬件平台上,Hypervisor 作为一个简 单的操作系统或者微内核来运行虚拟机 VM。Hypervisor 完全控制系统资源的分配和 VM 的调度。完全虚拟化要求不修改运行于 VM 的操作系统。按照 Goldberg 的总结 2, 支持完全虚拟化的处理器指令集必须满足下列三个虚拟化要求: ? 在特权级和用户级执行特权指令的方法完全一致。例如,处理器不能在指令 字中另增加一位表示指令执行于某个优先级。 ? 必须有一种内存保护机制来实现虚拟机管理器Hypervisor和虚拟机VM之间、 以及虚拟机 VM 之间的隔离。 ? 当虚拟机 VM 试图执行敏感指令(sensitive instruction)时,处理器必须 能通知 Hypervisor,使其能正确模拟该指令需要达到的效果。其中,敏感指 令包括以下几种类型的指令: 1) 改变或者引用虚拟机 VM 或物理机器状态的指令; 2) 读取或者改变敏感寄存器(sensitive registers)或者内存地址的指令, 比如 IA-32 架构中修改时钟寄存器和中断寄存器; 3) 引用或者修改内存保护系统的指令,比如那些允许虚拟机 VM 存取不在其 虚拟地址空间内容的指令; 4) 所有 I/O 指令。 按照 Robin 和 Irvine 的分析 3, Pentium 系列处理器的指令集并不满足同构环境 下完全虚拟化的要求, 有少数敏感指令可以在用户态访问处理器的系统状态并且不触 发异常,使得要在 Pentium 系列处理器上运行虚拟机 VM 的话需要修改操作系统里那 上海交通大学工程硕士学位论文 第二章 Hypervisor 及其安全控制技术 14 些破坏虚拟化约束的指令。Intel 在 Core 系列处理器中通过 VT-x 技术增加了 CPU 虚 拟化的硬件支持。 2.1.3.2 2.1.3.2 内存虚拟化内存虚拟化 内存虚拟化是虚拟化技术中至关重要的环节,它提供了虚拟机之间内存的隔离和 保护,目前主流的 Hypervisor 都利用影子页表(Shadow Page Table)来实现虚拟机 的内存虚拟。如图 2-3 所示,Hypervisor 运行在宿主机上,控制着各个虚拟机 VM 之 间内存分配和隔离。虚拟机认为它所拥有的的内存地址空间总是从 0 开始的,但它在 宿主机上执行时不可能总是拥有从 0 开始的所有物理地址。 也就是说虚拟机的物理地 址(PA)并不等于宿主机上的机器物理地址(MA),图 2-3 描述了虚拟机 VM 的物理地址 (PA)和宿主机物理地址(MA)的映射关系。 1 4 3 2 监控程序 客户机 物理内存 监控程序 客户机 物理内存 宿主机物理内存在各个客户机之间的划分 宿主机 物理内存 宿主机物理内存在各个客户机之间的划分 宿主机 物理内存 1 23 4 图 2-3 虚拟机物理地址和宿主机物理地址之间的映射 Fig. 2-3 The mapping between guests physical address and hosts physical address Hypervisor 必须把虚拟机虚拟地址到虚拟机物理地址的映射修正为虚拟机虚拟 地址到宿主机物理地址的映射,显然,这样的转换是虚拟机的页表机制不能支持的, 虚拟机的页表只能维护虚拟机虚拟地址到虚拟机物理地址的映射,而 Hypervisor 为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论