CN101923507B - 基于驱动的虚拟机通用监控系统 - Google Patents
基于驱动的虚拟机通用监控系统 Download PDFInfo
- Publication number
- CN101923507B CN101923507B CN2010102387909A CN201010238790A CN101923507B CN 101923507 B CN101923507 B CN 101923507B CN 2010102387909 A CN2010102387909 A CN 2010102387909A CN 201010238790 A CN201010238790 A CN 201010238790A CN 101923507 B CN101923507 B CN 101923507B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- module
- submodule
- semantic meaning
- analysis module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明为一种基于驱动的虚拟机通用监控系统,包括事件截获模块、语义解析模块和调度管理模块。本发明将事件截获模块和语义解析模块相分离,其中事件截获模块在虚拟机管理器截获其上虚拟机中的系统调用,并通知管理域的语义解析模块。语义解析模块中包含虚拟机内核关键数据结构的定义,在语义恢复过程中,语义解析模块需要与事件截获模块相互配合。语义解析模块对截获的虚拟机相关信息进行语义恢复,从而还原出操作系统级语义。调度管理模块将所有的监控信息传递到监控系统,并为监控系统提供统一的监控接口。本发明实现了对所有类型操作系统进行统一监控的目的,屏蔽了虚拟机中操作系统的差异性,从而实现了监控功能的通用性。
Description
技术领域
本发明属于虚拟化技术和计算机系统安全领域,具体涉及一种基于基于驱动的虚拟机通用监控系统。
背景技术
随着信息技术的飞速发展,计算机的性能正在按照摩尔定律快速增长。然而,大部分服务器的利用在25%到30%之间,而多核技术的出现则导致服务器的利用率进一步降低。人们在不断地提高计算机性能的同时,越来越关注于服务器的利用率和能耗问题。另一方面,部署在同一台机器上的服务可能发生相互干扰,例如部署在某台机器上的服务出现故障导致系统崩溃,从而影响其他服务的正常运行。因此,为了保证服务之间的隔离性,单台机器上只能部署一种服务。这种方法虽然有效地保证了服务之间的隔离性,但是降低了服务器的利用率,造成了资源的巨大浪费。虚拟化技术(Virtualization Technology)作为一种新型的计算模式,它在保证服务之间隔离性的同时,能够充分地利用底层的硬件资源。
在2008和2009连续两年公布的Gartner技术发展趋势报告中,虚拟化技术都成为十大IT关键技术之一。顾名思义,虚拟化技术就是将同一台物理机器虚拟为多台虚拟机(Virtual Machine,简称VM)。每台虚拟机之间相互独立,由虚拟机管理器(Virtual Machine Monitor,简称VMM)来保证虚拟机之间的隔离性。虚拟化技术支持单一硬件平台上同时运行多个隔离的虚拟环境,从而实现将多种服务聚合到单一物理节点。虚拟化技术成为计算机体系结构和系统软件的发展趋势,并逐渐成为近年来研究的热点。根据虚拟化的层次不同,虚拟化技术可以分为以下5种:指令级虚拟化、硬件级虚拟化、操作系统级虚拟化、编程语言级虚拟化和运行库级虚拟化。在硬件级虚拟化中,虚拟机管理器位于传统操作系统(Operating System)和真实物理硬件之间,它是为上层多个虚拟机提供底层硬件抽象的软件层。本发明之后提到虚拟化技术都是指硬件级虚拟化。
虚拟化技术改变了传统计算机系统的使用方式,计算资源的使用方式更加灵活。系统管理员可以方便地创建、暂停、重启和迁移虚拟机,从而对底层硬件资源进行动态划分和灵活管理。在本发明中,负责对其他虚拟机进行管理操作(创建、删除、迁移等)的特权虚拟机被称为管理域(Management Domain)。
从2005年起,虚拟化技术自出现后就得到了广泛地应用,大规模虚拟计算环境(例如数据中心,云计算平台)如图1所示。大规模虚拟计算环境包含多个物理节点,每个物理节点都安装了虚拟机管理器。同时,虚拟化技术也为安全监控带来了一定的挑战,例如攻击者在控制某个虚拟机之后,可能会影响同一物理节点上其他虚拟机的正常运行。因此,虚拟计算平台的安全监控一直是研究的热点。然而,同一物理节点上运行的多个虚拟机中操作系统的类型和版本可以是多种多样的,例如Linux,Windows,Solaris等。但是现有的安全监控系统都是在虚拟机管理器中针对某种类型虚拟机实现某种特定的安全功能(例如入侵检测,蜜罐(Honeypot),恶意代码检测和行为分析等),而完全没有考虑监控功能的通用性问题。例如当同一物理节点上运行的虚拟机包含不同类型和版本的操作系统时,如何保证在虚拟机管理器中实现监控的通用性;同时当某个虚拟机从其他节点迁移到本地物理节点时,如何保证监控的有效性。在大规模虚拟计算环境中,虚拟机中操作系统的种类是多种多样的,而虚拟机可以在各个物理节点之间自由地迁移。这使得虚拟机监控系统的通用性问题更加突出,而且这个问题在虚拟化技术的应用过程中无法避免。
发明内容
本发明的目的在于克服上述不足之处,提供一种基于驱动的虚拟机通用监控系统,该系统解决了虚拟计算环境中监控系统的通用性问题,使得监控系统对虚拟机中的操作系统都有效,同时提供了一套标准的、统一的调用接口,方便其他开发人员使用。
本发明提出的一种基于驱动的虚拟机通用监控系统,该系统包括事件截获模块、语义解析组件和调度管理模块;事件截获模块位于虚拟机管理器中,语义解析组件和调度管理模块位于管理域的内核态,语义解析组件包括与虚拟机中操作系统的类型相对应的多个语义解析模块;在初始化时以内核模块的方式将与虚拟机中操作系统类型对应的语义解析模块加载到管理域中;所述管理域是指负责对其他虚拟机进行管理操作的特权虚拟机;
事件截获模块由调度管理模块负责开启,用于对系统调用进行截获,从而使执行流程从虚拟机进入虚拟机管理器中,并向语义解析模块发送通知,告知系统调用事件已发生;事件截获模块根据语义解析模块的内存访问请求,从虚拟机中拷贝一段所需要的内存空间发送给语义解析模块;
语义解析模块发送内存访问请求到事件截获模块,并接收事件截获模块返回的一段内存空间的内容;语义解析模块根据操作系统内核关键数据结构,对获取的所述内存空间的内容即低级语义信息进行解析,将其转换为高级语义信息,并通知调度管理模块;
调度管理模块为调用程序和所述虚拟机通用监控系统之间提供交互接口;在初始化过程中,调度管理模块接收调用程序传递的参数,对参数进行检查,在检查通过后开启事件截获模块,并加载对应的语义解析模块;在解析过程完成后,调度管理模块将语义解析模块解析后的高级语义信息传递给调用程序,该调用程序是指管理域中用户态的应用程序;
事件截获模块包括系统调用截获子模块、事件通知子模块和内存映射子模块;
系统调用截获子模块用于在重置系统调用子模块开启后针对虚拟机中的操作系统中的系统调用进行截获,并调用事件通知子模块;
事件通知子模块用于在截获到虚拟机中的系统调用时,实时通知管理域中的语义解析模块;
内存映射子模块根据语义解析模块提供的所述内存访问请求,将虚拟机中请求的一段内存空间的内容拷贝到虚拟机管理器;
语义解析模块包括内存访问子模块、单个进程解析子模块、进程列表解析子模块、文件操作解析子模块和网络连接解析子模块;
内存访问子模块当接收到事件通知子模块的通知后,进行虚拟机内存拷贝;在访问虚拟机内存时,将需要访问的内存地址传递给内存映射子模块,根据内存访问请求将虚拟机的一段内存空间中的内容拷贝到单个进程解析子模块、进程列表解析子模块、文件操作解析子模块和网络连接解析子模块;
单个进程解析子模块是根据内存访问子模块提供的内存空间中的内容,以及内核的进程结构解析出当前进程信息,包括进程标识、进程名、进程状态、操作的文件和网络连接;
进程列表解析子模块是根据内存访问子模块提供的内存空间中的内容,以及内核的进程双向链表结构解析出系统中的进程列表;
文件操作解析子模块是根据内存访问子模块提供的内存空间中的内容,以及内核的文件结构解析出文件操作的相关信息,包括进程标识、进程名、文件名、操作方式和操作时间;
网络连接解析子模块是根据内存访问子模块提供的内存空间中的内容,以及内核的文件结构解析出系统中所有打开的网络连接信息;调度管理模块包括统一调用接口子模块、虚拟机检测子模块、重置系统调用子模块和监控驱动加载子模块;
统一调用接口子模块为调用程序提供标准的调用接口;当需要对虚拟机进行监控时,调用程序指定虚拟机标识、操作系统类型和监控类型;监控类型包括单个进程信息、进程列表信息、文件操作信息和网络连接信息;当监控过程完成时,统一调用接口子模块将语义解析模块获取的监控信息发送到调用程序;
虚拟机检测子模块用于检查虚拟机是否存在以及虚拟机中操作系统的类型,并调用重置系统调用子模块;
重置系统调用子模块的功能是开启系统调用截获功能,设置系统调用截获子模块,同时调用监控驱动加载子模块;
监控驱动加载子模块是将与虚拟机中操作系统对应的监控驱动加载到内存,并对虚拟机启动语义解析模块。
本发明通过将事件截获模块和语义解析模块相分离,实现了对包含不同种类操作系统的虚拟机都能进行有效地监控,从而使监控系统具有通用性和灵活性。事件截获是指当虚拟机中发生系统调用等事件时,导致执行流进入虚拟机管理器;语义解析是指对虚拟机管理器层截获的低级语义,解析出操作系统级的高级语义。总体来说,本发明通过驱动的方式实现了对不同类型的操作系统实现了通用监控。具体而言,本发明具有以下优点及效果:
(1)监控系统的通用性
现有基于虚拟机的监控系统都是针对特定类型的虚拟机实现某种具体的安全功能,例如入侵检测、蜜罐、恶意代码分析。在分布式环境下,每个物理节点上运行的各个虚拟机中操作系统具有不同的类型。本发明提出基于驱动的监控系统通过在虚拟机管理器中实现事件截获,而在管理域的内核态通过监控驱动来屏蔽虚拟机中操作系统的差异性。本发明提出的监控系统对所有类型的虚拟机中操作系统都有效,语义解析模块屏蔽了虚拟机的差异性,使监控系统具有通用性。
(2)监控信息的实时性
为了有效地截获虚拟机中发生的系统调用等事件,本发明提出的监控系统将事件截获模块放在虚拟机管理器中。当虚拟机中发生系统调用时,采用一定的手段使虚拟机的执行流程转向虚拟机管理器,从而对虚拟机中的所有系统调用进行实时截获,因此获取的监控信息具有实时性。
(3)监控信息的全面性
当虚拟机中发生系统调用时,执行流程转向虚拟机管理器。由于虚拟机管理器在虚拟机的下层,因此可以观测到系统中的所有信息,例如所有的寄存器和内存页面。在虚拟机底层进行事件截获,监控信息具有全面性。
(4)监控接口的标准化
所有的监控驱动都是通过调度管理模块来进行管理。为了便于监控系统进行调用,本发明的调度管理模块符合操作系统的设备驱动接口标准。在操作系统中,设备驱动提供一套标准调用接口,应用程序通过该接口实现设备访问,而不需要关心设备的具体类型。本发明的监控驱动是将虚拟机中的操作系统看作各种各样的设备,由对应的监控驱动来屏蔽虚拟机中操作系统的差异性。同时,调度管理模块按照设备驱动接口,为上层的调用程序提供了标准化的监控接口。本发明提供的监控系统方便其他开发人员调用,获取虚拟机中的详细的状态信息,例如进程、文件和网络连接。
附图说明
图1为大规模虚拟计算环境示意图。
图2为本发明基于驱动的虚拟机通用监控系统结构图。
图3为事件截获模块的结构示意图。
图4为语义解析模块的结构示意图。
图5为调度管理模块的结构示意图。
图6为本发明基于驱动的虚拟机通用监控系统流程示意图。
具体实施方式
下面结合附图对本发明进一步作详细的说明。
本发明通过将事件截获模块和语义解析模块相分离,从而实现了监控系统的通用性。从工作原理划分,本系统可以分为3个模块:事件截获模块1、语义解析组件和调度管理模块3,语义解析组件包括与虚拟机中操作系统的类型相对应的多个语义解析模块2。基于驱动的虚拟机通用监控系统如图2所示。
事件截获模块1位于虚拟机管理器层。在初始化过程中,调度管理模块3进行设置后,事件截获模块1才被开启。在监控过程中,对系统调用进行截获,从而导致执行流程从虚拟机进入虚拟机管理器中,此时获取的是低级语义信息,并通知语义解析模块2。在语义解析过程中,由语义解析模块2传递需要访问虚拟机的一段内存空间从而实现虚拟机管理器对虚拟机进行内存访问。
语义解析模块2位于管理域的内核态,它根据事件截获模块1获得的低级语义信息进行解析。解析是指根据操作系统内核关键数据结构,由低级语义信息(寄存器和内存页面)转换为高级语义信息(进程、文件等)。语义解析模块2与虚拟机中操作系统的类型相对应,其中定义了操作系统内核关键数据结构;语义解析模块2以内核模块的方式动态地加载到管理域中,同时又被称为监控驱动;通过不同的语义解析模块2来对不同类型的操作系统事件进行语义解析,从而屏蔽了虚拟机中操作系统的差异性。
语义解析模块2发送需要访问的一段内存空间到事件截获模块1,拷贝虚拟机的一段内存空间。各个语义解析模块2根据虚拟机中操作系统的内核数据结构对从事件截获模块1获取出的低级语义信息进行解析,解析出高级语义信息。同时,将解析后的高级语义信息发送给调度管理模块3。
调度管理模块3位于管理域的内核态,它对事件截获子模块1和语义解析模块2进行控制和管理。调度管理模块3为监控系统与上层的调用程序之间提供标准的调用接口,即遵循操作系统的设备驱动标准,实现监控参数向操作系统内核传递和监控信息向调用程序输出。调用程序是指管理域中用户态的应用程序,主要功能是调用本发明提出的监控系统。
调度管理模块3为调用程序和所述虚拟机通用监控系统之间提供交互接口;在初始化过程中,调度管理模块3接收调用程序传递的参数,对参数进行检查。当检查通过时,开启对虚拟机中系统调用进行截获,并加载对应的语义解析模块2。当检查不通过时,监控系统退出。在解析过程完成后,调度管理模块3将语义解析模块2解析后的高级语义信息传递给调用程序。
如图3所示,事件截获模块1包括系统调用截获子模块1.1、事件通知子模块1.2和内存映射子模块1.3;
系统调用截获子模块1.1用于在重置系统调用子模块3.3开启后针对虚拟机中的操作系统中的系统调用进行截获,并调用事件通知子模块1.2。目前的系统调用是通过CPU指令(Intel是Sysenter,AMD是Syscall)来实现的,在虚拟机管理器层将虚拟机的系统调用入口函数地址寄存器(SYSENTER EIP MSR)设置为不存在的值,当发生系统调用时虚拟机会发生缺页,在虚拟机管理器层中实现对虚拟机的缺页处理,因此,通过这种方式就可以将系统调用转化为缺页异常,从而实现了对虚拟机中的系统调用进行截获。
事件通知子模块1.2的作用是当截获到虚拟机中的系统调用时,实时通知管理域中的内存访问子模块2.1。
内存映射子模块1.3的功能是虚拟机管理器将虚拟机从某个虚拟地址开始的一段内存空间的内容拷贝到虚拟机管理器,输入参数由内存访问子模块2.1提供。
如图4所示,语义解析模块2包括内存访问子模块2.1、单个进程解析子模块2.2、进程列表解析子模块2.3、文件操作解析子模块2.4和网络连接解析子模块2.5;
内存访问子模块2.1的作用是当接收到事件通知子模块1.2的通知后,进行虚拟机内存拷贝;在访问虚拟机内存时,将需要访问的内存地址传递给内存映射子模块1.3,从而实现将虚拟机的一段内存空间中的内容拷贝到单个进程解析子模块2.2、进程列表解析子模块2.3、文件操作解析子模块2.4和网络连接解析子模块2.5。
单个进程解析子模块2.2是根据内存访问子模块2.1提供的内存空间中的内容,以及内核的进程结构解析出当前进程信息(进程标识、进程名、进程状态、操作的文件、网络连接);
进程列表解析子模块2.3是根据内存访问子模块2.1提供的内存空间中的内容,以及内核的进程双向链表结构解析出系统中的进程列表;
文件操作解析子模块2.4是根据内存访问子模块2.1提供的内存空间中的内容,以及内核的文件结构解析出文件操作的相关信息(进程标识、进程名、文件名、操作方式、操作时间);
网络连接解析子模块2.5是根据内存访问子模块2.1提供的内存空间中的内容,以及内核的文件结构解析出系统中所有打开的网络连接信息。
如图5所示,调度管理模块3包括统一调用接口子模块3.1、虚拟机检测子模块3.2、重置系统调用子模块3.3和监控驱动加载子模块3.4;
统一调用接口子模块3.1为调用程序提供标准的调用接口;当需要对虚拟机进行监控时,调用程序指定虚拟机标识、操作系统类型和监控类型(如单个进程信息、进程列表信息、文件操作信息和网络连接信息);当监控过程完成时,统一调用接口子模块3.1将语义解析模块2获取的监控信息发送到调用程序。
虚拟机检测子模块3.2检查虚拟机是否存在以及虚拟机中操作系统的类型,并调用重置系统调用子模块3.3;
重置系统调用子模块3.3的功能是开启系统调用截获功能,设置系统调用截获子模块1.1;同时调用监控驱动加载子模块3.4;
监控驱动加载子模块3.4是将与虚拟机中操作系统对应的监控驱动加载到内存,并对虚拟机启动语义解析功能;
调度管理模块3的具体工作过程为:当调用程序需要对某个虚拟机进行监控时,将虚拟机的标号和类型以参数形式传递给统一调用接口子模块3.1,统一调用接口子模块3.1调用虚拟机检测子模块3.2进行参数检查;当检查通过时,调用重置系统调用子模块3.3,通知系统调用截获子模块1.1开启监控;同时监控驱动加载子模块3.4根据虚拟机中操作系统的类型加载相应的语义解析模块2。当语义解析模块2完成解析后,统一调用接口子模块3.1将语义解析模块2提供的解析后获得的监控信息输出到用户态的调用程序。
本发明提出的监控系统包含初始化过程和监控过程,如图2所示。监控系统流程如图6所示。
在初始化阶段,调用程序通过统一调用接口子模块3.1传递虚拟机标识、虚拟机中操作系统类型和监控信息类型。监控信息类型包括单个进程信息、进程列表信息、文件操作信息或者网络连接信息。统一调用接口子模块3.1首先调用虚拟机检测子模块3.2来检查虚拟机是否存在以及虚拟机的类型是否匹配。如果虚拟机不存在或者操作系统类型不匹配,监控系统结束。当检查通过后,调用重置系统调用子模块3.3来设置对虚拟机中的系统调用进行截获,同时调用监控驱动加载子模块3.4来加载与虚拟机中操作系统对应的语义解析模块。
在监控阶段,当虚拟机中发生系统调用时,系统调用截获子模块1.1开始截获虚拟机中发生的系统调用,并调用事件通知子模块1.2通知内存访问子模块2.1。内存访问子模块把需要访问虚拟机的一段内存空间发送给内存映射子模块1.3,由内存映射子模块1.3将虚拟机中的一段内存空间拷贝到管理域中。内存访问子模块2.1和内存映射子模块1.3联合起来实现管理域对虚拟机的内存访问。语义解析模块2根据统一调用接口3.1中指定的监控信息类型来调用相应的语义解析子模块(单个进程解析子模块2.2,进程列表解析子模块2.3,文件操作解析子模块2.4,或者网络连接解析子模块2.5)。在语义解析完成后,语义解析模块2将解析后的信息传递给统一调用接口3.1,由统一调用接口3.1发送到调用程序。
实例:
下面举例说明本系统实施过程中的配置情况。
在某个物理平台上部署虚拟机管理器和多种不同类型的虚拟机,该物理平台的硬件及系统配置如表1所示。
CPU | 内存 | 硬盘 | 操作系统 | 虚拟机管理器 |
2个Intel Xeon E5310 | 4GB | 160GB | Fedora Core 8 | Xen |
表1物理平台的硬件及系统配置
在该物理平台上安装了虚拟机管理器-Xen,并部署1个管理域和3个不同类型的虚拟机,基于驱动的虚拟机通用监控系统部署在虚拟机管理器和管理域的内核态。各个虚拟机基本配置情况如表2所示。
表2各个虚拟机的配置情况
在该物理平台上,同时运行4个虚拟机,其中1个管理域对其他的虚拟机进行控制和管理,其他3个虚拟机分别配置1个虚拟机CPU和1GB内存。3个虚拟机中的操作系统各不相同,分别为:Ubuntu 8.04(Linux 2.6.24),Ubuntu 9.10(Linux 2.6.31)和Windows XP。
为了能够证明本发明提出监控系统的通用性,在管理域的用户态运行的监控系统实例如下图所示。该监控系统(list_process)的功能是列出虚拟机中的所有进程信息,其输入参数为:虚拟机标识,操作系统类型。
首先,监控系统打开调度管理模块,然后初始化请求结构,包括虚拟机标识和操作系统类型。接下来,监控系统向调度管理模块发送监控请求(列出虚拟机中进程列表)。最后,通过读取调度管理模块对应的设备文件,输出虚拟机中的进程列表信息。通过输入不同的参数,监控系统可以得到虚拟机中的进程列表信息。对不同类型的虚拟机,监控系统都能够显示虚拟机中的所有进程,从而实现了通用监控的目标。
针对虚拟机1(Ubuntu 8.04),监控系统输入的参数是:list_process,1,LINUX_2_6_24,表示列出虚拟机1中的所有进程,虚拟机1中的操作系统类型为Linux 2.6.24,执行结果显示了虚拟机中的所有进程相关信息。
同理,针对虚拟机2(Ubuntu 9.10),监控系统输入的参数是:list_process,2,LINUX_2_6_31,表示列出虚拟机2中的所有进程,虚拟机2中的操作系统类型为Linux 2.6.31,执行结果显示了虚拟机中的所有进程相关信息。
同理,针对虚拟机3(Windows XP),监控系统输入的参数是:list_process,3,WINDOWS_XP,表示列出虚拟机3中的所有进程,虚拟机3中的操作系统类型为Windows XP,执行结果显示了虚拟机中的所有进程相关信息。
在此,本发明仅对列出进程列表(LIST_PROC_LIST)进行说明,此外监控系统还可以列出单个进程信息(LIST_PROC_INFO),列出文件操作(LIST_FILE),列出网络连接(LIST_NET_CON)。
本发明不仅局限于上述具体实施方式,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方式实施本发明,因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护的范围。
Claims (1)
1.一种基于驱动的虚拟机通用监控系统,该系统包括事件截获模块(1)、语义解析组件和调度管理模块(3);事件截获模块(1)位于虚拟机管理器中,语义解析组件和调度管理模块(3)位于管理域的内核态,语义解析组件包括与虚拟机中操作系统的类型相对应的多个语义解析模块(2);在初始化时以内核模块的方式将与虚拟机中操作系统类型对应的语义解析模块(2)加载到管理域中;所述管理域是指负责对其他虚拟机进行管理操作的特权虚拟机;
事件截获模块(1)由调度管理模块(3)负责开启,用于对系统调用进行截获,从而使执行流程从虚拟机进入虚拟机管理器中,并向语义解析模块(2)发送通知,告知系统调用事件已发生;事件截获模块(1)根据语义解析模块(2)的内存访问请求,从虚拟机中拷贝一段所需要的内存空间发送给语义解析模块(2);
语义解析模块(2)发送内存访问请求到事件截获模块(1),并接收事件截获模块(1)返回的一段内存空间的内容;语义解析模块(2)根据操作系统内核的关键数据结构,对获取的所述内存空间的内容即低级语义信息进行解析,将其转换为高级语义信息,并通知调度管理模块(3);
调度管理模块(3)为调用程序和所述虚拟机通用监控系统之间提供交互接口;在初始化过程中,调度管理模块(3)接收调用程序传递的参数,对参数进行检查,在检查通过后开启事件截获模块(1),并加载对应的语义解析模块(2);在解析过程完成后,调度管理模块(3)将语义解析模块(2)解析后的高级语义信息传递给调用程序,该调用程序是指管理域中用户态的应用程序;;事件截获模块(1)包括系统调用截获子模块(1.1)、事件通知子模块(1.2)和内存映射子模块(1.3);
系统调用截获子模块(1.1)用于在重置系统调用子模块(3.3)开启后针对虚拟机中的操作系统中的系统调用进行截获,并调用事件通知子模块(1.2);
事件通知子模块(1.2)用于在截获到虚拟机中的系统调用时,实时通知管理域中的语义解析模块(2);
内存映射子模块(1.3)根据语义解析模块(2)提供的所述内存访问请求,将虚拟机中请求的一段内存空间的内容拷贝到虚拟机管理器;
语义解析模块(2)包括内存访问子模块(2.1)、单个进程解析子模块(2.2)、进程列表解析子模块(2.3)、文件操作解析子模块(2.4)和网络连接解析子模块(2.5);
内存访问子模块(2.1)当接收到事件通知子模块(1.2)的通知后,进行虚拟机内存拷贝;在访问虚拟机内存时,将需要访问的内存地址传递给内存映射子模块(1.3),根据内存访问请求将虚拟机的一段内存空间中的内容拷贝到单个进程解析子模块(2.2)、进程列表解析子模块(2.3)、文件操作解析子模块(2.4)和网络连接解析子模块(2.5);
单个进程解析子模块(2.2)是根据内存访问子模块(2.1)提供的内存空间中的内容,以及内核的进程结构解析出当前进程信息,包括进程标识、进程名、进程状态、操作的文件和网络连接;
进程列表解析子模块(2.3)是根据内存访问子模块(2.1)提供的内存空间中的内容,以及内核的进程双向链表结构解析出系统中的进程列表;
文件操作解析子模块(2.4)是根据内存访问子模块(2.1)提供的内存空间中的内容,以及内核的文件结构解析出文件操作的相关信息,包括进程标识、进程名、文件名、操作方式和操作时间;
网络连接解析子模块(2.5)是根据内存访问子模块(2.1)提供的内存空间中的内容,以及内核的文件结构解析出系统中所有打开的网络连接信息;调度管理模块(3)包括统一调用接口子模块(3.1)、虚拟机检测子模块(3.2)、重置系统调用子模块(3.3)和监控驱动加载子模块(3.4);
统一调用接口子模块(3.1)为调用程序提供标准的调用接口;当需要对虚拟机进行监控时,调用程序指定虚拟机标识、操作系统类型和监控类型;监控类型包括单个进程信息、进程列表信息、文件操作信息和网络连接信息;当监控过程完成时,统一调用接口子模块(3.1)将语义解析模块(2)获取的监控信息发送到调用程序;
虚拟机检测子模块(3.2)用于检查虚拟机是否存在以及虚拟机中操作系统的类型,并调用重置系统调用子模块(3.3);
重置系统调用子模块(3.3)的功能是开启系统调用截获功能,设置系统调用截获子模块(1.1),同时调用监控驱动加载子模块(3.4);
监控驱动加载子模块(3.4)是将与虚拟机中操作系统对应的监控驱动加载到内存,并对虚拟机启动语义解析模块(2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102387909A CN101923507B (zh) | 2010-07-30 | 2010-07-30 | 基于驱动的虚拟机通用监控系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102387909A CN101923507B (zh) | 2010-07-30 | 2010-07-30 | 基于驱动的虚拟机通用监控系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101923507A CN101923507A (zh) | 2010-12-22 |
CN101923507B true CN101923507B (zh) | 2012-09-26 |
Family
ID=43338460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102387909A Expired - Fee Related CN101923507B (zh) | 2010-07-30 | 2010-07-30 | 基于驱动的虚拟机通用监控系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101923507B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314391B (zh) * | 2011-05-27 | 2013-11-20 | 运软网络科技(上海)有限公司 | 一种基于硬件基础工具监视虚拟化系统性能的架构及方法 |
TWI451245B (zh) * | 2011-09-14 | 2014-09-01 | Inst Information Industry | 虛擬機器監控方法、系統及儲存其之電腦可讀取紀錄媒體 |
CN103064723B (zh) * | 2011-10-18 | 2016-01-20 | 财团法人工业技术研究院 | 虚拟机器存储器的鉴识方法与计算机系统 |
CN102521547B (zh) * | 2011-12-16 | 2014-09-24 | 华中科技大学 | 虚拟域内访问控制系统的保护系统 |
CN102622245B (zh) * | 2012-02-24 | 2015-04-08 | 中国人民解放军国防科学技术大学 | 一种sun4v架构下的虚拟机自动启动控制方法 |
CN102902599B (zh) * | 2012-09-17 | 2016-08-24 | 华为技术有限公司 | 虚拟机内部故障处理方法、装置及系统 |
CN103019813B (zh) * | 2012-11-21 | 2015-05-20 | 北京航空航天大学 | 获取基于SaaS的交互式程序的交互强度的方法 |
CN103227810B (zh) * | 2012-12-20 | 2016-03-02 | 广州天锐锋信息科技有限公司 | 一种在网络监控中识别远程桌面语义的方法、装置和系统 |
CN103544090B (zh) * | 2013-10-16 | 2016-04-06 | 北京航空航天大学 | 虚拟机进程监控方法和装置 |
CN105138388B (zh) * | 2014-06-09 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 虚拟机监控方法及装置 |
CN104462955B (zh) * | 2014-12-25 | 2017-04-05 | 中国科学院信息工程研究所 | 一种基于虚拟化的主机行为主动检测系统及方法 |
CN105337771A (zh) * | 2015-11-17 | 2016-02-17 | 国云科技股份有限公司 | 一种获取Windows虚拟机内部日志的方法 |
CN105607945B (zh) * | 2015-12-22 | 2018-12-28 | 中国科学院信息工程研究所 | 基于虚拟化的主机行为异步侦听截获系统和方法 |
CN112233498B (zh) * | 2020-10-14 | 2023-01-06 | 烟台鼎钰电子科技有限公司 | 一种表格式可编程显示控制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101290586A (zh) * | 2008-06-06 | 2008-10-22 | 华中科技大学 | 基于优先中国墙策略的虚拟机隐形流控制方法 |
CN101470634A (zh) * | 2007-12-24 | 2009-07-01 | 联想(北京)有限公司 | Cpu资源调度方法及虚拟机监视器、虚拟机系统 |
CN101751284A (zh) * | 2009-12-25 | 2010-06-23 | 北京航空航天大学 | 一种分布式虚拟机监控器的i/o资源调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8191062B2 (en) * | 2006-03-31 | 2012-05-29 | Intel Corporation | System for processor frequency governors to govern a processor frequency by deriving CPU utilization information based on the state of virtual machine monitor |
-
2010
- 2010-07-30 CN CN2010102387909A patent/CN101923507B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470634A (zh) * | 2007-12-24 | 2009-07-01 | 联想(北京)有限公司 | Cpu资源调度方法及虚拟机监视器、虚拟机系统 |
CN101290586A (zh) * | 2008-06-06 | 2008-10-22 | 华中科技大学 | 基于优先中国墙策略的虚拟机隐形流控制方法 |
CN101751284A (zh) * | 2009-12-25 | 2010-06-23 | 北京航空航天大学 | 一种分布式虚拟机监控器的i/o资源调度方法 |
Non-Patent Citations (1)
Title |
---|
谭浩宇.多虚拟机管理平台中的监控系统.《中国优秀硕士学位论文全文数据库》.2009,1-57. * |
Also Published As
Publication number | Publication date |
---|---|
CN101923507A (zh) | 2010-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101923507B (zh) | 基于驱动的虚拟机通用监控系统 | |
Lei et al. | Speaker: Split-phase execution of application containers | |
Crespo et al. | Partitioned embedded architecture based on hypervisor: The XtratuM approach | |
CN108475217B (zh) | 用于审计虚拟机的系统及方法 | |
US10509665B2 (en) | Fast-booting application image | |
US8732824B2 (en) | Method and system for monitoring integrity of running computer system | |
CN101271401B (zh) | 一种具备单一系统映像的服务器机群系统 | |
CN104021063B (zh) | 一种基于硬件虚拟化的模块化计算机取证系统及其方法 | |
Patrascu et al. | Logging system for cloud computing forensic environments | |
CN103345604A (zh) | 基于轻量虚拟机监控器的沙盒系统及用其监控os的方法 | |
CN103310152A (zh) | 基于系统虚拟化技术的内核态Rootkit检测方法 | |
CN107015814A (zh) | 满足异构操作系统业务移植的浏览器操作系统设计方法 | |
Patrascu et al. | Logging for cloud computing forensic systems | |
CN107608758A (zh) | 一种虚拟机文件完整性监控方法及系统 | |
CN108304248A (zh) | 一种多系统虚拟化的移动设备 | |
Sudhakar et al. | Efficient integration of online model checking into a small‐footprint real‐time operating system | |
US20220066805A1 (en) | Performing an application snapshot using process virtual machine resources | |
Zhan et al. | SAVM: A practical secure external approach for automated in‐VM management | |
Pinto et al. | SecSSy hypervisor: Security-safety synergy for aerospace | |
US20240232328A9 (en) | Methods and systems that monitor system-call-integrity | |
林闯 et al. | Enhance the dependability of computing systems: integration of virtualization and SOA | |
Kong et al. | Research on Real-time Virtualization Technology for Control System | |
Shalev | Improving system security and reliability with OS help | |
LeGendre et al. | Adiak | |
Li et al. | Accelerator Virtualization Framework Based on Inter-VM Exitless Communication. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120926 Termination date: 20150730 |
|
EXPY | Termination of patent right or utility model |