防止虚拟机逃逸的方法和装置制造方法
【专利摘要】本发明公开了一种防止虚拟机逃逸的方法和装置。其中,防止虚拟机逃逸的方法包括:获取目标磁盘的属性,其中,目标磁盘为虚拟机操作系统所安装的磁盘;判断属性是否为预设属性,其中,预设属性表示禁止替换操作系统;以及在判断出属性为预设属性的情况下,将目标磁盘的磁盘分区表清零。通过本发明,解决了虚拟机容易出现逃逸的问题,进而达到了保证虚拟机不脱离管理平台掌控的效果。
【专利说明】防止虚拟机逃逸的方法和装置
【技术领域】
[0001]本发明涉及计算机领域,具体而言,涉及一种防止虚拟机逃逸的方法和装置。
【背景技术】
[0002]虚拟桌面操作系统具有集中管控的优点,便于公司、集团IT部门集中管理公司的个人电脑,但是如果有员工把系统进行重新安装,那么它就逃离了公司的管理平台的控制。通俗一点讲,所谓防止虚拟机逃逸,其实就是禁止用户在虚拟机里重新安装操作系统,从而把原系统覆盖或者安装双系统、甚至多系统。
[0003]针对相关技术中虚拟机容易出现逃逸的问题,目前尚未给出有效的解决方案。
【发明内容】
[0004]本发明的主要目的在于提供一种防止虚拟机逃逸的方法和装置,以解决虚拟机容易出现逃逸的问题。
[0005]为了实现上述目的,根据本发明的一个方面,提供了一种防止虚拟机逃逸的方法,包括:获取目标磁盘的属性,其中,目标磁盘为虚拟机操作系统所安装的磁盘;判断属性是否为预设属性,其中,预设属性表示禁止替换操作系统;以及在判断出属性为预设属性的情况下,将目标磁盘的磁盘分区表清零。
[0006]进一步地,在操作系统处于向A扇区进行写操作状态下,获取目标磁盘的属性,其中,A扇区为磁盘分区表所在扇区。
[0007]进一步地,将目标磁盘的磁盘分区表清零包括:将写入A扇区的数据清零。
[0008]进一步地,操作系统安装在虚拟机的虚拟磁盘上,虚拟磁盘的格式信息包括目标磁盘的属性标签,获取目标磁盘的属性包括:从属性标签中获取目标磁盘的属性。
[0009]进一步地,在将目标磁盘的磁盘分区表清零之前,防止虚拟机逃逸的方法还包括:备份磁盘分区表。
[0010]为了实现上述目的,根据本发明的另一个方面,提供了一种防止虚拟机逃逸的装置,该装置用于执行本发明上述内容所提供的任一种防止虚拟机逃逸的方法。
[0011]为了实现上述目的,根据本发明的另一个方面,提供了一种防止虚拟机逃逸的装置,包括:获取单元,用于获取目标磁盘的属性,其中,目标磁盘为虚拟机操作系统所安装的磁盘;判断单元,用于判断属性是否为预设属性,其中,预设属性表示禁止替换操作系统;以及清零单元,用于在判断出属性为预设属性的情况下,将目标磁盘的磁盘分区表清零。
[0012]进一步地,获取单元在操作系统处于向A扇区进行写操作状态下,获取目标磁盘的属性,其中,A扇区为磁盘分区表所在扇区。
[0013]进一步地,清零单元包括:清零模块,用于将写入A扇区的数据清零。
[0014]进一步地,操作系统安装在虚拟机的虚拟磁盘上,虚拟磁盘的格式信息包括目标磁盘的属性标签,获取单元包括:获取模块,用于从属性标签中获取目标磁盘的属性。
[0015]进一步地,防止虚拟机逃逸的装置还包括:备份单元,用于在将目标磁盘的磁盘分区表清零之前,备份磁盘分区表。
[0016]本发明采用获取目标磁盘的属性,其中,目标磁盘为虚拟机操作系统所安装的磁盘;判断属性是否为预设属性,其中,预设属性表示禁止替换操作系统;以及在判断出属性为预设属性的情况下,将目标磁盘的磁盘分区表清零的方法,若要重装操作系统或者向虚拟机中增加新的操作系统,则第一步必须修改操作系统所处目标磁盘的磁盘分区表,通过将目标磁盘的磁盘分区表清零,阻止对操作系统的分区表进行更改的操作,实现了终止重装系统的过程,从而能防止用户非法重装操作系统或增加非法的操作系统,解决了虚拟机容易出现逃逸的问题,进而达到了保证虚拟机不脱离管理平台掌控的效果。
【专利附图】
【附图说明】
[0017]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018]图1是根据本发明的第一实施例的防止虚拟机逃逸的方法的流程图;
[0019]图2是根据本发明的第二实施例的防止虚拟机逃逸的方法的流程图;
[0020]图3是根据本发明的第一实施例的防止虚拟机逃逸的装置的结构示意图;以及
[0021]图4是根据本发明的第二实施例的防止虚拟机逃逸的装置的结构示意图。
【具体实施方式】
[0022]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0023]本发明实施例提供了 一种防止虚拟机逃逸的方法,以下对本发明实施例所提供的防止虚拟机逃逸的方法进行具体介绍:
[0024]图1是根据本发明第一实施例的防止虚拟机逃逸的方法的流程图,如图1所示,该方法包括如下的步骤S102至步骤S106:
[0025]步骤S102,获取目标磁盘的属性,其中,目标磁盘为虚拟机操作系统所安装的磁盘。虚拟机的虚拟磁盘具有内在的格式逻辑作为虚拟磁盘的磁盘驱动器,虚拟磁盘的磁盘驱动器可以通过读取磁盘格式信息,来获取目标磁盘的属性。
[0026]步骤S104,判断目标磁盘的属性是否为预设属性。预设属性表示禁止替换操作系统。若目标磁盘为衍生磁盘,则系统的属性为禁止替换操作系统。衍生虚拟磁盘是基础虚拟磁盘的副本,供用户使用。基础虚拟磁盘具有只读属性,是系统的基准点。
[0027]步骤S106,在判断出属性为预设属性的情况下,将目标磁盘的磁盘分区表清零。用户若要重装操作系统或者向虚拟机中增加新的操作系统,则第一步必须修改虚拟磁盘(即,操作系统所处的磁盘)的分区表。虚拟磁盘的分区表位与虚拟磁盘的第一个逻辑扇区(以下称作A扇区),当有数据被写入该扇区时,如果执行写入操作的目标磁盘的属性为预设属性,则将目标磁盘的磁盘分区表清零,重装系统的过程被终止。具体地,在本发明实施例中,可以采用将写入A扇区的数据清零的方式,来将目标磁盘的磁盘分区表清零。
[0028]若要重装操作系统,则第一步必须修改目标磁盘的磁盘分区表,本发明第一实施例的防止虚拟机逃逸的方法,通过将目标磁盘的磁盘分区表清零,阻止对操作系统的分区表进行更改的操作,实现了终止重装系统的过程,从而能防止用户非法重装操作系统或增加非法的操作系统,解决了虚拟机容易逃逸的问题,从而达到了使衍生镜像系统不脱离管理平台控制的效果。
[0029]进一步地,对于目标磁盘属性的获取,可以在操作系统处于向A扇区进行写操作状态下进行,即,在操作系统处于向A扇区进行写操作状态下,获取目标磁盘的属性。
[0030]如果操作系统不处于向A扇区进行写操作状态下,说明磁盘分区表没有要被更改,此时,不可能实现重装操作系统或者新增操作系统,仅在系统处于向A扇区进行写操作状态下检查目标磁盘属性能够节省虚拟机的资源,从而达到提高虚拟机工作效率的效果。
[0031]进一步地,操作系统安装在虚拟机的虚拟磁盘上,虚拟磁盘的格式信息中包括目标磁盘的属性标签,本发明实施例所提供的防止虚拟机逃逸的方法,可以从属性标签中获取操作系统的属性。
[0032]更进一步地,虚拟磁盘为由开源的虚拟机模拟软件QEUM仿真的镜像格式的虚拟磁盘,磁盘格式为qcow2。采用qcow2格式的镜像文件能方便的对磁盘进行管理。
[0033]图2是根据本发明第二实施例的防止虚拟机逃逸的方法的流程图,该第二实施例所示出的防止虚拟机逃逸的方法,可以作为本发明第一实施例的防止虚拟机逃逸的方法的一种优选实施例,如图2所示,该方法包括如下的步骤S202至步骤S208:
[0034]步骤S202,获取虚拟机目标磁盘的属性,其中,目标磁盘为虚拟机操作系统所安装的磁盘。虚拟机的目标磁盘具有内在的格式逻辑作为虚拟磁盘的磁盘驱动器,虚拟磁盘的磁盘驱动器可以通过读取磁盘格式信息,来获取虚拟机目标磁盘的属性。
[0035]步骤S204,判断目标磁盘的属性是否为预设属性。预设属性表示禁止替换操作系统。若目标磁盘为衍生磁盘,则系统的属性为禁止替换操作系统。衍生虚拟磁盘是基础虚拟磁盘的副本,供用户使用。基础虚拟磁盘具有只读属性,是系统的基准点。
[0036]步骤S206,在判断出目标磁盘的属性为预设属性的情况下,备份分区表信息。操作系统的虚拟磁盘的分区表如果被清零,则操作系统无法启动。为了便于在虚拟磁盘分区表被清零后恢复目标磁盘,在清零前先备份分区表。
[0037]步骤S208,将目标磁盘的磁盘分区表清零。用户若要重装操作系统或者向虚拟机中增加新的操作系统,则第一步必须修改虚拟磁盘的分区表。虚拟磁盘的分区表位与虚拟磁盘的A扇区,当有数据被写入该扇区时,如果执行写入操作的目标磁盘的属性为预设属性,则将目标磁盘的磁盘分区表清零,重装系统的过程被终止。具体地,在本发明实施例中,可以采用将写入A扇区的数据清零的方式,来将目标磁盘的磁盘分区表清零。
[0038]通过备份虚拟磁盘的分区表,在阻止衍生系统用户重装系统的同时,后续能用备份的分区表恢复原有的操作系统,用户能继续使用原有的操作系统。
[0039]进一步地,对于目标磁盘属性的获取,可以在操作系统处于向A扇区进行写操作状态下进行,即,在操作系统处于向A扇区进行写操作状态下,获取目标磁盘的属性。
[0040]如果操作系统不处于向A扇区进行写操作状态下,说明磁盘分区表没有要被更改,此时,不可能实现重装操作系统或者新增操作系统,仅在系统处于向A扇区进行写操作状态下检查系统属性能够节省虚拟机的资源,从而达到提高虚拟机工作效率的效果。
[0041]进一步地,操作系统安装在虚拟机的虚拟磁盘上,虚拟磁盘的格式信息中包括目标磁盘的属性标签,本发明实施例所提供的防止虚拟机逃逸的方法,可以从属性标签中获取目标磁盘的属性。[0042]更进一步地,虚拟磁盘为由开源的虚拟机模拟软件QEUM仿真的镜像格式的虚拟磁盘,磁盘格式为qcow2。采用qcow2格式的镜像文件能方便的对磁盘进行管理。
[0043]本发明实施例还提供一种防止虚拟机逃逸的装置,该防止虚拟机逃逸的装置主要用于执行本发明实施例上述内容所提供的防止虚拟机逃逸的方法,以下对本发明实施例所提供的防止虚拟机逃逸的装置进行具体介绍:
[0044]图3是根据本发明第一实施例的防止虚拟机逃逸的装置的结构示意图,如图3所示,该防止虚拟机逃逸的装置包括获取单元10、判断单元20和清零单元40
[0045]获取单元10用于获取虚拟机目标磁盘的属性,其中,目标磁盘为虚拟机操作系统所安装的磁盘。虚拟机的虚拟磁盘具有内在的格式逻辑作为虚拟磁盘的磁盘驱动器,虚拟磁盘的磁盘驱动器可以通过读取磁盘格式信息,来获取虚拟机目标磁盘的属性。
[0046]判断单元20用于判断属性是否为预设属性。预设属性表示禁止替换操作系统。基础虚拟磁盘允许安装操作系统,当安装好了操作系统,即设置为只读,然后可衍生出衍生虚拟磁盘,此时衍生虚拟磁盘从基础虚拟磁盘继承了安装其上的操作系统;若虚拟磁盘(目标磁盘)为衍生虚拟磁盘,则磁盘的属性为禁止替换已安装其上的操作系统。衍生虚拟磁盘是基础虚拟磁盘的副本,供用户使用。基础虚拟磁盘具有只读属性,是系统的基准点。
[0047]清零单元40用于在判断出属性为预设属性的情况下,将目标磁盘的磁盘分区表清零。用户若要重装操作系统或者向虚拟机中增加新的操作系统,则第一步必须修改虚拟磁盘的分区表。虚拟磁盘的分区表位与虚拟磁盘的A扇区,当有数据被写入该扇区时,如果执行写入操作的目标磁盘的属性为预设属性,则将目标磁盘的磁盘分区表清零,重装系统的过程被终止。具体地,在本发明实施例中,可以采用将写入A扇区的数据清零的方式,来将目标磁盘的磁盘分区表清零。
[0048]若要重装操作系统,则第一步必须修改目标磁盘的磁盘分区表,本发明第一实施例的防止虚拟机逃逸的方法,通过将目标磁盘的磁盘分区表清零,阻止对操作系统的分区表进行更改的操作,实现了终止重装系统的过程,从而能防止用户非法重装操作系统或增加非法的操作系统,解决了虚拟机容易逃逸的问题,从而达到了使衍生镜像系统不脱离管理平台控制的效果。
[0049]图4是根据本发明第二实施例的防止虚拟机逃逸的装置的示意图。该第二实施例所示出的防止虚拟机逃逸的装置,可以作为本发明第一实施例的防止虚拟机逃逸的装置的一种优选实施例,如图4所示,该防止虚拟机逃逸的装置包括获取单元10、判断单元20、备份单元30和清零单元40。
[0050]获取单元10用于获取虚拟机目标磁盘的属性,其中,目标磁盘为虚拟机操作系统所安装的磁盘。虚拟机的虚拟磁盘具有内在的格式逻辑作为虚拟磁盘的磁盘驱动器,虚拟磁盘的磁盘驱动器可以通过读取磁盘格式信息,来获取虚拟机目标磁盘的属性。
[0051]判断单元20用于判断属性是否为预设属性。预设属性表示禁止替换操作系统。基础虚拟磁盘允许安装操作系统,当安装好了操作系统,即设置为只读,然后可衍生出衍生虚拟磁盘,此时衍生虚拟磁盘从基础虚拟磁盘继承了安装其上的操作系统;若虚拟磁盘(目标磁盘)为衍生虚拟磁盘,则磁盘的属性为禁止替换已安装其上的操作系统。衍生虚拟磁盘是基础虚拟磁盘的副本,供用户使用。基础虚拟磁盘具有只读属性,是系统的基准点。
[0052]备份单元30用于在判断单元20判断出属性为预设属性的情况下,将写入数据清零之前保存虚拟磁盘的分区表。操作系统的虚拟磁盘的分区表如果被清零,则操作系统无法启动。为了便于在虚拟磁盘分区表被清零后恢复操作系统,在清零前先备份分区表。
[0053]清零单元40用于将目标磁盘的磁盘分区表清零。用户若要重装操作系统或者向虚拟机中增加新的操作系统,则第一步必须修改虚拟磁盘的分区表。虚拟磁盘的分区表位与虚拟磁盘的A扇区,当有数据被写入该扇区时,如果执行写入操作的目标磁盘的属性为预设属性,则将目标磁盘的磁盘分区表清零,重装系统的过程被终止。具体地,在本发明实施例中,可以采用将写入A扇区的数据清零的方式,来将目标磁盘的磁盘分区表清零。
[0054]通过备份虚拟磁盘的分区表,在阻止衍生系统用户重装系统的同时,后续能用备份的分区表恢复原有的操作系统,用户能继续使用原有的操作系统。
[0055]从以上的描述中,可以看出,本发明实现了如下技术效果:通过将目标磁盘的磁盘分区表清零,阻止对目标磁盘的分区表进行更改的操作,实现了终止重装系统的过程,从而能防止用户非法重装操作系统或增加非法的操作系统,解决了虚拟机容易逃逸的问题,从而达到了使衍生镜像系统不脱离管理平台控制的效果。
[0056]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0057]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0058]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种防止虚拟机逃逸的方法,其特征在于,包括: 获取目标磁盘的属性,其中,所述目标磁盘为所述虚拟机操作系统所安装的磁盘; 判断所述属性是否为预设属性,其中,所述预设属性表示禁止替换所述操作系统;以及 在判断出所述属性为所述预设属性的情况下,将所述目标磁盘的磁盘分区表清零。
2.根据权利要求1所述的防止虚拟机逃逸的方法,其特征在于,在所述操作系统处于向A扇区进行写操作状态下,获取所述目标磁盘的属性,其中,所述A扇区为所述磁盘分区表所在扇区。
3.根据权利要求2所述的防止虚拟机逃逸的方法,其特征在于,将所述目标磁盘的磁盘分区表清零包括: 将写入所述A扇区的数据清零。
4.根据权利要求1所述的防止虚拟机逃逸的方法,其特征在于,所述操作系统安装在所述虚拟机的虚拟磁盘上,所述虚拟磁盘的格式信息包括所述目标磁盘的属性标签,获取目标磁盘的属性包括: 从所述属性标签中获取所述目标磁盘的属性。
5.根据权利要求1所述的防止虚拟机逃逸的方法,其特征在于,在将所述目标磁盘的磁盘分区表清零之前,所述防止虚拟机逃逸的方法还包括: 备份所述磁盘分区表。
6.一种防止虚拟机逃逸的装置,其特征在于,包括: 获取单元,用于获取目标磁盘的属性,其中,所述目标磁盘为所述虚拟机操作系统所安装的磁盘; 判断单元,用于判断所述属性是否为预设属性,其中,所述预设属性表示禁止替换所述操作系统;以及 清零单元,用于在判断出所述属性为所述预设属性的情况下,将所述目标磁盘的磁盘分区表清零。
7.根据权利要求6所述的防止虚拟机逃逸的装置,其特征在于,所述获取单元在所述操作系统处于向A扇区进行写操作状态下,获取所述目标磁盘的属性,其中,所述A扇区为所述磁盘分区表所在扇区。
8.根据权利要求7所述的防止虚拟机逃逸的装置,其特征在于,所述清零单元包括: 清零模块,用于将写入所述A扇区的数据清零。
9.根据权利要求6所述的防止虚拟机逃逸的装置,其特征在于,所述操作系统安装在所述虚拟机的虚拟磁盘上,所述虚拟磁盘的格式信息包括所述目标磁盘的属性标签,所述获取单元包括: 获取模块,用于从所述属性标签中获取所述目标磁盘的属性。
10.根据权利要求6所述的防止虚拟机逃逸的装置,其特征在于,所述防止虚拟机逃逸的装置还包括: 备份单元,用于在将所述目标磁盘的磁盘分区表清零之前,备份所述磁盘分区表。
【文档编号】G06F9/455GK103577246SQ201310560897
【公开日】2014年2月12日 申请日期:2013年11月12日 优先权日:2013年11月12日
【发明者】杨耀敏, 朱理, 高良伟, 周雄峰, 钟乐员 申请人:浙江云巢科技有限公司