CN109298916A - 识别虚拟机上进程的方法和装置 - Google Patents

识别虚拟机上进程的方法和装置 Download PDF

Info

Publication number
CN109298916A
CN109298916A CN201811450607.4A CN201811450607A CN109298916A CN 109298916 A CN109298916 A CN 109298916A CN 201811450607 A CN201811450607 A CN 201811450607A CN 109298916 A CN109298916 A CN 109298916A
Authority
CN
China
Prior art keywords
information
list information
list
kernel module
virtual machine
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.)
Pending
Application number
CN201811450607.4A
Other languages
English (en)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201811450607.4A priority Critical patent/CN109298916A/zh
Publication of CN109298916A publication Critical patent/CN109298916A/zh
Pending legal-status Critical Current

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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种识别虚拟机上进程的方法和装置。所述方法包括:获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息;将所述第一列表信息和所述第二列表信息进行对比,得到对比结果;如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程。

Description

识别虚拟机上进程的方法和装置
技术领域
本发明涉及信息处理领域,尤指一种识别虚拟机上进程的方法和装置。
背景技术
云计算(Cloud Computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。
云计算能够提供强大服务的原因之一要归功于虚拟化技术的发展。虚拟化技术为云计算提供高资源利用率、低能耗、动态资源调度等等优点。在虚拟化技术中,每个虚拟机作为一个进程运行在宿主机之上,宿主机统一对虚拟机进行资源的调度和管理。宿主机以及虚拟化软件的安全稳定运行是云计算能够提供强大服务的基础,所以保证宿运行的软件是可信任的正常的软件。
运行在宿主机之上的虚拟机,作为宿主机的一个进程,可以通过网络相互通信,或者,作为进程,使用进程间通信,如共享内存,或者,使用添加虚拟设备,通过虚拟设备和unix套接字通信。在云平台兴起之前,所有的rootkit检测都是针对本机的检测,需要在系统中运行程序检测,这就出现了两个弊端,一是检测rootkit工具可能已经被之前植入的rootkit程序屏蔽,无法获取最高权限,或者最完整的数据,另外一个是需要在每个系统上安装工具并检测,这样的检测费时费力。因此,如何高效的识别出虚拟机上rootkit进程是亟待解决的问题。
发明内容
为了解决上述技术问题,本发明提供了一种识别虚拟机上进程的方法和装置,能够高效的识别出虚拟机上的rootkit进程。
为了达到本发明目的,本发明提供了一种识别虚拟机上进程的方法,包括:
获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息;
将所述第一列表信息和所述第二列表信息进行对比,得到对比结果;
如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程。
在一个示例性实施例中,所述第一列表信息和所述第二列表信息包括进程和/或内核模块的名称和系统调用地址;
所述将所述第一列表信息和所述第二列表信息进行对比,得到对比结果,包括:
将所述第一列表信息和所述第二列表信息中的进程的名称信息进行对比,如果两个列表信息中的名称信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同;如果两个列表信息中的名称信息相同,则对两个列表信息中相同名称信息对应的地址信息进行对比,如果两个列表信息中相同名称信息对应的地址信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同。
在一个示例性实施例中,所述第一列表信息是通过如下方式得到的,包括:
获取虚拟机内核系统的系统文件;
按照所述系统文件中进程和/或内核模块对应的字符,确定所述虚拟机操作系统中显示的进程和/或内核模块的名称信息以及系统调用地址。
在一个示例性实施例中,所述第二列表信息是通过如下方式得到的,包括:
获取虚拟机内存管理文件中进程和/或内核模块的代码信息;
按照所述代码信息中名称和地址的编码规则,确定所述内存中运行的进程和/或内核模块的名称信息和系统调用地址。
在一个示例性实施例中,所述获取虚拟机内存管理文件中进程和/或内核模块的代码信息,包括:
获取所述第一列表信息中的进程和/或内核模块的名称信息;
在所述内存管理文件中,以所述第一列表信息中的进程和/或内核模块的名称信息为关键字执行查找操作,得到包括所述关键字的代码段;
按照所述内存管理文件的编码规则,确定所述内存管理文件中包括所述代码段的完整的编码结构体,作为虚拟机内存管理文件中进程和/或内核模块的代码信息。
为了达到本发明目的,本发明提供了一种识别虚拟机上进程的装置,包括:
获取模块,用于获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息;
对比模块,用于将所述第一列表信息和所述第二列表信息进行对比,得到对比结果;
确定模块,用于如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程。
在一个示例性实施例中,所述获取模块获取的所述第一列表信息和所述第二列表信息包括进程和/或内核模块的名称和系统调用地址;
所述对比模块包括:
第一对比单元,用于将所述第一列表信息和所述第二列表信息中的进程的名称信息进行对比;
第一确定单元,用于如果两个列表信息中的名称信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同;
第二对比单元,用于如果两个列表信息中的名称信息相同,则对两个列表信息中相同名称信息对应的地址信息进行对比;
第二确定单元,用于如果两个列表信息中相同名称信息对应的地址信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同。
在一个示例性实施例中,所述获取模块包括:
第一获取单元,用于获取虚拟机内核系统的系统文件;
第三确定单元,用于按照所述系统文件中进程和/或内核模块对应的字符,确定所述虚拟机操作系统中显示的进程和/或内核模块的名称信息以及系统调用地址。
在一个示例性实施例中,所述获取模块包括:
第二获取单元,用于获取虚拟机内存管理文件中进程和/或内核模块的代码信息;
第四确定单元,用于按照所述代码信息中名称和地址的编码规则,确定所述内存中运行的进程和/或内核模块的名称信息和系统调用地址。
在一个示例性实施例中,所述第二获取单元包括:
获取子单元,用于获取所述第一列表信息中的进程和/或内核模块的名称信息;
查找子单元,用于在所述内存管理文件中,以所述第一列表信息中的进程和/或内核模块的名称信息为关键字执行查找操作,得到包括所述关键字的代码段;
确定子单元,用于按照所述内存管理文件的编码规则,确定所述内存管理文件中包括所述代码段的完整的编码结构体,作为虚拟机内存管理文件中进程和/或内核模块的代码信息。
本发明提供的实施例,获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息,再将所述第一列表信息和所述第二列表信息进行对比,得到对比结果,如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程,实现通过列表信息对比识别出rootkit进程的目的,达到高效的识别出虚拟机上的rootkit进程的目的。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明提供的识别虚拟机上进程的方法的流程图;
图2为本发明提供的识别虚拟机上进程的方法的流程图;
图3为本发明提供的识别虚拟机上进程的装置的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明提供的识别虚拟机上进程的方法的流程图。图1所示方法包括:
步骤101、获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息;
步骤102、将所述第一列表信息和所述第二列表信息进行对比,得到对比结果;
步骤103、如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程。
本发明提供的方法实施例,获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息,再将所述第一列表信息和所述第二列表信息进行对比,得到对比结果,如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程,实现通过列表信息对比识别出rootkit进程的目的,达到高效的识别出虚拟机上的rootkit进程的目的。
下面对本发明提供的方法作进一步说明:
在一个示例性实施例中,所述第一列表信息和所述第二列表信息包括进程和/或内核模块的名称和系统调用地址;
所述将所述第一列表信息和所述第二列表信息进行对比,得到对比结果,包括:
将所述第一列表信息和所述第二列表信息中的进程的名称信息进行对比,如果两个列表信息中的名称信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同;如果两个列表信息中的名称信息相同,则对两个列表信息中相同名称信息对应的地址信息进行对比,如果两个列表信息中相同名称信息对应的地址信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同。
在本示例性实施例中,rootkit进程会在虚拟机上隐藏起来,而在内存中通过独立运行或加载到某个进程或某个内核模块的方式运行。通过获取虚拟机的系统和内存两处不同位置处进程和/或内核模块的信息,对信息进行对比,确定两处的信息是否一致,来快速确定是否加载有rootkit进程。
在一个示例性实施例中,所述第一列表信息是通过如下方式得到的,包括:
获取虚拟机内核系统的系统文件;
按照所述系统文件中进程和/或内核模块对应的字符,确定所述虚拟机操作系统中显示的进程和/或内核模块的名称信息以及系统调用地址。
在本示例性实施例中,虚拟机内核系统的系统文件为system.map文件,该文件存在的目录为/boot目录下;如果虚拟机的系统内核经过了修改,system.map文件同样存储在/boot目录下。该system.map文件记录了所有代码的运行地址,可以为理解内核编译信息提供帮助。在标准发行版本的linux中,每一个版本都有自己的systam.map文件,通过获取各个发行版本的system.map文件,然后获取系统内核的发行版本,再根据系统内核的发行版本,来确定该系统对应的system.map文件。在获取到system.map文件后,根据文件中字符信息init_task和/或modules,确定对应的进程和/或等符号的名称,并根据system.map文件的格式信息,确定对应的系统调用地址,得到所述进程和/或内核模块对应的syscall地址。
在一个示例性实施例中,所述第二列表信息是通过如下方式得到的,包括:
获取虚拟机内存管理文件中进程和/或内核模块的代码信息;
按照所述代码信息中名称和地址的编码规则,确定所述内存中运行的进程和/或内核模块的名称信息和系统调用地址。
在本示例性实施例中,虚拟机内存管理文件为内存dump文件,该文件记录有内存中运行的进程和/或内核模块的信息。由于该内存dump文件信息的内容较多,在查找所需的名称和地址信息之前,获取记录有进程和/或内核模块的代码段,再该代码段中进行信息查找,以提高查找效率。
在一个示例性实施例中,所述获取虚拟机内存管理文件中进程和/或内核模块的代码信息,包括:
获取所述第一列表信息中的进程和/或内核模块的名称信息;
在所述内存管理文件中,以所述第一列表信息中的进程和/或内核模块的名称信息为关键字执行查找操作,得到包括所述关键字的代码段;
按照所述内存管理文件的编码规则,确定所述内存管理文件中包括所述代码段的完整的编码结构体,作为虚拟机内存管理文件中进程和/或内核模块的代码信息。
在本示例性实施例中,利用第一列表信息中的名称信息作为关键字,在所述内存管理文件中进行查找操作,可以得到记录有包括所述关键字的代码段,根据所述内存管理文件的编码规则,对于进程而言,各个进程的名称信息和调用地址是编码在一起的。在依照第一列表信息确定部分代码信息后,确定包括所述代码段的完整编码结构体,可以得到对应的进程的代码信息,同理对于内核模块也适用。通过上述方式,可以快速得到所需的代码信息。
另外,本发明所使用的第一列表信息和第二列表信息均是根据虚拟机上自带的程序文件得到的,且根据程序文件的编码规则解析得到所需的信息,无需增加外部的信息维护工作,有效控制了管理成本。
下面以本发明提供的方法实施例进行说明:
发明人发现,在用户空间Ring3层工作的系统命令/应用程序实现某些基础功能时会调用系统.so文件。而这些.so文件实现的基本功能,如文件读写则是通过读取内核空间Ring0层的Syscall Table(系统调用表)中相应Syscall(系统调用)作用到硬件,最终完成文件读写的。Rootkit篡改了Syscall Table中Syscall的内存地址,导致程序读取修改过的Syscall地址而执行了恶意的函数从而实现其特殊功能和目的。
本发明提供的方法在宿主机上获取虚拟机的内存dump,通过分析虚拟机的dump,对内存中进程、内核模块进行分析,得出虚拟机是否被rootkit攻击。
图2为本发明提供的识别虚拟机上进程的方法的流程图。图2所示方法只需在宿主机上安装软件,即可检测宿主机上运行的所有虚拟机,如果有多个宿主机联动为云平台的话,可以检测别的宿主机上的虚拟机。
本实施例以kvm虚拟化为例进行说明。该实施例的方法包括:
步骤201、获取虚拟机的system.map文件;
其中,system.map存在的目录为/boot目录下;如果虚拟机的系统内核经过了修改,那么system.map文件同样存储在/boot目录下。
system.map文件记录了所有代码的运行地址,可以为理解内核编译信息提供帮助。在标准发行版本的linux中,每一个版本都有自己的systam.map文件,通过获取各个发行版本的system.map文件,然后获取系统内核的发行版本,再根据系统内核的发行版本,来确定该系统对应的system.map文件。
步骤202、获取虚拟机的内存dump文件;
虚拟化工具都使用libvirt库的api来管理虚拟机。Libvirt提供了获取虚拟机内存dump的工具,除此之外,libvirt也提供了获取虚拟机系统类型等接口可供使用。
其中,内存dump文件,列举出虚拟机的进程列表,进程地址,lkm模块列表以及地址,内存中syscall的地址等详细内容。
步骤203、获取Sysem.map文件中的进程和/或内核模块的第一信息以及所述内存dump文件中进程和/或内核模块的第二信息;
第一信息可以根据system.map中init_task,modules等符号的地址,分析出名称和syscall地址;
第二信息可以根据system.map中init_task,modules等符号的地址,查找到内存dump中指定位置,然后根据进程、内核模块的结构体来读取指定位置的内容,从而分析出内存中的进程、内核模块、系统调用等的详细信息。
步骤204、将Sysem.map文件中的进程和/或内核模块的第一信息与所述内存dump文件中进程和/或内核模块的第二信息进行对比;
rootkit程序会隐藏自己的进程信息和内核模块信息。这种隐藏是指在虚拟机中使用ls、lsmod等命令的时候查看不到相关的内容,因为rootkit程序已经修改了系统调用。在查看进程和/或内核模块的信息时,被修改的系统调用已经将rootkit的相关程序过滤隐藏。但是实际的内存中是存在的。所以需要比对通过内存dump分析出的内核模块列表以及进程列表的详细信息与虚拟机中获取到信息,即可找不到那些隐藏的进程或者内核模块,即可判定这些就是rootkit程序。
其中,在Sysem.map文件中的记录的进程和/或内核模块的名称和syscall的地址是用户实际可以查看到的,比如open,wirte的系统调用的地址;内存dump文件的记录的进程和/或内核模块的名称和syscall的地址是系统实际运行的;如果上述信息不一致,则可以确定该虚拟机被植入rootkit程序。
步骤205、根据第一信息和第二信息的对比结果,得到虚拟机上是否存在rootkit进程的信息。
如果第一信息和第二信息一致,则确定该虚拟机上不存在rootkit进程,否则,确定该虚拟机上存在rootkit进程。
本发明实施例提供的方法,能有效的识别检测虚拟机是否被植入rootkit程序,并且能进一步分析出rootkit程序的进程和内核模块。但不需要在没有个虚拟机上执行,只需要在宿主机上运行即可,可操作性强。
图3为本发明提供的识别虚拟机上进程的装置的结构图。图3所示装置包括:
获取模块301,用于获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息;
对比模块302,用于将所述第一列表信息和所述第二列表信息进行对比,得到对比结果;
确定模块303,用于如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程。
在一个示例性实施例中,所述获取模块301获取的所述第一列表信息和所述第二列表信息包括进程和/或内核模块的名称和系统调用地址;
所述对比模块302包括:
第一对比单元,用于将所述第一列表信息和所述第二列表信息中的进程的名称信息进行对比;
第一确定单元,用于如果两个列表信息中的名称信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同;
第二对比单元,用于如果两个列表信息中的名称信息相同,则对两个列表信息中相同名称信息对应的地址信息进行对比;
第二确定单元,用于如果两个列表信息中相同名称信息对应的地址信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同。
在一个示例性实施例中,所述获取模块301包括:
第一获取单元,用于获取虚拟机内核系统的系统文件;
第三确定单元,用于按照所述系统文件中进程和/或内核模块对应的字符,确定所述虚拟机操作系统中显示的进程和/或内核模块的名称信息以及系统调用地址。
在一个示例性实施例中,所述获取模块301包括:
第二获取单元,用于获取虚拟机内存管理文件中进程和/或内核模块的代码信息;
第四确定单元,用于按照所述代码信息中名称和地址的编码规则,确定所述内存中运行的进程和/或内核模块的名称信息和系统调用地址。
在一个示例性实施例中,所述第二获取单元包括:
获取子单元,用于获取所述第一列表信息中的进程和/或内核模块的名称信息;
查找子单元,用于在所述内存管理文件中,以所述第一列表信息中的进程和/或内核模块的名称信息为关键字执行查找操作,得到包括所述关键字的代码段;
确定子单元,用于按照所述内存管理文件的编码规则,确定所述内存管理文件中包括所述代码段的完整的编码结构体,作为虚拟机内存管理文件中进程和/或内核模块的代码信息。
本发明提供的装置实施例,获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息,再将所述第一列表信息和所述第二列表信息进行对比,得到对比结果,如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程,实现通过列表信息对比识别出rootkit进程的目的,达到高效的识别出虚拟机上的rootkit进程的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

1.一种识别虚拟机上进程的方法,其特征在于,包括:
获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息;
将所述第一列表信息和所述第二列表信息进行对比,得到对比结果;
如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程。
2.根据权利要求1所述的方法,其特征在于,所述第一列表信息和所述第二列表信息包括进程和/或内核模块的名称和系统调用地址;
所述将所述第一列表信息和所述第二列表信息进行对比,得到对比结果,包括:
将所述第一列表信息和所述第二列表信息中的进程的名称信息进行对比,如果两个列表信息中的名称信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同;如果两个列表信息中的名称信息相同,则对两个列表信息中相同名称信息对应的地址信息进行对比,如果两个列表信息中相同名称信息对应的地址信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同。
3.根据权利要求1或2所述的方法,其特征在于,所述第一列表信息是通过如下方式得到的,包括:
获取虚拟机内核系统的系统文件;
按照所述系统文件中进程和/或内核模块对应的字符,确定所述虚拟机操作系统中显示的进程和/或内核模块的名称信息以及系统调用地址。
4.根据权利要求1或2所述的方法,其特征在于,所述第二列表信息是通过如下方式得到的,包括:
获取虚拟机内存管理文件中进程和/或内核模块的代码信息;
按照所述代码信息中名称和地址的编码规则,确定所述内存中运行的进程和/或内核模块的名称信息和系统调用地址。
5.根据权利要求4所述的方法,其特征在于,所述获取虚拟机内存管理文件中进程和/或内核模块的代码信息,包括:
获取所述第一列表信息中的进程和/或内核模块的名称信息;
在所述内存管理文件中,以所述第一列表信息中的进程和/或内核模块的名称信息为关键字执行查找操作,得到包括所述关键字的代码段;
按照所述内存管理文件的编码规则,确定所述内存管理文件中包括所述代码段的完整的编码结构体,作为虚拟机内存管理文件中进程和/或内核模块的代码信息。
6.一种识别虚拟机上进程的装置,其特征在于,包括:
获取模块,用于获取虚拟机上操作系统记录的进程和/或内核模块的第一列表信息以及所述虚拟机的内存中运行的进程和/或内核模块的第二列表信息;
对比模块,用于将所述第一列表信息和所述第二列表信息进行对比,得到对比结果;
确定模块,用于如果所述对比结果为所述第一列表信息和所述第二列表信息不同,则确定所述虚拟机上存在有rootkit进程。
7.根据权利要求6所述的装置,其特征在于:
所述获取模块获取的所述第一列表信息和所述第二列表信息包括进程和/或内核模块的名称和系统调用地址;
所述对比模块包括:
第一对比单元,用于将所述第一列表信息和所述第二列表信息中的进程的名称信息进行对比;
第一确定单元,用于如果两个列表信息中的名称信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同;
第二对比单元,用于如果两个列表信息中的名称信息相同,则对两个列表信息中相同名称信息对应的地址信息进行对比;
第二确定单元,用于如果两个列表信息中相同名称信息对应的地址信息不同,则确定对比结果为所述第一列表信息和所述第二列表信息不同。
8.根据权利要求6或7所述的装置,其特征在于,所述获取模块包括:
第一获取单元,用于获取虚拟机内核系统的系统文件;
第三确定单元,用于按照所述系统文件中进程和/或内核模块对应的字符,确定所述虚拟机操作系统中显示的进程和/或内核模块的名称信息以及系统调用地址。
9.根据权利要求6或7所述的装置,其特征在于,所述获取模块包括:
第二获取单元,用于获取虚拟机内存管理文件中进程和/或内核模块的代码信息;
第四确定单元,用于按照所述代码信息中名称和地址的编码规则,确定所述内存中运行的进程和/或内核模块的名称信息和系统调用地址。
10.根据权利要求9所述的装置,其特征在于,所述第二获取单元包括:
获取子单元,用于获取所述第一列表信息中的进程和/或内核模块的名称信息;
查找子单元,用于在所述内存管理文件中,以所述第一列表信息中的进程和/或内核模块的名称信息为关键字执行查找操作,得到包括所述关键字的代码段;
确定子单元,用于按照所述内存管理文件的编码规则,确定所述内存管理文件中包括所述代码段的完整的编码结构体,作为虚拟机内存管理文件中进程和/或内核模块的代码信息。
CN201811450607.4A 2018-11-30 2018-11-30 识别虚拟机上进程的方法和装置 Pending CN109298916A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811450607.4A CN109298916A (zh) 2018-11-30 2018-11-30 识别虚拟机上进程的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811450607.4A CN109298916A (zh) 2018-11-30 2018-11-30 识别虚拟机上进程的方法和装置

Publications (1)

Publication Number Publication Date
CN109298916A true CN109298916A (zh) 2019-02-01

Family

ID=65142033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811450607.4A Pending CN109298916A (zh) 2018-11-30 2018-11-30 识别虚拟机上进程的方法和装置

Country Status (1)

Country Link
CN (1) CN109298916A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070289019A1 (en) * 2006-04-21 2007-12-13 David Lowrey Methodology, system and computer readable medium for detecting and managing malware threats
US20080016571A1 (en) * 2006-07-11 2008-01-17 Larry Chung Yao Chang Rootkit detection system and method
US20080320594A1 (en) * 2007-03-19 2008-12-25 Xuxian Jiang Malware Detector
CN102521537A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 基于虚拟机监控器的隐藏进程检测方法和装置
CN103400074A (zh) * 2013-07-09 2013-11-20 青岛海信传媒网络技术有限公司 一种隐藏进程的检测方法及装置
CN103886259A (zh) * 2014-03-19 2014-06-25 四川大学 基于Xen虚拟化环境的内核级rootkit检测和处理方法
CN104598823A (zh) * 2015-01-21 2015-05-06 华东师范大学 一种安卓系统中内核级rootkit检测方法及其系统
CN108446160A (zh) * 2018-01-29 2018-08-24 中国电子科技网络信息安全有限公司 一种虚拟机隐藏进程检测方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070289019A1 (en) * 2006-04-21 2007-12-13 David Lowrey Methodology, system and computer readable medium for detecting and managing malware threats
US20080016571A1 (en) * 2006-07-11 2008-01-17 Larry Chung Yao Chang Rootkit detection system and method
US20080320594A1 (en) * 2007-03-19 2008-12-25 Xuxian Jiang Malware Detector
CN102521537A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 基于虚拟机监控器的隐藏进程检测方法和装置
CN103400074A (zh) * 2013-07-09 2013-11-20 青岛海信传媒网络技术有限公司 一种隐藏进程的检测方法及装置
CN103886259A (zh) * 2014-03-19 2014-06-25 四川大学 基于Xen虚拟化环境的内核级rootkit检测和处理方法
CN104598823A (zh) * 2015-01-21 2015-05-06 华东师范大学 一种安卓系统中内核级rootkit检测方法及其系统
CN108446160A (zh) * 2018-01-29 2018-08-24 中国电子科技网络信息安全有限公司 一种虚拟机隐藏进程检测方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘秀波: ""基于计算机物理内存分析的Rootkit查找方法研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
张文晓 等: ""基于虚拟机的Rootkit检测系统"", 《计算机技术与发展》 *

Similar Documents

Publication Publication Date Title
US10049310B2 (en) Image text analysis for identifying hidden text
US8640241B2 (en) Data identification system
US8489708B2 (en) Virtual application extension points
US8171278B2 (en) Booting a computer system from central storage
CN104081348B (zh) 通过在虚拟数据中心中最佳地放置vm而减少存储器使用的系统和方法
US10216510B2 (en) Silent upgrade of software with dependencies
US20110078681A1 (en) Method and system for running virtual machine image
US10191838B2 (en) Method and device for checking influence of deleting cache file, and mobile terminal
US20130179495A1 (en) System and method for alerting leakage of personal information in cloud computing environment
US20190108218A1 (en) Automated term extraction
CN107766130B (zh) 虚拟机向容器迁移的方法和装置
US20120131091A1 (en) Identifying compatible web service policies
WO2015078294A1 (en) Kernel module loading method and apparatus
CN110688096A (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
US10318343B2 (en) Migration methods and apparatuses for migrating virtual machine including locally stored and shared data
US11100233B2 (en) Optimizing operating system vulnerability analysis
EP3108400B1 (en) Virus signature matching method and apparatus
CN115080114B (zh) 应用程序的移植处理方法、装置和介质
CN109298916A (zh) 识别虚拟机上进程的方法和装置
EP3195120A1 (en) Selectively loading precompiled header(s) and/or portion(s) thereof
CN109471802A (zh) 一种Python网页中的异常处理的方法及装置
US9727344B2 (en) Mining dependencies from disk images
WO2015081834A1 (en) Method and apparatus for distinguishing software types
Yao et al. Android malware detection based on sensitive features combination
CN110554915A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190201