CN102063585A - 一种基于Xen的安全的虚拟磁盘的访问控制方法 - Google Patents

一种基于Xen的安全的虚拟磁盘的访问控制方法 Download PDF

Info

Publication number
CN102063585A
CN102063585A CN2010105296954A CN201010529695A CN102063585A CN 102063585 A CN102063585 A CN 102063585A CN 2010105296954 A CN2010105296954 A CN 2010105296954A CN 201010529695 A CN201010529695 A CN 201010529695A CN 102063585 A CN102063585 A CN 102063585A
Authority
CN
China
Prior art keywords
virtual
disk
virtual disk
access control
client system
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
CN2010105296954A
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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN2010105296954A priority Critical patent/CN102063585A/zh
Publication of CN102063585A publication Critical patent/CN102063585A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明为一种基于Xen的安全的虚拟磁盘的访问控制方法。本发明通过研究基于Xen安全计算机的虚拟客户系统间通过虚拟磁盘来实现数据交互和它们的不足,分析Qemu虚拟磁盘模型,利用Xen虚拟机虚拟磁盘操作的原理,设计并实现了一种基于CPU的I/O指令以及动态装载磁盘的访问控制方法,以此在保证系统性能的前提下,使得虚拟磁盘访问控制更加安全可控,加强了计算机系统的数据安全性。

Description

一种基于Xen的安全的虚拟磁盘的访问控制方法
技术领域
本发明属于信息安全的访问控制领域。
背景技术
Xen直接运行在系统硬件之上,占据处理器特权级中的Ring 0,各个虚拟客户系统占据Ring 1,应用程序处于Ring 3。Xen将许多工作剥离出来,自己本身只负责一些特权操作。被剥离出来的工作包括创建和管理虚拟机、管理真实硬件等,都是由一个特权域Domain 0来完成,它是整个架构的宿主系统。其他虚拟系统称为Domain U,它们的前端驱动将操作请求传给Domain 0的后端驱动,接着后端驱动调用设备驱动程序访问硬件完成实际的操作。
虚拟磁盘的主要应用领域分为两类:第一是在本地电脑中虚拟出一个远程电脑的磁盘作为本地磁盘,实际上不存在于本机上,用于加大客户机硬盘容量,达到通过网络共享服务器磁盘节省硬盘容量的效果。目前的研究方向主要集中在提高系统的I/O性能和数据可用性上。还有一种虚拟磁盘是在内存中划分出一块区域作为临时磁盘使用,这样做同样是为了提高计算机的I/O性能。可见当前研究重点并不在如何保证数据的安全性上。前者依赖于网络环境,存在着诸多如数据泄密和数据窃取等不安全因素。而虚拟机中的虚拟磁盘主要用于为虚拟客户系统提供真实硬盘的体验,同时可以通过非网络方式实现虚拟客户系统之间的数据共享。与传统的IDE设备相比,它具有可以实现控制读写和动态装载的优点;而与网络设备相比,不受网络带宽的影响从而拥有更高的I/O读写速度,同时减少数据的可传播途径从而拥有更高的安全性。
尽管虚拟磁盘拥有以上优势,但仍有以下几点不足:由于是传统IDE磁盘的纯软件模拟,它和IDE磁盘一样具有无法控制读写和动态装载的缺点;同时它还存在不安全的因素,如缺乏必要的数据检验机制,导致共享数据的提供者可能错误地共享了机密数据。
发明内容
针对前面技术背景中所述的虚拟磁盘在实现与应用中存在的安全隐患,本发明研究了Xen虚拟机中虚拟磁盘的实现方式和I/O操作请求处理原理,设计并实现了一种基于Xen的安全的虚拟磁盘访问控制方法。
为了实现发明目的,采用的技术方案如下:
一种基于Xen的安全的虚拟磁盘的访问控制系统包括虚拟磁盘控制系统,数据共享系统以及访问控制系统三个方面。虚拟客户系统中存在多个虚拟磁盘设备,包括系统运行所必须要的虚拟磁盘和其它用户数据存储和共享的磁盘等;对于虚拟客户系统可见的磁盘存在于Domain0宿主系统中的磁盘镜像文件。这样,数据共享系统就通过共享虚拟磁盘来实现在各个虚拟客户系统之间进行数据共享。访问控制系统在宿主系统和虚拟客户系统中都有部署,所述访问控制系统分别设置全虚拟化环境下的半虚拟驱动于虚拟客户系统与宿主系统中,所述半虚拟驱动设置于虚拟客户系统的称为前端驱动,设置于宿主系统的称为后端驱动,其中由虚拟客户系统主动向宿主系统发起对共享虚拟磁盘的访问控制操作的要求,虚拟磁盘控制系统在设备驱动层添加控制模块,实现对虚拟磁盘的可控操作。根据不同安全级别将限制不同I/O操作权限。同时,根据不同的I/O操作权限,动态装载临时磁盘以替换存在隐患的磁盘,以实现安全的磁盘访问控制。
上述通过共享虚拟磁盘来实现的数据共享的方法,比传统的一些共享内存方法具有更高的效率,比通过网络方式实现的数据共享具有更高的安全性。
本发明所述的虚拟磁盘的访问控制方法,实现了各个虚拟客户系统之间通过共享虚拟磁盘来达到共享数据的目的。访问控制系统分别部署于宿主系统与虚拟客户系统,虚拟客户系统通过前端驱动向宿主系统发起对共享磁盘的访问操作的请求,宿主系统通过后端驱动接收虚拟客户系统的操作请求,并把此请求交给虚拟磁盘控制系统进行处理。
所述的虚拟磁盘控制系统监控各个虚拟客户系统对虚拟磁盘的操作,为了防止虚拟客户系统对类似机密文件进行操作的这一类不安全行为的发生,虚拟磁盘控制系统将在设备驱动层中添加控制模块。另外,所述的虚拟磁盘控制模块根据不同的安全级别划分不同的I/O操作权限,根据这个I/O操作权限,动态转载临时磁盘以替换存在安全隐患的磁盘,以实现安全磁盘的访问控制。
基于以上的描述,可以总结出本发明的优点如下:
一、本发明所述的虚拟磁盘访问控制方法不依赖于网络上的任何方式,所以较之于通过网络方式进行数据共享,有更高的安全性。
二、通过共享虚拟磁盘来实现数据共享,可是实现大数据的快速共享访问,具有更高的效率。
三、通过虚拟磁盘访问控制系统在设备驱动层添加控制模块来实现磁盘的访问控制,安全可控性更强。
四、通过动态挂在磁盘来加强了虚拟磁盘访问控制的安全性。
附图说明
图1为本发明虚拟磁盘的访问控制中安全的I/O操作的实现结构图;
图2为本发明虚拟磁盘的访问控制中不安全的I/O操作的实现结构图;
图3为本发明读写控制中分析的Qemu-dm执行I/O操作的过程图;
图4为本发明动态转载中分析的虚拟磁盘信息图;
具体实施方式
下面结合附图对本发明的实现做进一步的说明。
如图1和图2所示,本发明的总体结构为:虚拟客户系统当中存在多个虚拟磁盘设备,其中除了系统运行所必须要的虚拟磁盘VD1,虚拟客户系统中还存在有其它用户数据存储和共享的磁盘VDn等;而这些对于虚拟客户系统可见的磁盘实际是存在于Domain0宿主系统中的磁盘镜像文件VD1.img及VDn.img等。虚拟客户系统中VD1磁盘的访问被视为安全操作,而当用于数据存储的磁盘VDn中保存有机密文件的时候,此时对该磁盘的任何读写操作将视为不安全的。虚拟客户系统中的I/O操作具体实现都是由Qemu-dm中的虚拟磁盘设备的相应驱动程序来实现。本发明考虑虚拟磁盘存在多种不同格式的驱动,提出在设备驱动层添加控制模块,实现对虚拟磁盘的可控操作。根据不同安全级别将限制不同I/O操作权限。同时,根据不同的I/O操作权限,动态装载临时磁盘以替换存在隐患的磁盘,以实现安全的磁盘访问控制。
如图3所示,本发明分析了在读写控制中Qemu-dm执行I/O操作的过程。在全虚拟客户系统中,对磁盘的操作实际上是通过CPU的IN和OUT指令来完成的,指令中的地址就是IDE协议中规定的I/O映射地址。如果直接执行虚拟客户系统的这些I/O指令,将会操作到物理磁盘。所以Xen的Hypervisor借助CPU的硬件虚拟化技术捕获了I/O指令,并将其封装成一种I/O请求结构buf_ioreq_t,然后放入缓存队列buffered_io_page中。在Qemu-dm的主循环函数main_loop()中,有一个handle_buffered_io()函数负责软件模拟处理buffered_io_page队列中缓存的I/O操作。该函数从buffered_io_page中依次取出I/O请求,然后往下逐层分发处理。最终,由CPU产生的I/O请求将会由cpu_ioreq_pio()来处理。若为虚拟磁盘的读请求,则调用ioport_read;若为写请求,则调用ioport_write。Qemu-dm中维护了两个I/O操作表,ioport_read_table和ioport_write_table,来分别负责处理读和写操作,表的元素是函数指针,而索引值则是I/O端口的地址。cpu_ioreq_pio()获得一个I/O请求之后,根据其操作类型和地址,可以获得负责完成该I/O请求的处理函数。过程如错误!未找到引用源。所示,与虚拟磁盘对应的I/O请求处理函数为ide_ioport_write()和ide_ioport_read()。
跟踪虚拟IDE设备的初始化过程,可以发现ide_init_ioport()函数向上述两个I/O操作表中注册了一系列函数,其中包括与虚拟磁盘读写对应的ide_ioport_read()和ide_ioport_write()。进一步跟踪其代码可以看到,这两个函数分别调用了ide_sector_read()和ide_sector_write()来完成具体扇区的读写操作。所以,只需将检查访问权限的代码插入到这两个函数中,就可以实现在每次处理虚拟客户系统的I/O请求时对虚拟磁盘的动态读写控制。
如图4所示,为实现动态装载,本发明在分析虚拟磁盘信息基础上,提出对于存在安全隐患的磁盘,需要撤销其任何操作权限并将此磁盘卸载,提供一块备用磁盘替换被卸载的磁盘,给用户保存临时文件。在每个qemu-dm守护进程中,都维护了一个DriveInfo类型的数组drives_table,它的主要作用是模拟了真实机器的设备模型,绑定了BlockDriverState结构(bdrv)。而BlockDriverState结构实际上对应的就是虚拟磁盘镜像,它包含了虚拟磁盘的一些信息,如路径名filename等,而我们需要的读写控制开关变量正是设置在这里,磁盘的动态装载则要考虑替换BlockDriverState结构。它还绑定了BlockDriver结构,这个结构以函数指针为主,在初始化时其函数指针指向对应磁盘格式的处理函数(如IDE设备),其中包括了读写函数还有磁盘装载及卸载函数,构成了一套最底层的虚拟磁盘操作函数。如错误!未找到引用源。所示,这样就确定了每个虚拟客户系统对应的虚拟磁盘以及其对应的操作处理函数。因此,虚拟磁盘的装载及卸载可以通过设置路径名filename和调用相关已初始化的磁盘装载卸载函数实现。
具体的动态装载某虚拟磁盘(路径名为file_name)操作流程如下:
1.先遍历该虚拟客户系统的drives_table,寻找与file_name相同的filename对应的BlockDriverState结构bs;
2.然后调用其BlockDriver结构里已注册好的bdrv_close函数(实际上是raw_close),动态卸载这块虚拟磁盘;
3.接着调用bdrv_open函数(实际上它是通过bdrv_open2函数而最终调用了raw_open函数)对该bs结构进行一系列的封装及初始化,使其绑定了替换磁盘的信息,并最终完成动态装载。

