虚拟机客户操作系统内真实进程信息的探测方法

文档序号:6543647阅读:235来源:国知局
虚拟机客户操作系统内真实进程信息的探测方法【专利摘要】本发明公开了一种虚拟机客户操作系统内真实进程信息的探测方法,目的是解决基于显式信息的操作系统进程信息探测方法易被特权恶意代码攻击的不足。技术方案是先构建由CR3监测器和TVPL操作器组成的进程监视器;CR3监测器利用动态指令转换技术实时捕捉CR3寄存器内容的修改操作;TVPL操作器监测各个进程执行体信息块对应的内存页描述符,并根据CR3监测器的监测结果,获得和维护虚拟机客户操作系统内的真实进程信息。采用本发明可以探测出客户操作系统中的真实进程信息,克服基于显式信息探测方法中所面临的因恶意代码欺骗而无法获得真实进程列表的问题,为基于虚拟机的安全产品提供了重要的技术支撑。【专利说明】虚拟机客户操作系统内真实进程信息的探测方法【
技术领域
】[0001]本发明涉及对虚拟机客户操作系统中所有进程的信息进行探测的方法,尤指一种利用CR3寄存器来探测虚拟机客户操作系统内真实进程信息的方法。【
背景技术
】[0002]目前,大量安全产品需要在虚拟层分析客户操作系统全部进程的信息,如基于虚拟机技术的入侵检测系统、恶意代码分析工具等。然而,由于在虚拟机内部并没有像标准应用程序编程接口那样的接口来获取客户操作系统的进程信息等,即虚拟机中的客户操作系统的内部状态对虚拟机来说是完全透明的,因此在虚拟层很难直接获取客户操作系统内部进程信息。[0003]为了解决这一问题,研究人员设计了一些方法,工作在虚拟层,基于所能获取到的特定信息,来反推出上层客户操作系统的进程信息。目前公开的工作于虚拟层的客户操作系统进程信息探测方法均是基于显式信息。所谓“显式信息”是指操作系统运行环境内,可被该操作系统内运行的软件(包括用户态软件和核心态软件)修改且不影响操作系统正常运行的数据。例如,VMI(见GarfinkelT,RosenblumM.等人的论文“AVirtualMachineIntrospectionBasedArchitectureforIntrusionDetection”)利用特定版本操作系统的调试符号信息,通过直接读取客户操作系统内存,探测出相应的操作系统关键数据结构。IntroVirt(见JoshiA,KingST,DunlapGW等人的论文“DetectingPastandPresentIntrusionsthroughVulnerability-SpecificPredicates”)利用操作系统核心函数(如fork、exec和mmap等)的实现信息来探测客户操作系统相应的关键系统事件。[0004]这些基于显式信息的操作系统信息探测方法虽然对探测进程信息便捷有效,但是这些方法依赖的信息源(主要是客户环境的内存数据)容易被客户操作系统内的特权恶意代码篡改。因此,如果进程列表已被恶意代码篡改,则即使在虚拟层读取客户操作系统内存并探测出操作系统的进程列表,进程列表也是不完整的,使得恶意代码难以被发现。【
发明内容】[0005]本发明要解决的技术问题是:针对基于显式信息的操作系统进程信息探测方法易被特权恶意代码攻击的不足,提供一种基于隐式信息的进程信息探测方法,利用恶意代码无法篡改的隐式信息来探测到客户操作系统中的真实进程信息。[0006]为解决上述问题,本发明的技术方案是:[0007]在虚拟层分析来自虚拟设备的隐式信息,获得客户操作系统中的真实进程列表(简称为TVPL,TrustedViewofProcessList)。与显式信息相反,所谓“隐式信息”是指操作系统运行环境内,运行的软件(包括用户态软件和核心态软件)无法破坏其完整性的数据,或破坏其完整性将直接导致操作系统崩溃的数据。本发明主要涉及两类隐式信息:CR3寄存器的内容、进程执行体信息块(ExecutiveProcessBlock,EPR0CESS)所在的内存页。CR3寄存器的内容是一种重要的“隐式信息”。CR3寄存器指向一个进程的地址空间的页目录,因此,CR3寄存器与进程形成了一一映射关系。利用动态指令转换技术(一种虚拟化技术,参见“QEMU,aFastandPortableDynamicTranslator,,,USENIXAnnualTechnicalConference,FREENIXTrack.2005:41-46.“QEMU,—种快速轻便的动态翻译器”),可以捕获到虚拟机内所有修改CR3寄存器的操作,利用这一特性通过监视CR3寄存器的变化可获取真实进程列表TVPL。Windows平台下,存储进程信息的内核数据结构进程执行体信息块(ExecutiveProcessBlock,EPR0CESS)所在的内存页也是一种重要的隐式信息。TVPL采用红黑树(一种能够快速查找、插入、删除节点的数据结构,参见RudolfBayer在1972年发表的论文“SymmetricbinaryB-Trees:Datastructureandmaintenancealgorithms对称二叉B树:数据结构及维护算法”,以及LeonidasJ.Guibas和RobertSedgewick在1978年发表的论文“ADichromaticFrameworkforBalancedTrees平衡树的一种双色框架”)存储,红黑树的每个节点包含一个进程的信息,由该进程所对应的CR3寄存器的值索引。本发明具体步骤为:[0008]第一步,构建进程监视器。进程监视器由CR3监测器和TVPL操作器两个软件模块组成。[0009]CR3监测器实时监测虚拟机中的指令,当有修改CR3寄存器内容的操作时捕获虚拟机内所有修改CR3寄存器内容的操作,并将修改后的CR3寄存器内容送给TVPL操作器。[0010]TVPL操作器根据CR3监测器传送来的修改后的CR3寄存器内容,构建TVPL红黑树,并进行查找、插入、删除操作。[0011]第二步,启动进程监视器,由TVPL操作器构建一个空的TVPL红黑树。[0012]第三步,CR3监测器实时监测虚拟机中的指令,利用动态指令转换技术(一种虚拟化技术,参见“QEMU,aFastandPortableDynamicTranslator”,USENIXAnnualTechnicalConference,FREENIXTrack.2005:41-46.“QEMU,—种快速轻便的动态翻译器”),判断是否有修改CR3寄存器内容的操作,如果有,捕获虚拟机内所有修改CR3寄存器内容的操作,并将修改后的CR3寄存器内容送给TVPL操作器,转第四步;否则,转第三步。[0013]第四步,TVPL操作器判断TVPL红黑树是否为空。如果为空,转到第六步。如果非空,对于TVPL红黑树中的每个进程p,TVPL操作器执行如下操作:[0014](4.1)获取进程P的进程执行体信息块所在的内存页m,该内存页命名为m。[0015](4.2)判断内存页m的描述项的un-present比特位是否被设置为I(意味着进程退出):如果是,将进程P从TVPL红黑树中移除(参见RudolfBayer在1972年发表的论文“SymmetricbinaryB-Trees:Datastructureandmaintenancealgorithms对称二叉B树:数据结构及维护算法”,以及LeonidasJ.Guibas和RobertSedgewick在1978年发表的论文“ADichromaticFrameworkforBalancedTrees平衡树的一种双色框架”),转到第五步;如果不是,直接转到第五步。[0016]第五步,TVPL操作器判断TVPL红黑树中是否存在CR3值对应的进程P:如果有,转第十步;如果无,转第六步。[0017]第六步,TVPL操作器在TVPL红黑树中创建新的节点N,并根据CR3寄存器的值获取进程P的进程执行体信息块的地址。[0018]第七步,TVPL操作器判断进程P的进程执行体信息块中是否已被操作系统初始化(即操作系统根据创建进程时的参数信息填充进程执行体信息块中各个数据项):如果是,转第八步;否则,转第十二步。[0019]第八步,TVPL操作器通过进程执行体信息块获取进程P的进程信息。[0020]第九步,TVPL操作器用进程P的进程信息初始化TVPL中的节点N。转第十二步。[0021]第十步,TVPL操作器判断TVPL红黑树中进程P的节点中的进程信息是否已被初始化:如果是,转第十二步;否则,转第十一步。[0022]第十一步,TVPL操作器通过进程P的进程执行体信息块获取相应的进程信息,并用进程P的进程信息初始化TVPL红黑树中的节点N。[0023]第十二步,TVPL操作器判断是否接收到退出指令:如果是,转第十三步;否则,转第二步。[0024]第十三步,进程监视器结束。[0025]采用本发明可以达到以下技术效果:[0026]由于CR3寄存器内容不能被随意篡改,因此通过监视CR3寄存器的值,可以探测出客户操作系统中的真实进程信息,克服了基于显式信息探测方法中所面临的因恶意代码欺骗而无法获得真实进程列表的问题,为基于虚拟机的安全产品提供了重要的技术支撑。【专利附图】【附图说明】:[0027]图1为本发明的总流程图。[0028]图2为本发明第一步所构建的进程监视器示意图。[0029]具体实施步骤[0030]图1为本发明的总流程图。本发明包括以下步骤:[0031]第一步,构建进程监视器。如图2所示,进程监视器由CR3监测器和TVPL操作器两个软件模块组成。[0032]CR3监测器实时监测虚拟机中的指令,当有修改CR3寄存器内容的操作时捕获虚拟机内所有修改CR3寄存器内容的操作,并将修改后的CR3寄存器内容送给TVPL操作器。[0033]TVPL操作器根据CR3监测器传送来的修改后的CR3寄存器内容,构建TVPL红黑树,并进行查找、插入、删除操作。[0034]第二步,启动进程监视器,由TVPL操作器构建一个空的TVPL红黑树。第三步,CR3监测器实时监测虚拟机中的指令,利用动态指令转换技术,判断是否有修改CR3寄存器内容的操作,如果有,捕获虚拟机内所有修改CR3寄存器内容的操作,并将修改后的CR3寄存器内容送给TVPL操作器,转第四步;否则,转第三步。[0035]第四步,TVPL操作器判断TVPL红黑树是否为空。如果为空,转到第六步。如果非空,对于TVPL红黑树中的每个进程p,TVPL操作器执行如下操作:[0036](4.1)获取进程P的进程执行体信息块所在的内存页m。[0037](4.2)判断内存页m的描述项的un-present比特位是否被设置为I(意味着进程退出):如果是,将进程P从TVPL中移除,转到第五步;如果不是,直接转到第五步。[0038]第五步,TVPL操作器判断TVPL红黑树中是否存在CR3值对应的进程P:如果有,转第十步;如果无,转第六步。[0039]第六步,TVPL操作器在TVPL红黑树中创建新的节点N,并根据CR3寄存器的值获取进程P的进程执行体信息块的地址。[0040]第七步,TVPL操作器判断进程P的进程执行体信息块中是否已被操作系统初始化(即操作系统根据创建进程时的参数信息填充进程执行体信息块中各个数据项):如果是,转第八步;否则,转第十二步。[0041]第八步,TVPL操作器通过进程执行体信息块获取进程P的进程信息。[0042]第九步,TVPL操作器用进程P的进程信息初始化TVPL中的节点N。转第十二步。[0043]第十步,TVPL操作器判断TVPL红黑树中进程P的节点中的进程信息是否已被初始化:如果是,转第十二步;否则,转第十一步。[0044]第十一步,TVPL操作器通过进程P的进程执行体信息块获取相应的进程信息,并用进程P的进程信息初始化TVPL红黑树中的节点N。[0045]第十二步,TVPL操作器判断是否接收到退出指令:如果是,转第十三步;否则,转第二步。[0046]第十三步,进程监视器结束。【权利要求】1.一种虚拟机客户操作系统内真实进程信息的探测方法,其特征在于包括以下步骤:第一步,构建进程监视器,进程监视器由CR3监测器和真实进程列表操作器即TVPL操作器两个软件模块组成;CR3监测器实时监测虚拟机中的指令,当有修改CR3寄存器内容的操作时捕获虚拟机内所有修改CR3寄存器内容的操作,并将修改后的CR3寄存器内容送给TVPL操作器;TVPL操作器根据CR3监测器传送来的修改后的CR3寄存器内容,构建TVPL红黑树,并进行查找、插入、删除操作;所述TVPL红黑树的每个节点包含一个进程的信息,由该进程所对应的CR3寄存器的值索引;第二步,启动进程监视器,由TVPL操作器构建一个空的TVPL红黑树;第三步,CR3监测器实时监测虚拟机中的指令,利用动态指令转换技术,判断是否有修改CR3寄存器内容的操作,如果有,捕获虚拟机内所有修改CR3寄存器内容的操作,并将修改后的CR3寄存器内容送给TVPL操作器,转第四步;否则,转第三步;第四步,TVPL操作器判断TVPL红黑树是否为空,如果为空,转到第六步;如果非空,对于TVPL红黑树中的每个进程p,TVPL操作器执行如下操作:(4.1)获取进程P的进程执行体信息块所在的内存页,该内存页命名为m;(4.2)判断m的描述项的“非存在”比特位即un-present比特位是否被设置为1:如果是,将进程P从TVPL红黑树中移除,转到第五步;如果不是,直接转到第五步;第五步,TVPL操作器判断TVPL红黑树中是否存在CR3值对应的进程P:如果有,转第十步;如果无,转第六步;第六步,TVPL操作器在TVPL红黑树中创建新的节点N,并根据CR3寄存器的值获取进程P的进程执行体信息块的地址;第七步,TVPL操作器判断进程P的进程执行体信息块中是否已被操作系统初始化,初始化是指操作系统根据创建进程时的参数信息填充进程执行体信息块中各个数据项:如果是,转第八步;否则,转第十二步;第八步,TVPL操作器通过进程执行体信息块获取进程P的进程信息;第九步,TVPL操作器用进程P的进程信息初始化TVPL中的节点N,转第十二步;第十步,TVPL操作器判断TVPL红黑树中进程P的节点中的进程信息是否已被初始化:如果是,转第十二步;否则,转第十一步;第十一步,TVPL操作器通过进程P的进程执行体信息块获取相应的进程信息,并用进程P的进程信息初始化TVPL红黑树中的节点N;第十二步,TVPL操作器判断是否接收到退出指令:如果是,转第十三步;否则,转第三止/J/O第十三步,进程监视器结束。【文档编号】G06F21/56GK103914332SQ201410147934【公开日】2014年7月9日申请日期:2014年4月14日优先权日:2014年4月14日【发明者】王怀民,温研,赵金晶,王天佐申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1