CN112256404B - 一种虚拟机自省方法、装置、设备及介质 - Google Patents

一种虚拟机自省方法、装置、设备及介质 Download PDF

Info

Publication number
CN112256404B
CN112256404B CN202011286907.0A CN202011286907A CN112256404B CN 112256404 B CN112256404 B CN 112256404B CN 202011286907 A CN202011286907 A CN 202011286907A CN 112256404 B CN112256404 B CN 112256404B
Authority
CN
China
Prior art keywords
information
link library
virtual machine
list
program counter
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.)
Active
Application number
CN202011286907.0A
Other languages
English (en)
Other versions
CN112256404A (zh
Inventor
叶峥豪
范渊
吴卓群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202011286907.0A priority Critical patent/CN112256404B/zh
Publication of CN112256404A publication Critical patent/CN112256404A/zh
Application granted granted Critical
Publication of CN112256404B publication Critical patent/CN112256404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种虚拟机自省方法、装置、设备及介质,该方法包括:检测目标虚拟机的快表是否存在丢失重置行为;若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息;在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息;利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省。通过检测快表的丢失重置行为可以判断虚拟机状态发生变化,进而选择更关键时间节点进行虚拟机自省,提升了虚拟机自省的性能;并且通过程序计数器确定进程信息及链接库信息进行虚拟机的语义重构,实现了非入侵的语义重构,提升了虚拟机自省的性能,提高了恶意软件的检测能力。

Description

一种虚拟机自省方法、装置、设备及介质
技术领域
本发明涉及虚拟机领域,特别涉及一种虚拟机自省方法、装置、设备及介质。
背景技术
当前,在对恶意软件的动态分析过程中,恶意软件也会对当下执行环境进行检测,若检测出当下执行环境为虚拟环境时,会采用不同的执行策略,造成分析人员对于此恶意软件行为分析不全面甚至完全错误的情况,最终导致恶意软件进一步的传播和破坏。
现有技术中,常通过虚拟机自省(Virtual Machine Introspection,VMI)技术检测虚拟机的运行状态,虚拟机自省是指在虚拟机外部获取客户虚拟机系统内部状态信息的技术,是备受学术界和工业界关注的安全技术方法,在入侵检测、内核完整性保护等多方面发挥重要的作用。但该技术在实现过程中面临的核心难题之一是,多数虚拟机的实现方式使得外部只能获取虚拟机底层的状态数据,而这与检测分析所需的高层系统语义之间存在较大的语义鸿沟,如何解决鸿沟就是问题所在。现有技术中,采用入侵式的方式从虚拟机中获取高层语义信息,但入侵式需要对虚拟机环境进行修改以达到获取高层语义信息的目的,例如使用HOOK函数,并且对虚拟机环境进行了修改后,恶意软件可以检测到修改内容,并通过检测到的修改内容规避检测分析。由此,降低了虚拟机自省的性能,以及恶意软件的检测能力。
发明内容
有鉴于此,本发明的目的在于提供一种虚拟机自省方法、装置、设备及介质,能够提高虚拟机自省的性能。其具体方案如下:
第一方面,本申请公开了一种虚拟机自省方法,包括:
检测目标虚拟机的快表是否存在丢失重置行为;
若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息;
在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息;
利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省。
可选的,所述查看程序计数器以确定当前进程的进程信息,包括:
若所述程序计数器中的地址为内核地址,则获取内核进程的信息作为所述进程信息;
若所述程序计数器中的地址不是内核地址,则查看本地全局页目录,并根据所述全局页目录确定出当前进程,以得到所述进程信息。
可选的,所述根据所述全局页目录确定出当前进程,以得到所述进程信息,包括:
若所述全局页目录对应的当前进程记录在预先构建的进程列表中,则将所述进程列表中与当前进程对应的数据信息作为所述进程信息。
可选的,所述根据所述全局页目录确定出当前进程,以得到所述进程信息,包括:
若所述全局页目录对应的当前进程没有记录在预先构建的进程列表中,则通过内存虚拟化和先验知识对所述当前进程进行解析,以得到所述进程信息,并将所述当前进程记录至所述进程列表。
可选的,所述查看所述程序计数器以确定当前进程对应的链接库信息,包括:
若所述程序计数器对应的链接库记录在预先构建的链接库列表中,则解析所述链接库列表中相应的链接库,以得到所述链接库信息;其中,所述链接库列表为与所述进程列表对应的列表。
可选的,所述查看所述程序计数器以确定当前进程对应的链接库信息,包括:
若所述程序计数器对应的链接库没有记录在预先构建的链接库列表中,则通过内存虚拟化和先验知识解析所述链接库,以得到所述链接库信息,并将所述链接库记录至所述链接库列表。
可选的,所述利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,包括:
解析所述链接库信息获取相应的符号表;
基于所述符号表确定相应的函数名、参数和返回值,以获取当前程序的执行行为。
第二方面,本申请公开了一种虚拟机自省装置,包括:
行为检测模块,用于检测目标虚拟机的快表是否存在丢失重置行为;
进程信息获取模块,用于若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息;
链接库信息获取模块,用于在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息;
高层语义信息确定模块,用于利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的虚拟机自省方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的虚拟机自省方法。
本申请中,通过检测目标虚拟机的快表是否存在丢失重置行为,若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息,然后在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息,最后利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省。可见,本申请将快表的丢失重置行为作为虚拟机自省的触发行为,由于程序执行中快表会因新页表的加载及开始执行,而发生一次丢失重置的现象产生上下文切换等系统状态变化的信号,由此可以判断虚拟机状态发生变化,进而选择更关键时间节点进行虚拟机自省,优化了系统进行虚拟机自省的次数,减少了虚拟机自省带来的性能损耗,提升了虚拟机自省的性能。并且通过程序计数器确定进程信息及链接库信息进行虚拟机的语义重构,可以实现非入侵的高层语义信息获取,提升了虚拟机自省的性能,进一步提高了虚拟环境下恶意软件的检测能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种虚拟机自省方法流程图;
图2为本申请提供的一种具体的虚拟机自省方法流程图;
图3为本申请提供的一种高层语义重构流程图;
图4为本申请提供的一种虚拟机自省装置结构示意图;
图5为本申请提供的一种虚拟机自省系统的运行位置示意图;
图6为本申请提供的一种虚拟机自省系统架构示意图;
图7为本申请提供的一种电子设备结构图。
具体实施方式
现有技术中,采用入侵式的方式从虚拟机中获取高层语义信息,但入侵式需要对虚拟机环境进行修改以达到获取高层语义信息的目的,并且对虚拟机环境进行了修改后,恶意软件可以检测到修改内容,并通过检测到的修改内容规避检测分析。因此降低了虚拟机自省的性能,以及恶意软件的检测能力。为了克服上述问题,本身请提出一种基于快表的虚拟机自省方法,可以实现非入侵的高层语义信息获取,提升了虚拟机自省的性能,进一步提高了虚拟环境下恶意软件的检测能力。
本申请实施例公开了一种虚拟机自省方法,参见图1所示,该方法可以包括以下步骤:
步骤S11:检测目标虚拟机的快表是否存在丢失重置行为。
本实施例中,首先检测目标虚拟机的快表,即转译后备缓冲器(TLB,TranslationLookaside Buffer),转译后备缓冲器是在内存管理单元(MMU,Memory Management Unit)中包含的用于缓存页表的一块缓存;判断上述快表是否存在丢失重置行为;可以理解的是,程序执行中快表会因新的页表被加载及开始执行,导致发生相应的丢失重置的现象,进而产生得到上下文切换等系统状态变化的信号;具体的,可通过虚拟机对内存管理单元的虚拟化捕获上述信号,以判断快表存在丢失重置行为。
步骤S12:若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息。
本实施例中,如果检测出快表存在丢失重置行为,则查看虚拟机程序计数器,通过程序计数器中的地址信息确定当前进程,进而获取当前进程的进程信息;其中,上述程序计数器作为处理器中的寄存器,包含当前正在执行的指令的地址,并且在每个指令被获取之后,程序计数器指向顺序中的下一个指令的地址。
步骤S13:在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息。
本实施例中,在确定出当前进程的进程信息后,再次查看上述程序计数器,可以通过查看程序计数器指向的链接库地址,确定当前进程对应的链接库信息。其中,上述链接库包括动态链接库,动态链接库中含有多个函数可供程序调用。
步骤S14:利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省。
本实施例中,通过查看程序计数器确定出目标虚拟机相应的进程信息和链接库信息,实现了目标虚拟机的高层语义信息重构,以实现虚拟机自省。
本实施例通过检测目标虚拟机的快表是否存在丢失重置行为,若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息,然后在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息,最后利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省。可见,本申请将快表的丢失重置行为作为虚拟机自省的触发行为,由于程序执行中快表会因新页表的加载及开始执行,而发生一次丢失重置的现象产生上下文切换等系统状态变化的信号,由此可以判断虚拟机状态发生变化,进而选择更关键时间节点进行虚拟机自省,优化了系统进行虚拟机自省的次数,减少了虚拟机自省带来的性能损耗,提升了虚拟机自省的性能。并且通过程序计数器确定进程信息及链接库信息进行虚拟机的语义重构,可以实现非入侵的高层语义信息获取,提升了虚拟机自省的性能,进一步提高了虚拟环境下恶意软件的检测能力。
本申请实施例公开了一种具体的虚拟机自省方法,参见图2所示,该方法可以包括以下步骤:
步骤S21:检测目标虚拟机的快表是否存在丢失重置行为。
步骤S22:若所述快表存在丢失重置行为,则查看程序计数器,若所述程序计数器中的地址为内核地址,则获取内核进程的信息作为所述进程信息。
本实施例中,若检测出快表存在丢失重置行为,则查看程序计数器,如果程序计数器中的地址为内核地址,则获取内核进程的信息作为上述进程信息。可以理解的是,每当检测到一次虚拟机快表的丢失重置时,先判断当前程序计数器是否指向内核空间,如果是,则可以表明当前进程可能在进行了上下文切换,目前在内核进程中运行,因此获取内核进程的信息作为上述进程信息。
步骤S23:若所述程序计数器中的地址不是内核地址,则查看本地全局页目录,并根据所述全局页目录确定出当前进程,以得到所述进程信息。
本实施例中,如果程序计数器中的地址不是内核地址,则查看虚拟机全局页目录,并根据上述全局页目录确定出当前进程,以得到上述进程信息。可以理解的是,如果程序计数器中的地址不是内核地址,则进程在用户进程中运行,通过查看当前全局页目录(即PGD,Page Global Directory),并根据所述全局页目录确定出当前进程,以得到上述进程信息。
本实施例中,所述根据所述全局页目录确定出当前进程,以得到所述进程信息,可以包括:若所述全局页目录对应的当前进程记录在预先构建的进程列表中,则将所述进程列表中与当前进程对应的数据信息作为所述进程信息。即如果全局页目录对应的当前进程已经被记录在进程列表中,则将进程列表中该进程的数据信息作为上述进程信息。
本实施例中,所述根据所述全局页目录确定出当前进程,以得到所述进程信息,可以包括:若所述全局页目录对应的当前进程没有记录在预先构建的进程列表中,则通过内存虚拟化和先验知识对所述当前进程进行解析,以得到所述进程信息,并将所述当前进程记录至所述进程列表。即如果全局页目录对应的当前进程没有被记录在进程列表中,则可以判定此次快表的丢失重置是从历史进程切换到一个新创建的进程,可以通过借助内存虚拟化和操作系统内核的先验知识解析上述当前进程,以获取相应的进程信息,并将该进程记录至进程列表中。
步骤S24:在确定所述进程信息后,再次查看所述程序计数器,若所述程序计数器对应的链接库记录在预先构建的链接库列表中,则解析所述链接库列表中相应的链接库,以得到所述链接库信息。
本实施例中,在确定出进程信息后,再次查看上述程序计数器,判断上述程序计数器是否指向已记录在链接库列表中的链接库,如果是,则解析上述链接库列表中该链接库的信息,以得到链接库信息。其中,上述链接库列表为与上述进程列表对应的列表。
步骤S25:若所述程序计数器对应的链接库没有记录在预先构建的链接库列表中,则通过内存虚拟化和先验知识解析所述链接库,以得到所述链接库信息,并将所述链接库记录至所述链接库列表。
本实施例中,如果通过查看程序计数器,判断出上述程序计数器指向的链接库没有记录在链接库列表中,可以通过内存虚拟化和先验知识解析该链接库,以得到上述链接库信息,并将该链接库相关的链接库名称、地址和数据大小信息记录至上述链接库列表。
步骤S26:解析所述链接库信息获取相应的符号表;基于所述符号表确定相应的函数名、参数和返回值,以获取当前程序的执行行为。
本实施例中,在确定出链接库信息后,通过解析链接库中的符号表,可以确定出链接库中函数的函数名、参数个数、参数类型和返回值类型,由于上述链接库为程序运行过程中调用的链接库,因此通过上述函数名、参数和返回值可以确定出目标虚拟机的具体程序执行行为,进而实现了虚拟机的高层语义信息重构,即获得虚拟机系统内部的状态信息。
其中,关于上述步骤S21的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
由上可见,本实施例中,若程序计数器中的地址为内核地址,则获取内核进程的信息作为进程信息;若程序计数器中的地址不是内核地址,则查看本地全局页目录,并根据全局页目录确定出当前进程,以得到进程信息。然后在确定进程信息后,再次查看程序计数器,若程序计数器对应的链接库记录在预先构建的链接库列表中,则解析链接库列表中相应的链接库,以得到链接库信息;若程序计数器对应的链接库没有记录在预先构建的链接库列表中,则通过内存虚拟化和先验知识解析链接库,以得到链接库信息,并将链接库记录至链接库列表。通过进程列表记录的进程,及对应链接库列表中记录的链接库可以快速获取相应的进程信息和链接库信息,但如果出现未记录情况可以通过内存虚拟化和先验知识解析进程和链接库,进而获取相应的进程信息和链接库信息,由此提高了信息获取效率和准确率。最后通过解析链接库内的符号表可以确定出目标虚拟机的更具体程序执行行为。由此,实现了实现非入侵方式下虚拟机的高层语义信息重构,提升了虚拟机自省的性能,进一步提高了虚拟环境下恶意软件的检测能力。
虚拟机的高层语义重构的具体流程可以如图3所示,每当检测到一次虚拟机快表的丢失重置时,先判断当前程序计数器是否指向内核空间,如果是,说明进程可能在进行了上下文切换,目前在内核进程中,进而获取内核进程的信息作为进程信息;如果不是,则通过检测当前全局页目录来查看进程是否在当前已记录下的进程列表中。如果在,则将进程列表中与当前进程对应的数据信息作为进程信息。如果不在,判定此次快表的丢失重置是一个进程切换到一个新进程,则可以借助内存虚拟化和操作系统内核的先验知识的帮助,解析新进程数据并记录。在确定了进程信息后,再次检查程序计数器,查看其是否指向当前已记录进程对应的已加载的链接库。如果是,则解析该已加载的链接库得到链接库信息;如果不是,则借助内存虚拟化和操作系统内核的先验知识的帮助,解析此链接库并记录,上述记录的内容包括但不限于链接库名字、地址和大小。在确定了链接库信息后,可以解析链接库中的符号表,从而得到链接库内的函数名称,参数个数及类型,返回值类型,并基于上述解析得到的结果可以获得虚拟机更具体的程序执行行为。
相应的,本申请实施例还公开了一种虚拟机自省装置,参见图4所示,该装置包括:
行为检测模块11,用于检测目标虚拟机的快表是否存在丢失重置行为;
进程信息获取模块12,用于若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息;
链接库信息获取模块13,用于在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息;
高层语义信息确定模块14,用于利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省。
本实施例中,将快表的丢失重置行为作为虚拟机自省的触发行为,由于程序执行中快表会因新页表的加载及开始执行,而发生一次丢失重置的现象产生上下文切换等系统状态变化的信号,由此可以判断虚拟机状态发生变化,进而选择更关键时间节点进行虚拟机自省,优化了系统进行虚拟机自省的次数,减少了虚拟机自省带来的性能损耗,提升了虚拟机自省的性能。并且通过程序计数器确定进程信息及链接库信息进行虚拟机的语义重构,可以实现非入侵的高层语义信息获取,提升了虚拟机自省的性能,进一步提高了虚拟环境下恶意软件的检测能力。
具体的,上述虚拟机自省装置对应的虚拟机自省系统的运行位置如图5所示,虚拟机自省系统为与主操作系统和客户虚拟机之间,将从客户虚拟机中获得的高层语义信息进行记录并交由主操作系统进行进一步处理分析。虚拟机系统中包括虚拟化程序和虚拟机监控程序,虚拟化程序对客户虚拟机系统提供处理器虚拟化、内存虚拟化和设备虚拟化的功能。虚拟机监控程序负责对所有的客户虚拟机创建、运行进行监控,同时记录其高级语义信息并传输给主操作系统进行进一步处理。
在一些具体实施例中,所述进程信息获取模块12具体可以包括:
第一进程信息获取单元,用于若所述程序计数器中的地址为内核地址,则获取内核进程的信息作为所述进程信息;
进程信息确定单元,用于若所述程序计数器中的地址不是内核地址,则查看本地全局页目录,并根据所述全局页目录确定出当前进程,以得到所述进程信息;
第二进程信息获取单元,用于若所述全局页目录对应的当前进程记录在预先构建的进程列表中,则将所述进程列表中与当前进程对应的数据信息作为所述进程信息;
第三进程信息获取单元,用于若所述全局页目录对应的当前进程没有记录在预先构建的进程列表中,则通过内存虚拟化和先验知识对所述当前进程进行解析,以得到所述进程信息,并将所述当前进程记录至所述进程列表。
在一些具体实施例中,所述链接库信息获取模块13具体可以包括:
第一链接库信息获取单元,用于若所述程序计数器对应的链接库记录在预先构建的链接库列表中,则解析所述链接库列表中相应的链接库,以得到所述链接库信息;其中,所述链接库列表为与所述进程列表对应的列表;
第二链接库信息获取单元,用于若所述程序计数器对应的链接库没有记录在预先构建的链接库列表中,则通过内存虚拟化和先验知识解析所述链接库,以得到所述链接库信息,并将所述链接库记录至所述链接库列表。
在一些具体实施例中,所述高层语义信息确定模块14具体可以包括:
解析单元,用于解析所述链接库信息获取相应的符号表;
高层语义确定单元,用于基于所述符号表确定相应的函数名、参数和返回值,以获取当前程序的执行行为。
具体的,上述虚拟机自省系统架构可以为图6所示,可以理解的是,上述行为检测模块11位于图中内存虚拟化的地址转换虚拟化模块中,上述进程信息获取模块12、链接库信息获取模块13和高层语义信息确定模块14位于图中虚拟机监控程序对应的监控程序模块。
进一步的,本申请实施例还公开了一种电子设备,参见图7所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的虚拟机自省方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括进程信息在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的虚拟机自省方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的虚拟机自省方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种虚拟机自省方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种虚拟机自省方法,其特征在于,包括:
检测目标虚拟机的快表是否存在丢失重置行为;
若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息;
在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息;
利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省;
其中,所述查看程序计数器以确定当前进程的进程信息,包括:
若所述程序计数器中的地址为内核地址,则获取内核进程的信息作为所述进程信息;
若所述程序计数器中的地址不是内核地址,则查看本地全局页目录,并根据所述全局页目录确定出当前进程,以得到所述进程信息;
其中,所述根据所述全局页目录确定出当前进程,以得到所述进程信息,包括:
若所述全局页目录对应的当前进程记录在预先构建的进程列表中,则将所述进程列表中与当前进程对应的数据信息作为所述进程信息;
其中,所述根据所述全局页目录确定出当前进程,以得到所述进程信息,包括:
若所述全局页目录对应的当前进程没有记录在预先构建的进程列表中,则通过内存虚拟化和先验知识对所述当前进程进行解析,以得到所述进程信息,并将所述当前进程记录至所述进程列表;
其中,所述查看所述程序计数器以确定当前进程对应的链接库信息,包括:
若所述程序计数器对应的链接库记录在预先构建的链接库列表中,则解析所述链接库列表中相应的链接库,以得到所述链接库信息;其中,所述链接库列表为与所述进程列表对应的列表。
2.根据权利要求1所述的虚拟机自省方法,其特征在于,所述查看所述程序计数器以确定当前进程对应的链接库信息,包括:
若所述程序计数器对应的链接库没有记录在预先构建的链接库列表中,则通过内存虚拟化和先验知识解析所述链接库,以得到所述链接库信息,并将所述链接库记录至所述链接库列表。
3.根据权利要求1或2所述的虚拟机自省方法,其特征在于,所述利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,包括:
解析所述链接库信息获取相应的符号表;
基于所述符号表确定相应的函数名、参数和返回值,以获取当前程序的执行行为。
4.一种虚拟机自省装置,其特征在于,包括:
行为检测模块,用于检测目标虚拟机的快表是否存在丢失重置行为;
进程信息获取模块,用于若所述快表存在丢失重置行为,则查看程序计数器以确定当前进程的进程信息;
链接库信息获取模块,用于在确定所述进程信息后,再次查看所述程序计数器以确定当前进程对应的链接库信息;
高层语义信息确定模块,用于利用所述进程信息和所述链接库信息确定所述目标虚拟机的高层语义信息,以实现虚拟机自省;
其中,所述进程信息获取模块,用于若所述程序计数器中的地址为内核地址,则获取内核进程的信息作为所述进程信息;若所述程序计数器中的地址不是内核地址,则查看本地全局页目录,并根据所述全局页目录确定出当前进程,以得到所述进程信息;
其中,所述进程信息获取模块,用于若所述全局页目录对应的当前进程记录在预先构建的进程列表中,则将所述进程列表中与当前进程对应的数据信息作为所述进程信息;若所述全局页目录对应的当前进程没有记录在预先构建的进程列表中,则通过内存虚拟化和先验知识对所述当前进程进行解析,以得到所述进程信息,并将所述当前进程记录至所述进程列表;
其中,所述链接库信息获取模块,用于若所述程序计数器对应的链接库记录在预先构建的链接库列表中,则解析所述链接库列表中相应的链接库,以得到所述链接库信息;其中,所述链接库列表为与所述进程列表对应的列表。
5.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至3任一项所述的虚拟机自省方法。
6.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至3任一项所述的虚拟机自省方法。
CN202011286907.0A 2020-11-17 2020-11-17 一种虚拟机自省方法、装置、设备及介质 Active CN112256404B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011286907.0A CN112256404B (zh) 2020-11-17 2020-11-17 一种虚拟机自省方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011286907.0A CN112256404B (zh) 2020-11-17 2020-11-17 一种虚拟机自省方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN112256404A CN112256404A (zh) 2021-01-22
CN112256404B true CN112256404B (zh) 2024-04-05

Family

ID=74265901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011286907.0A Active CN112256404B (zh) 2020-11-17 2020-11-17 一种虚拟机自省方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112256404B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762888A (zh) * 2018-05-17 2018-11-06 湖南文盾信息技术有限公司 一种基于虚拟机自省的病毒检测系统及方法
CN109857520A (zh) * 2019-01-18 2019-06-07 四川大学 一种虚拟机自省中的语义重构改进方法及系统
CN110865866A (zh) * 2019-09-29 2020-03-06 中通服咨询设计研究院有限公司 一种基于自省技术的虚拟机安全检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507727B2 (en) * 2013-07-17 2016-11-29 Bitdefender IPR Management Ltd. Page fault injection in virtual machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762888A (zh) * 2018-05-17 2018-11-06 湖南文盾信息技术有限公司 一种基于虚拟机自省的病毒检测系统及方法
CN109857520A (zh) * 2019-01-18 2019-06-07 四川大学 一种虚拟机自省中的语义重构改进方法及系统
CN110865866A (zh) * 2019-09-29 2020-03-06 中通服咨询设计研究院有限公司 一种基于自省技术的虚拟机安全检测方法

Also Published As

Publication number Publication date
CN112256404A (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
EP3175386B1 (en) Transparent detection and extraction of return-oriented-programming attacks
CA2856268C (en) Methods of detection of software exploitation
US10963558B2 (en) Malware detection method and malware detection apparatus
US20080052677A1 (en) System and method for mitigating repeated crashes of an application resulting from supplemental code
US9003146B2 (en) Managing memory of a computer
EP3488346B1 (en) Anomaly detection using sequences of system calls
CN112181833A (zh) 一种智能化模糊测试方法、装置及系统
US20140201840A1 (en) Identifying stored security vulnerabilities in computer software applications
EP2962239A1 (en) Determining coverage of dynamic security scans using runtime and static code analyses
CN113407383A (zh) 主备系统切换方法、装置、服务器及主备系统
EP2988242B1 (en) Information processing device, and information processing method
WO2019013033A1 (ja) コールスタック取得装置、コールスタック取得方法、および、コールスタック取得プログラム
US8898644B2 (en) Efficient unified tracing of kernel and user events with multi-mode stacking
CN111931185A (zh) 一种Java反序列化漏洞检测方法及组件
US9262274B2 (en) Persistent data across reboots
Antunes et al. Detection and prediction of resource-exhaustion vulnerabilities
CN112256404B (zh) 一种虚拟机自省方法、装置、设备及介质
CN116450533B (zh) 用于应用程序的安全检测方法、装置、电子设备和介质
JP2009176139A (ja) Os優先度変更装置及びos優先度変更プログラム
CN103514402A (zh) 入侵检测方法及装置
CN112764990B (zh) 一种目标进程的监控方法、装置及计算机设备
CN110708270A (zh) 异常链接检测方法以及装置
US20220269520A1 (en) Factor identification method and information processing device
CN109426601B (zh) 一种对程序进行无状态检测的方法和装置
CN115828262A (zh) 开源组件漏洞扫描方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant