CN106156621A - 一种检测虚拟机逃逸的方法及装置 - Google Patents

一种检测虚拟机逃逸的方法及装置 Download PDF

Info

Publication number
CN106156621A
CN106156621A CN201610513980.4A CN201610513980A CN106156621A CN 106156621 A CN106156621 A CN 106156621A CN 201610513980 A CN201610513980 A CN 201610513980A CN 106156621 A CN106156621 A CN 106156621A
Authority
CN
China
Prior art keywords
virtual machine
data information
host
abnormal data
data message
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
CN201610513980.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.)
Beijing Qihoo Technology Co Ltd
Beijing Qianxin Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Beijing Qianxin 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 Beijing Qihoo Technology Co Ltd, Beijing Qianxin Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610513980.4A priority Critical patent/CN106156621A/zh
Publication of CN106156621A publication Critical patent/CN106156621A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种检测虚拟机逃逸的方法及装置,涉及互联网技术领域,主要目的在于能够在不影响虚拟机与宿主机之间正常的共享与交互的基础上,有效的检测出虚拟机逃逸行为。本发明的方法包括:获取虚拟机流向宿主机的异常数据信息;通过预设的行为特征信息库对所述异常数据信息进行检测;当检测到所述异常数据信息为恶意行为的数据信息时,将所述恶意行为的数据信息进行拦截;当检测到所述异常数据信息为非恶意行为的数据信息时,将所述非恶意行为的数据信息传递至宿主机。本发明主要用于虚拟机运行环境下的安全检测。

Description

