基于完全虚拟化的安全监控技术探析
2013-08-20杨立博
杨立博
(山东财经大学经济学科实验教学中心 山东 250014)
1 虚拟化技术
作为当今云计算的核心技术之一,虚拟化技术因其稳定性、安全性和平台资源利用率高等特性,得到了越来越广泛的应用。
虚拟化技术产生于1960年代,IBM在其大型主机系统VM/370正式启用该技术。当时硬件资源十分昂贵和稀缺,虚拟化技术能够很好地解决有限的计算资源被充分利用的问题。但之后因为硬件技术的快速发展以及分时操作系统的出现,虚拟化技术进入慢速发展阶段。随着多核处理器的出现,计算机处理能力得到了很大的提升,这导致服务器的利用率快速下降。虚拟化技术能够在保证提供正常服务的情况下提高服务器的利用率,特别是随着云计算概念的提出,使得虚拟化技术再次成为热门的研究课题。
虚拟化技术、超线程技术以及多任务它们三者的概念有很大区别。虚拟化指的是多个虚拟机在同一个物理机器上同时运行,并且每个虚拟机上运行一个同时运行多个应用程序的操作系统;超线程技术是指利用单CPU来模拟多CPU的运行效果;多任务是指在操作系统中同时并行运行多个程序。
虚拟器管理器能够有效地对多个虚拟机实施隔离,已经被广泛地应用于多个方面。根据抽象层次的不同,虚拟化技术可以分为5类:指令级虚拟化、硬件级虚拟化、操作系统级虚拟化、运行库级虚拟化和编程语言级虚拟化。不同类别的虚拟化技术的实现原理都是一样的,即利用某种特殊的手段对底层资源进行管理和分配,向上层提供抽象出来底层资源。
虚拟化大体分为完全虚拟化、部分虚拟化和操作系统层虚拟化,完全虚拟化即指在不区分物理环境和虚拟环境的前提下,虚拟机管理器完全复制底层物理硬件。
2 基于完全虚拟化的安全监控技术
由于恶意软件层出不穷,使得向用户提供服务的应用系统面临日益增长的安全威胁。基于系统内部的安全监测技术和基于网络监控的安全监测技术已经不能够适应这种需求,因此选择采用虚拟化技术解决云计算环境下应用系统中存在的安全隐患。
与传统架构相比较,虚拟化架构在安全方面具有明显优势:虚拟化架构中的虚拟机管理器介于真实硬件平台和操作系统间,特权级高于操作系统,并且虚拟化架构隔离性和可信计算基都更为理想;传统架构中的操作系统只拥有整个硬件平台的管理权限而已。
安全监控是指通过从网络和计算机中获得的事件信息来分析系统和用户的行为,从而增强网络和计算机系统的安全性,目前常见的有防火墙、入侵检测等等。
根据安全监控实现技术可将基于完全虚拟化的安全监控及其相关研究工作分为以下两类:
2.1 外部监控,即使用虚拟机管理器拦截机中发生的异常事件,在虚拟机外部进行事件安全性检测。
2.2 内部监控,即通过虚拟机管理器加载和保护的内核模块进行异常事件拦截,确保计算机系统和网络的安全。
一般虚拟监控系统的设计原则都在保证虚拟机监控器的透明性、实时性、安全性和有效性,以防虚拟机监控器存在安全漏洞、隔离性受到破坏以及出现虚拟机逃逸等问题。目前主流的虚拟机监控器有XEN和VMware等。
3 存在问题及解决方法探析
威胁基于完全虚拟化的安全监控技术的因素主要来自于三个方面:内核、内核可加载模块和应用进程。首先,入侵程序通常以为内核可加载模块存在,会修改内核代码或数据,从而篡改内核的控制流。其次,恶意的内核可加载模块通常具有隐藏特性,使得系统用户无法察觉。最后,入侵程序感染系统中的应用进程,使得其正常行为发生改变。常规的安全监控工具与被监控的程序位于同一层次,如果被监控的恶意程序的权限高于监控工具,那么恶意程序就完全有可能绕过或者破坏监控工具,从而导致监控失效。
3.1 内核
内核作为操作系统的核心程序,由代码和数据构成。操作系统安全最重要的一点就是内核数据的完整性,为此保证内核的完整性成为安全监控的关键。
内核容易受到内核对象钩子和动态内核对象操作的威胁、修改数据,为此我们必须建立起完整的内核保护模块。图1为内核保护模块结构图。
图1 内核保护模块结构图
3.2 内核可加载模块
恶意的内核可加载模块通常会隐藏自身,使得入侵行为不被系统用户察觉。其最常见的隐藏方式就是该模块加载到内存后将它自己从内核可加载模块的列表中摘除,但并没有将它从内核内存中卸载。然而与内核可加载模块同层次的监控工具并不能很好的检测到具有隐藏特性的恶意内核可加载模块,其监控仍存在漏洞。
隐藏内核可加载模块检测的关键在于交叉视图对比技术,在虚拟机监控器层次访问虚拟机系统中的/proc/modules文件来获得不可信的内核可加载模块列表。虚拟机监控器层次视图,也就是可信的内核可加载模块列表。我们知道内核模块在创建和卸载时会进行系统调用,进而由内核分配它所需资源,因此虚拟机层次视图的构建可以通过虚拟机监控器截获客户操作系统的系统调用来实现。最后将不可信视图与可信视图进行交叉对比,检测出隐藏的内核可加载模块。
4 结束语
传统环境下,安全监控是基于相对稳定的网络和系统环境。在虚拟计算环境下,虚拟机管理器可以对操作系统运行的多个虚拟机进行隔离。因此利用虚拟机管理器将安全监控系统部署在管理器上,不仅可以增强监控系统的安全性,同时相对于目标虚拟机而言具有透明性。然而,由于虚拟机本身所具有的动态性和多样性,这也给安全监控带来了巨大的挑战,仍需要后续技术发展进行改进。
[1]Smith J E,Nair R, The Architecture of Virtual Machines[J].IEEE Computer, 2005, 38(5):32-38.