CN103019865A - 虚拟机监控方法和系统 - Google Patents
虚拟机监控方法和系统 Download PDFInfo
- Publication number
- CN103019865A CN103019865A CN201210587189XA CN201210587189A CN103019865A CN 103019865 A CN103019865 A CN 103019865A CN 201210587189X A CN201210587189X A CN 201210587189XA CN 201210587189 A CN201210587189 A CN 201210587189A CN 103019865 A CN103019865 A CN 103019865A
- Authority
- CN
- China
- Prior art keywords
- monitoring
- breakpoint
- operating system
- virtual machine
- vme operating
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种虚拟机监控方法和系统。其中虚拟机监控方法,包括:获取虚拟机操作系统的虚拟指令块,所述虚拟指令块中包括多个虚拟指令;在所述虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点;当执行所述虚拟指令时,根据第一监控断点执行监控。本发明适用于在指令翻译阶段进行监控断点设置,而指令执行阶段无需检查监控断点,提高虚拟机的执行效率,能有效提升虚拟机的性能。
Description
技术领域
本发明涉及计算机安全技术,尤其涉及一种虚拟机监控方法和系统。
背景技术
计算机安全是计算机技术领域所关注的重要课题之一,随着计算机技术的发展,人们已通过多种手段监控防范对计算机的攻击,保证计算机系统的安全。
图1为现有虚拟机安全监控技术中虚拟机指令插桩方法的流程图,当虚拟机进行指令操作时,首先是获取虚拟指令块,然后对指令块进行翻译,翻译成机器可识别的语言,最后执行相应的指令。如图1所示,在这个指令操作过程中,其虚拟机监控设置在指令执行过程中,具体为:当虚拟机的中央处理单元(Central Processing Unit,简称CPU)执行每条指令时,通过判断该指令的地址是否在预先设置监控断点的地址范围,若是,则先调用相应的用于监控的回调函数,执行完回调函数对应的代码后再接着执行原来的指令,否则直接执行原指令,其中设置监控断点即指令插桩操作,也就是在原指令代码处设置一段监控代码,当CPU执行指令时,若某指令处设置有监控代码,则先执行监控代码,再执行原指令代码。通过这种虚拟机指令插桩方法可使虚拟机能够自动地对设置监控断点的虚拟机系统进行安全监控。
但是,上述虚拟机指令插桩方法中,CPU在每次执行指令时都会去检查监控断点,而且当同一个指令被执行多次时,需要多次判断是否为监控断点,从而导致了虚拟机CPU资源的极大浪费,而且由于虚拟机执行指令时占用指令操作大部分时间,所以上述方法还对虚拟机的指令执行效率有较大影响。
发明内容
本发明提供一种虚拟机监控方法和系统,用以降低上述现有技术中对虚拟机监控时引起的虚拟机CPU资源的浪费和虚拟机的指令执行效率不高的问题。
本发明的第一个方面是提供一种虚拟机监控方法,包括:
获取虚拟机操作系统的虚拟指令块,所述虚拟指令块中包括多个虚拟指令;
在所述虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点;
当执行所述虚拟指令时,根据第一监控断点执行监控。
本发明的第二个方面是提供一种虚拟机监控系统,包括:
第一获取模块,用于获取虚拟机操作系统的虚拟指令块,所述虚拟指令块中包括多个虚拟指令;
第一设置模块,用于在所述虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点;
第一监控模块,用于当执行所述虚拟指令时,根据第一监控断点执行监控。
本发明通过在虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点,使得在指令执行阶段无需检查监控断点,提高虚拟机的执行效率,避免了虚拟机CPU资源的浪费,从而极大提升了虚拟机的性能;进一步地,通过预先存储不同版本操作系统对应的关键代码的位置和数据结构的偏移,可以使虚拟机启动操作系统时能够自动灵活选择相应的监控断点信息,有效地提高了监控方法的实用性。
附图说明
图1为现有虚拟机安全监控技术中虚拟机指令插桩方法的流程图;
图2为本发明虚拟机监控方法实施例一的流程图;
图3为本发明图2中虚拟指令块翻译的流程图;
图4为本发明虚拟机监控方法在实际应用的具体流程图;
图5为本发明虚拟机监控方法实施例二中数据监控部分的流程图;
图6为本发明虚拟机监控方法实施例三中引导代码监控部分的流程图;
图7为图6所示引导代码监控在实际应用中的监控原理图;
图8为本发明虚拟机监控方法实施例四中硬件监控部分的流程图;
图9为图8所示硬件监控的实际应用中的监控原理图;
图10为本发明虚拟机监控系统实施例一的结构示意图;
图11为本发明虚拟机监控系统实施例二的结构示意图;
图12为本发明虚拟机监控系统实施例的具体应用结构示意图。
具体实施方式
以下结合说明书附图对本发明实施例进行详细说明。
图2为本发明虚拟机监控方法实施例一的流程图,如图2所示,本实施例的方法包括:
步骤201、获取虚拟机操作系统的虚拟指令块,所述虚拟指令块中包括多个虚拟指令。
当虚拟机操作系统在执行每条虚拟指令时,首先读取指令,在对指令进行翻译,翻译成机器可识别的语言,最后执行指令。本实施例的监控方法中,首先是获取虚拟机操作系统中包含多个虚拟指令的虚拟指令块,后续在指令翻译阶段进行指令插桩操作。
步骤202、在所述虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点。
虚拟指令的翻译指的是虚拟机在指令运行时对虚拟指令进行的实时翻译,其翻译的整个过程为虚拟指令的翻译阶段。图3为本发明图2中虚拟指令块翻译的流程图,如图3所示,虚拟机一般以指令块为单位生成翻译的指令代码并进行缓存,当虚拟CPU执行指令时,首先从已翻译的指令块缓存中查找,若没有命中,则先构造指令块,并进行翻译,之后再执行,同时将翻译的指令块进行缓存,若在缓存中查找到,即命中,则可以直接执行指令,因此,若某个指令已翻译过,则后续无论CPU执行多少次该指令均不需再进行翻译,即一个指令只需翻译一次,而可以执行多次,从而本实施例进行的监控断点设置也只进行一次,后续可多次直接执行使用,有利于提高虚拟CPU的执行效率,而且还有效降低了CPU的资源消耗。
在上述步骤201获取虚拟指令块后,在虚拟指令的翻译阶段,监控系统判断当前翻译的虚拟指令的地址是否在监控断点列表中监控断点的地址范围,若在,则需要对相应的虚拟指令设置监控断点,在原虚拟指令的头部插入监控代码,也即在翻译的指令流中添加调用回调函数的指令,以精确在指令处设置监控断点,当后续执行指令时,可以直接先执行插入的监控代码,再执行原虚拟指令,而无需如现有技术中在执行指令前进行判断,从而有效提高了指令执行时的效率。其中,监控断点列表可以为监控系统预先设定的存储在数据库中的监控断点信息,也可以为实时获取的需插入的监控断点信息。具体应用中,监控系统预先设定的存储在数据库中的监控断点信息时,其操作步骤包括:通过获取当前虚拟机操作系统预设的监控断点信息;根据预设的监控断点信息生成与所述虚拟机操作系统相关联的监控断点列表,所述监控断点列表中包含预设的监控断点的地址,从而在虚拟指令块的翻译阶段,监控系统确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,以进行相应的处理。
与现有技术中在指令执行阶段在每个指令执行前判断是否此指令地址为监控断点地址范围内相比,本实施例通过在翻译阶段进行插桩操作,设置监控断点。由于一个指令可能会被执行多次,而此指令的翻译只有一次,而且虚拟机指令执行时间要占指令操作总时间的99%以上,因此指令翻译阶段消耗的时间可以忽略不计,在翻译阶段进行插桩不会占用太多时间,而且一旦一个指令插桩完成,后续即使多次执行该指令,均可直接执行指令,无需判断,因此本发明的监控方法可以提高虚拟机的执行效率,同时也有效避免了虚拟机CPU资源的浪费。
在实际应用中,由于虚拟机操作系统在不断改进完善,因此会存在多种操作系统版本,而不同版本中,需要对其进行监控的监控断点位置是不同的,因此有必要对不同版本操作系统的监控断点信息进行提取,建立与该版本对应的监控断点信息数据库,以便于虚拟机启动相应版本的操作系统时,可以根据对应版本的监控断点信息设置监控断点。具体操作中,针对不同版本提取并设置相应的监控断点的特征代码和数据结构,即提取并设置监控断点信息,包括步骤:获取与虚拟机操作系统版本对应的系统文件的符号文件中的关键代码的位置和数据结构的偏移,所述关键代码和数据结构为预设的需设置监控断点的特征代码和数据结构;将获取的关键代码的位置和数据结构的偏移与虚拟机操作系统版本的对应关系存储在数据库中,以使虚拟机操作系统运行时根据所述数据库中存储的与虚拟机操作系统版本对应的关键代码的位置和数据结构的偏移设置监控断点。如windows操作系统中的系统文件的符号文件(pdb后缀文件),在进行监控之前,可以从该符号文件中获取监控相关的关键代码位置和数据结构的偏移,并将其与windows系统版本的对应关系存储在数据库中。本实施例的监控方法中进一步通过提取并存储相应版本系统的监控断点信息,可以使虚拟机根据操作系统版本的不同自动灵活地选择适合的监控断点信息,从而有效地提高了监控方法的实用性。
步骤203、当执行所述虚拟指令时,根据第一监控断点执行监控。
当上述步骤202完成监控断点插桩操作后,后续虚拟机操作系统在执行虚拟指令时,可以根据设置的监控断点执行监控操作,获取监控记录文件,根据监控记录文件可以分析出虚拟机操作系统是否存在病毒或恶意代码攻击,以采取进行的防攻击处理,从而可有效保证虚拟机操作系统的安全。
图4为本发明虚拟机监控方法在实际应用的具体流程图,如图4所示,该图显示了与现有技术中图1所示监控方法的区别,由图4可知,本发明中是在指令块的翻译阶段执行断点判断,并在指令翻译后在断点指令中添加监控断点信息,设置监控断点,从而在执行设置断点的指令时,可以直接回调函数并执行相应的指令。
本实施例通过在虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点,使得在指令执行阶段无需检查监控断点,提高虚拟机的执行效率,避免了虚拟机CPU资源的浪费,从而极大提升了虚拟机的性能;进一步地,通过预先存储不同版本操作系统对应的关键代码的位置和数据结构的偏移,可以使虚拟机启动操作系统时能够自动灵活选择相应的监控断点信息,有效地提高了监控方法的实用性。
本发明上述实施例是对虚拟机操作系统的指令代码进行监控保护,然而当虚拟机操作系统的核心数据受到恶意程序攻击时,仅仅通过监控代码以阻止攻击还是远远不够的,因此还需要进行数据监控。通常,操作系统的核心数据在内存中以链表形式保存,为防止恶意程序对核心数据的攻击,如对核心数据的链表的插入或移除操作等,需要对这些链表进行监控。
图5为本发明虚拟机监控方法实施例二中数据监控部分的流程图,如图5所示,本实施例的方法在上述图2所示实施例的基础上,进一步还对核心数据的链表操作进行监控,其监控的具体步骤包括:
步骤501、当虚拟机操作系统的核心数据以双向链表形式保存时,在双向链表的前向指针和后向指针处设置第二监控断点。
步骤502、当虚拟机操作系统进行指针操作时根据第二监控断点执行监控。
本实施例中,虚拟机操作系统的核心数据以双向链表形式保存,双向链表包括前向指针和后向指针,通过在两个指针处设置监控断点,当进行指针操作时,若恶意程序对链表进行修改,则可以监控到,从而实现对链表修改的监控,保证链表维护的数据的安全性。
本实施例在达到上述图1所示实施例技术效果的基础上,进一步在虚拟机操作系统的核心数据的双向链表的指针处设置监控断点,有效实现了链表修改的监控,从而实现对核心数据的保护。
上述实施例中,虚拟监控方法从对指令代码及内存中的核心数据进行监控保护,当虚拟操作系统启动后,如bootkit和rootkit等恶意代码也已完成了加载,因此,在此后的监控中是无法监控到的,而且这些恶意代码还有可能产生干扰而导致监控失效,因此,有必要在虚拟机操作系统被引导启动时就执行监控,以提高监控的有效性。
图6为本发明虚拟机监控方法实施例三中引导代码监控部分的流程图,如图6所示,本实施例的方法在上述图1或图5所示实施例的基础上,进一步还对虚拟机操作系统的启动引导程序进行了监控设置,其监控的具体步骤包括:
步骤601、对虚拟机操作系统的引导程序设置第三监控断点。
步骤602、当所述引导程序在引导加载虚拟机操作系统时根据所述第三监控断点执行监控。
本实施例中,监控系统通过在虚拟机操作系统的系统引导程序中设置监控断点,当启动虚拟机操作系统时,引导程序在引导加载操作系统时就可以实现监控,即对系统loader的函数进行了监控,从而避免了加载操作系统后无法监控如bootkit和rootkit等恶意代码的问题,可以监控到恶意代码对主引导记录(Master Boot Record,简称MBR)的篡改行为,实现了提前监控处理,避免攻击。
具体应用中,可以采用上述的代码监控和数据监控相结合的方式对引导程序进行设置监控断点。图7为图6所示引导代码监控在实际应用中的监控原理图。如图7所示,在引导代码监控中,对MBR设置代码监控断点,而对系统引导代码采用设置数据监控断点和代码监控断点相结合的方式,由图示可知,在加载操作系统之前已进行了监控,所以能够有效监控到bootkit和rootkit等恶意代码的攻击行为,达到了全面的监控。
在上述的任一中监控方法实施例中,当恶意代码隐藏的更深的情况下,可能上述的监控方法也监控不到,但是无论恶意代码隐藏有多深,在其进行输入输出(IO)操作时。必然会反映在硬件上,因此可以通过对硬件进行监控实现最底层的监控。
图8为本发明虚拟机监控方法实施例四中硬件监控部分的流程图,如图8所示,本实施例的方法在上述图1、图5或图7所示实施例的基础上,进一步还对虚拟机的硬件进行了监控,其监控的具体步骤包括:
步骤801、采集虚拟机虚拟硬件输入输出的数据;
步骤802、根据采集的输入输出数据对虚拟机进行监控。
本实施例中,通过对执行网络数据收发的网卡和存储数据的磁盘等的IO操作进行监控,实现了对最底层数据操作的监控。
图9为图8所示硬件监控的实际应用中的监控原理图,如图9所示,通过对硬件进行监控,如通过获取网卡或磁盘的IO数据,对这些获取的数据进行分析,从而可以获知IO操作的数据是否异常数据,从而进一步实施监控处理。当进行监控时,对IO操作的数据进行记录分析生成监控记录数据,以便于后续进行查看。
上述监控方法实施例分别从不同角度不同层次对虚拟机进行监控,实现了针对不断升级的恶意攻击采取了有效监控,极大提升了虚拟机系统的性能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图10为本发明虚拟机监控系统实施例一的结构示意图,如图10所示,本实施例的监控系统包括:第一获取模块10、第一设置模块11和第一监控模块12,其中,第一获取模块10,用于获取虚拟机操作系统的虚拟指令块,所述虚拟指令块中包括多个虚拟指令;第一设置模块11,用于在所述虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点;第一监控模块12,用于当执行所述虚拟指令时,根据第一监控断点执行监控。
本实施例中,第一获取模块10获取虚拟机操作系统待执行的虚拟指令块,第一设置模块11在指令块翻译阶段设置监控断点,第一监控模块12在虚拟机操作系统执行所述虚拟指令时,根据第一设置模块11设置的第一监控断点执行监控。
本实施例可用于执行上述图2所示方法实施例的技术方案,其达到的技术效果和技术原理,在此不再详细赘述。
图11为本发明虚拟机监控系统实施例二的结构示意图,如图11所示,本实施例的监控系统除了具有代码监控部分100,其包括上述图10中的第一获取模块10、第一设置模块11和第一监控模块12,而且还具有数据监控部分200、引导代码监控部分300、硬件监控部分400等,即在上述图10所示实施例的基础上,还进一步包括用于预先获取监控断点信息的收集模块13和生成模块14,其中,收集模块13,用于获取当前虚拟机操作系统预设的监控断点信息;生成模块14,用于根据预设的监控断点信息生成与所述虚拟机操作系统相关联的监控断点列表,所述监控断点列表中包含预设的监控断点的地址。
在本实施例的一种实现方式中还可以进一步包括用于对核心数据的链表进行监控保护的数据监控部分200,即还包括第二设置模块20和第二监控模块21,其中第二设置模块20,用于当虚拟机操作系统的核心数据以双向链表形式保存时,在双向链表的前向指针和后向指针处设置第二监控断点;第二监控模块21,用于当虚拟机操作系统进行指针操作时根据第二监控断点执行监控。
在本实施例的另一种实现方式中还可以进一步包括用于对虚拟机操作系统加载前的引导程序进行监控的引导代码监控部分300,即还包括第三设置模块30和第三监控模块31,其中,第三设置模块30,用于对虚拟机操作系统的引导程序设置第三监控断点;第三监控模块31,用于当所述引导程序在引导加载虚拟机操作系统时根据所述第三监控断点执行监控。
在本实施例的又一种实现方式中还可以进一步包括用于对虚拟机操作系统的虚拟硬件进行监控的硬件监控部分400,即还包括采集模块40和第四监控模块41,其中,采集模块40,用于获取虚拟机虚拟硬件输入输出的数据;第四监控模块41,用于根据采集的输入输出数据对虚拟机进行监控。
当监控系统用于对多个版本的虚拟机操作系统能够适用时,在本实施例的再一种实现方式中还可以进一步包括用于针对不同虚拟机操作系统版本的进行监控断点设置自动选择的部分,即还包括第二获取模块50和存储模块51,其中,第二获取模块50,用于获取与虚拟机操作系统版本对应的系统文件的符号文件中的关键代码的位置和数据结构的偏移,所述关键代码和数据结构为预设的需设置监控断点的特征代码和数据结构;存储模块51,用于将获取的关键代码的位置和数据结构的偏移与虚拟机操作系统版本的对应关系存储在数据库中,以使虚拟机操作系统运行时根据所述数据库中存储的与虚拟机操作系统版本对应的关键代码的位置和数据结构的偏移设置监控断点。
本实施例的上述各种实现方式可以组合使用,也可以单独使用,本发明对此不作限制。上述各种实现方式分别可用于执行上述对应的方法实施例的技术方案,其达到的技术效果和技术原理,在此不再详细赘述。
图12为本发明虚拟机监控系统实施例的具体应用结构示意图,如图11所示,图中左边的虚线框中为断点信息采集并存储部分,右边虚线框中为虚拟机操作系统运行时执行的监控并生成相应的监控记录。当虚拟机运行时,在系统内核加载之前利用翻译断点技术将断点信息数据库中存储的监控断点信息设置在相应断点处,从而后续进程、线程、模块信息运行时,应用程序接口(Application Programming Interface,简称API)调用信息以及其他信息运行时可以直接运行监控断点处设置的回调函数生成监控信息,存储在监控记录中,以备后续分析查看。
其可用于执行上述方法实施例中的任一技术方案,其达到的技术效果和技术原理,在此不再详细赘述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (12)
1.一种虚拟机监控方法,其特征在于,包括:
获取虚拟机操作系统的虚拟指令块,所述虚拟指令块中包括多个虚拟指令;
在所述虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点;
当执行所述虚拟指令时,根据第一监控断点执行监控。
2.根据权利要求1所述的方法,其特征在于,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围之前,还包括:
获取当前虚拟机操作系统预设的监控断点信息;
根据预设的监控断点信息生成与所述虚拟机操作系统相关联的监控断点列表,所述监控断点列表中包含预设的监控断点的地址。
3.根据权利要求1所述的方法,其特征在于,还包括:
当虚拟机操作系统的核心数据以双向链表形式保存时,在双向链表的前向指针和后向指针处设置第二监控断点;
当虚拟机操作系统进行指针操作时根据第二监控断点执行监控。
4.根据权利要求1所述的方法,其特征在于,还包括:
对虚拟机操作系统的引导程序设置第三监控断点;
当所述引导程序在引导加载虚拟机操作系统时根据所述第三监控断点执行监控。
5.根据权利要求1所述的方法,其特征在于,还包括:
采集虚拟机虚拟硬件输入输出的数据;
根据采集的输入输出数据对虚拟机进行监控。
6.根据权利要求1~5中任一项所述的方法,其特征在于,还包括:
获取与虚拟机操作系统版本对应的系统文件的符号文件中的关键代码的位置和数据结构的偏移,所述关键代码和数据结构为预设的需设置监控断点的特征代码和数据结构;
将获取的关键代码的位置和数据结构的偏移与虚拟机操作系统版本的对应关系存储在数据库中,以使虚拟机操作系统运行时根据所述数据库中存储的与虚拟机操作系统版本对应的关键代码的位置和数据结构的偏移设置监控断点。
7.一种虚拟机监控系统,其特征在于,包括:
第一获取模块,用于获取虚拟机操作系统的虚拟指令块,所述虚拟指令块中包括多个虚拟指令;
第一设置模块,用于在所述虚拟指令块的翻译阶段,确定当前翻译的虚拟指令的地址是否在监控断点列表中预设的监控断点的地址范围,若在,则对所述虚拟指令设置第一监控断点;
第一监控模块,用于当执行所述虚拟指令时,根据第一监控断点执行监控。
8.根据权利要求7所述的系统,其特征在于,还包括:
收集模块,用于获取当前虚拟机操作系统预设的监控断点信息;
生成模块,用于根据预设的监控断点信息生成与所述虚拟机操作系统相关联的监控断点列表,所述监控断点列表中包含预设的监控断点的地址。
9.根据权利要求7所述的系统,其特征在于,还包括:
第二设置模块,用于当虚拟机操作系统的核心数据以双向链表形式保存时,在双向链表的前向指针和后向指针处设置第二监控断点;
第二监控模块,用于当虚拟机操作系统进行指针操作时根据第二监控断点执行监控。
10.根据权利要求7所述的系统,其特征在于,还包括:
第三设置模块,用于对虚拟机操作系统的引导程序设置第三监控断点;
第三监控模块,用于当所述引导程序在引导加载虚拟机操作系统时根据所述第三监控断点执行监控。
11.根据权利要求7所述的系统,其特征在于,还包括:
采集模块,用于获取虚拟机虚拟硬件输入输出的数据;
第四监控模块,用于根据采集的输入输出数据对虚拟机进行监控。
12.根据权利要求7~11中任一项所述的系统,其特征在于,还包括:
第二获取模块,用于获取与虚拟机操作系统版本对应的系统文件的符号文件中的关键代码的位置和数据结构的偏移,所述关键代码和数据结构为预设的需设置监控断点的特征代码和数据结构;
存储模块,用于将获取的关键代码的位置和数据结构的偏移与虚拟机操作系统版本的对应关系存储在数据库中,以使虚拟机操作系统运行时根据所述数据库中存储的与虚拟机操作系统版本对应的关键代码的位置和数据结构的偏移设置监控断点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210587189.XA CN103019865B (zh) | 2012-12-28 | 2012-12-28 | 虚拟机监控方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210587189.XA CN103019865B (zh) | 2012-12-28 | 2012-12-28 | 虚拟机监控方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019865A true CN103019865A (zh) | 2013-04-03 |
CN103019865B CN103019865B (zh) | 2015-07-15 |
Family
ID=47968495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210587189.XA Active CN103019865B (zh) | 2012-12-28 | 2012-12-28 | 虚拟机监控方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019865B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218293A (zh) * | 2013-04-12 | 2013-07-24 | 深圳市汇川控制技术有限公司 | 一种plc在线调试系统和方法 |
CN109408063A (zh) * | 2018-11-13 | 2019-03-01 | 北京奇虎科技有限公司 | 基于虚拟机的指令插桩方法及装置 |
CN113127149A (zh) * | 2021-03-11 | 2021-07-16 | 中国科学院信息工程研究所 | 一种基于自省技术的虚拟机安全监控方法及系统 |
CN113391873A (zh) * | 2020-03-11 | 2021-09-14 | 深信服科技股份有限公司 | 基于虚拟机的行为采集方法、虚拟机、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118350A1 (en) * | 2001-06-19 | 2007-05-24 | Vcis, Inc. | Analytical virtual machine |
CN101154258A (zh) * | 2007-08-14 | 2008-04-02 | 电子科技大学 | 恶意程序动态行为自动化分析系统与方法 |
CN101645119A (zh) * | 2008-08-07 | 2010-02-10 | 中国科学院软件研究所 | 一种基于虚拟硬件环境的恶意代码自动分析方法及系统 |
CN102243609A (zh) * | 2011-06-15 | 2011-11-16 | 惠州运通信息技术有限公司 | 一种基于嵌入式软件的测试分析方法及系统 |
CN102651062A (zh) * | 2012-04-09 | 2012-08-29 | 华中科技大学 | 基于虚拟机架构的恶意行为跟踪系统和方法 |
CN102662845A (zh) * | 2012-04-17 | 2012-09-12 | 华为技术有限公司 | 一种实现经过性数据断点的方法、装置及系统 |
-
2012
- 2012-12-28 CN CN201210587189.XA patent/CN103019865B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118350A1 (en) * | 2001-06-19 | 2007-05-24 | Vcis, Inc. | Analytical virtual machine |
CN101154258A (zh) * | 2007-08-14 | 2008-04-02 | 电子科技大学 | 恶意程序动态行为自动化分析系统与方法 |
CN101645119A (zh) * | 2008-08-07 | 2010-02-10 | 中国科学院软件研究所 | 一种基于虚拟硬件环境的恶意代码自动分析方法及系统 |
CN102243609A (zh) * | 2011-06-15 | 2011-11-16 | 惠州运通信息技术有限公司 | 一种基于嵌入式软件的测试分析方法及系统 |
CN102651062A (zh) * | 2012-04-09 | 2012-08-29 | 华中科技大学 | 基于虚拟机架构的恶意行为跟踪系统和方法 |
CN102662845A (zh) * | 2012-04-17 | 2012-09-12 | 华为技术有限公司 | 一种实现经过性数据断点的方法、装置及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218293A (zh) * | 2013-04-12 | 2013-07-24 | 深圳市汇川控制技术有限公司 | 一种plc在线调试系统和方法 |
CN103218293B (zh) * | 2013-04-12 | 2016-01-20 | 深圳市汇川控制技术有限公司 | 一种plc在线调试系统和方法 |
CN109408063A (zh) * | 2018-11-13 | 2019-03-01 | 北京奇虎科技有限公司 | 基于虚拟机的指令插桩方法及装置 |
CN109408063B (zh) * | 2018-11-13 | 2022-11-04 | 北京奇虎科技有限公司 | 基于虚拟机的指令插桩方法及装置 |
CN113391873A (zh) * | 2020-03-11 | 2021-09-14 | 深信服科技股份有限公司 | 基于虚拟机的行为采集方法、虚拟机、装置及存储介质 |
CN113391873B (zh) * | 2020-03-11 | 2023-03-24 | 深信服科技股份有限公司 | 基于虚拟机的行为采集方法、虚拟机、装置及存储介质 |
CN113127149A (zh) * | 2021-03-11 | 2021-07-16 | 中国科学院信息工程研究所 | 一种基于自省技术的虚拟机安全监控方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103019865B (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10268819B2 (en) | Techniques for enforcing control flow integrity using binary translation | |
CN104102506B (zh) | 一种基于ARM平台的Android启动加速方法 | |
KR101835250B1 (ko) | 트랜잭셔널 메모리를 사용한 비인가 메모리 수정 및 액세스의 검출 | |
CN102663312B (zh) | 一种基于虚拟机的rop攻击检测方法及系统 | |
CN103365776B (zh) | 基于确定性重放的并行系统弱一致性的验证方法和系统 | |
CN106055385B (zh) | 监控虚拟机进程的系统和方法、过滤page fault异常的方法 | |
CN109840410A (zh) | 一种进程内数据隔离与保护的方法和系统 | |
US20140380101A1 (en) | Apparatus and method for detecting concurrency error of parallel program for multicore | |
US8997059B2 (en) | Reverse debugging | |
US11263314B2 (en) | Processor checking method, checking device and checking system | |
CN102651062B (zh) | 基于虚拟机架构的恶意行为跟踪系统和方法 | |
CN105184166A (zh) | 基于内核的安卓程序实时行为分析方法及系统 | |
CN103092742A (zh) | 程序日志记录优化方法和系统 | |
CN101154257A (zh) | 基于漏洞特征的动态执行补丁方法 | |
CN101154259A (zh) | 通用自动化脱壳引擎与方法 | |
CN105488397A (zh) | 一种基于情境的rop攻击检测系统及方法 | |
CN103019865B (zh) | 虚拟机监控方法和系统 | |
US20180232541A1 (en) | Techniques for detecting false positive return-oriented programming attacks | |
CN111191243A (zh) | 一种漏洞检测方法、装置和存储介质 | |
CN105868641A (zh) | 基于虚函数表劫持的防御方法 | |
CN103514405A (zh) | 一种缓冲区溢出的检测方法及系统 | |
CN101388055A (zh) | 一种用于漏洞模型检测的程序操作特征提取方法 | |
CN109885489B (zh) | 驱动程序中数据竞争检测方法及装置 | |
CN107203410B (zh) | 一种基于系统调用重定向的vmi方法及系统 | |
CN100478974C (zh) | 一种防止计算机病毒的方法和装置 |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100089 3rd floor, Yitai building, 4 Beiwa Road, Haidian District, Beijing Patentee after: NSFOCUS Technologies Group Co.,Ltd. Patentee after: NSFOCUS TECHNOLOGIES Inc. Address before: 100089 3rd floor, Yitai building, 4 Beiwa Road, Haidian District, Beijing Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. Patentee before: NSFOCUS TECHNOLOGIES Inc. |