一种检测虚拟机逃逸的方法及装置
技术领域
本发明涉及互联网技术领域,特别是涉及一种检测虚拟机逃逸的方法及装置。
背景技术
虚拟机是一种特殊的软件,它可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件。在计算机科学中,虚拟机是可以像真实机器一样运行程序的计算机的软件实现。
虚拟机能够分享宿主机的各种资源并提供隔离,在正常的虚拟机运行环境中,一个程序运行在虚拟机里,无法影响其他虚拟机和宿主机。但是,由于技术的限制和虚拟化软件的一些程序漏洞,在虚拟机被恶意攻陷后,虚拟机里运行的程序能够通过这些漏洞绕过底层运行环境,从而利用宿主机执行具有宿主机特权的操作,这种技术叫做虚拟机逃逸技术。
当宿主机内某个虚拟机发生逃逸后,该逃逸的虚拟机能够拥有宿主机的特权进行各种操作,将使宿主机和整个虚拟环境下所有虚拟机的安全性受到威胁。因此,如何防止虚拟机逃逸行为的发生,并且不会影响虚拟机与宿主机之间正常的共享与交互,成为目前亟待解决的技术问题。
发明内容
有鉴于此,本发明提出了一种检测虚拟机逃逸的方法及装置,主要目的在于在不影响虚拟机与宿主机之间正常的共享与交互的基础上,能够有效的检测出虚拟机逃逸行为。
依据本发明的第一个方面,本发明提供了一种检测虚拟机逃逸的方法,包括:
获取虚拟机流向宿主机的异常数据信息;
通过预设的行为特征信息库对所述异常数据信息进行检测;
当检测所述异常数据信息为恶意行为的数据信息时,将所述恶意行为的数据信息进行拦截;
当检测所述异常数据信息为非恶意行为的数据信息时,将所述非恶意行为的数据信息传递至宿主机。
依据本发明的第二个方面,本发明提供了一种检测虚拟机逃逸的装置,包括:
获取单元,用于获取虚拟机流向宿主机的异常数据信息;
检测单元,用于通过预设的行为特征信息库对所述异常数据信息进行检测;
拦截单元,用于当检测所述异常数据信息为恶意行为的数据信息时,将所述恶意行为的数据信息进行拦截;
传递单元,用于当检测所述异常数据信息为非恶意行为的数据信息时,将所述非恶意行为的数据信息传递至宿主机。
借由上述技术方案,本发明实施例提供的一种检测虚拟机逃逸的方法及装置,通过将虚拟机流向宿主机的异常数据信息与预设的行为特征信息库进行比对,来检测虚拟机流向宿主机的异常数据信息是否对应恶意行为;由于虚拟机正常情况下只在自己的虚拟环境下进行相关操作,当有数据信息从虚拟机流入宿主机时,会存在虚拟机逃逸行为发生的可能。因此,当检测到所述异常数据信息对应恶意行为时,需要将对应恶意行为的数据信息进行拦截,防止其进入宿主机后利用宿主机的特权进行操作;当检测到所述异常数据信息对应非恶意行为时,将对应非恶意行为的数据信息传递至宿主机,以便实现虚拟机和宿主机之间正常的信息共享和交互。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种检测虚拟机逃逸的方法的流程图;
图2示出了本发明实施例提供的一种检测虚拟机逃逸的装置的组成框图;
图3示出了本发明实施例提供的一种检测虚拟机逃逸的装置的组成框图。
具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
虚拟化指的是将一个物理计算机划分为一个或多个完全孤立的“虚拟机”。虚拟机提供的环境,看起来就像是独立并存的数个计算机,而实际上是在一个物理主机上模拟运行的。在理想环境下,一个物理机内的虚拟机之间并不允许互相交流,但是由于技术的限制和虚拟化软件的一些程序漏洞,在虚拟机里运行的数据信息能够通过这些漏洞绕过底层,从而流向宿主机进行运行,当这些逃逸的数据信息为对应恶意行为的数据信息时,会对宿主机和其他虚拟机的运行造成危害,但是当逃逸的数据信息为虚拟机与宿主机之间正常的信息共享和交互时,就无需对这些数据信息进行处理。
基于上述原因,本发明实施例提供了一种检测虚拟机逃逸的方法,能够在不影响虚拟机与宿主机之间正常的共享与交互的基础上,有效的检测出虚拟机逃逸行为。如图1所示,该方法包括:
101、获取虚拟机流向宿主机的异常数据信息。
在宿主机内构建虚拟机时,需要利用宿主机的各种资源为每个虚拟机分配供其单独使用的资源,如内存资源、中央处理器(Central Processing Unit,简称CPU)资源,硬盘资源等。宿主机内构建的每个虚拟机都可以在自身的运行环境下进行数据操作。其中,宿主机拥有最高的权限,各个虚拟机之间的运行互不干扰。当某个虚拟机内的数据信息逃出该虚拟机的运行环境流入宿主机后,这样的漏洞会被利用,从而利用宿主机的特权执行恶意操作,给宿主机和其他虚拟机造成危害。因此,当出现虚拟机内的数据信息流入宿主机时,这些数据信息通常被认为具有潜在的危险,很可能是包含某些病毒、木马等的恶意数据信息。本发明实施例对从虚拟机内流向宿主机内的数据信息统称为异常数据信息,为了判断虚拟机运行环境下是否出现真正的虚拟机逃逸行为,本发明实施例需要执行步骤101获取虚拟机流向宿主机的异常数据信息。
102、通过预设的行为特征信息库对所述异常数据信息进行检测。
当在步骤101中获取到虚拟机流向宿主机的异常数据信息之后,就需要确定所述异常数据信息是否安全,也就是确定其是否为对应恶意行为的数据信息。当某些数据信息对应的操作为执行恶意行为时,其操作结果或者执行的恶意行为都会具有一些特征,本发明实施例称为行为特征信息,恶意行为产生的行为特征信息与正常行为产生的行为特征信息通常不相同。因此,通过检测虚拟机流向宿主机的异常数据信息对应的操作所产生的行为特征信息是否安全,就可以确定从虚拟机流向宿主机的异常数据信息是否安全。为了检测所述异常数据信息对应的操作所产生的行为特征信息是否安全,本发明实施例提供了预设的行为特征信息库,该行为特征信息库中记录了已知的各种恶意行为产生的行为特征信息,通过将所述异常数据信息对应的操作产生的行为特征信息在预设的行为特征信息库中进行比对,就可以确定所述异常数据信息是否为对应恶意行为的数据信息。
103、当检测所述异常数据信息为恶意行为的数据信息时,将所述恶意行为的数据信息进行拦截。
当通过步骤102检测到所述异常数据信息为对应恶意行为的数据信息时,本发明实施例需要将对应恶意行为的异常数据信息进行拦截,避免其流入宿主机后利用宿主机的特权执行恶意行为,从而危害宿主机及其他虚拟机的安全。
104、当检测所述异常数据信息为非恶意行为的数据信息时,将所述非恶意行为的数据信息传递至宿主机。
当通过步骤102检测到所述异常数据信息为对应非恶意行为的数据信息时,可以认为对应非恶意行为的异常数据信息是虚拟机与宿主机之间正常的信息共享和交互,从而无需对该异常数据信息进行拦截,可以将获取的该异常数据信息传递或放行至宿主机,实现该虚拟机与宿主机之间正常的信息共享和交互。
本发明实施例提供的一种检测虚拟机逃逸的方法,通过将虚拟机流向宿主机的异常数据信息与预设的行为特征信息库进行比对,来检测虚拟机流向宿主机的异常数据信息是否对应恶意行为;由于虚拟机正常情况下只在自己的虚拟环境下进行相关操作,当有数据信息从虚拟机流入宿主机时,会存在虚拟机逃逸行为发生的可能。因此,当检测到所述异常数据信息对应恶意行为时,需要将对应恶意行为的数据信息进行拦截,防止其进入宿主机后利用宿主机的特权进行操作;当检测到所述异常数据信息对应非恶意行为时,将对应非恶意行为的数据信息传递至宿主机,以便实现虚拟机和宿主机之间正常的信息共享和交互。
为了更好的对上述图1及图2所示的方法进行理解,作为对上述实施方式的细化和扩展,本发明实施例将以目前主流的基于Linux操作系统内核的虚拟机(Kernel BasedVirtual Machine,简称KVM)为例,结合图1的步骤进行详细说明。
由于在正常的虚拟环境下,虚拟机的运行通常被限制在自己的虚拟环境下,其内部运行的程序或者数据信息不会流入其他虚拟机或宿主机的运行环境。当某个虚拟机内的数据信息绕过系统底层进入宿主机后,很可能会被病毒或木马利用而出现虚拟机逃逸行为,给宿主机和其他虚拟机造成危害。因此,要确定虚拟环境下是否发生真正的虚拟机逃逸行为,本发明实施例需要获取虚拟机流向宿主机的数据信息,这些数据信息被称为异常数据信息。以KVM虚拟机为例,当虚拟机流向宿主机的异常数据信息为一些执行特权指令或者外部事件的数据信息,如I/O访问、对宿主机控制寄存器的操作、MSR分区(MicrosoftReserved Partition,缩写MSR)的读写数据包到达等,都会导致物理CPU发生虚拟机跳出(VMExit),将虚拟机操作系统保存到虚拟机控制结构(Virtual Machine ControlStructure,简称VMCS)中,通过读取VMCS中的VM_EXIT_REASON字段得到引起VM Exit的原因。其中,VMCS是Intel-x中一个很重要的数据结构,它占用一个page页面大小,记录有各种由虚拟机流向宿主机的异常数据信息,如CPU异常、I/O异常,内存memory异常等。基于上述原因,本发明实施例在获取虚拟机流向宿主机的异常数据信息时,可以通过访问虚拟机控制结构中记录有异常数据信息的页表来获取虚拟机流向宿主机的异常数据信息。
对于其他类型的虚拟机而言,如果虚拟机发生逃逸行为,那么该虚拟机的数据信息必须流入到宿主机时才能起作用,因此在获取虚拟机流向宿主机的异常数据信息时,可以在异常数据信息到达宿主机之前,对其进行截获。而钩子(Hook)是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。因此,作为另一种可选的实施方式,本发明实施例还可以通过钩子程序Hook在异常数据信息到达宿主机之前,截获虚拟机流向宿主机的异常数据信息。
由于在虚拟机流向宿主机的异常数据信息中,并不完全都是对应恶意行为或者具有漏洞、病毒、木马等的数据信息,因此当通过上述方式获取到虚拟机流向宿主机的异常数据信息之后,还需要检测这些异常数据信息是否为对应恶意行为的数据信息。在对虚拟机流向宿主机的异常数据信息进行检测时,主要是检测该异常数据信息所对应的操作是否是恶意操作。在通常情况下,恶意操作产生的结果与正常操作产生的结果并不相同,因此在确定恶意操作时可以根据其操作结果所具有的特性进行判断。本发明实施例将数据信息所对应操作的操作结果所具有的特性称为行为特征信息,因此,在检测异常数据信息是否为对应恶意行为的数据信息时,可以通过预设的行为特征信息库对异常数据信息进行检测,所述行为特征信息库中包括目前为止已知的各种恶意行为的操作结果所产生的行为特征信息。而具体的检测过程可以通过下述步骤执行:
(1)在预设地址的空间内模拟所述异常数据信息对应的操作,所述预设地址的空间与宿主机内核空间相隔离。
要通过预设的行为特征信息库对异常数据信息进行检测,就需要得到该异常数据信息对应操作的操作结果的行为特征信息,因此必须执行该异常数据信息所对应的操作。由于无法确定该异常数据信息是否对应恶意行为,因此,在执行该异常数据信息所对应的操作时,需要将其在与宿主机相隔离的环境下进行操作。基于上述原因,本发明实施例提供了一种实施方式,可以在预设地址的空间内模拟所述异常数据信息对应的操作,所述预设地址的空间与宿主机内核空间相隔离。以KVM虚拟机为例,当获取到虚拟机流向宿主机的异常数据信息之后,可以将该异常数据信息发送给虚拟操作系统模拟器QEMU进行模拟处理,QEMU代码中包含整套的虚拟机实现,包括处理器虚拟化、内存虚拟化以及KVM需要使用到的虚拟设备模拟(网卡、显卡、存储控制器和硬盘等)。例如,当虚拟机流向宿主机的异常数据信息为对应I/O操作时,该异常数据信息会被交给QEMU来负责解析和模拟操作。由于QEMU与宿主机内核处于隔离状态,因此在模拟异常数据信息对应的操作时,不会对宿主机的安全性造成影响。
(2)将操作结果对应的行为特征信息在预设的行为特征信息库中进行比对,检测所述异常数据信息是否为恶意行为的数据信息。
当在预设地址的空间内模拟出所述异常数据信息对应的操作之后,可以获取其操作结果所具有的行为特征信息,并将该行为特征信息在预设的行为特征信息库中进行比对,确定该行为特征信息是否对应恶意行为。例如,以针对I/O操作为例,其正常执行结果为读写一次寄存器,而针对该I/O操作具有某个特殊漏洞时,其执行结果为多次读写寄存器,因此当对所述异常数据信息进行模拟后发现其行为特征信息符合多次读写寄存器的行为特征信息时,就可以确认该异常数据信息为具有该特殊漏洞的数据信息。
具体的,在预设地址的空间内模拟所述异常数据信息对应的操作时,需要调用处理函数将该异常数据信息调入预设地址的空间内进行处理。并且,在当虚拟机内的异常数据信息流入到宿主机时,该异常数据信息会被记录,并且记录的内容还包括数据信息类型、函数指针及其地址,用于将异常数据信息调入特定地址的函数指针中执行该异常数据信息类型对应的操作。由于本发明实施例需要在预设地址的空间内模拟异常数据信息对应的操作,因此需要获取记录异常数据信息对应的函数指针的地址,通过改变其指针地址来将异常数据信息调入到预设地址的空间内进行执行。本发明实施例将虚拟机的数据信息流入到宿主机时记录的异常数据信息对应的函数指针的地址称为初始指针地址,将模拟异常数据信息对应操作的空间的地址称为检测指针地址。具体执行时,需要读取所述异常数据信息中记录的数据信息类型及初始指针地址,并将所述初始指针地址更改为检测指针地址,根据所述检测指针地址跳转到预设地址的空间内,执行所述数据信息类型对应的操作。例如,以KVM虚拟机为例,当虚拟机流入宿主机的异常数据信息为写某个端口时,记录的异常数据信息中会产生一条IO instruction,这时异常数据信息从虚拟机操作系统中退出并进入内核空间,由内核空间调用kvm_vmx_exit_handlers[exit_reason](vcpu),kvm_vmx_exit_handlers是一个函数指针,由于ioport访问产生的退出,所以选择handle_io函数执行。本发明实施例将kvm_vmx_exit_handlers的指针地址进行更改,也就是将其初始指针地址变更为检测指针地址,让IO操作在原先的内核空间内执行变为在预设地址的空间内进行模拟执行。由于该预设地址的空间与内核空间相隔离,因此无论该IO操作是否对应恶意行为,都不会对宿主机的安全性造成影响。
当通过上述方式在预设地址的空间内模拟出异常数据信息对应的操作后,就可以获取其操作结果所具有的行为特征信息,并将该行为特征信息在预设的行为特征信息库中进行比对,确定该行为特征信息是否与行为特征信息库中记录的恶意行为的行为特征信息相匹配。若两者相匹配,则可以确定该异常数据信息为对应恶意行为的数据信息;若两者不匹配,则可以确定该异常数据信息为对应非恶意行为的数据信息。
当确定从虚拟机流入宿主机的异常数据信息为恶意行为的数据信息之后,就需要对该对应恶意行为的异常数据信息进行拦截,防止其进入宿主机后利用宿主机的特权执行恶意操作。由于流入宿主机的异常数据信息为恶意行为的数据信息,可以将其虚拟机认为是发生逃逸行为的虚拟机,因此,在将对应恶意行为的异常数据信息进行拦截之后,还可以发出系统警报,报告发生逃逸行为的虚拟机的参数信息。进一步的,可以将拦截的恶意行为的数据信息返回给发生逃逸行为的虚拟机;或者,将拦截的恶意行为的数据信息在预设地址的空间内进行销毁处理,防止恶意行为的数据信息发生扩散。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种检测虚拟机逃逸的装置,如图2所示,该装置包括:获取单元21、检测单元22、拦截单元23及传递单元24,其中,
获取单元21,用于获取虚拟机流向宿主机的异常数据信息;
检测单元22,用于通过预设的行为特征信息库对所述异常数据信息进行检测;
拦截单元23,用于当检测所述异常数据信息为恶意行为的数据信息时,将所述恶意行为的数据信息进行拦截;
传递单元24,用于当检测所述异常数据信息为非恶意行为的数据信息时,将所述非恶意行为的数据信息传递至宿主机。
进一步的,获取单元21用于通过钩子程序Hook截获虚拟机流向宿主机的异常数据信息;获取单元21还用于通过访问虚拟机控制结构中记录有异常数据信息的页表来获取虚拟机流向宿主机的异常数据信息。
进一步的,如图3所示,检测单元22包括:
模拟模块221,用于在预设地址的空间内模拟所述异常数据信息对应的操作,所述预设地址的空间与宿主机内核空间相隔离;
比对模块222,用于将操作结果对应的行为特征信息在预设的行为特征信息库中进行比对,检测所述异常数据信息是否为恶意行为的数据信息。
进一步的,模拟模块221用于读取所述异常数据信息中记录的数据信息类型及初始指针地址,还用于将所述初始指针地址更改为检测指针地址,还用于根据所述检测指针地址跳转到预设地址的空间内,执行所述数据信息类型对应的操作。
进一步的,如图3所示,装置还包括:
销毁单元25,用于将拦截的恶意行为的数据信息在预设地址的空间内进行销毁处理;
传递单元24,用于将拦截的恶意行为的数据信息返回给所述虚拟机。
本发明实施例提供的一种检测虚拟机逃逸的装置,通过将虚拟机流向宿主机的异常数据信息与预设的行为特征信息库进行比对,来检测虚拟机流向宿主机的异常数据信息是否对应恶意行为;由于虚拟机正常情况下只在自己的虚拟环境下进行相关操作,当有数据信息从虚拟机流入宿主机时,会存在虚拟机逃逸行为发生的可能。因此,当检测到所述异常数据信息对应恶意行为时,需要将对应恶意行为的数据信息进行拦截,防止其进入宿主机后利用宿主机的特权进行操作;当检测到所述异常数据信息对应非恶意行为时,将对应非恶意行为的数据信息传递至宿主机,以便实现虚拟机和宿主机之间正常的信息共享和交互。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种检测虚拟机逃逸的方法,其特征在于,所述方法包括:
获取虚拟机流向宿主机的异常数据信息;
通过预设的行为特征信息库对所述异常数据信息进行检测;
当检测所述异常数据信息为恶意行为的数据信息时,将所述恶意行为的数据信息进行拦截;
当检测所述异常数据信息为非恶意行为的数据信息时,将所述非恶意行为的数据信息传递至宿主机。
2.根据权利要求1所述的方法,其特征在于,所述获取虚拟机流向宿主机的异常数据信息包括:
通过钩子程序Hook截获虚拟机流向宿主机的异常数据信息;
或者,通过访问虚拟机控制结构中记录有异常数据信息的页表来获取虚拟机流向宿主机的异常数据信息。
3.根据权利要求1所述的方法,其特征在于,所述通过预设的行为特征信息库对所述异常数据信息进行检测包括:
在预设地址的空间内模拟所述异常数据信息对应的操作,所述预设地址的空间与宿主机内核空间相隔离;
将操作结果对应的行为特征信息在预设的行为特征信息库中进行比对,检测所述异常数据信息是否为恶意行为的数据信息。
4.根据权利要求3所述的方法,其特征在于,所述在预设地址的空间内模拟所述异常数据信息对应的操作包括:
读取所述异常数据信息中记录的数据信息类型及初始指针地址;
将所述初始指针地址更改为检测指针地址;
根据所述检测指针地址跳转到预设地址的空间内,执行所述数据信息类型对应的操作。
5.根据权利要求3或4所述的方法,其特征在于,将所述恶意行为的数据信息进行拦截之后,所述方法还包括:
将拦截的恶意行为的数据信息返回给所述虚拟机;或者,
将拦截的恶意行为的数据信息在预设地址的空间内进行销毁处理。
6.一种检测虚拟机逃逸的装置,其特征在于,所述装置包括:
获取单元,用于获取虚拟机流向宿主机的异常数据信息;
检测单元,用于通过预设的行为特征信息库对所述异常数据信息进行检测;
拦截单元,用于当检测所述异常数据信息为恶意行为的数据信息时,将所述恶意行为的数据信息进行拦截;
传递单元,用于当检测所述异常数据信息为非恶意行为的数据信息时,将所述非恶意行为的数据信息传递至宿主机。
7.根据权利要求6所述的装置,其特征在于,
所述获取单元用于通过钩子程序Hook截获虚拟机流向宿主机的异常数据信息;
所述获取单元还用于通过访问虚拟机控制结构中记录有异常数据信息的页表来获取虚拟机流向宿主机的异常数据信息。
8.根据权利要求6所述的装置,其特征在于,所述检测单元包括:
模拟模块,用于在预设地址的空间内模拟所述异常数据信息对应的操作,所述预设地址的空间与宿主机内核空间相隔离;
比对模块,用于将操作结果对应的行为特征信息在预设的行为特征信息库中进行比对,检测所述异常数据信息是否为恶意行为的数据信息。
9.根据权利要求8所述的装置,其特征在于,所述模拟模块用于读取所述异常数据信息中记录的数据信息类型及初始指针地址,还用于将所述初始指针地址更改为检测指针地址,还用于根据所述检测指针地址跳转到预设地址的空间内,执行所述数据信息类型对应的操作。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
销毁单元,用于将拦截的恶意行为的数据信息在预设地址的空间内进行销毁处理;
所述传递单元,用于将拦截的恶意行为的数据信息返回给所述虚拟机。
CN201610513980.4A 2016-06-30 2016-06-30 一种检测虚拟机逃逸的方法及装置 Pending CN106156621A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610513980.4A CN106156621A (zh) 2016-06-30 2016-06-30 一种检测虚拟机逃逸的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610513980.4A CN106156621A (zh) 2016-06-30 2016-06-30 一种检测虚拟机逃逸的方法及装置

