200 likes | 335 Views
系统虚拟化技术. Virtual Machine is a fully protected and isolated copy of the underlying physical machine’s hardware --IBM. 姜辉 2011-1-4. 提纲. 虚拟化技术简介 回顾 x86 体系结构 虚拟化技术分类 虚拟化在网络安全领域的应用. 虚拟化技术简介. 诞生于 60 年代的 IBM system/360 Model 40 VMM 1999 年 Vmware 展示了第一款基于 X86 体系结构的虚拟机
E N D
系统虚拟化技术 Virtual Machine is a fully protected and isolated copy of the underlying physical machine’s hardware --IBM 姜辉 2011-1-4
提纲 • 虚拟化技术简介 • 回顾x86体系结构 • 虚拟化技术分类 • 虚拟化在网络安全领域的应用
虚拟化技术简介 • 诞生于60年代的IBM system/360 Model 40 VMM • 1999年Vmware展示了第一款基于X86体系结构的虚拟机 • 2005年Intel 和 AMD公司分别在芯片上提供了对虚拟化的支持
回顾x86体系结构 • X86体系结构回顾 • 系统分为四个特权级 • 用户指令和系统指令 • 用户指令:计算 • 系统指令:资源管理 • 操作系统结构回顾 • 将内存空间分为用户态和内核态 • 用户态使用特权级3,内核态使用特权级0
回顾x86体系结构 • Goldberg和Popek论证了可虚拟化的3条件 • 等效性。除一些例外,虚拟机上的任何程序的执行行为必须和它在硬件上直接运行时相同 • 高效性。所有的无害必须在本地硬件上直接执行而不需要VMM的干预(注:对于系统管理不产生影响,即非特权指令) • 资源控制。VMM拥有对所有资源的控制。任何客户软件都不能改变VMM对它分配的资源份额。 • 高效VMM必须满足的条件 • 敏感指令集是特权指令集的子集
回顾x86体系结构 • X86体系结构虚拟化的挑战 • 指令:处理器不支持虚拟化 • 部分敏感指令不属于特权指令 • I/O设备:PC机上设备多样性 • 内存:减少多级页表查询的时间开销
回顾x86体系结构 • 敏感指令的一个例子(popf) • 作用是在内存栈顶弹出一个值,将堆栈指针加2,并将值存储到EFLAGS寄存器的低16位 • 用户态运行没有任何操作 • 内核态运行产生实际的操作
虚拟化技术分类 • 全虚拟化技术 • 操作系统辅助的全虚拟化 (VMware Workstation) • 硬件辅助的虚拟化技术(xen3.0之后、VMware ESX) • 纯指令模拟的虚拟化技术(Qemu) • 半虚拟化技术 • Xen , VMware ESX Server 3.5 之后支持半虚拟化
操作系统辅助的全虚拟化 • 指令的虚拟化 • 用户指令直接运行 • 敏感指令翻译执行 • 特权指令异常处理 • 存储器的虚拟化 • SPT(影子页表) • I/O设备的虚拟化 • 利用操作系统帮助来处理外部设备
操作系统辅助的全虚拟化之内存虚拟化 • SPT(影子页表) • Guest OS Logic Address -> Physical Address • VMM Physical Address -> Machine Address • TLB(旁路转换缓冲)用来减少地址转换中对内存的访问
操作系统辅助的全虚拟化之I/O设备的虚拟化 • 宿主操作系统支持的I/O设备的虚拟化 • VMM拦截Guest OS 的I/O操作 • VMApp在主操作系统代替Guest OS执行I/O操作 • VMM接收到的中断信号转到主操作系统下处理 • VMDriver控制VMM和主操作系统之间的切换
硬件辅助的全虚拟化 • 指令的虚拟化 • 用户指令直接在硬件上执行 • 部分特权指令直接执行(VMX non-root) • 部分特权指令转到VMM模式下执行(VMX root) • 存储器的虚拟化 • 影子页表(硬件上没有提供支持的内存虚拟化技术) • NPT(AMD硬件支持的存储器虚拟化)EPT(Intel硬件支持的存储器虚拟化) • I/O设备的虚拟化 • 指令模拟(使用QEMU的模拟技术) • Intel VT-d和AMD IOMMU
硬件辅助的全虚拟化之指令虚拟化 • Guest OS内核运行在Ring 0,应用程序运行在Ring 3 • 运行部分指令由硬件自动产生异常 • 一些指令无条件产生异常 • 根据VMCS中配置来产生异常(一些指令和事件) • VMCS控制VMX root与VMX non-root之间的切换
半虚拟化 • 指令的虚拟化 • 将敏感指令替换为超级调用 • 将在用户态运行产生异常指令由VMM代替执行 • 存储器虚拟化 • SPT(影子页表) • I/O设备虚拟化 • 事件通道
半虚拟化之设备虚拟化 • Domain0直接访问硬件资源的操作系统 • DomainU通过前端驱动访问设备 • VMM为DomainU和Domain0建立事件通道
虚拟技术总结 • 指令虚拟化 • 软件模拟QEMU • 混合使用 • 硬件辅助的虚拟化 • 内存虚拟化 • SPT • EPT或NPT • I/O设备虚拟化 • 仿真设备模型(Qemu,Xen) • 直接分配模型(硬件帮助) • 虚拟设备模型 • 宿主操作系统辅助
虚拟化在安全方面的应用 • 虚拟机满足安全的2个条件 • 隔离 • 隔离不安全的域 • 容错性较高 • 管理(分级来实现) • 高特权
Qubes操作系统的设计 • VM被分为2类 • AppVMs:被用来运行用户应用程序。如浏览器 • SystemVMs:用来提供系统范围的服务。如网络和存储
Ether:恶意代码行为分析系统 • Ether相比于其它分析系统的特点 • 特权级高 • 透明性较好 (D(E)=D(PA) T(P)=T(PA))
讨论和指正 谢谢 !