CN116795480A - 虚拟机隔离方法、装置和计算机设备 - Google Patents

虚拟机隔离方法、装置和计算机设备 Download PDF

Info

Publication number
CN116795480A
CN116795480A CN202210269572.4A CN202210269572A CN116795480A CN 116795480 A CN116795480 A CN 116795480A CN 202210269572 A CN202210269572 A CN 202210269572A CN 116795480 A CN116795480 A CN 116795480A
Authority
CN
China
Prior art keywords
virtual machine
isolation
behavior
symbol table
target virtual
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
CN202210269572.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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210269572.4A priority Critical patent/CN116795480A/zh
Publication of CN116795480A publication Critical patent/CN116795480A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种虚拟机隔离方法、装置、计算机设备、存储介质和计算机程序产品。所述方法通过在接收虚拟机隔离请求后;根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。本申请通过预先在目标虚拟机构建虚拟机安全空间,从而在虚拟机安全空间内实现所述隔离对象对应的对象隔离,可以有效获取虚拟机运行过程中的行为隔离,从而有效实现虚拟机安全保护。

Description

虚拟机隔离方法、装置和计算机设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种虚拟机隔离方法、装置和计算机设备。
背景技术
随着计算机技术与网络技术的发展,出现了云技术(Cloud technology),它是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。而云技术一般会与虚拟化技术相结合,如通过虚拟机(VirtualMachine)来搭建云服务的平台,虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。而云工作负载安全已成为云平台不可或缺的基础能力,也是各云提供商和安全厂商的必争之地。
传统技术中,对于云工作负载安全的处理,主要为基于XenServer提供的VMI技术进行内存和进程分析,以此保护虚拟机内部业务的安全,然而这种技术只能提供内存和进程检测,安全保护的能力有限。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效实现云平台虚拟机安全保护的虚拟机隔离方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种虚拟机隔离方法。所述方法包括:
接收虚拟机隔离请求,所述虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;
当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。
第二方面,本申请还提供了一种虚拟机隔离装置。所述装置包括:
请求获取模块,用于接收虚拟机隔离请求,所述虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
对象识别模块,用于根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;
对象隔离模块,用于当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收虚拟机隔离请求,所述虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;
当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收虚拟机隔离请求,所述虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;
当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收虚拟机隔离请求,所述虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;
当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。
上述虚拟机隔离方法、装置、计算机设备、存储介质和计算机程序产品,通过在接收虚拟机隔离请求后;根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。本申请通过预先在目标虚拟机构建虚拟机安全空间,从而在虚拟机安全空间内实现所述隔离对象对应的对象隔离,可以有效获取虚拟机运行过程中的行为隔离,从而有效实现虚拟机安全保护。
附图说明
图1为一个实施例中虚拟机隔离方法的应用环境图;
图2为一个实施例中虚拟机隔离方法的流程示意图;
图3为一个实施例中在服务器端实现的虚拟机隔离方法的流程示意图;
图4为一个实施例中在虚拟机端实现的虚拟机隔离方法的流程示意图;
图5为一个实施例中用于实现行为监测的虚拟机隔离方法的流程示意图;
图6为一个实施例中构造虚拟机安全空间步骤的流程示意图;
图7为一个实施例中获取符号表库步骤的流程示意图;
图8为一个实施例中安全敏感模块的隔离效果示意图;
图9为另一个实施例中虚拟机隔离方法的流程示意图;
图10为一个实施例中虚拟机内部行为监测过程的隔离效果示意图;
图11为一个实施例中用于实现虚拟机隔离的虚拟机系统结构示意图;
图12为一个实施例中用于实现虚拟机隔离的总体工作流程示意图;
图13为一个实施例中云控制台到安全分析软件的流程示意图;
图14为一个实施例中虚拟机安全空间构建以及行为监测设置的流程示意图;
图15为一个实施例中虚拟机内部行为截获过程的流程示意图;
图16为一个实施例中虚拟机隔离装置的结构框图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请具体涉及云技术,云技术是指基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本申请主要涉及基于云安全(Cloud Security)技术的虚拟机安全隔离监测方法。云安全是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。云安全主要研究方向包括:1.云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2.安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3.云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
本方案涉及的技术术语:
安全空间SW:Secure World,在虚拟机的内核空间隔离出来的可信执行环境,用来执行安全敏感的应用,比如信息采集代理程序等。
虚拟机运行环境空间NW:Normal World,虚拟机的正常运行环境,与安全空间相对应。
切换门SG:Switch Gate,用户在安全空间和普通空间之间切换的调用门模块。
可信应用模块TM:Trusted Module,在安全空间中运行的应用程序,不可被攻击。
EPT(Extended Page Table):Intel推出了内存虚拟化技术,即在原有的页表基础上新增了一级页表实现客户机物理地址到物理机物理地址的映射,即GPG GPG的地址转换。
客户机虚拟地址GVG:Guest Virtual Gddress,虚拟机内部自己地址空间的虚拟地址。
客户机物理地址GPG:Guest Physical Gddress,虚拟机内部自己地址空间的物理地址。
物理机物理地址GPG:Gost Physical Gddress,物理机地址空间的物理地址。
KVM Gypervisor(Kernel Virtual Machine Gypervisor):KVM虚拟机监测器。
SGX(Software Guard Extensions)CPU芯片提供的硬件层次的硬件隔离环境,能够保护选定的代码和数据不被泄露和修改。
本申请实施例提供的虚拟机隔离方法,可以应用于如图1所示的应用环境中。其中,虚拟机102通过网络与服务器104进行通信,具体与服务器104上的虚拟机监测器连接,终端106也可以通过网络与服务器104进行通信,虚拟机102上预先构建有对应运行环境空间的虚拟机安全空间,虚拟机102与服务器104构建成一个虚拟机系统。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。当终端106方的用户需要对虚拟机102内的隔离对象进行隔离处理时,可以根据需要隔离的对象的标识以及虚拟机102的标识,发送虚拟机隔离请求至服务器104,服务器104获取虚拟机隔离请求;根据目标虚拟机标识确定目标虚拟机为虚拟机102,同时根据隔离对象标识确定目标虚拟机上的隔离对象;当侦测到虚拟机102上的隔离对象运行时,将隔离对象隔离至虚拟机102内的虚拟机安全空间。其中,虚拟机102具体包括KVM(Kernel Virtual Machine,内核虚拟机)虚拟机,此时虚拟机监测器为KVM Gypervisor。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端106可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
在一个实施例中,如图2所示,提供了一种虚拟机隔离方法,以该方法应用于图1中的虚拟机102与服务器104所构建的虚拟机系统为例进行说明,包括以下步骤:
步骤201,接收虚拟机隔离请求,虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识。
步骤203,根据目标虚拟机标识确定目标虚拟机,根据隔离对象标识确定目标虚拟机上的隔离对象。
其中,虚拟机隔离请求由终端106方的工作人员提交,用于请求服务器104对虚拟机的指定对象进行隔离。虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识。其中,目标虚拟机标志与目标虚拟机对应,服务器可以通过目标虚拟机标志需要执行隔离操作的虚拟机,而隔离对象标识与隔离对象对应,用于确定虚拟机中需要隔离的对象。在其中一个实施例中,隔离对象具体为虚拟机运行过程中的运行行为。在另一个实施例中,隔离对象具体为虚拟机中的内核模块。
具体地,当终端106的用户需要对虚拟机102中的指定对象进行隔离,以实现保护隔离对象的安全等目的时,可以根据需要隔离的对象以及对象所在的虚拟机(即虚拟机102)生成相应的虚拟机隔离请求,并将该虚拟机隔离请求发送至服务器104,虚拟机隔离请求具体包括目标虚拟机标识以及隔离对象标识。服务器则可以接收该虚拟机隔离请求,通过解析虚拟机隔离请求来获取目标虚拟机标识以及隔离对象标识,而后即可基于目标虚拟机标识以及隔离对象标识,从而在目标虚拟机执行相应的隔离控制处理。
步骤205,当侦测到隔离对象运行时,将隔离对象隔离至目标虚拟机的虚拟机安全空间。
其中,虚拟机安全空间即Secure World,它是指预先在虚拟机的内核空间隔离出来的可信执行环境,用来执行安全敏感的应用。如安全敏感的模块,或者一些用于采集数据的代理程序等。
具体地,虚拟机系统内的虚拟化软件层在确定出隔离对象后,会根据识别出的目标虚拟机来对目标虚拟机的行为进行监测,从而确定目标虚拟机上的隔离对象是否运行。如隔离对象为虚拟机运行过程中的运行行为时,监测虚拟机内的实时进程是否运行到了隔离对象处,当运行到这里后,即可将该实时进程隔离到虚拟机安全空间内执行,同时还可以通过虚拟机安全空间内的软件来进行数据采集等工作。而当隔离对象为虚拟机中的安全敏感模块时,虚拟化软件层可以识别安全敏感模块的启动行为,从而将该安全敏感模块隔离到虚拟机安全空间内,使其免受系统的攻击。
上述虚拟机隔离方法,通过在接收虚拟机隔离请求后;根据目标虚拟机标识确定目标虚拟机,根据隔离对象标识确定目标虚拟机上的隔离对象;当侦测到隔离对象运行时,将隔离对象隔离至目标虚拟机的虚拟机安全空间。本申请通过预先在目标虚拟机构建虚拟机安全空间,从而在虚拟机安全空间内实现隔离对象对应的对象隔离,可以有效获取虚拟机运行过程中的行为隔离,从而有效实现虚拟机安全保护。
在一个实施例中,如图3所示,提供了一种虚拟机隔离方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤302,接收虚拟机隔离请求,虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识,目标虚拟机标志与目标虚拟机对应,隔离对象标识与隔离对象对应
步骤304,根据隔离对象标识构建虚拟机隔离指令,虚拟机隔离指令用于在目标虚拟机的虚拟机安全空间内实现隔离对象对应的虚拟机隔离操作。
步骤306,发送虚拟机隔离指令至目标虚拟机。
其中,虚拟机隔离指令被发送至虚拟机102,用于控制虚拟机102进行相应的隔离处理。虚拟机隔离指令包括了用于表征隔离对象的数据,虚拟机102可以基于虚拟机隔离指令来执行隔离操作。虚拟机安全空间即Secure World,它是指预先在虚拟机的内核空间隔离出来的可信执行环境,用来执行安全敏感的应用。如安全敏感的模块,或者一些用于采集数据的代理程序等。
具体地,当确定目标虚拟机标识以及隔离对象后,即可根据隔离对象来构建对应的虚拟机隔离指令,通过虚拟机隔离指令,可以对目标虚拟机进行控制,从而在目标虚拟机上,实现对隔离对象的隔离处理。如对于隔离对象具体为虚拟机运行过程中的运行行为时,可以在虚拟机运行至对应的行为后,将运行环境切换至虚拟机安全空间,实现隔离。而当隔离对象具体为虚拟机运行过程中的内核模块时,则在内核模块启动后,将内核模块隔离至虚拟机安全空间,以对其进行保护。
上述虚拟机隔离方法,通过在获取虚拟机隔离请求后;根据隔离对象标识构建虚拟机隔离指令;发送虚拟机隔离指令至目标虚拟机,虚拟机隔离指令可以用于在目标虚拟机的虚拟机安全空间内实现隔离对象对应的虚拟机隔离操作。本申请通过预先在目标虚拟机构建虚拟机安全空间,从而在虚拟机安全空间内实现隔离对象对应的虚拟机隔离操作,可以有效实现虚拟机运行过程中的虚拟机隔离处理,从而有效实现虚拟机安全保护。
在一个实施例中,如图4所示,提供了一种虚拟机隔离方法,以该方法应用于图1中的虚拟机102为例进行说明,包括以下步骤:
步骤401,接收虚拟机隔离指令,提取虚拟机隔离指令中的隔离对象标识。
其中,虚拟机102具体包括了虚拟机的虚拟化软件层和虚拟机本体,如对于KVM虚拟机,其具体包括了KVM虚拟化软件层以及Qemu(虚拟操作系统模拟器),Qemu中包括了Qemu进程以及虚拟机内核。Qemu负责接收安全分析软件的操作,是打通安全分析软件和KVM模块之间的桥梁,并负责配置的初始化。虚拟化软件层则是整个系统的核心,接收Qemu的控制命令,进而进行虚拟机的地址空间隔离以及Qemu注入等操作。隔离对象标识与隔离对象对应,通过解析得到的隔离对象标识可以确定虚拟机中需要隔离的对象。
具体地,虚拟机隔离指令由服务器104生成,而后通过网络发送至虚拟机102的Qemu,Qemu则可以通过解析该命令,而后提取出其中的隔离对象标识。当识别到其中的隔离对象标识后,Qemu可以将解析得到隔离对象标识转发给到虚拟化软件层,而后在虚拟化软件层中实现对隔离对象的隔离处理。
步骤403,根据隔离对象标识确定隔离对象。
其中,隔离对象是指本申请的虚拟机隔离方法中,隔离的目标对象,隔离对象具体可以为虚拟机运行过程中的运行行为,或者是虚拟机内已经安装好的内核模块。
步骤405,当隔离对象运行时,将隔离对象隔离至虚拟机安全空间。
其中,虚拟机安全空间即Secure World,它是指预先在虚拟机的内核空间隔离出来的可信执行环境,用来执行安全敏感的应用。如安全敏感的模块,或者一些用于采集数据的代理程序等。
具体地,虚拟化软件层在确定出隔离对象后,会监测虚拟机的行为,从而确定出隔离对象是否运行。如隔离对象为虚拟机运行过程中的运行行为时,监测虚拟机内的实时进程是否运行到了隔离对象处,当运行到这里后,即可将该实时进程隔离到虚拟机安全空间内执行,同时还可以通过虚拟机安全空间内的软件来进行数据采集等工作。而当隔离对象为虚拟机中的安全敏感模块时,虚拟化软件层可以识别安全敏感模块的启动行为,从而将该安全敏感模块隔离到虚拟机安全空间内,使其免受系统的攻击。
上述虚拟机隔离方法,通过在接收虚拟机隔离指令后,提取虚拟机隔离指令中的隔离对象标识;根据隔离对象标识确定隔离对象;当隔离对象运行时,将隔离对象隔离至虚拟机安全空间。本申请通过预先构建虚拟机安全空间,从而当隔离对象运行时,将隔离对象隔离至虚拟机安全空间,实现隔离对象的隔离处理,从而有效实现云平台虚拟机安全保护。
在一个实施例中,如图5所示,隔离对象标识用于表征待监测行为。步骤203包括:
步骤502,根据隔离对象标识构建待监测行为对应的行为监测点。
步骤205包括:
步骤504,基于行为监测点构建行为截获指令。
步骤506,当目标虚拟机的虚拟机运行环境空间内的虚拟机行为执行至行为监测点时,通过行为截获指令调用切换门。
步骤508,通过切换门将虚拟机行为的执行流切换至目标虚拟机的虚拟机安全空间,通过预设信息采集代理程序获取行为监测点对应的行为监测数据。
其中,隔离对象标识用于表征待监测行为,如隔离对象标识具体可以为事件类型标识,服务器104则根据事件类型标识,识别虚拟机中的哪些事件属于待监测行为。虚拟机隔离监测指令则是指在虚拟机安全空间内对待监测行为进行隔离的同时对该行为进行监测,并获取相应的行为数据,以供后续过程分析使用。行为截获指令用于在虚拟机运行过程中实现对虚拟机的行为隔离。行为监测点具体可以有服务器104根据虚拟机对应符号表中的虚拟地址来生成,而虚拟机102在接收到行为监测点后,即可根据行为监测点生成相应的行为截获指令。切换门即Switch Gate,是实现虚拟机安全空间和运行环境空间之间切换的调用门模块。预设信息采集代理程序即预先注入到虚拟机安全空间内一个信息采集程序,主要在虚拟机行为在虚拟机安全空间内隔离运行时,采集到虚拟机相应的行为数据,而后将采集到的行为数据反馈至服务器104。
具体地,行为截获指令以系统调用处理函数以及异常处理函数等方式被添加到虚拟机内核中,虚拟机运行环境空间内的虚拟机行为执行至行为监测点时,通过行为截获指令调用虚拟机安全空间与虚拟机运行环境空间之间的切换门,从而将虚拟机内核执行的虚拟机行为流转至虚拟机安全空间,将对应的待监测行为隔离到虚拟机安全空间中运行。在运行过程中,虚拟机安全空间内预先被注入的信息采集代理程序则可以直接进行行为数据的监测,获取该行为监测点对应的行为监测数据,而后将获得的行为监测数据反馈给到服务器104。在其中一个实施例中,虚拟机102具体为KVM虚拟机,此时,预设信息采集代理程序具体通过事件通知KVM虚拟化软件层,KVM虚拟化软件层将事件通知转发给服务器中的行为分析软件。此过程有两种实现方式,在其中一个实施例中,可以通过ioeventfd直接通知分析软件,在另一个实施例中,也可以通过eventfd经Qemu通知安全分析软件。在一个具体的实施例中,终端102的工作人员如果需要进行虚拟机内部行为的监测,则可以通过隔离对象标识将隔离对象为待监测行为。此时虚拟机隔离指令为虚拟机隔离监测指令,用于在虚拟机实现对待监测行为的隔离与监测。首先服务器104需要根据待监测行为标识构建行为监测点,此过程主要需要通过待监测行为确定需要监测的动作对应的虚拟地址,而后即可基于虚拟地址来构建行为监测点。而后,则需要根据行为监测点构建虚拟机隔离监测指令,以通过虚拟机隔离监测指令来操作虚拟机进行隔离监测处理。目标虚拟机(虚拟机102)在接收到虚拟机隔离监测指令后,可以设置相应的行为截获指令,通过行为截获指令进行待监测行为对应的行为截获,而后将截获的行为导入到虚拟机安全空间内,并通过预设信息采集代理程序实现行为监测点对应的行为隔离监测,得到虚拟机运行过程中完整的行为监测数据。而后这些行为监测数据会被发送至服务器102上,服务器102则基于这些行为监测数据来进行具体地分析。在其中一个实施例中,服务器102上运行有安全分析软件,安全分析软件可以通过行为监测数据来对虚拟机102进行安全分析。本实施例中,根据行为监测点来生成相应的行为截获指令,而后通过行为截获指令在虚拟机运行环境空间内实现对虚拟机行为的截获,可以有效保证行为截获的准确性,从而保证虚拟机隔离的效果。
在其中一个实施例中,步骤504包括:
获取行为监测点对应的行为类型。
当行为类型为CPU行为监测时,设置虚拟机控制结构域,以基于虚拟机控制结构域构建行为截获指令。
当行为类型为非CPU行为监测时,对虚拟机隔离监测指令中的客户机虚拟地址进行地址转换处理,获取物理机物理地址,以基于物理机物理地址构建行为截获指令。
其中,行为类型具体包括CPU行为以及非CPU行为,这两种行为所构建的行为截获指令各不相同,其中虚拟机控制结构域即VMCS域,VMCS保存了根模式和非根模式下的一些特权寄存器的值和控制信息,由硬件CPU操作,每个VMCS对应一个VCPU,并只能绑定到一个物理CPU中。将客户机虚拟地址的参数GVG依次转化为GPG、GVG、GPG。为了实现内存虚拟化,让客户机使用一个隔离的、从零开始且具有连续的内存空间,KVM虚拟机引入一层新的地址空间,即客户机物理地址空间(Guest Physical Gddress,GPG),这个地址空间并不是真正的物理地址空间,它只是宿主机虚拟地址空间在客户机地址空间的一个映射。对客户机来说,客户机物理地址空间都是从零开始的连续地址空间,但对于宿主机来说,客户机的物理地址空间并不一定是连续的,客户机物理地址空间有可能映射在若干个不连续的宿主机地址区间。实现内存虚拟化,最主要的是实现客户机虚拟地址(Guest Virtual Gddress,GVG)到宿主机物理地址之间的转换。根据上述客户机物理地址到宿主机物理地址之间的转换以及客户机页表,即可实现客户机虚拟地址空间到客户机物理地址空间之间的映射,也即GVG到GPG的转换。
具体地,行为截获指令具体可以还可以包含其对应的监测对象,包括了CPU行为监测以及非CPU行为监测,当述行为类型为CPU行为监测时,需要设置虚拟机控制结构域,以基于虚拟机控制结构域构建行为截获指令。而当行为类型为非CPU行为监测时,对虚拟机隔离监测指令中的客户机虚拟地址进行地址转换处理,获取物理机物理地址,以基于物理机物理地址构建行为截获指令在其中一个实施例中,步骤506之前,还包括:
获取行为监测点对应的监测点类型。
当监测点类型为用户空间监测点时,在用户空间监测点的地址写入系统调用函数,并创建对应的系统调用处理函数,系统调用处理函数用于调用切换门。
当监测点类型为内核空间监测点时,在用户空间监测点的地址写入异常函数,并创建对应的异常处理函数,异常处理函数用于调用切换门。
具体地,行为监测点还包含有不同的监测点类型,包括了用户态监测点以及内核态监测点,在受监测的虚拟机运行环境空间中运行的内核执行到监测点时,会触发异常,而后可以通过相应系统调用处理函数来进行切换门的跳转。如果行为监测点在用户态,则触发系统调用,系统调用处理函数跳转到切换门。如果是在内核态,则触发自定义异常,自定义的异常处理函数跳转到切换门。因此,在进行虚拟机隔离之前,需要根据行为监测点在虚拟机中行为监测点对应的位置写入系统调用处理函数,或者异常处理函数,从而实现切换门的调用。本申请方案中的切换门则主要负责将执行流从虚拟机运行环境空间切换到虚拟机安全空间。在切换过程中,切换门首先关闭中断,保证处理过程不可被中断。由于截获的事件都是自定义的,分析软件在设置钩子时,会动态地将其地址写入切换门的数据区。因此,可对跳转到切换门的地址序列进行判断,保证切换的合法性。此外,还会对整个过程实施原子操作,保证处理过程的完整性。本实施例中,通过识别出监测点对应的监测点类型,从而在虚拟机内核的对应位置写入调用函数,从而可以有效地通过切换门来实现虚拟机执行流的切换,从虚拟机运行环境空间的执行流切换至虚拟机安全空间。
在其中一个实施例中,如图6所示,方法还包括:
步骤601,获取目标虚拟机对应的安全空间构造请求。
步骤603,基于安全空间构造请求获取目标虚拟机的符号表库。
步骤605,根据符号表库在目标虚拟机构造虚拟机安全空间,并将预设信息采集代理程序注入虚拟机安全空间。
其中,符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。服务器102在进行虚拟机隔离,需要构建出目标虚拟机对应的符号表库,从而实现对目标虚拟机的分析、隔离以及监测。在其中一个实施例中,符号表具体可以被解析为JSON格式。
具体地,在使用本申请的虚拟机隔离方法前,需要现在目标虚拟机中构建相应的虚拟机安全空间,而构建虚拟机安全空间则需要目标虚拟机对应的符号表库。因此,当用户需要构造目标虚拟机对应的虚拟机安全空间时,需要先发送目标虚拟机对应的安全空间构造请求至服务器104,服务器104首先会基于安全空间构造请求获取目标虚拟机的符号表库,从而进一步地根据符号表库来构建安全空间构造指令,并发送安全空间构造指令至目标虚拟机,从而通过安全空间构造指令在目标虚拟机构造出虚拟机安全空间,同时将预设信息采集代理程序注入虚拟机安全空间。在其中一个实施例中,本申请中的虚拟机102通过KVM虚拟机来实现,此时虚拟机包括了Qemu和KVM虚拟化软件层。获取符号表后,服务器102首先向Qemu发送安全空间构造指令。Qemu接收命令并解析,若是安全空间构造指令,Qemu通过ioctl将操作传递给KVM虚拟化软件层。KVM虚拟化软件层接收ioctl命令,并解析参数,若是安全空间构造指令,则创建SW-EPT,并为最高端的一段内存(可根据需求自设置大小)映射新物理页,而原始EPT(NW-EPT)保持不变。虚拟机安全空间具有全局视图,映射了虚拟机的所有内存。虚拟机安全空间在受控的情况下运行。最后,将预设信息采集代理程序注入到虚拟机安全空间中,并利用普通内核不使用的虚拟地址为其构建客户机页表项。本实施例中,在接收到安全空间构造请求后,会基于安全空间构造请求获取相应的符号表库,并构建出安全空间构造指令,从而有效地控制目标虚拟机构造出虚拟机安全空间,保证后续隔离过程或者行为监测过程的有效性。
在其中一个实施例中,如图7所示,步骤603包括:
步骤702,基于安全空间构造请求,获取目标虚拟机对应的虚拟机符号表传递脚本。
步骤704,通过虚拟机符号表传递脚本获取目标虚拟机的符号表库。
其中,虚拟机符号表传递脚本可以自动化地将目标虚拟机当前所运行系统的符号表(Linux、Windows)、系统类型、内核版本等传输到服务器104中,从而获取目标虚拟机的符号表库。虚拟机符号表传递脚本具体根据目标虚拟机的类型获取。
具体地,具体可以通过虚拟机符号表传递脚本来实现符号表库构建。首先用户可以设置目标虚拟机,控制台根据目标虚拟机的类型得到相应的符号表传递脚本。符号表传递脚本可以获取目标虚拟机的符号表库。服务器104可以将符号表传递脚本发送至虚拟机102,符号表传递脚本在虚拟机102上运行,从而获取目标虚拟机(虚拟机102)的符号表库。本实施例中,通过目标虚拟机对应的虚拟机符号表传递脚本来实现符号表库的构建,可以有效保证符号表库构建的效率。
在其中一个实施例中,步骤704包括:
通过虚拟机符号表传递脚本获取目标虚拟机的符号表标识。
通过符号表标识在预设符号表数据库内查找符号表数据。
当查找到符号表标识对应的符号表数据时,通过从预设符号表数据库内查找到的符号表数据构建目标虚拟机的符号表库。
当未查找符号表标识对应的符号表数据时,通过基于虚拟机符号表传递脚本从目标虚拟机获取符号表数据,通过获取到的符号表数据构建目标虚拟机的符号表库。
其中,符号表标识即符号表的唯一标识,用于进行符号表的识别,在其中一个实施例中,符号表标识具体为符号表的哈希值。预设符号表数据库是指预先构建的符号表数据库,用于存储已经提取到的符号表库。
具体地,虚拟机符号表传递脚本可以利用vsock上传符号表的哈希值给服务器104,服务器104通过符号表的哈希值在预设符号表数据库内查找符号表数据,确定该符号表是否为预设符号表数据库的已存符号表,如果为已存符号表,则以符号表哈希值为索引构建符号表库,从而将具有相同哈希值的虚拟机归属到一个表项。若是为未查找符号表标识对应的符号表数据时,此时需要基于虚拟机符号表传递脚本从目标虚拟机获取符号表数据,通过获取到的符号表数据构建目标虚拟机的符号表库,得到一个新的符号表库,而后可以将该新生成的符号表库的符号表数据保存至预设符号表数据库内。本申请中通过符号表标识来进行符号表的识别查找,从而有效提高符号表库构建过程的构建效率。
在其中一个实施例中,隔离对象标识包括内核模块标识,虚拟机隔离指令包括内核隔离指令;步骤205具体包括:截获目标虚拟机内各内核模块的启动请求;将包含有隔离标签的内核模块隔离至目标虚拟机的虚拟机安全空间。
具体地,虚拟机隔离的操作除了能对虚拟机行为进行隔离外,还可以对虚拟机上安装的内核模块的启动进行隔离,内核模块被预先安装在虚拟机上,同时在安装时,虚拟机102会根据服务器104的指令为新安装的内核模块添加标签,从而将安全敏感模块与普通内核模块隔离开来。当虚拟机的虚拟化软件层接受到了虚拟机内核模块的启动请求,为了实现对安全敏感模块的隔离,可以识别新启动的内核模块是否包含有预设隔离标签,如果有,则说明它是安全敏感模块,需要进行隔离处理,如果没有,则不需要进行隔离。本实施例中,通过虚拟机内核模块所包含的标签来进行安全敏感模块的识别,可以有效保证虚拟机内核启动过程中,控制的准确率,防止安全敏感模块被系统查杀。
在其中一个实施例中,截获目标虚拟机内各内核模块的启动请求的步骤之前,还包括:获取模块预安装指令;根据模块预安装指令为对应的预安装内核模块添加隔离标签后,将预安装内核模块安装至目标虚拟机,隔离标签用于在预安装内核模块运行后,将预安装内核模块隔离至目标虚拟机的虚拟机安全空间。
具体地,本申请的方案除了对虚拟机上执行的行为进行隔离监测外,还可以对虚拟机上的内核模块进行隔离,从而使其免受虚拟机系统的攻击。在进行内核模块的隔离时,隔离对象标识具体用于表征需要隔离的预安装内核模块。此时,服务器104可以根据内核模块标识构建内核隔离指令。该内核隔离指令具体用于为内核模块标识对应的预安装内核模块添加隔离标签后,将预安装内核模块安装至目标虚拟机。而隔离标签可以用于在预安装内核模块运行后,将预安装内核模块隔离至虚拟机安全空间。虚拟机在加载内核模块时,可以先识别内核模块是否包括了隔离标签,当内核模块包含有隔离标签时,即需要被隔离至虚拟机安全空间,而不包含隔离标签,则可以直接运行,无需隔离处理。本实施例中,通过内核隔离指令来对虚拟机的原装内核模块进行隔离处理,可以有效对安全敏感型内核模块的运行过程进行保护。
本申请还提供一种应用场景,该应用场景应用上述的虚拟机隔离方法。具体地,该虚拟机隔离方法在该应用场景的应用如下:
该应用场景中,虚拟机具体可以为KVM虚拟机,而用户通过服务器的云控制台来实现隔离保护。当用户需要对虚拟机中的安全敏感性模块进行隔离,以进行模块保护时,可以通过本申请的内核模块保护来实现虚拟机隔离。内核模块保护主要是通过虚拟化软件为虚拟机内部的模块隔离出一个可信的执行环境,保证内核模块的正确执行,防止其控制流被截获、数据被泄露。具体效果如图8所示,首先,用户通过云控制台给虚拟机中预安装内核模块打标签,标签具体包括了安全敏感标签和普通标签;然后,在虚拟机中安装这些打好标签的预安装内核模块,当虚拟机内的内核模块启动时,KVM虚拟化软件层截获内核模块的启动行为;最后,根据标签采取措施:如果是安全敏感型内核模块,则将其隔离在虚拟机安全空间(SW),使其免受系统的攻击。
本申请还提供了另一种应用场景,该应用场景应用上述的虚拟机隔离方法。虚拟机隔离方法完整流程图可以参照图9,具体地,该虚拟机隔离方法在该应用场景的应用如下:
该应用场景中,虚拟机具体可以为KVM虚拟机,而用户通过服务器的云控制台来实现隔离保护。当用户需要安全、高效地虚拟机内部行为进行监测时,可以通过本申请的虚拟机内部行为监测方案在基于虚拟机隔离的情况下,实现虚拟机内部行为监测。内核模块保护主要是通过虚拟化软件为虚拟机内部的模块隔离出一个可信的执行环境,保证内核模块的正确执行,防止其控制流被截获、数据被泄露。主要是通过KVM Gypervisor(KVM虚拟机监测器)来实现对虚拟机内部预设定行为进行抓取,并对监测操作和监测点进行隐藏和保护,以此达到防绕过和防探测。该方案的具体效果可以参照图10所示,首先,系统内的虚拟机在启动时,KVM Gypervisor会为其隔离出一个虚拟机安全空间,并自动将数据采集代理程序(安全agent)注入到虚拟机安全空间;其次,用户在云控制台将需要监测的行为和符号表下发给KVM Gypervisor;然后,KVMGypervisor根据预监测行为列表和符号表,为虚拟机动态设置监测项,并对监测点进行保护;最后,当虚拟机内核或者是虚拟机的运用程序运行到监测项时,虚拟机安全空间可以拦截这些预监测行为,通过而后数据采集代理程序捕获到相应的行为数据,则将捕获的行为数据传输给KVM Gypervisor中的分析软件进行分析、评判。方案主要包括以下几个组件:KVM虚拟化软件层、Qemu、VM以及安全分析软件(KVMGypervisor)。VM内包括NW(普通空间)、SG(切换门)和SW(安全空间)。其结构具体可以参照图11,其中,安全分析软件负责对监测到的行为进行分析和判断。Qemu负责接收安全分析软件的操作,是打通安全分析软件和KVM模块之间的桥梁,并负责配置的初始化。KVM是整个系统的核心,接收Qemu的控制命令,进而进行地址空间隔离、agent程序的注入等。受保护模块是一个抽象名词,可代表行为监测agent、安全敏感型内核模块等。被注入的agent负责行为数据的收集和转发给分析软件。上述系统在进行虚拟机内的行为监测时,用户在云控制台中通过安全分析软件下发需要监测的行为,而后Qemu接收安全分析软件下发的命令,通过KVM虚拟化软件层来在虚拟机的普通空间内实现原数据保护和安全事件截获设置,同时在安全空间内进行agent程序的注入以及地址空间隔离EPI表的构建,当普通空间内的行为进程运行到截获点时,即可通过切换门转到安全空间内执行,并通过agent程序来获取相应的行为信息。除了以上组件之外,还需要云控制台的对接,以便用户可以更好的使用本发明方案。而系统中各模块之间的总体工作流程如图12所示:1).首先,用户在云控制台选择需要监测的VM;云控制台根据选择的VM列表,自动将符号表传递脚本下发到对应的虚拟机中。2).脚本在虚拟机中自动安装,将符号表信息传递给运行于KVM Gypervisor的安全分析软件。3).安全分析软件对符号表进行格式化,与受监测VM对应的Qemu进程建立连接,然后通知Qemu构建SW以及设置行为监测。4).Qemu通知KVM为VM构建SW,并为VM扩展物理内存,告知VM截获事件的类型,为分析软件与KVM构建通道,以便行为监测的设置和保护。5).KVM创建SW,将agent注入到SW,并通过CPU域位控制和指令修改设置行为截获,将行为传递给SW的agent。6).当普通空间内系统运行到事件截获点时,通过判断事件的行为是否是内核空间行为来进行后续处理,当是内核空间行为时通过触发异常跳转到切换门,否则通过软中断跳转至切换门,而后通过切换门切换地址空间,跳转至安全空间内执行,而后agent获取到事件截获点对应的行为,对行为进行解析和记录,并通过KVM将数据传递给安全分析软件进行分析。将上述行为拆分开来分别讲解,首先是云控制台到安全分析软件(KVMGypervisor)的步骤,该过程具体可以参照图13所示,云控制台提供符号表传递脚本,可以自动化的将VM当前所运行系统的符号表(Linux、Windows)、系统类型、内核版本等传输到KVMGypervisor所运行分析软件。用户在控制台设置受监测VM,控制台根据虚拟机的类型下发符号表传递脚本到对应的VM。传递脚本利用vsock上传符号表的hash值给分析软件。分析软件验证hash值是否存在。如果不存在,则通知脚本继续传递符号表以及系统类型和内核版本。否则,向Qemu建立连接,查询VM的唯一标识。然后,以符号表哈希值为索引构建符号表库,具有相同哈希值的VM归属到一个表项。分析软件为了使用方便,将符号表解析为json格式。第二个步骤则是虚拟机安全空间构建以及行为监测设置(安全分析软件-Qemu-KVM)。该过程具体可以参照图14所示,1)获取符号表后,安全分析软件首先向Qemu发送SW构建命令,并根据符号变地址设置相应的监测事件。而Qemu则会接收命令并解析,若是SW构建命令,Qemu通过ioctl将操作传递给KVM。KVM接收ioctl命令,并解析参数,若是SW构建命令,则创建SW-EPT,并为最高端的一段内存(可根据需求自设置大小)映射新物理页,而原始EPT(NW-EPT)保持不变。SW具有全局视图,映射了虚拟机的所有内存。SW在受控的情况下运行。最后,将agent注入到SW中,并利用普通内核不使用的虚拟地址为其构建客户机页表项,同时构建基于内存共享的通信通道。2)安全分析软件根据符号表中的虚拟地址构建行为监测点,向Qemu发送行为监测命令。Qemu接收命令并解析参数,若是行为监测构建命令,则通过ioctl将操作传递给KVM。KVM接收ioctl命令并解析参数,若是CPU事件的行为监测命令,则设置VMCS域。否则,则将参数GVG转化为GPG、GVG、GPG。如果监测点在用户空间,则在此地址写入一个自定义的系统调用,并为VM内核添加系统调用处理函数。如果监测点在内核空间,则在此地址写入一个特定异常,并为VM内核添加异常处理函数。此外,KVM会将插入异常指令的内部页表设置为只可执行,如果VM内部有进程对其进行读写时,则会触发EPTMisconfig,KVM为其切换到SW-EPT(行为监测点为原有指令,未作修改),并启用singlestep模式,待内存读取后,再切换回受监测状态。第三个步骤则是虚拟机行为截获和地址空间切换(NW-SG-SW)的步骤。由于KVM对VM的地址空间进行了隔离,在VM内部包括NW(及其运行的软件)、SG和SW(及其运行的软件)。具体地行为截获过程可以参照图15所示。1)在受监测NW中运行的内核执行到监测点时,会触发异常。如果监测点在用户态,则触发系统调用,系统调用处理函数跳转到SG。如果是在内核态,则触发自定义异常,自定义异常处理函数跳转到SG。2)切换门SG:切换门负责将执行流从NW切换到SW。SG首先关闭中断,保证处理过程不可被中断。由于截获的事件都是自定义的,分析软件在设置钩子时,会动态地将其地址写入SG的数据区。因此,可对跳转到SG的地址序列进行判断,保证切换的合法性。此外,还会对整个过程实施原子操作,保证处理过程的完整性。最后,切换SW到NW切换。3)SW中agent会对截获的事件和行为进行详细的解析和记录,同时执行原有指令,当收集到的行为数据满足一定条件时,会批量的将行为数据传递给安全分析软件。Ggent首先通过事件通知KVM,KVM将事件通知转发给分析软件。此过程有两种实现方式,可以通过ioeventfd直接通知分析软件,也可以通过eventfd经Qemu通知安全分析软件。而后安全分析软件通过读取agent上传的行为数据来进行相应的行为分析,得到虚拟机隔离监测所需要的行为分析结果。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的虚拟机隔离方法的虚拟机隔离装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个虚拟机隔离装置实施例中的具体限定可以参见上文中对于虚拟机隔离方法的限定,在此不再赘述。
在一个实施例中,如图16所示,提供了一种虚拟机隔离装置,包括:请求获取模块1601、对象识别模块1603和对象隔离模块1605,其中:
请求获取模块1601,用于接收虚拟机隔离请求,虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识。
对象识别模块1603,用于根据目标虚拟机标识确定目标虚拟机,根据隔离对象标识确定目标虚拟机上的隔离对象。
对象隔离模块1605,用于当侦测到隔离对象运行时,将隔离对象隔离至目标虚拟机的虚拟机安全空间。
在其中一个实施例中,隔离对象标识用于表征待监测行为;对象识别模块1603具体用于:根据隔离对象标识构建待监测行为对应的行为监测点;对象隔离模块1605具体用于:基于行为监测点构建行为截获指令;当目标虚拟机的虚拟机运行环境空间内的虚拟机行为执行至行为监测点时,通过行为截获指令调用切换门;通过切换门将虚拟机行为的执行流切换至目标虚拟机的虚拟机安全空间,通过预设信息采集代理程序获取行为监测点对应的行为监测数据。
在其中一个实施例中,对象隔离模块1605具体用于:获取行为监测点对应的行为类型;当行为类型为CPU行为监测时,设置虚拟机控制结构域,以基于虚拟机控制结构域构建行为截获指令;当行为类型为非CPU行为监测时,对虚拟机隔离监测指令中的客户机虚拟地址进行地址转换处理,获取物理机物理地址,以基于物理机物理地址构建行为截获指令。
在其中一个实施例中,行为截获指令包括系统调用处理函数以及异常处理函数,装置还包括函数创建模块,用于:获取行为监测点对应的监测点类型;当监测点类型为用户空间监测点时,在用户空间监测点的地址写入系统调用函数,并创建对应的系统调用处理函数,系统调用处理函数用于调用切换门;当监测点类型为内核空间监测点时,在用户空间监测点的地址写入异常函数,并创建对应的异常处理函数,异常处理函数用于调用切换门。
在其中一个实施例中,装置还包括安全空间构建模块,用于:获取目标虚拟机对应的安全空间构造请求;基于安全空间构造请求获取目标虚拟机的符号表库;根据符号表库在目标虚拟机构造虚拟机安全空间,并将预设信息采集代理程序注入虚拟机安全空间。
在其中一个实施例中,安全空间构建模块还用于:基于安全空间构造请求,获取目标虚拟机对应的虚拟机符号表传递脚本;通过虚拟机符号表传递脚本获取目标虚拟机的符号表库。
在其中一个实施例中,安全空间构建模块还用于:通过虚拟机符号表传递脚本获取目标虚拟机的符号表标识;通过符号表标识在预设符号表数据库内查找符号表数据;当查找到符号表标识对应的符号表数据时,通过从预设符号表数据库内查找到的符号表数据构建目标虚拟机的符号表库;当未查找符号表标识对应的符号表数据时,基于虚拟机符号表传递脚本从目标虚拟机获取符号表数据,通过获取到的符号表数据构建目标虚拟机的符号表库。
在其中一个实施例中,隔离对象标识包括内核模块标识,虚拟机隔离指令包括内核隔离指令;对象隔离模块1605具体用于:截获目标虚拟机内各内核模块的启动请求;将包含有隔离标签的内核模块隔离至目标虚拟机的虚拟机安全空间。
在其中一个实施例中,还包括标签设置模块,用于:获取模块预安装指令;根据模块预安装指令为对应的预安装内核模块添加隔离标签后,将预安装内核模块安装至目标虚拟机,隔离标签用于在预安装内核模块运行后,将预安装内核模块隔离至目标虚拟机的虚拟机安全空间。
上述虚拟机隔离装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储虚拟机隔离过程的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种虚拟机隔离方法。
领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收虚拟机隔离请求,虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
根据目标虚拟机标识确定目标虚拟机,根据隔离对象标识确定目标虚拟机上的隔离对象;
当侦测到隔离对象运行时,将隔离对象隔离至目标虚拟机的虚拟机安全空间。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收虚拟机隔离请求,虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
根据目标虚拟机标识确定目标虚拟机,根据隔离对象标识确定目标虚拟机上的隔离对象;
当侦测到隔离对象运行时,将隔离对象隔离至目标虚拟机的虚拟机安全空间。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收虚拟机隔离请求,虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
根据目标虚拟机标识确定目标虚拟机,根据隔离对象标识确定目标虚拟机上的隔离对象;
当侦测到隔离对象运行时,将隔离对象隔离至目标虚拟机的虚拟机安全空间。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRGM)、磁变存储器(Magnetoresistive Random Gccess Memory,MRGM)、铁电存储器(Ferroelectric Random Gccess Memory,FRGM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Gccess Memory,RGM)或外部高速缓冲存储器等。作为说明而非局限,RGM可以是多种形式,比如静态随机存取存储器(Static Random Gccess Memory,SRGM)或动态随机存取存储器(Dynamic RandomGccess Memory,DRGM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (15)

1.一种虚拟机隔离方法,其特征在于,所述方法包括:
接收虚拟机隔离请求,所述虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;
当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。
2.根据权利要求1所述的方法,其特征在于,所述隔离对象标识用于表征待监测行为;
所述根据所述隔离对象标识确定所述目标虚拟机上的隔离对象包括:
根据所述隔离对象标识构建所述待监测行为对应的行为监测点;
所述当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间包括:
基于所述行为监测点构建行为截获指令;
当所述目标虚拟机的虚拟机运行环境空间内的虚拟机行为执行至所述行为监测点时,通过所述行为截获指令调用切换门;
通过所述切换门将所述虚拟机行为的执行流切换至所述目标虚拟机的虚拟机安全空间,通过预设信息采集代理程序获取所述行为监测点对应的行为监测数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述行为监测点构建行为截获指令包括:
获取所述行为监测点对应的行为类型;
当所述行为类型为CPU行为监测时,设置虚拟机控制结构域,以基于所述虚拟机控制结构域构建行为截获指令;
当所述行为类型为非CPU行为监测时,对所述虚拟机隔离监测指令中的客户机虚拟地址进行地址转换处理,获取物理机物理地址,以基于所述物理机物理地址构建行为截获指令。
4.根据权利要求2所述的方法,其特征在于,所述行为截获指令包括系统调用处理函数以及异常处理函数,所述当虚拟机运行环境空间内的虚拟机行为执行至所述行为监测点时,通过所述行为截获指令调用切换门之前,还包括:
获取所述行为监测点对应的监测点类型;
当所述监测点类型为用户空间监测点时,在所述用户空间监测点的地址写入系统调用函数,并创建对应的系统调用处理函数,所述系统调用处理函数用于调用所述切换门;
当所述监测点类型为内核空间监测点时,在所述用户空间监测点的地址写入异常函数,并创建对应的异常处理函数,所述异常处理函数用于调用所述切换门。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取目标虚拟机对应的安全空间构造请求;
基于所述安全空间构造请求获取所述目标虚拟机的符号表库;
根据所述符号表库在所述目标虚拟机构造虚拟机安全空间,并将预设信息采集代理程序注入所述虚拟机安全空间。
6.根据权利要求5所述的方法,其特征在于,所述基于所述安全空间构造请求获取所述目标虚拟机的符号表库包括:
基于所述安全空间构造请求,获取所述目标虚拟机对应的虚拟机符号表传递脚本;
通过所述虚拟机符号表传递脚本获取目标虚拟机的符号表库。
7.根据权利要求6所述的方法,其特征在于,所述通过所述虚拟机符号表传递脚本获取目标虚拟机的符号表库包括:
通过所述虚拟机符号表传递脚本获取目标虚拟机的符号表标识;
通过所述符号表标识在预设符号表数据库内查找符号表数据;
当查找到所述符号表标识对应的符号表数据时,通过从预设符号表数据库内查找到的符号表数据构建目标虚拟机的符号表库;
当未查找所述符号表标识对应的符号表数据时,基于所述虚拟机符号表传递脚本从所述目标虚拟机获取符号表数据,通过获取到的符号表数据构建目标虚拟机的符号表库。
8.根据权利要求1所述的方法,其特征在于,所述隔离对象标识包括内核模块标识,所述虚拟机隔离指令包括内核隔离指令;
所述当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间包括:
截获所述目标虚拟机内各内核模块的启动请求;
将包含有隔离标签的内核模块隔离至所述目标虚拟机的虚拟机安全空间。
9.根据权利要求8所述的方法,其特征在于,所述截获所述目标虚拟机内各内核模块的启动请求之前,还包括:
获取模块预安装指令;
根据所述模块预安装指令为对应的预安装内核模块添加隔离标签后,将所述预安装内核模块安装至所述目标虚拟机,所述隔离标签用于在所述预安装内核模块运行后,将所述预安装内核模块隔离至所述目标虚拟机的虚拟机安全空间。
10.一种虚拟机隔离方法,其特征在于,所述方法包括:
接收虚拟机隔离请求,所述虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识,所述目标虚拟机标志与目标虚拟机对应,所述隔离对象标识与隔离对象对应;
根据所述隔离对象标识构建虚拟机隔离指令,所述虚拟机隔离指令用于在所述目标虚拟机的虚拟机安全空间内实现所述隔离对象对应的行为隔离;
发送所述虚拟机隔离指令至所述目标虚拟机。
11.一种虚拟机隔离方法,其特征在于,所述方法包括:
接收虚拟机隔离指令,提取所述虚拟机隔离指令中的隔离对象标识;
根据所述隔离对象标识确定隔离对象;
当所述隔离对象运行时,将所述隔离对象隔离至虚拟机安全空间。
12.一种虚拟机隔离装置,其特征在于,所述装置包括:
请求获取模块,用于接收虚拟机隔离请求,所述虚拟机隔离请求包括目标虚拟机标识以及隔离对象标识;
对象识别模块,用于根据所述目标虚拟机标识确定目标虚拟机,根据所述隔离对象标识确定所述目标虚拟机上的隔离对象;
对象隔离模块,用于当侦测到所述隔离对象运行时,将所述隔离对象隔离至所述目标虚拟机的虚拟机安全空间。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
CN202210269572.4A 2022-03-18 2022-03-18 虚拟机隔离方法、装置和计算机设备 Pending CN116795480A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210269572.4A CN116795480A (zh) 2022-03-18 2022-03-18 虚拟机隔离方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210269572.4A CN116795480A (zh) 2022-03-18 2022-03-18 虚拟机隔离方法、装置和计算机设备

Publications (1)

Publication Number Publication Date
CN116795480A true CN116795480A (zh) 2023-09-22

Family

ID=88039055

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210269572.4A Pending CN116795480A (zh) 2022-03-18 2022-03-18 虚拟机隔离方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN116795480A (zh)

Similar Documents

Publication Publication Date Title
US11687645B2 (en) Security control method and computer system
KR101946982B1 (ko) 가상 머신에서 멀웨어 탐지를 위한 프로세스 평가
US9229881B2 (en) Security in virtualized computer programs
US9832226B2 (en) Automatic curation and modification of virtualized computer programs
US10043005B2 (en) Systems and methods for application control in virtualized environments
US10084817B2 (en) Malware and exploit campaign detection system and method
JP6791134B2 (ja) 分析システム、分析方法、分析装置及び、コンピュータ・プログラム
CN107580703B (zh) 用于软件模块的迁移服务方法和模块
US20170286644A1 (en) Protection Method and Device for Application Data
CN111324891A (zh) 用于容器文件完整性监视的系统和方法
Westphal et al. VMI-PL: A monitoring language for virtual platforms using virtual machine introspection
CN115904605A (zh) 软件防御方法以及相关设备
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
CN116795480A (zh) 虚拟机隔离方法、装置和计算机设备
Laurén et al. Virtual machine introspection based cloud monitoring platform
US12032726B1 (en) Method to obfuscate keyboard keys against interception
Zhan et al. SAVM: A practical secure external approach for automated in‐VM management
Rastogi et al. Towards least privilege containers with cimplifier
CN113127148B (zh) 一种虚拟化环境主动动态度量方法和系统
Mulukutla Wolfsting: Extending Online Dynamic Malware Analysis Systems by Engaging Malware.
WO2022044021A1 (en) Exploit prevention based on generation of random chaotic execution context
KR20240080245A (ko) 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템
Jelten Dynamic System Call Translation between Virtual Machines
Srinivasan Elevating virtual machine introspection for fine-grained process monitoring: Techniques and applications
Heywood An Intrusion Surveillance Toolset Based on Virtual Machine Introspection

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