Publications (1)

Publication Number Publication Date
CN106156621A true CN106156621A (zh) 2016-11-23

Family

ID=57349740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610513980.4A Pending CN106156621A (zh) 2016-06-30 2016-06-30 一种检测虚拟机逃逸的方法及装置

Country Status (1)

Country Link
CN (1) CN106156621A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778258A (zh) * 2016-12-08 2017-05-31 北京国电通网络技术有限公司 一种宿主机安全防护方法和装置
CN109324873A (zh) * 2018-09-21 2019-02-12 郑州云海信息技术有限公司 虚拟化安全管理方法、运行内核驱动的设备及存储介质
CN109800570A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 一种虚拟化平台的安全防护方法及装置
CN109800577A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 一种识别逃逸安全监控行为的方法及装置
CN115086081A (zh) * 2022-08-08 2022-09-20 北京永信至诚科技股份有限公司 一种蜜罐防逃逸方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148246A1 (en) * 2006-12-18 2008-06-19 Bea Systems, Inc. System and method for redundant array copy removal in a pointer-free language
CN102254120A (zh) * 2011-08-09 2011-11-23 成都市华为赛门铁克科技有限公司 恶意代码的检测方法、系统及相关装置
CN104346570A (zh) * 2014-12-01 2015-02-11 西安邮电大学 一种基于动态代码序列跟踪分析的木马判定系统
CN105426758A (zh) * 2015-12-18 2016-03-23 北京奇虎科技有限公司 一种虚拟机逃逸的防护方法及装置
CN105631321A (zh) * 2015-12-24 2016-06-01 北京奇虎科技有限公司 一种虚拟机进程信息的检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148246A1 (en) * 2006-12-18 2008-06-19 Bea Systems, Inc. System and method for redundant array copy removal in a pointer-free language
CN102254120A (zh) * 2011-08-09 2011-11-23 成都市华为赛门铁克科技有限公司 恶意代码的检测方法、系统及相关装置
CN104346570A (zh) * 2014-12-01 2015-02-11 西安邮电大学 一种基于动态代码序列跟踪分析的木马判定系统
CN105426758A (zh) * 2015-12-18 2016-03-23 北京奇虎科技有限公司 一种虚拟机逃逸的防护方法及装置
CN105631321A (zh) * 2015-12-24 2016-06-01 北京奇虎科技有限公司 一种虚拟机进程信息的检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
于淼 等: "《NewBluePill:深入理解硬件虚拟机》", 30 June 2011, 北京:清华大学出版社 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778258A (zh) * 2016-12-08 2017-05-31 北京国电通网络技术有限公司 一种宿主机安全防护方法和装置
CN109324873A (zh) * 2018-09-21 2019-02-12 郑州云海信息技术有限公司 虚拟化安全管理方法、运行内核驱动的设备及存储介质
CN109800570A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 一种虚拟化平台的安全防护方法及装置
CN109800577A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 一种识别逃逸安全监控行为的方法及装置
CN109800577B (zh) * 2018-12-29 2020-10-16 360企业安全技术(珠海)有限公司 一种识别逃逸安全监控行为的方法及装置
CN115086081A (zh) * 2022-08-08 2022-09-20 北京永信至诚科技股份有限公司 一种蜜罐防逃逸方法及系统