Claims (6)

1.一种基于Xen的安全的虚拟磁盘的访问控制方法,包括虚拟磁盘控制系统,数据共享系统以及访问控制系统三个方面,所述数据共享系统设置在XEN宿主系统中,通过宿主系统创建多个虚拟客户系统对存在于宿主系统的同一虚拟磁盘进行数据共享,所述访问控制系统在宿主系统和虚拟客户系统中都有部署,其中由虚拟客户系统主动向宿主系统发起对共享虚拟磁盘的访问控制操作的要求,其特征在于,所述虚拟磁盘控制系统在设备驱动层添加控制模块,实现对虚拟磁盘的可控操作。
2.根据权利要求1所述的虚拟磁盘的访问控制方法,其特征在于,所述虚拟客户系统中存在多个虚拟磁盘设备,包括系统运行所必须要的虚拟磁盘和其它用户数据存储和共享的磁盘等,对于虚拟客户系统可见的磁盘为Domain0宿主系统中的磁盘镜像文件,所述数据共享系统就通过共享虚拟磁盘来实现在各个虚拟客户系统之间进行数据共享。
3.根据权利要求1所述的虚拟磁盘的访问控制方法,其特征在于,能够完成虚拟客户系统对共享的虚拟磁盘的访问控制,所述访问控制系统分别设置全虚拟化环境下的半虚拟驱动于虚拟客户系统与宿主系统中,所述半虚拟驱动设置于虚拟客户系统的称为前端驱动,设置在宿主系统的称为后端驱动,虚拟客户系统通过前端驱动向宿主系统发起对共享磁盘的访问操作的请求,宿主系统通过后端驱动接收虚拟客户系统的操作请求,并把此请求交给虚拟磁盘控制系统进行处理。
4.根据权利要求3所述的虚拟磁盘的访问控制方法,其特征在于,共享数据的访问控制操作由虚拟磁盘控制系统实现,所述虚拟磁盘控制系统监控各个虚拟客户系统对虚拟磁盘的操作,为了防止虚拟客户系统对类似机密文件进行操作等不安全行为的发生,虚拟磁盘控制系统在设备驱动层中添加控制模块,根据不同安全级别将限制不同I/O操作权限。
5.根据权利要求4所述的虚拟磁盘的访问控制方法,其特征在于,所述共享数据访问控制由共享虚拟磁盘的读写权限控制来实现。
6.根据权利要求1或4所述的虚拟磁盘的访问控制方法,其特征在于,所述的虚拟磁盘控制模块根据不同的安全级别划分不同的I/O操作权限,根据这个I/O操作权限,动态转载临时磁盘以替换存在安全隐患的磁盘,以实现安全磁盘的访问控制。
CN2010105296954A 2010-10-29 2010-10-29 一种基于Xen的安全的虚拟磁盘的访问控制方法 Pending CN102063585A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105296954A CN102063585A (zh) 2010-10-29 2010-10-29 一种基于Xen的安全的虚拟磁盘的访问控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105296954A CN102063585A (zh) 2010-10-29 2010-10-29 一种基于Xen的安全的虚拟磁盘的访问控制方法

