CN102521537B - Detection method and device for hidden process based on virtual machine monitor - Google Patents
Detection method and device for hidden process based on virtual machine monitor Download PDFInfo
- Publication number
- CN102521537B CN102521537B CN201110401702.7A CN201110401702A CN102521537B CN 102521537 B CN102521537 B CN 102521537B CN 201110401702 A CN201110401702 A CN 201110401702A CN 102521537 B CN102521537 B CN 102521537B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- hidden
- kernel
- machine monitor
- information
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于虚拟机监控器的隐藏进程检测方法和装置,该方法包括:分别获得用户态、内核态以及虚拟机监控器中的进程信息;比较所述用户态中的进程信息与所述内核态中的进程信息,获得用户态中的隐藏进程;比较所述内核态中的进程信息与所述虚拟机监控器中的进程信息,获得内核态中的隐藏进程。该装置包括:获得模块、第一比较模块和第二比较模块。本发明提供的方案实现了多种视图的隐藏进程检测及识别技术,为虚拟机提供更好的安全保障。
The present invention provides a method and device for detecting a hidden process based on a virtual machine monitor. The method includes: respectively obtaining process information in a user state, a kernel state, and a virtual machine monitor; comparing the process information in the user state with the process information in the virtual machine monitor. The process information in the kernel state is obtained to obtain the hidden process in the user state; the process information in the kernel state is compared with the process information in the virtual machine monitor to obtain the hidden process in the kernel state. The device includes: an obtaining module, a first comparing module and a second comparing module. The solution provided by the invention realizes the hidden process detection and identification technology of various views, and provides better security guarantee for the virtual machine.
Description
技术领域 technical field
本发明涉及虚拟机技术,尤其涉及一种基于虚拟机监控器(VirtualMachine Monitor,简称为:VMM)的隐藏进程检测方法和装置,属于计算机技术领域。The present invention relates to virtual machine technology, in particular to a hidden process detection method and device based on a virtual machine monitor (Virtual Machine Monitor, referred to as: VMM), and belongs to the field of computer technology.
背景技术 Background technique
虚拟化技术的发展促进了虚拟机技术的出现。通过虚拟硬件来实现虚拟机,将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统,每个虚拟计算机系统都拥有自己的虚拟硬件(如CPU、内存和设备等)。虚拟机的各种优点促使了虚拟计算环境的发展。当然,作为计算环境的核心,虚拟机的安全性必须要得到更好的保证,这也成为当前虚拟计算环境下所要研究的重要问题。此外,虚拟机技术的发展不仅促进虚拟计算环境的发展,其本身的一些优势也为安全技术的发展带来了新的机遇。虚拟机监控器处于客户机以及客户机系统的底层,具有更高的特权级。因此,通过虚拟机监控器可以更容易解决安全的一些问题。The development of virtualization technology has promoted the emergence of virtual machine technology. A virtual machine is realized through virtual hardware, and a physical computer system is virtualized into one or more virtual computer systems, and each virtual computer system has its own virtual hardware (such as CPU, memory, and equipment, etc.). Various advantages of virtual machines have prompted the development of virtual computing environments. Of course, as the core of the computing environment, the security of the virtual machine must be better guaranteed, which has become an important issue to be studied in the current virtual computing environment. In addition, the development of virtual machine technology not only promotes the development of virtual computing environment, but also brings new opportunities for the development of security technology due to its own advantages. The virtual machine monitor is at the bottom layer of the client and the client system, and has a higher privilege level. Therefore, some problems of security can be solved more easily through the virtual machine monitor.
在虚拟机系统会出现的各种安全问题中,系统中隐藏对象带来日益严重的安全问题。所谓“隐藏”,指的是“用户不可见”。有这样一种恶意软件,常被称为“Rootkit(内核级后门/木马)”,他们运行在系统内核态,可以自隐藏自己的进程、服务、日志以及网络连接等等,并能够对正常的用户程序进行隐藏。于是,如何检测到系统中的隐藏对象成为维护系统内部安全的重要内容,也是虚拟计算环境下保障虚拟机内部安全的重要内容。Among the various security problems that may occur in the virtual machine system, hidden objects in the system bring more and more serious security problems. The so-called "hidden" refers to "invisible to users". There is such a kind of malicious software, often called "Rootkit (kernel-level backdoor/Trojan horse)", they run in the system kernel state, can hide their own processes, services, logs and network connections, etc., and can attack normal hidden from the user program. Therefore, how to detect hidden objects in the system has become an important content to maintain the internal security of the system, and it is also an important content to ensure the internal security of the virtual machine in the virtual computing environment.
目前关于如何检测系统内隐藏的各种对象,主要有三种方法:一种基于系统内部的研究和实现,一种基于辅助的硬件,还有一种基于虚拟机控制器的一些安全机制。基于系统级的隐藏对象检测机制存在篡改、禁用、绕过的危险,而基于辅助硬件的,需要专门硬件的支持,增加了成本,且实现功能不完整。基于VMM的安全技术已经有了很大的发展,而且安全性在增加,但是也会分别出现一些不足:有些是粗粒度的检测;有些是利用内核数据结构进行语义转换,在没有验证的情况下,会漏掉一些信息;有些为了实现更高安全性,牺牲掉了一些完整的语义信息;而更多的研究放在了研究进程方面,关于文件、网络连接的研究比较少,如果存在只终止了隐藏的进程而忽略了遗留的隐藏文件,或者没有关注隐藏的网络连接,这些连接很有可能是非隐藏的进程创建的,等等一些情况下,导致检测的范围受限。除外,一些不支持开源的商用系统的研究使用范围也有一定限制。At present, there are three main methods on how to detect various hidden objects in the system: one is based on the research and implementation inside the system, the other is based on auxiliary hardware, and the other is based on some security mechanisms of the virtual machine controller. The hidden object detection mechanism based on the system level has the danger of tampering, disabling, and bypassing, while the one based on auxiliary hardware requires the support of special hardware, which increases the cost and realizes incomplete functions. VMM-based security technology has been greatly developed, and the security is increasing, but there are also some shortcomings: some are coarse-grained detection; some use the kernel data structure for semantic conversion, in the absence of verification , some information will be missed; some have sacrificed some complete semantic information in order to achieve higher security; more research has been placed on the research process, and there are fewer studies on files and network connections. If there is, only terminate In some cases, the scope of detection is limited due to the fact that hidden processes are ignored and hidden files left behind, or hidden network connections are not paid attention to, these connections are likely to be created by non-hidden processes, and so on. In addition, the research scope of some commercial systems that do not support open source is also limited.
发明内容 Contents of the invention
本发明的第一个方面是提供一种基于虚拟机监控器的隐藏进程检测方法,包括:A first aspect of the present invention provides a method for detecting hidden processes based on a virtual machine monitor, including:
分别获得用户态、内核态以及虚拟机监控器中的进程信息;Obtain process information in user state, kernel state, and virtual machine monitor respectively;
比较所述用户态中的进程信息与所述内核态中的进程信息,获得用户态中的隐藏进程;Comparing the process information in the user state with the process information in the kernel state to obtain the hidden process in the user state;
比较所述内核态中的进程信息与所述虚拟机监控器中的进程信息,获得内核态中的隐藏进程。Comparing the process information in the kernel state with the process information in the virtual machine monitor to obtain hidden processes in the kernel state.
本发明的第二个方面是提供一种基于虚拟机监控器的隐藏进程检测方法,包括:A second aspect of the present invention provides a method for detecting hidden processes based on a virtual machine monitor, including:
比较虚拟机内部用户态程序维护的网络连接信息与虚拟机监控器维护的网络连接信息,获得隐藏的网络连接;Compare the network connection information maintained by the user mode program inside the virtual machine with the network connection information maintained by the virtual machine monitor to obtain hidden network connections;
利用虚拟机监控器获取进程与端口的映射信息,根据所述隐藏的网络连接的网络端口,获得隐藏进程。The virtual machine monitor is used to obtain the mapping information of the process and the port, and the hidden process is obtained according to the network port of the hidden network connection.
本发明的第二个方面是提供一种基于虚拟机监控器的隐藏进程检测装置,包括:A second aspect of the present invention provides a virtual machine monitor-based hidden process detection device, including:
获得模块,用于分别获得用户态、内核态以及虚拟机监控器中的进程信息;Obtaining a module for obtaining process information in user state, kernel state, and virtual machine monitor respectively;
第一比较模块,用于比较所述用户态中的进程信息与所述内核态中的进程信息,获得用户态中的隐藏进程;The first comparison module is used to compare the process information in the user mode with the process information in the kernel mode to obtain the hidden process in the user mode;
第二比较模块,用于比较所述内核态中的进程信息与所述虚拟机监控器中的进程信息,获得内核态中的隐藏进程。The second comparison module is used to compare the process information in the kernel state with the process information in the virtual machine monitor to obtain hidden processes in the kernel state.
本发明一个方面的技术效果是:在利用硬件虚拟化的技术,并且作为Linux系统可加载的模块,在虚拟机监控器KVM中进行修改,不影响虚拟机监控器的正常运行以及产生可接受的额外性能开销,实现了多种视图的隐藏进程检测及识别技术,并通过检测隐藏的网络连接进一步发现可疑的进程,实现多角度、全方位的进程检测,为虚拟机提供更高的安全性。The technical effect of one aspect of the present invention is: utilize the technology of hardware virtualization, and as the module that Linux system can load, carry out modification in virtual machine monitor KVM, do not affect the normal operation of virtual machine monitor and produce acceptable The extra performance overhead realizes hidden process detection and identification technology of various views, and further discovers suspicious processes by detecting hidden network connections, realizes multi-angle and all-round process detection, and provides higher security for virtual machines.
附图说明 Description of drawings
图1为本发明一个实施例提供的基于虚拟机监控器的隐藏进程检测方法流程图;Fig. 1 is a flow chart of a method for detecting hidden processes based on a virtual machine monitor provided by an embodiment of the present invention;
图2为本发明实施例提供的内核态进程列表的获取流程图;Fig. 2 is the acquisition flow chart of the kernel mode process list provided by the embodiment of the present invention;
图3为本发明实施例提供的VMM进程列表的获取流程图;Fig. 3 is the flow chart of obtaining the VMM process list provided by the embodiment of the present invention;
图4为本发明实施例提供的多视图示意图;FIG. 4 is a multi-view schematic diagram provided by an embodiment of the present invention;
图5为本发明实施例提供的虚拟机监控器的隐藏进程检测方法流程图;5 is a flowchart of a hidden process detection method of a virtual machine monitor provided by an embodiment of the present invention;
图6为本发明实施例提供的基于虚拟机监控器的隐藏进程检测装置结构示意图;6 is a schematic structural diagram of a virtual machine monitor-based hidden process detection device provided by an embodiment of the present invention;
图7为本发明实施例提供的基于虚拟机监控器的隐藏进程检测装置结构示意图。FIG. 7 is a schematic structural diagram of an apparatus for detecting hidden processes based on a virtual machine monitor provided by an embodiment of the present invention.
具体实施方式 Detailed ways
针对目前隐藏进程检测机制中的缺陷和不足,结合虚拟机环境的特点,本发明提出了一种基于虚拟机监控器的多视图隐藏进程检测方法和装置,在利用硬件虚拟化的技术,并且作为(如Linux)系统可加载的模块,在虚拟机监控器KVM中进行修改,不影响虚拟机监控器的正常运行以及产生可接受的额外性能开销,实现了多种视图的隐藏进程检测,并通过检测隐藏的网络连接进一步发现可疑的进程,实现多角度、全方位的进程检测,为虚拟机提供更高的安全性。Aiming at the defects and deficiencies in the current hidden process detection mechanism, combined with the characteristics of the virtual machine environment, the present invention proposes a multi-view hidden process detection method and device based on a virtual machine monitor, using hardware virtualization technology, and as a (such as Linux) The module that can be loaded by the system can be modified in the virtual machine monitor KVM without affecting the normal operation of the virtual machine monitor and generating acceptable additional performance overhead. It realizes the hidden process detection of multiple views, and passes Detect hidden network connections to further discover suspicious processes, realize multi-angle and all-round process detection, and provide higher security for virtual machines.
图1为本发明一个实施例提供的基于虚拟机监控器的隐藏进程检测方法流程图,如图1所示,该方法包括:Fig. 1 is a flow chart of a hidden process detection method based on a virtual machine monitor provided by an embodiment of the present invention. As shown in Fig. 1, the method includes:
步骤101、分别获得用户态(User-level)、内核态(Kernel-level)以及虚拟机监控器(VMM-level)下的进程信息;Step 101, obtaining process information under the user state (User-level), kernel state (Kernel-level) and virtual machine monitor (VMM-level) respectively;
其中可以包括:These can include:
(1)从系统提供的用户态的应用程序编程接口API获得User-level的进程列表及相应的进程信息;(1) Obtain the User-level process list and corresponding process information from the user state application programming interface API provided by the system;
(2)通过截获系统调用来维护一个Kernel-level的进程列表及相应的进程信息;(2) Maintain a Kernel-level process list and corresponding process information by intercepting system calls;
具体的,Kernel-level的进程列表可以但不限于通过如下方式进行获取:Specifically, the Kernel-level process list can be obtained, but not limited to, through the following methods:
Kernel-level进程列表的获取主要通过截获系统调用来实现。当进程创建和执行的时候都需要通过调用系统调用来完成操作,这个时候,快速系统调用指令(SYSENTER指令)将会被执行,系统就会从用户态转入内核态,并且进行内核初始化操作,将相应的值载入到相关的寄存器中,比如执行最高权限(Ring 0)代码的代码选择符指定寄存器(SYSENTER_CS_MSR)保存内核代码段的选择符,执行最高权限Ring 0代码的起始地址指定寄存器(SYSENTER_EIP_MSR)保存内核入口点的线性地址,执行Ring 0代码的栈指针指定寄存器(SYSENTER_ESP_MSR)保存内核堆栈指针。于是,可以将一个不存在的地址赋值给SYSENTER_EIP_MSR,使得在发生系统调用的时候产生缺页错误(PageFault)的错误异常,迫使虚拟机将CPU的控制权交换给虚拟机监控器。这个时候,虚拟机监控器得到了CPU控制权,并且可以通过读取EAX寄存器获取当前系统调用号,通过该系统调用号判断当前系统调用类型(进程的执行execve、退出exit_group),来对Kernel-level的进程列表进行添加或者删除成员。内核态进程列表的获取流程图可以如图2所示。步骤201、设置虚拟机的SYSENTER_EIP_MSR为一个不可用的地址0xffffffff;步骤202、由上述地址,导致虚拟机发生异常,CPU控制权被KVM掌握;步骤203、判断上述异常是否为缺页错误,如果是转入步骤204,如果不是继续步骤201;步骤204、截获虚拟机当前系统调用以及进程的信息;步骤205、从虚拟机当前系统调用的信息中获取系统调用号;步骤206、判断系统调用号;系统调用号为11转入步骤207,系统调用号为252,转入步骤211;步骤207、如果系统调用号为11则转入步骤208;步骤208、在Kernel-level的进程列表中查询当前进程信息;步骤209、判断Kernel-level视图是否有当前进程信息,如有,流程结束;没有,转入步骤210;步骤210、将该进程信息加入Kernel-level视图,则流程结束;步骤211、该系统调用号为252,转入步骤212;步骤212、将该进程从Kernel-level视图中删除,流程结束。The acquisition of the Kernel-level process list is mainly realized by intercepting system calls. When the process is created and executed, it needs to call the system call to complete the operation. At this time, the fast system call instruction (SYSENTER instruction) will be executed, the system will transfer from the user state to the kernel state, and perform kernel initialization operations. Load the corresponding value into the relevant register, such as the code selector designation register (SYSENTER_CS_MSR) that executes the highest authority (Ring 0) code to save the selector of the kernel code segment, and the start address designation register that executes the highest authority Ring 0 code (SYSENTER_EIP_MSR) saves the linear address of the kernel entry point, and executes the stack pointer specified register (SYSENTER_ESP_MSR) of Ring 0 code to save the kernel stack pointer. Therefore, a non-existent address can be assigned to SYSENTER_EIP_MSR, so that a page fault (PageFault) error exception occurs when a system call occurs, forcing the virtual machine to exchange control of the CPU to the virtual machine monitor. At this time, the virtual machine monitor has obtained the CPU control right, and can obtain the current system call number by reading the EAX register, and judge the current system call type (execve of the process, exit exit_group) by the system call number, to the Kernel- level process list to add or remove members. The flow chart of obtaining the kernel state process list may be shown in FIG. 2 . Step 201, setting the SYSENTER_EIP_MSR of the virtual machine to an unavailable address 0xffffffff; Step 202, causing the virtual machine to be abnormal by the above address, and the CPU control right is controlled by KVM; Step 203, judging whether the above abnormality is a page fault, if so Go to step 204, if not continue step 201; Step 204, intercept the information of the current system call of the virtual machine and the process; Step 205, obtain the system call number from the information of the current system call of the virtual machine; Step 206, judge the system call number; If the system call number is 11, go to step 207; if the system call number is 252, go to step 211; step 207, if the system call number is 11, then go to step 208; step 208, query the current process in the Kernel-level process list information; step 209, judge whether the Kernel-level view has current process information, and if so, the process ends; no, proceed to step 210; step 210, add the process information to the Kernel-level view, then the process ends; step 211, the If the system call number is 252, go to step 212; step 212, delete the process from the Kernel-level view, and the process ends.
在获得了进程列表之后,还需要进行进程语义信息的获取。进程语义信息的获取主要是通过读取内核为进程维护的数据结构进程描述符task_struct中的信息。而进程描述符task_struct的获取是依据进程内核堆栈地址与进程描述符地址之间的映射关系获取的。在Linux中,内核分配进程任务结构空间时,是以8KB为单位来分配的,包含两个页面空间,一个是进程信息结构体(thread_info结构体)存储空间,一个是进程用于系统空间堆栈的存储空间。其中thread_info结构体存储了进程描述符task_struct,并且位于该地址空间的起始地址,而堆栈空间则从内存空间的高地址向低地址增长。由于进程内核空间起始地址是8KB的整数倍,即213,则task_struct的地址与进程堆栈地址的前19位相同,在发生进程上下午切换的时候,当前CPU的堆栈指针寄存器(ESP寄存器)存放的便是切换后的进程的内核堆栈,将此值与0xffffe000(十六进制)按位相与便得到task_struct结构的地址。同时,考虑到内存虚拟化,从内存中读取进程描述符的时候要考虑两次地址转换的机制,即客户机虚拟机地址(GVA,Guest Virtual Address)->客户机物理地址(GPA,Guest Physical Address)->宿主机物理地址(HPA,Host Physical Address)的转换。After obtaining the process list, it is also necessary to obtain process semantic information. The acquisition of process semantic information is mainly by reading the information in the data structure process descriptor task_struct maintained by the kernel for the process. The acquisition of the process descriptor task_struct is based on the mapping relationship between the process kernel stack address and the process descriptor address. In Linux, when the kernel allocates the process task structure space, it is allocated in units of 8KB, including two page spaces, one is the process information structure (thread_info structure) storage space, and the other is the process used for the system space stack storage. The thread_info structure stores the process descriptor task_struct and is located at the starting address of the address space, while the stack space grows from the high address of the memory space to the low address. Since the starting address of the process kernel space is an integer multiple of 8KB, that is, 213, the address of task_struct is the same as the first 19 bits of the process stack address. It is the kernel stack of the switched process, and the address of the task_struct structure is obtained by bitwise ANDing this value with 0xffffe000 (hexadecimal). At the same time, considering memory virtualization, two address translation mechanisms should be considered when reading process descriptors from memory, that is, guest virtual machine address (GVA, Guest Virtual Address) -> guest physical address (GPA, Guest Virtual Address) Physical Address)->Host Physical Address (HPA, Host Physical Address) conversion.
(3)获得虚拟机监控器维护的VMM-level的进程列表。(3) Obtain the VMM-level process list maintained by the virtual machine monitor.
具体的,VMM-level的进程列表可以但不限于通过如下方式进行获取:Specifically, the VMM-level process list can be obtained, but not limited to, through the following methods:
在虚拟机环境下,处理器与系统进程之间是存在逻辑的一致性的,于是尽管具体语义的系统进程对于虚拟机监控器是不可见的,但是进程所用的地址空间是对虚拟机监控器是可见的。于是虚拟机监控器想要维护进程列表便可以通过截获进程的CPU事件,比如进程的上下文切换。在x86架构下,CPU的第四个控制寄存器(CR3寄存器)保存着进程地址空间下页目录表的基地址,一旦一个新的进程使用CPU,其相应的页目录表基地址便被写入到CR3中,同时会将其内核堆栈地址写入ESP寄存器。于是,在系统虚拟化软件KVM的CR3寄存器控制操作中设置截获点插入函数来判断是否有新的进程启动。关于进程的退出,采用固定时间间隔依据内核进程链表的进程状态对进程判断是否退出,并作出相应的操作。VMM进程列表的获取流程图可以如图3所示。步骤301、等待CPU发生寄存器更新事件;步骤302、CPU发生寄存器事件,KVM获得CPU控制权,KVM判断当前寄存器事件;步骤303、若当前寄存器是CR3寄存器发生变化,则进行步骤304;否则,从步骤301开始。步骤304、进程函数准备执行;步骤305、获取当前进程的信息;步骤306、根据获取的进程信息查询VMM-level进程列表;步骤307、判断步骤306的结果,如果存在该进程,则转入步骤309;否则,转入步骤308;步骤308、将该进程信息添加进VMM-level进程列表;步骤309、查看VMM-level列表更新时间标志,判断距离上次更新时间是否超过2秒;如果超过,则进行步骤310,若无,流程结束;步骤310、对VMM-level的列表进行更新操作准备;步骤311、从VMM-level的列表中取下一个进程,判断是否还有进程,如果有,进行步骤312,若无,流程退出;步骤312、查询内核维护的进程数据结构双向链表;步骤313、判断该进程是否存在双向链表中,如果存在,则进行步骤311;否则,进行步骤314;步骤314、将该进程从VMM-level列表中删除,转入步骤311。In the virtual machine environment, there is logical consistency between the processor and the system process, so although the system process with specific semantics is invisible to the virtual machine monitor, the address space used by the process is visible to the virtual machine monitor is visible. Therefore, if the virtual machine monitor wants to maintain the process list, it can intercept the CPU events of the process, such as the context switch of the process. Under the x86 architecture, the fourth control register (CR3 register) of the CPU holds the base address of the page directory table under the process address space. Once a new process uses the CPU, its corresponding page directory table base address is written to In CR3, its kernel stack address will be written to the ESP register at the same time. Therefore, an interception point insertion function is set in the CR3 register control operation of the system virtualization software KVM to determine whether a new process starts. Regarding the exit of the process, a fixed time interval is used to judge whether the process exits according to the process state of the kernel process linked list, and make corresponding operations. The flow chart of obtaining the VMM process list may be shown in FIG. 3 . Step 301, wait for the register update event to occur in the CPU; Step 302, the register event occurs in the CPU, KVM obtains the CPU control right, and KVM judges the current register event; Step 303, if the current register is that the CR3 register changes, then proceed to step 304; otherwise, from Step 301 starts. Step 304, the process function is ready to execute; Step 305, obtain the information of the current process; Step 306, query the VMM-level process list according to the obtained process information; Step 307, judge the result of step 306, if there is the process, then proceed to the step 309; otherwise, proceed to step 308; step 308, add the process information into the VMM-level process list; step 309, check the update time mark of the VMM-level list, and judge whether the last update time exceeds 2 seconds; if exceeded, Then proceed to step 310, if not, the flow process ends; step 310, prepare for an update operation to the list of VMM-level; step 311, take the next process from the list of VMM-level, judge whether there is still a process, if there is, carry out Step 312, if not, the process exits; Step 312, query the process data structure doubly linked list maintained by the kernel; Step 313, judge whether the process exists in the doubly linked list, if it exists, then proceed to step 311; otherwise, proceed to step 314; step 314 . Delete the process from the VMM-level list, and go to step 311.
在获得了进程列表之后,还包括:进程语义信息获取。如上述(2)中的描述,此处不做赘述。After obtaining the process list, it also includes: obtaining process semantic information. As described in (2) above, details are not repeated here.
步骤102、比较所述User-level的进程信息以及所述Kernel-level的进程信息,获得User-level中的隐藏进程;Step 102, comparing the process information of the User-level and the process information of the Kernel-level to obtain hidden processes in the User-level;
步骤103、比较所述Kernel-level的进程信息以及所述VMM-level的进程信息,获得Kernel-level中的隐藏进程。Step 103: Compare the process information of the Kernel-level with the process information of the VMM-level to obtain hidden processes in the Kernel-level.
其中,本实施例并不限制步骤102与步骤103之间的执行顺序,可以先执行步骤102、后执行步骤103,也可以先执行步骤103、后执行步骤102,或者两个步骤同时进行。Wherein, this embodiment does not limit the execution sequence between step 102 and step 103, and step 102 may be executed first, followed by step 103, or step 103 may be executed first, followed by step 102, or both steps may be executed simultaneously.
下面具体对各步骤中的技术进行详细的介绍。The technology in each step is specifically introduced in detail below.
首先,多视图验证技术是通过多个角度对系统对象进行观察得出不同的视图,并且这些视图之间没有任何的相关性。在整个系统的层次中,越高的层次获得的视图可信度越低。按照对系统的攻击的难易,一个隐藏的系统对象更可能出现在较低层次的视图中。当一个系统对象出现在较高可信视图中而未出现在较低可信视图中,那么该隐藏对象便可被检测发现。First of all, the multi-view verification technology obtains different views by observing system objects from multiple angles, and there is no correlation between these views. In the hierarchy of the whole system, the higher the hierarchy, the lower the credibility of the view obtained. According to the ease of attack on the system, a hidden system object is more likely to appear in the lower level view. A hidden object can be detected when a system object appears in a higher-trusted view but not in a lower-trusted view.
而对于进程来说,最不可信的视图,从系统提供的用户态的应用程序编程API函数(Application Programming Interface)便可获得,比如利用系统查看命令ps和top来维护一个User-level的进程列表。同时,如果创建或者执行进程,一般是需要在用户态调用库函数以及系统调用来实现的,所以,通过截获系统调用便可以发现一个进程是否创建、活动或者销毁,因此,如图4所示的多视图示意图,可以通过截获系统调用来维护一个Kernel-level的进程列表。通过这个Kernel-level列表和刚才得到的User-level列表对比,便可以得到隐藏的进程,并且可知该进程隐藏于用户态,因为其对于用户态的API是不可见的,但是内核态的系统库函数是可以截获得到的。可是系统调用是可以绕过的,比如在内核内部通过直接执行内核函数或者修改系统调用表等等,以及通过可加载内核模块程序(LKM,Loadable Kernel Module)实现的rootkit,隐藏在内核态里,不仅不会被用户态的程序发现,也不会被系统调用所发现,于是获取最可信视图便成为必需。在虚拟机环境下,虚拟机监控器对虚拟机拥有最高权限,虚拟机的任何活动权限都不可能越过虚拟机监控器的级别,于是,从虚拟机监控器维护一个真实VMM-level进程列表便成为可能,又如图4所示,通过这个列表与Kernel-level列表对比,便可以发现Kernel-level列表所不能发现的隐藏于内核态的rootkit。For the process, the most untrustworthy view can be obtained from the user-level application programming API function (Application Programming Interface) provided by the system, such as using the system to view the commands ps and top to maintain a User-level process list . At the same time, if a process is created or executed, it is generally implemented by calling library functions and system calls in user mode. Therefore, by intercepting system calls, it can be found whether a process is created, activated or destroyed. Therefore, as shown in Figure 4 Multi-view schematic diagram, which can maintain a Kernel-level process list by intercepting system calls. By comparing this Kernel-level list with the User-level list just obtained, the hidden process can be obtained, and it can be seen that the process is hidden in the user mode, because it is invisible to the API of the user mode, but the system library of the kernel mode Functions can be intercepted. But the system call can be bypassed, such as directly executing the kernel function or modifying the system call table inside the kernel, etc., and the rootkit implemented by the loadable kernel module program (LKM, Loadable Kernel Module), hidden in the kernel state, Not only will it not be discovered by user-mode programs, but it will also not be discovered by system calls, so it becomes necessary to obtain the most credible view. In the virtual machine environment, the virtual machine monitor has the highest authority on the virtual machine, and any activity authority of the virtual machine cannot exceed the level of the virtual machine monitor. Therefore, it is convenient to maintain a real VMM-level process list from the virtual machine monitor. It is possible, and as shown in Figure 4, by comparing this list with the Kernel-level list, you can find rootkits hidden in the kernel state that cannot be found in the Kernel-level list.
该发明满足如下要求:1)对客户机透明。对于虚拟机来说,整个检测的活动是透明的,检测行为不会影响正常虚拟机的运行状态,并且,由于其透明性,使得虚拟机内部的恶意软件也对检测系统的存在不可知,更加提高了检测系统的安全性与准确性。2)跨越语义,用户交互。从虚拟机的外部实现检测功能,但是系统仍旧需要为用户提供清晰地语义和友好的界面,以便用户能够随时掌握自己虚拟机内部的状态和信息。同时,良好的语义为识别隐藏进程提供了便利。3)视图的更加完整,没有遗漏。通过多视图检测机制,尤其是通过Kernel-level以及隐藏网络端口提供的进程信息,使得对于虚拟机内部隐藏进程的检测更加完善。同时,能够对隐藏进程的类型更细化的区分,比如,进程是隐藏于用户态还是内核态,甚至对于具有隐藏行为(如隐藏网络连接)的可疑进程进行探测和发掘,提高检测级别,进一步增强虚拟机的安全性。4)主动检测。由于一些对于隐藏进程的扫描是隔时的甚至被动的,也可能在不恰当的时间间隔内,隐藏进程巧妙躲避检测,所以,对于进程一旦创建甚至运行便进行捕捉检测是非常必要的。5)功能易用性。根据当前主机环境的需求,本系统应该是动态可加载可卸除的,不影响主机整体环境。The invention meets the following requirements: 1) It is transparent to the client. For the virtual machine, the entire detection activity is transparent, and the detection behavior will not affect the normal running state of the virtual machine. Moreover, due to its transparency, the malware inside the virtual machine is also unaware of the existence of the detection system, which is more The safety and accuracy of the detection system are improved. 2) Across semantics, user interaction. The detection function is realized from the outside of the virtual machine, but the system still needs to provide users with clear semantics and a friendly interface, so that users can grasp the status and information inside their virtual machines at any time. At the same time, good semantics facilitate the identification of hidden processes. 3) The view is more complete without omission. Through the multi-view detection mechanism, especially the process information provided by Kernel-level and hidden network ports, the detection of hidden processes inside the virtual machine is more complete. At the same time, it can distinguish the types of hidden processes more finely, for example, whether the process is hidden in the user state or the kernel state, and even detect and discover suspicious processes with hidden behaviors (such as hidden network connections), improve the detection level, and further Enhance the security of virtual machines. 4) Active detection. Since some scans for hidden processes are timed or even passive, and hidden processes may cleverly evade detection at inappropriate time intervals, it is very necessary to capture and detect processes once they are created or even run. 5) Functional ease of use. According to the requirements of the current host environment, the system should be dynamically loadable and removable without affecting the overall environment of the host.
图5为本发明实施例提供的虚拟机监控器的隐藏进程检测方法流程图,如图5所示,该方法包括:FIG. 5 is a flowchart of a hidden process detection method of a virtual machine monitor provided by an embodiment of the present invention. As shown in FIG. 5, the method includes:
步骤501、比较虚拟机内部用户态程序维护的网络连接信息(视图)与虚拟机监控器维护的网络连接信息相比较,获得隐藏的网络连接;Step 501, comparing the network connection information (view) maintained by the user state program inside the virtual machine with the network connection information maintained by the virtual machine monitor to obtain hidden network connections;
步骤502、利用虚拟机监控器获取进程与端口的映射信息,根据所述隐藏的网络连接的端口,获得隐藏进程。Step 502, using a virtual machine monitor to obtain mapping information between processes and ports, and obtaining hidden processes according to the hidden ports connected to the network.
其中,网络端口截获,依据虚拟机监控器KVM对于虚拟机的网卡是可见的,并且可以在宿主机的用户态便执行抓包截获的操作,本发明实施例主要就是通过这样的方式实现的。特别的,本文中虚拟机的网络配置是以网桥形式配置的,每一个虚拟机都有对应的测试访问端口(tap端口,Test AccessPort)来进行数据包的接受和发送。宿主机对于tap端口是可见的,并且可以通过对tap端口的抓包来进行网络状态的控制。网络端口截获模块便对tap端口进行侦听,一旦有数据包发送便可以被获得。Wherein, the network port interception is based on the fact that the virtual machine monitor KVM is visible to the network card of the virtual machine, and the operation of packet capture and interception can be performed in the user state of the host machine. The embodiment of the present invention is mainly realized in this way. In particular, the network configuration of the virtual machine in this paper is configured in the form of a bridge, and each virtual machine has a corresponding test access port (tap port, Test AccessPort) to receive and send data packets. The host is visible to the tap port, and can control the network status by capturing packets on the tap port. The network port interception module listens to the tap port, and once a data packet is sent, it can be obtained.
进程与端口映射关系可以通过如下方式获取:在Linux中,进程建立网络连接是通过创建套接字(socket)文件实现的,当进程进行网络通信的时候,就打开相应的socket文件。Linux内核为每一个进程都维护了一个打开文件的列表。通过这个列表又可以去查询每个文件具体对应的目录,依据这个目录便可以搜索获得Linux文件系统上真实的索引文件。在Linux文件系统中,为每一个真实文件都维护了一个文件索引节点(inode)的索引数据结构,并且设置相应的模式属性字段(i_mode)来表示,通过内置的socket判断宏(S_ISSOCK())可以来判断i_mode是否是socket类型。当进程的一个文件类型结构(file)指针指向socket文件时,会讲该文件对应的socket结构体地址赋值给文件的私有数据属性(private_data属性),通过前面的判断,便可以得到socket结构体。在Linux的网络协议栈中,不会将具体的地址信息存放在socket结构中,socket结构是基于虚拟文件系统创建出来,不保存具体的网络连接信息,具体的网络协议信息存放在扩展的socket数据结构(sock数据结构)中,但是它属于网络层的socket,更详细的网络域(INET域)信息,例如网络地址(IP地址),端口等存放在inet_sock数据结构。于是通过这样的分析,便可以找到进程与端口的映射关系。The process-port mapping relationship can be obtained in the following manner: in Linux, a process establishes a network connection by creating a socket (socket) file, and when the process performs network communication, the corresponding socket file is opened. The Linux kernel maintains a list of open files for each process. Through this list, the directory corresponding to each file can be queried, and the real index file on the Linux file system can be searched according to this directory. In the Linux file system, an index data structure of a file index node (inode) is maintained for each real file, and the corresponding mode attribute field (i_mode) is set to represent it, and the built-in socket judgment macro (S_ISSOCK()) It can be used to determine whether i_mode is a socket type. When a file type structure (file) pointer of the process points to a socket file, the socket structure address corresponding to the file will be assigned to the private data attribute (private_data attribute) of the file, and the socket structure can be obtained through the previous judgment. In the Linux network protocol stack, the specific address information will not be stored in the socket structure. The socket structure is created based on the virtual file system and does not save specific network connection information. The specific network protocol information is stored in the extended socket data structure (sock data structure), but it belongs to the socket of the network layer, and more detailed network domain (INET domain) information, such as network address (IP address), port, etc., are stored in the inet_sock data structure. So through such an analysis, you can find the mapping relationship between the process and the port.
具体的,Rootkits的目的主要是通过网络连接来控制目的主机,于是隐藏掉相关的网络连接也是其重要的攻击手段。通过检测发现隐藏的网络端口,并且通过端口与进程的对应关系,从而可以进一步发现可疑的进程,防止了rootkit利用看似正常的用户进程进行恶意的网络行为,比如远程访问命令(ssh,telnet)等。网络连接的隐藏是用户态程序(例如网络连接查看程序netstat程序)无法发现的,但是网络活动的存在是可以通过截获网卡网络活动发现的。在虚拟机内部实现,则存在被绕过的可能,但是虚拟机监控器由于对虚拟网卡是可见的,于是虚拟机监控器自然也对于该网卡上的网络活动具有全部视图获取的能力。从而,通过虚拟机内部用户态程序(例如netstat)维护的视图与虚拟机监控器维护的网络连接列表所对比,便可以发现隐藏的网络连接。发现了隐藏端口之后,利用虚拟机监控器获取进程与端口的映射信息,找到可以进程。Specifically, the purpose of rootkits is mainly to control the target host through network connections, so hiding the relevant network connections is also an important means of attack. By detecting and discovering hidden network ports, and through the corresponding relationship between ports and processes, suspicious processes can be further discovered, preventing rootkits from using seemingly normal user processes to perform malicious network behaviors, such as remote access commands (ssh, telnet) wait. The hiding of the network connection cannot be discovered by user state programs (such as the network connection viewing program netstat program), but the existence of network activities can be discovered by intercepting the network activity of the network card. Implemented inside the virtual machine, there is a possibility of being bypassed, but since the virtual machine monitor is visible to the virtual network card, the virtual machine monitor naturally has the ability to obtain all views of the network activities on the network card. Therefore, hidden network connections can be discovered by comparing the view maintained by the user mode program (such as netstat) inside the virtual machine with the network connection list maintained by the virtual machine monitor. After discovering the hidden port, use the virtual machine monitor to obtain the mapping information between the process and the port, and find the possible process.
在上述实施方式的基础上,该方法还可以包括:On the basis of the foregoing embodiments, the method may also include:
获取从客户机内得到的进程列表和网络视图,获取从VMM得到的两个进程列表和进程与端口对应信息,获取从网络端口模块得到的网络视图,对得到的网络视图进行处理加上进程内容,对进程的三个视图进行整理,对网络的两个视图进行整理。由于可以采用设备的方式实现,宿主机内核与用户态的交互主要通过设备系统设备控制函数(ioctl)来实现,而其他的用户态的数据传送主要通过字符串以及缓存。Obtain the process list and network view obtained from the client, obtain the two process lists obtained from the VMM and the corresponding information between processes and ports, obtain the network view obtained from the network port module, process the obtained network view and add the process content , which organizes three views of the process and two views of the network. Since it can be implemented in the form of a device, the interaction between the host kernel and the user mode is mainly realized through the device system device control function (ioctl), while other data transfers in the user mode are mainly through strings and caches.
持久化处理位于宿主机用户态,主要实现的功能就是将从得到的各个视图信息存储到数据库中,例如Mysql数据库。对于进程列表和网络连接视图,需要存储的每条信息已经过整理。Persistence processing is located in the user state of the host machine, and its main function is to store the obtained view information in a database, such as a Mysql database. For the process list and network connection views, every piece of information that needs to be stored has been organized.
用户界面的展示要实现的功能是动态的将本发明的检测的结果展示给用户。本实施例采用基于浏览器/服务器(B/S)的模式进行web客户端的展示,并且利用基于Ruby语言的网络框架Rails(Ruby On Rails)的敏捷开发方式,紧密与Mysql数据库进行结合,动态捕获数据库的变更,动态的页面显示,即一旦有进程创建便会有页面更新。The function to be realized by the display of the user interface is to dynamically display the detection results of the present invention to the user. The present embodiment adopts the mode based on browser/server (B/S) to carry out the demonstration of web client, and utilizes the agile development mode of the network framework Rails (Ruby On Rails) based on Ruby language, closely combines with Mysql database, captures dynamically Database changes, dynamic page display, that is, once a process is created, the page will be updated.
图6为本发明实施例提供的基于虚拟机监控器的隐藏进程检测装置结构示意图,如图6所示,该装置可以包括:获得模块601、第一比较模块602和第二比较模块603。其中,获得模块601用于分别获得用户态、内核态以及虚拟机监控器中的进程信息,第一比较模块602用于比较用户态中的进程信息与内核态中的进程信息,获得用户态中的隐藏进程,第二比较模块603用于比较内核态中的进程信息与虚拟机监控器中的进程信息,获得内核态中的隐藏进程。FIG. 6 is a schematic structural diagram of an apparatus for detecting hidden processes based on a virtual machine monitor provided by an embodiment of the present invention. As shown in FIG. 6 , the apparatus may include: an obtaining module 601 , a first comparison module 602 and a second comparison module 603 . Wherein, the obtaining module 601 is used to respectively obtain the process information in the user state, the kernel state, and the virtual machine monitor, and the first comparison module 602 is used to compare the process information in the user state and the process information in the kernel state to obtain the process information in the user state. The second comparison module 603 is used to compare the process information in the kernel state with the process information in the virtual machine monitor to obtain the hidden process in the kernel state.
一种实施方式下,进程信息包括进程列表和进程的寓意信息,则获得模块601可以包括:第一单元、第二单元、第三单元和第四单元。其中,第一单元用于从系统提供的用户态的API获得用户态的进程列表,第二单元用于通过截获系统调用获得内核态的进程列表,第三单元用于通过截获进程的CPU事件获得虚拟机监控器的进程列表,第四单元用于通过读取内核为进程维护的数据结构描述符中的信息获得各进程列表中的各进程的语义信息。In one implementation manner, the process information includes a process list and moral information of the process, and the obtaining module 601 may include: a first unit, a second unit, a third unit, and a fourth unit. Among them, the first unit is used to obtain the process list of the user mode from the user mode API provided by the system, the second unit is used to obtain the process list of the kernel mode by intercepting the system call, and the third unit is used to obtain the process list by intercepting the CPU event of the process For the process list of the virtual machine monitor, the fourth unit is used to obtain the semantic information of each process in each process list by reading the information in the data structure descriptor maintained by the kernel for the process.
在上述实施方式的基础上,第二单元可以包括:第一子单元、第二子单元和第三子单元。其中,第一子单元用于如果发生系统调用,则获得当前发生的系统调用号,第二子单元用于根据当前发生的系统调用号判定当前发生的系统调用类型,第三子单元用于如果当前发生的系统调用类型为进程的执行,则将该进程加入内核态的进程列表,如果当前发生的系统调用类型为进程的退出,则将该进程从内核态的进程列表中删除。On the basis of the above embodiments, the second unit may include: a first subunit, a second subunit and a third subunit. Wherein, the first subunit is used to obtain the currently occurring system call number if a system call occurs, the second subunit is used to determine the type of the currently occurring system call according to the currently occurring system call number, and the third subunit is used to If the type of system call currently occurring is the execution of a process, the process is added to the process list of the kernel state, and if the type of the system call currently occurring is the exit of the process, the process is deleted from the process list of the kernel state.
在上述实施方式的基础上,第三单元用于:如果发生进程的CPU事件,则将该进程加入到虚拟机监控器的进程列表,根据预设时间间隔内内核进程链表的进程状态判断进程是否退出,如果退出,则将该进程从虚拟机监控器的进程中删除。On the basis of the above embodiments, the third unit is used to: if a CPU event of a process occurs, add the process to the process list of the virtual machine monitor, and judge whether the process is Exit, which removes the process from the hypervisor's processes if it exits.
图7为本发明实施例提供的基于虚拟机监控器的隐藏进程检测装置结构示意图,如图7所示,该装置可以包括:第一模块701和第二模块702。其中,第一模块701用于比较虚拟机内部用户态程序维护的网络连接信息与虚拟机监控器维护的网络连接信息,获得隐藏的网络连接。第二模块702用于利用虚拟机监控器获取进程与端口的映射信息,根据隐藏的网络连接的网络端口,获得隐藏进程。FIG. 7 is a schematic structural diagram of an apparatus for detecting hidden processes based on a virtual machine monitor provided by an embodiment of the present invention. As shown in FIG. 7 , the apparatus may include: a first module 701 and a second module 702 . Wherein, the first module 701 is used to compare the network connection information maintained by the user mode program inside the virtual machine with the network connection information maintained by the virtual machine monitor, to obtain hidden network connections. The second module 702 is configured to use the virtual machine monitor to obtain the mapping information of the process and the port, and obtain the hidden process according to the network port of the hidden network connection.
一种实施方式下,该第二模块702中包括处理单元,用于根据进程的文件指针所指向套接字文件,得到套接字结构体,该套接字结构体的inet_sock数据结构中保存有端口,从而获得进程与端口的映射信息。In one embodiment, the second module 702 includes a processing unit, configured to obtain a socket structure according to the socket file pointed to by the file pointer of the process, and the inet_sock data structure of the socket structure contains port to obtain the mapping information between the process and the port.
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器(ROM)、随机存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。Those of ordinary skill in the art can understand that all or part of the steps for implementing the above method embodiments can be completed by program instructions and related hardware. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above-mentioned method embodiments; and the aforementioned storage medium includes: read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk and other various media that can store program codes.
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present invention, rather than limiting them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: It is still possible to modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some or all of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the technical solutions of the various embodiments of the present invention. scope.
Claims (1)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201110401702.7A CN102521537B (en) | 2011-12-06 | 2011-12-06 | Detection method and device for hidden process based on virtual machine monitor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201110401702.7A CN102521537B (en) | 2011-12-06 | 2011-12-06 | Detection method and device for hidden process based on virtual machine monitor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN102521537A CN102521537A (en) | 2012-06-27 |
| CN102521537B true CN102521537B (en) | 2015-05-20 |
Family
ID=46292448
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201110401702.7A Expired - Fee Related CN102521537B (en) | 2011-12-06 | 2011-12-06 | Detection method and device for hidden process based on virtual machine monitor |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN102521537B (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10171319B2 (en) | 2015-06-05 | 2019-01-01 | Cisco Technology, Inc. | Technologies for annotating process and user information for network flows |
| US10171357B2 (en) | 2016-05-27 | 2019-01-01 | Cisco Technology, Inc. | Techniques for managing software defined networking controller in-band communications in a data center network |
Families Citing this family (58)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102880701B (en) * | 2012-09-24 | 2016-06-29 | 杭州安恒信息技术有限公司 | The detection method of database kernel invasion hidden object and system |
| CN102867062B (en) * | 2012-09-24 | 2016-01-20 | 杭州安恒信息技术有限公司 | Detection method and the system of user are hidden in database kernel invasion |
| CN103065084B (en) * | 2012-12-27 | 2015-10-21 | 武汉大学 | In the windows hidden process detection method that external machine of virtual machine is carried out |
| CN103118100A (en) * | 2013-01-25 | 2013-05-22 | 武汉大学 | Guarantee method and guarantee system for improving usability of virtual machine application |
| US9286047B1 (en) | 2013-02-13 | 2016-03-15 | Cisco Technology, Inc. | Deployment and upgrade of network devices in a network environment |
| CN103400074B (en) * | 2013-07-09 | 2016-08-24 | 青岛海信传媒网络技术有限公司 | The detection method of a kind of hidden process and device |
| CN103605557A (en) * | 2013-10-25 | 2014-02-26 | 普华基础软件股份有限公司 | Virtual device management system and management method |
| CN103761175B (en) * | 2013-11-25 | 2016-08-17 | 中国科学院计算技术研究所 | System and method for monitoring program execution path under Linux system |
| CN103886259B (en) * | 2014-03-19 | 2016-09-21 | 四川大学 | Kernel level rootkit based on Xen virtualized environment detection and processing method |
| CN103996004B (en) * | 2014-06-12 | 2018-09-04 | 浪潮电子信息产业股份有限公司 | A kind of high-availability system design method based on virtualization |
| CN104715202B (en) * | 2015-03-31 | 2018-06-12 | 北京奇虎科技有限公司 | Hidden process detection method and device in a kind of virtual machine |
| CN104715201B (en) * | 2015-03-31 | 2018-02-27 | 北京奇虎科技有限公司 | A kind of virtual machine malicious act detection method and system |
| US10374904B2 (en) | 2015-05-15 | 2019-08-06 | Cisco Technology, Inc. | Diagnostic network visualization |
| US9800497B2 (en) | 2015-05-27 | 2017-10-24 | Cisco Technology, Inc. | Operations, administration and management (OAM) in overlay data center environments |
| US10033766B2 (en) | 2015-06-05 | 2018-07-24 | Cisco Technology, Inc. | Policy-driven compliance |
| US9967158B2 (en) | 2015-06-05 | 2018-05-08 | Cisco Technology, Inc. | Interactive hierarchical network chord diagram for application dependency mapping |
| US10142353B2 (en) | 2015-06-05 | 2018-11-27 | Cisco Technology, Inc. | System for monitoring and managing datacenters |
| US10089099B2 (en) | 2015-06-05 | 2018-10-02 | Cisco Technology, Inc. | Automatic software upgrade |
| CN105468967A (en) * | 2015-11-19 | 2016-04-06 | 国云科技股份有限公司 | A hidden process detection method for Xen-based Linux virtual machine malicious code attack |
| US10931629B2 (en) | 2016-05-27 | 2021-02-23 | Cisco Technology, Inc. | Techniques for managing software defined networking controller in-band communications in a data center network |
| US10289438B2 (en) | 2016-06-16 | 2019-05-14 | Cisco Technology, Inc. | Techniques for coordination of application components deployed on distributed virtual machines |
| US10708183B2 (en) | 2016-07-21 | 2020-07-07 | Cisco Technology, Inc. | System and method of providing segment routing as a service |
| CN106572103B (en) * | 2016-10-28 | 2019-12-13 | 桂林电子科技大学 | A hidden port detection method based on SDN network architecture |
| US10972388B2 (en) | 2016-11-22 | 2021-04-06 | Cisco Technology, Inc. | Federated microburst detection |
| CN106778243B (en) * | 2016-11-28 | 2020-06-09 | 北京奇虎科技有限公司 | Kernel vulnerability detection file protection method and device based on virtual machine |
| US10708152B2 (en) | 2017-03-23 | 2020-07-07 | Cisco Technology, Inc. | Predicting application and network performance |
| US10523512B2 (en) | 2017-03-24 | 2019-12-31 | Cisco Technology, Inc. | Network agent for generating platform specific network policies |
| US10764141B2 (en) | 2017-03-27 | 2020-09-01 | Cisco Technology, Inc. | Network agent for reporting to a network policy system |
| US10594560B2 (en) | 2017-03-27 | 2020-03-17 | Cisco Technology, Inc. | Intent driven network policy platform |
| US10250446B2 (en) | 2017-03-27 | 2019-04-02 | Cisco Technology, Inc. | Distributed policy store |
| US10873794B2 (en) | 2017-03-28 | 2020-12-22 | Cisco Technology, Inc. | Flowlet resolution for application performance monitoring and management |
| US10680887B2 (en) | 2017-07-21 | 2020-06-09 | Cisco Technology, Inc. | Remote device status audit and recovery |
| CN107688481B (en) * | 2017-08-17 | 2023-12-15 | 中国电子科技集团公司第五十四研究所 | Multi-node-supporting KVM virtual machine hiding process detection system |
| US10554501B2 (en) | 2017-10-23 | 2020-02-04 | Cisco Technology, Inc. | Network migration assistant |
| US10523541B2 (en) | 2017-10-25 | 2019-12-31 | Cisco Technology, Inc. | Federated network and application data analytics platform |
| US10594542B2 (en) | 2017-10-27 | 2020-03-17 | Cisco Technology, Inc. | System and method for network root cause analysis |
| CN108363611A (en) * | 2017-11-02 | 2018-08-03 | 北京紫光恒越网络科技有限公司 | Method for managing security, device and the omnidirectional system of virtual machine |
| WO2019127399A1 (en) * | 2017-12-29 | 2019-07-04 | 浙江大学 | Fine-grained sandbox policy execution method for linux container |
| US11233821B2 (en) | 2018-01-04 | 2022-01-25 | Cisco Technology, Inc. | Network intrusion counter-intelligence |
| CN108228319B (en) * | 2018-01-10 | 2021-03-30 | 天津理工大学 | Multi-bridge based semantic reconstruction method |
| US11765046B1 (en) | 2018-01-11 | 2023-09-19 | Cisco Technology, Inc. | Endpoint cluster assignment and query generation |
| US10798015B2 (en) | 2018-01-25 | 2020-10-06 | Cisco Technology, Inc. | Discovery of middleboxes using traffic flow stitching |
| US10999149B2 (en) | 2018-01-25 | 2021-05-04 | Cisco Technology, Inc. | Automatic configuration discovery based on traffic flow data |
| US10917438B2 (en) | 2018-01-25 | 2021-02-09 | Cisco Technology, Inc. | Secure publishing for policy updates |
| US10873593B2 (en) | 2018-01-25 | 2020-12-22 | Cisco Technology, Inc. | Mechanism for identifying differences between network snapshots |
| US10826803B2 (en) | 2018-01-25 | 2020-11-03 | Cisco Technology, Inc. | Mechanism for facilitating efficient policy updates |
| US10574575B2 (en) | 2018-01-25 | 2020-02-25 | Cisco Technology, Inc. | Network flow stitching using middle box flow stitching |
| US11128700B2 (en) | 2018-01-26 | 2021-09-21 | Cisco Technology, Inc. | Load balancing configuration based on traffic flow telemetry |
| CN108446160A (en) * | 2018-01-29 | 2018-08-24 | 中国电子科技网络信息安全有限公司 | A virtual machine hidden process detection method and system |
| CN110472410B (en) * | 2018-05-11 | 2023-02-28 | 阿里巴巴集团控股有限公司 | Method and device for identifying data and data processing method |
| CN108710799A (en) * | 2018-05-21 | 2018-10-26 | 郑州云海信息技术有限公司 | A method of finding that Linux hides port |
| CN109032770A (en) * | 2018-05-30 | 2018-12-18 | 珠海市君天电子科技有限公司 | A kind of progress recognizing method, apparatus and electronic equipment |
| CN109194756A (en) * | 2018-09-12 | 2019-01-11 | 网宿科技股份有限公司 | Application features information extracting method and device |
| CN109298916A (en) * | 2018-11-30 | 2019-02-01 | 郑州云海信息技术有限公司 | Method and apparatus for identifying a process on a virtual machine |
| CN111949362A (en) * | 2019-05-14 | 2020-11-17 | 中国科学院信息工程研究所 | A method for collecting host information based on virtualization technology |
| CN115774574B (en) * | 2021-09-06 | 2024-06-04 | 华为技术有限公司 | Method and device for switching kernel of operating system |
| CN114610577A (en) * | 2022-03-16 | 2022-06-10 | 深信服科技股份有限公司 | A locking method, apparatus, device and medium for a target resource |
| CN120408620B (en) * | 2025-06-27 | 2025-09-02 | 中国人民解放军国防科技大学 | A system-wide process identification method based on simulator and debugger linkage |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101093452A (en) * | 2006-06-21 | 2007-12-26 | 韩国电子通信研究院 | System and method for detecting hidden process using system event information |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101782954B (en) * | 2009-01-20 | 2013-05-01 | 联想(北京)有限公司 | Computer and abnormal progress detection method |
-
2011
- 2011-12-06 CN CN201110401702.7A patent/CN102521537B/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101093452A (en) * | 2006-06-21 | 2007-12-26 | 韩国电子通信研究院 | System and method for detecting hidden process using system event information |
Non-Patent Citations (1)
| Title |
|---|
| 基于本地虚拟化技术的隐藏进程检测;温研等;《计算机应用》;20080731;第28卷(第7期);正文第1770页,右栏第20-23行, * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10171319B2 (en) | 2015-06-05 | 2019-01-01 | Cisco Technology, Inc. | Technologies for annotating process and user information for network flows |
| US10171357B2 (en) | 2016-05-27 | 2019-01-01 | Cisco Technology, Inc. | Techniques for managing software defined networking controller in-band communications in a data center network |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102521537A (en) | 2012-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102521537B (en) | Detection method and device for hidden process based on virtual machine monitor | |
| Srinivasan et al. | Process out-grafting: an efficient" out-of-vm" approach for fine-grained process execution monitoring | |
| CN105393255B (en) | Process assessment for the malware detection in virtual machine | |
| CN111324891B (en) | System and method for container file integrity monitoring | |
| RU2691187C1 (en) | System and methods for auditing a virtual machine | |
| Stüttgen et al. | Anti-forensic resilient memory acquisition | |
| CN102129531B (en) | Xen-based active defense method | |
| CN101866408B (en) | Transparent trust chain constructing system based on virtual machine architecture | |
| CN103077351B (en) | The reverse-examination examining system of dummy machine system | |
| US20090217377A1 (en) | Method and system for monitoring system memory integrity | |
| US9563456B2 (en) | Feature driven backend switching | |
| US20160232354A1 (en) | System memory integrity monitoring | |
| CN103310152B (en) | Kernel state Rootkit detection method based on system virtualization technology | |
| CN103065084B (en) | In the windows hidden process detection method that external machine of virtual machine is carried out | |
| US11151051B2 (en) | Process isolation for out of process page fault handling | |
| CN105683985A (en) | Virtual machine introspection | |
| Hsiao et al. | Hardware-assisted MMU redirection for in-guest monitoring and API profiling | |
| CN107688481B (en) | Multi-node-supporting KVM virtual machine hiding process detection system | |
| CN107169347B (en) | A method and device for enhancing introspection security of ARM platform virtual machine | |
| US20190129741A1 (en) | Host-based virtual machine introspection with dynamic guest assistance | |
| CN107391225A (en) | A kind of monitoring method and system based on more EPT lists | |
| Hsiao et al. | A cooperative botnet profiling and detection in virtualized environment | |
| Wu et al. | EagleEye: Towards mandatory security monitoring in virtualized datacenter environment | |
| Wang et al. | Vmdetector: A vmm-based platform to detect hidden process by multi-view comparison | |
| Zhan et al. | A low-overhead kernel object monitoring approach for virtual machine introspection |
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 | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150520 Termination date: 20171206 |