Similar Documents

Publication Publication Date Title
CN105593870B (zh) 用于恶意软件检测的复杂评分
JP6378758B2 (ja) 仮想マシンにおけるマルウェア検出のためのプロセス評価
US10460104B2 (en) Continuous malicious software identification through responsive machine learning
Payne et al. Lares: An architecture for secure active monitoring using virtualization
US8732824B2 (en) Method and system for monitoring integrity of running computer system
JP7115526B2 (ja) 分析システム、方法、及び、プログラム
CN106156621A (zh) 一种检测虚拟机逃逸的方法及装置
CN106055385B (zh) 监控虚拟机进程的系统和方法、过滤page fault异常的方法
Wu et al. System call redirection: A practical approach to meeting real-world virtual machine introspection needs
CN102034050A (zh) 基于虚拟机和敏感Native API调用感知的恶意软件动态检测方法
CN103500308A (zh) 用于对抗由恶意软件对仿真的检测的系统和方法
JP2008547070A (ja) アプリケーションを修理するための方法及びシステム
US10114948B2 (en) Hypervisor-based buffer overflow detection and prevention
CN104715202A (zh) 一种虚拟机中的隐藏进程检测方法和装置
CN106355092A (zh) 用于优化反病毒测定的系统和方法
Lee et al. Kernel-level rootkits features to train learning models against namespace attacks on containers
CN103116539A (zh) 一种细粒度的虚拟化系统的性能损耗测试方法及装置
Zeng et al. Tailored application-specific system call tables
CN110414220B (zh) 沙箱内程序动态执行过程中的操作文件提取方法及装置
Wei et al. Modeling the runtime integrity of cloud servers: a scoped invariant perspective
CN110069920A (zh) 基于虚拟化保证sgx安全性的方法和系统
US11556645B2 (en) Monitoring control-flow integrity
Yan et al. MOSKG: countering kernel rootkits with a secure paging mechanism
Gonçalves et al. Evaluating the applicability of robustness testing in virtualized environments
Shropshire Hyperthreats: Hypercall-based dos attacks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20161123

RJ01 Rejection of invention patent application after publication