Publications (1)

Publication Number Publication Date
CN102063585A true CN102063585A (zh) 2011-05-18

Family

ID=43998857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105296954A Pending CN102063585A (zh) 2010-10-29 2010-10-29 一种基于Xen的安全的虚拟磁盘的访问控制方法

Country Status (1)

Country Link
CN (1) CN102063585A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017113781A1 (zh) * 2015-12-30 2017-07-06 福建联迪商用设备有限公司 一种虚拟内存数据的保护方法及其系统
CN107515774A (zh) * 2016-06-15 2017-12-26 阿里巴巴集团控股有限公司 一种在线替换虚拟操作系统底层块设备驱动的方法和装置
CN108694327A (zh) * 2017-04-11 2018-10-23 精品科技股份有限公司 虚拟磁盘的防护系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235474A1 (en) * 2007-03-21 2008-09-25 Samsung Electronics Co., Ltd. Method and system for processing access to disk block
CN101403983A (zh) * 2008-11-25 2009-04-08 北京航空航天大学 基于虚拟机的多核处理器的资源监控方法及系统
CN101661381A (zh) * 2009-09-08 2010-03-03 华南理工大学 一种基于Xen的数据共享与访问控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235474A1 (en) * 2007-03-21 2008-09-25 Samsung Electronics Co., Ltd. Method and system for processing access to disk block
CN101403983A (zh) * 2008-11-25 2009-04-08 北京航空航天大学 基于虚拟机的多核处理器的资源监控方法及系统
CN101661381A (zh) * 2009-09-08 2010-03-03 华南理工大学 一种基于Xen的数据共享与访问控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIU FAIGUI等: "A Xen-based Data Sharing & Access Controlling Method", 《2009 INTERNATIONAL CONFERENCE ON ELECTRONIC COMPUTER TECHNOLOGY》 *
LIU FAIGUI等: "A Xen-based Data Sharing & Access Controlling Method", 《2009 INTERNATIONAL CONFERENCE ON ELECTRONIC COMPUTER TECHNOLOGY》, 22 November 2009 (2009-11-22), pages 7 - 10, XP031593361 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017113781A1 (zh) * 2015-12-30 2017-07-06 福建联迪商用设备有限公司 一种虚拟内存数据的保护方法及其系统
CN107515774A (zh) * 2016-06-15 2017-12-26 阿里巴巴集团控股有限公司 一种在线替换虚拟操作系统底层块设备驱动的方法和装置
CN107515774B (zh) * 2016-06-15 2021-02-05 阿里巴巴集团控股有限公司 一种在线替换虚拟操作系统底层块设备驱动的方法和装置
CN108694327A (zh) * 2017-04-11 2018-10-23 精品科技股份有限公司 虚拟磁盘的防护系统

