云虚拟化安全攻防实践
内容总结
虚拟化的目的:是为了提高资源的利用率,提高管理的便携性,是云计算的底层基础。
虚拟化的实现:是将底层的物理硬件都抽象成各种逻辑资源,也就是资源池化(虚拟化),然后再在这些逻辑资源之上,建立虚拟机操作系统。
虚拟化需要解决的一个大问题就是,如何感知内核模式,即:现有的系统是这样的,操作系统运行在内核态中,用户程序运行在用户态中,当用户程序需要执行内核态功能(比如IO操作)的时候,会被系统捕捉,并由内核执行并返回。然而,在虚拟化中,如果不更改操作系统代码,则虚拟机操作系统系统也运行在内核态中,这样就会产生冲突,因为这时候宿主系统和虚拟系统内核同时运行在内核态中,这就会出问题。所以,虚拟化的重要的一步就在于,如何截获虚拟机命令对物理硬件的访问(内核态),并且将其重定向到逻辑资源池中。基于此又有两种不同的方式
基于软件的方法
比如VMware workstation,它监控虚拟机操作系统的指令,并将虚拟机中的内核态命令截取,并转化为软件调用来实现该功能。
另外一种就是著名的Qemu,它通过软件来仿真每条指令的取指令,解码指令,和执行指令,虚拟机操作系统的所有指令都是用软件模拟的,这种方式的性能较低。
基于硬件的方法
就是依靠物理平台的本身提供对特殊指令的截获或者重定向的硬件支持,从而提升性能,
为了能在一台物理设备上能够安装多个虚拟机操作系统,目前已经出现了多种技术,比如Qemu,xen,kvm,vmware 等多种技术。
Qemu:用软件的形式,模拟一个虚拟机操作系统的所有设备。
Xen: 刚开始支持半虚拟化,后来支持全虚拟化,Xen是一个直接在硬件上运行的管理程序,也就是说Xen相当于宿主操作系统,负责虚拟机管理和资源的调度。
Kvm: 即内核虚拟机,它基于Linux 内核和支持虚拟化扩展的X86硬件,是一种全虚拟化方法。在KVM中,一个虚拟机实例表现为一个Linux 进程,所以,可以很好的利用Linux 成熟的进程调度方法,同时KVM还利用了QEMU的虚拟化来实现IO.
等等。。。
有如此众多的解决方法,而各个方案的管理方式,命令,工具又各不相同,学习和掌握这些不能的工具又费时又低效,所以一种能够用一个统一的方法来管理这些虚拟机的工具就应运而生,那就是我们要学习的Libvirt。
Libvirt的位置:提供一种Hpyervisor不可知的 API 来安全管理运行于主机上的客户操作系统。它为受支持的虚拟机监控程序实现的常用功能提供通用的 API。libvirt 起初是专门为 Xen 设计的一种管理 API,后来被扩展为可支持多个虚拟机监控程序,它基于驱动程序的架构,该架构允许一种通用的 API 以通用方式为大量潜在的虚拟机监控程序提供服务。
内容介绍
云计算市场已经达到千亿美元量级,云计算形态不断丰富,在企业政府的现在和未来布局中都占据着重要位置。作为云生态的关键部分,Hypervisor使人类具备了对计算机硬件资源更细粒度的掌控能力。主流的hypervisor产品,如KVM,Xen,Docker等已经主导了现有公有云和私有云市场。了解这些hypervisor产品的安全知识,掌握对这些产品的分析方法,无论对安全领域的爱好者,还是云计算行业的从业人员都大有裨益。
《云虚拟化安全攻防实践》涵盖多种hypervisor的调试分析过程,通过抽丝剥茧的方式深入剖析hypervisor安全攻防技术,重点介绍hypervisor漏洞的利用方法和防护手段。希望以此书推动整个云生态的安全建设,为构筑未来互联网的安全基石做一些微小的工作。
目录
- 第1章 认识Hypervisor 1
- 第2章 Docker容器安全 19
- 第3章 VMware Workstation安全 83
- 第4章 QEMU与KVM安全 136
- 第5章 Xen安全 183
- 第6章 Hyper-V安全 209
- 第7章 Hypervisor漏洞防御技术 267
在数据中心虚拟化项目中最常见的安全风险有: 1、未在虚拟化项目的初期引入信息安全措施; 2、虚拟化的风险会导致其所有上层系统的风险; 3、虚拟化层的数据泄漏可以导致所有托管应用的数据泄漏; 4、对管理程序/VMM以及管理工具的管理性访问缺乏充分的控制; 5、网络和安全控制的职责分享可能会存在潜在的损失。
云安全问题是云计算技术进一步发展并得到广泛应用的一个核心且富有挑战的重要问题,通过网状的大量客户端对网络中软件行为的异常监测来获取互联网中木马、恶意程序的最新信息,推送到云服务器端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。它采用的是云计算处理机制,能够计算出Internet上的网络威胁位置,在网络威胁到达网络前进行阻挡,进行实时探测和及时保护。 虚拟化技术是在软、硬件之间引入虚拟层,为应用提供独立的运行环境,屏蔽硬件平台的动态性、分布性、差异性等,支持硬件资源的共享与复用,并为每个用户提供相互独立、隔离的计算机环境,同时方便整个系统的软、硬件资源的高效、动态管理与维护。而将虚拟化技术运用到云安全之中,这种方法在一定程度上降低了“云安全”企业的硬件成本和管理成本,从某种程度上提高了“云安全”技术的安全性。