Similar Documents

Publication Publication Date Title
JP5079246B2 (ja) 仮想マシン環境におけるマルチレベルインターセプト処理のためのシステムおよび方法
US11614873B2 (en) Virtual disk storage techniques
Waldspurger et al. I/o virtualization
CN102207886B (zh) 虚拟机快速仿真辅助
US7725305B2 (en) Partial virtualization on computing device
US7788665B2 (en) Migrating a virtual machine that owns a resource such as a hardware device
KR101220072B1 (ko) 그래픽 서브 시스템들을 가상화하기 위한 시스템들 및방법들
JP5042848B2 (ja) 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
US9075539B2 (en) Virtualizing storage for WPAR clients that share a common operating system of logical partition
EP1548589B1 (en) Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
US9626324B2 (en) Input/output acceleration in virtualized information handling systems
US9043923B2 (en) Virtual machine monitor (VMM) extension for time shared accelerator management and side-channel vulnerability prevention
US20090235358A1 (en) Systems and methods for attaching a virtual machine virtual hard disk to a host machine
US20060005186A1 (en) Systems and methods for stack-jumping between a virtual machine and a host environment
US20120072908A1 (en) System and method for affinity dispatching for task management in an emulated multiprocessor environment
CN101968746A (zh) 一种内核虚拟机组织架构模式的实现方法
US20100169882A1 (en) Multiple Layers of Virtualization in a Computing System
Rosenblum et al. I/O Virtualization: Decoupling a logical device from its physical implementation offers many compelling advantages.
WO2016101282A1 (zh) 一种i/o任务处理的方法、设备和系统
US20210011750A1 (en) Architectural data mover for raid xor acceleration in a virtualized storage appliance
CN102063585A (zh) 一种基于Xen的安全的虚拟磁盘的访问控制方法
US8402191B2 (en) Computing element virtualization
CN103902354A (zh) 一种虚拟化应用中快速初始化磁盘的方法
Hartig et al. L4-virtualization and beyond
Li et al. The Shared Memory Based Cryptographic Card Virtualization

Legal Events

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

Application publication date: 20110518