CN112433822A - 基于三权分立的跨域网络终端虚拟机的实现方法 - Google Patents
基于三权分立的跨域网络终端虚拟机的实现方法 Download PDFInfo
- Publication number
- CN112433822A CN112433822A CN202011428331.7A CN202011428331A CN112433822A CN 112433822 A CN112433822 A CN 112433822A CN 202011428331 A CN202011428331 A CN 202011428331A CN 112433822 A CN112433822 A CN 112433822A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- user
- management
- virtual
- network
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000000926 separation method Methods 0.000 title claims abstract description 25
- 230000007246 mechanism Effects 0.000 claims abstract description 31
- 238000002955 isolation Methods 0.000 claims abstract description 20
- 238000004891 communication Methods 0.000 claims abstract description 8
- 238000007726 management method Methods 0.000 claims description 320
- 238000003860 storage Methods 0.000 claims description 83
- 238000012544 monitoring process Methods 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 38
- 238000013461 design Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 16
- 238000012986 modification Methods 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 9
- 238000005259 measurement Methods 0.000 claims description 7
- 230000006378 damage Effects 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 6
- 238000013486 operation strategy Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 6
- 230000001010 compromised effect Effects 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 239000007943 implant Substances 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 239000007787 solid Substances 0.000 claims description 4
- 238000013474 audit trail Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 230000001066 destructive effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 238000005538 encapsulation Methods 0.000 claims description 3
- 238000009472 formulation Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 claims description 3
- 230000035515 penetration Effects 0.000 claims description 3
- 230000000717 retained effect Effects 0.000 claims description 3
- 238000005520 cutting process Methods 0.000 claims description 2
- 238000009826 distribution Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 6
- 230000008520 organization Effects 0.000 description 6
- 230000000644 propagated effect Effects 0.000 description 3
- 238000007789 sealing Methods 0.000 description 3
- 230000002354 daily effect Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于操作系统技术领域,具体涉及一种基于三权分立的跨域网络终端虚拟机的实现方法。与现有技术相比较,本发明在设计操作系统结构时,借鉴了政治制度中的三权分立原则,即将策略的制定、策略的实施和用户程序的执行三部分分割开来,让它们分别运行在三类不同的虚拟机上。利用虚拟机之间的强隔离特性保证各部分之间的独立性,利用专门设计的虚拟机间通信机制实现各部分间的协作与制约。基于三权分立的安全基将操作系统的管理、I/O执行和用户操作分给不同的虚拟机来操作,解决了目前传统操作系统权力太大,既是计算机资源的管理者又是计算机资源的使用者的现象,从计算机系统结构层面解决了计算机的先天安全问题。
Description
技术领域
本发明属于操作系统技术领域,具体涉及一种基于三权分立的跨域网络终端虚拟机的实现方法。
背景技术
在传统操作系统结构中,策略制定、策略实施、系统管理、设备管理、用户程序执行等都混在一起,全部由操作系统的功能组件负责。由于这些组件之间不能彻底隔离,一个组件的问题会迅速传播到其它组件,因而传统操作系统的安全性、可靠性都不高。另外,在传统的计算机系统中,操作系统是运行在硬件之上的第一层软件,它拥有最高的特权,并负责全权管理计算机系统的所有资源,包括处理器、内存、外存、网卡、其它外部设备,以及进程、文件、各种策略和配置数据等。在传统操作系统结构中,策略制定、策略实施、系统管理、设备管理、用户程序执行等都混在一起,全部由操作系统的功能组件负责。由于这些组件之间不能彻底隔离,一个组件的问题会迅速传播到其它组件,因而传统操作系统的安全性、可靠性都不高。另外,在传统的计算机系统中,操作系统是运行在硬件之上的第一层软件,它拥有最高的特权,并负责全权管理计算机系统的所有资源,包括处理器、内存、外存、网卡、其它外部设备,以及进程、文件、各种策略和配置数据等。
在传统操作系统结构中,策略制定、策略实施、系统管理、设备管理、用户程序执行等都混在一起,全部由操作系统的功能组件负责。由于这些组件之间不能彻底隔离,一个组件的问题会迅速传播到其它组件,因而传统操作系统的安全性、可靠性都不高。
另外,在传统的计算机系统中,操作系统是运行在硬件之上的第一层软件,它拥有最高的特权,并负责全权管理计算机系统的所有资源,包括处理器、内存、外存、网卡、其它外部设备,以及进程、文件、各种策略和配置数据等。这种结构的操作系统主要存在如下一些问题:
(1)集各种权力于一身,体制不完善。
在传统结构中,操作系统是一个独立的实体,它既是各类政策的制定者,又是这些政策的执行者;既是各类资源的管理者,又是这些资源的使用者。从社会学的角度来说,这种集各种权力于一身的体制是不完善的,虽然它能够提高系统的整体运行效率。如果系统本身存在漏洞(事实证明,漏洞总是存在的),而又被恶意利用的话,系统的权力就容易被窃取并被滥用,整个系统就容易失控,甚至崩溃。这是目前计算机系统安全性、可靠性、可用性不高的一个主要原因。在比较合理的操作系统结构中,权力应该被适当地划分,系统也应该被分成不同的实体,使每个实体仅拥有一部分权力。这些实体之间应该既相互独立而又相互制约,既相互合作而又相互监督,它们独立而又协调地工作,从而保证计算机系统安全、可靠地运行。
(2)各成员之间相互影响,隔离不彻底。
在传统结构中,操作系统也被分成不同的组成部分,如操作系统内核与用户进程,其中操作系统内核又被分成不同的子系统,如进程管理、内存管理、文件系统、设备管理等。通常情况下,操作系统内核被设计成一个整体,各子系统之间并没有独立的边界,它们能够互相调用、互相影响。传统操作系统中较好的隔离机制是通过进程实现的,每个进程都有自己独立的虚拟地址空间,从用户的角度看,它们是互相独立的。然而,在所有进程的地址空间中其实存在着一块公共的区域,即内核,在32位Linux系统中,内核占用进程1GB的虚拟内存空间,在32位Windows系统中,内核占用进程2GB的虚拟地址空间。也就是说,从内核的角度看,各个进程之间实际上拥有大片的公共区域,它们之间的隔离是不彻底的。另外,操作系统还提供了共享内存机制,允许进程之间建立共享内存区域,使进程虚拟地址空间的用户部分也可能出现重叠。显然,在现有的操作系统结构中,很难建立起相互独立的运行实体。
(3)需引入第三方代码,内核封闭性差。
通用操作系统必须能够支持各种各样的外部设备、文件系统、网络协议等。而外部设备驱动程序、文件系统、网络协议等都是操作系统内核的重要组成部分,必须运行在内核空间(微内核除外)。由于新的外部设备、文件系统、网络协议等几乎每天都在出现,因而在内核中包含所有的设备驱动程序、文件系统、网络协议等是不现实的。常用的解决办法是打破内核的封闭性,允许动态地向其中插入模块。这种方法解决了操作系统的可扩展性、适应性问题,但又引入了可靠性与安全性问题。原因是插入到内核中的设备驱动程序、文件系统、网络协议等都是第三方设计的,其代码质量难以保证、代码行为难以控制。研究表明,在Windows XP操作系统中,85%的系统崩溃是由驱动程序引起的;在Linux操作系统中,驱动程序的出错频率是内核其余部分的3到7倍。显然,要提高计算机系统的可靠性、安全性,就应该解决操作系统内核封闭性与可扩展性的矛盾,应该杜绝向内核中插入模块,至少是应该减少向内核中插入模块的可能,同时又应该允许运行第三方的驱动程序、文件系统和网络协议。
(4)需要安装应用程序,环境封闭性差。
在计算机系统使用过程中,经常需要安装新的应用程序或更新老的应用程序,而应用程序的可靠性、安全性又难以保证。研究表明,对于计算机的攻击事件大多发生在用户态,很大程度上都是利用应用程序的安全漏洞发起的,如缓冲区溢出、后门攻击等。一旦这种攻击成功,恶意代码将以当前用户的身份运行,它发出的所有命令都是合法的,操作系统的安全机制甚至无法觉察到恶意代码的存在,也无法阻止这类攻击。
另外,在传统操作系统结构中,所有的应用程序都在同一个环境中执行,具有相同的资源访问权限,而不管它们的来源是否可信。执行不可信的程序很容易破坏系统的完整性,向系统中引入病毒、木马等恶意程序,造成系统失效、信息泄漏等危害。因此,环境的非封闭性是导致系统安全性、可靠性差的另一个主要原因。
理想的情况是为易受攻击的或不可信的程序提供独立的执行环境,并确保即使这类程序所在的执行环境受到破坏,也不至于影响其它可信程序的执行。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种基于三权分立的跨域网络终端虚拟机的实现方法。
(二)技术方案
为解决上述技术问题,本发明提供一种基于三权分立的跨域网络终端虚拟机的实现方法,所述虚拟机的实现方法借鉴了政治制度中的三权分立原则,即将策略的制定、策略的实施和用户程序的执行三部分分割开来,让它们分别运行在三类不同的虚拟机上;利用虚拟机之间的强隔离特性保证各部分之间的独立性,利用专门设计的虚拟机间通信机制实现各部分间的协作与制约;
所述虚拟机的操作系统被分成两层,虚拟机与虚拟机监控器;虚拟机监控器是直接运行在计算机硬件之上的第一层软件,处于传统操作系统的位置,控制所有的计算机硬件,包括处理器、内存、外存、网卡及其它外部设备,并实现这些硬件的虚拟化,将一台物理计算机虚拟成多台独立的虚拟机;对虚拟机的用户来说,虚拟机与真实的计算机是一样的,它拥有自己的处理器、内存和外部设备,可以运行自己的操作系统和应用程序;虚拟机之间完全隔离,各虚拟机独立运行,只能通过特定的手段相互通信;
在横向上,操作系统被分成了三组相互独立的实体,分别运行在三组独立的虚拟机中;他们分别是:
管理虚拟机,用于负责系统的决策与管理;
执行虚拟机,用于负责外部设备的管理与存取控制;
用户虚拟机,用于负责与用户的交互,处理用户的日常工作;
在这种结构中,传统操作系统的工作被分割开,分别交给了不同的实体承担;传统操作系统的权力也被分割开,分别赋予了不同的实体;三组虚拟机之间相互独立、相互协作、相互制约,它们协调工作,共同完成整个计算机系统的管理工作;对用户来说,整个系统是一个有机的整体,而不再是多个分立的系统,用户甚至感觉不到虚拟机的存在。
其中,当执行某一个系统任务时,客户虚拟机首先向管理虚拟机申请许可,同时向执行虚拟机请求操作,执行虚拟机只有既得到了管理虚拟机的许可和又得到了用户虚拟机的执行请求的情况下,才会执行;这样就避免了管理虚拟机被攻克的情况下,系统级操作不受控制的结果;大大降低了客户虚拟机之间穿透风险。
其中,所述管理虚拟机是整个虚拟机管理的核心,它负责管理整个操作系统的运行;管理虚拟机内包括策略管理系统、设备管理系统、虚拟机管理系统、安全管理系统和元数据管理系统;
所述策略管理系统负责管理整个操作系统运行所需要的各种策略,包括存储对象的存取策略、网络数据包的过滤策略、外部设备的分配策略和访问控制策略、系统资源的分配策略、用户虚拟机的创建与运行策略;
所述虚拟机管理系统负责管理系统中的用户虚拟机和执行虚拟机,包括虚拟机的动态创建与销毁、虚拟机资源的分配、虚拟机运行策略的维护、虚拟机运行状态的监控;
所述设备管理系统负责管理执行虚拟机及其中的各类外部设备,包括设备驱动程序的加载、执行虚拟机的监控与重启、外部设备的分配、外部设备故障后的隔离;
所述元数据管理系统负责管理文件系统的名字空间,即目录树,实现文件系统的管理操作,包括文件或目录的创建、删除、换名,并负责文件路径名的解析和对象安全证书的发放;
所述安全管理系统负责整个操作系统的安全监控,包括系统运行日志管理、审计跟踪、入侵检测;
与用户虚拟机相同,管理虚拟机也没有外部设备,其操作系统也被简化了,它甚至可以不含网络协议。
其中,在三组虚拟机中,所述执行虚拟机是最基础的,执行虚拟机包括存储VM和网络VM,因为只有执行虚拟机才拥有外部设备,也只有执行虚拟机能够直接存取、操作外部设备;因而,执行虚拟机的主体部分是一组外部设备驱动程序,包括各类块设备驱动程序、各类网络设备驱动程序和字符设备驱动程序;
为了提高系统的安全性,在块设备驱动程序之上增加了存储对象管理系统充当块设备管理系统,负责块设备存储空间的管理和安全检查;存储对象管理系统将普通的块设备转化成了基于对象的存储设备,它向外提供对象接口,并提供对象级的存取控制;
用户虚拟机和管理虚拟机以对象为单位访问执行虚拟机上的块设备,而且每一次访问都必须携带安全证书;在网络设备驱动程序之上增加了统一威胁管理,负责来往数据包的过滤与检查,禁止非法数据包的出入;在字符设备驱动程序之上也有相应的控制系统,负责这些字符设备的访问控制;
为了解决操作系统内核的封闭性与可扩展性问题,减少不可靠驱动程序的影响,系统提供了多个执行虚拟机;至少应该提供两个执行虚拟机,即基本执行虚拟机和扩展执行虚拟机;
基本执行虚拟机管理计算机系统中最基本的外部设备,包括硬盘、显示器、键盘、鼠标,这些设备是系统运行所必须的,其驱动程序是由操作系统提供的,并经过了严格的测试与检查,具有较高的可靠性和安全性,而且在以后的运行过程中不再改变;
扩展执行虚拟机管理经常变动的外部设备,包括USB设备;扩展虚拟机中的设备驱动程序是动态加载的,其可靠性通常不高;
如此分割以后,基本执行虚拟机保持封闭状态,以保证系统运行所需要的最基本的外部设备始终能够正常运行;扩展执行虚拟机处于开放状态,所有需要动态加载的驱动程序都运行在扩展执行虚拟机中,该执行虚拟机可能崩溃,但它的崩溃仅仅会使某些扩展设备暂时不能使用,并不会导致系统其它部分的崩溃;
基本执行虚拟机包括网络和存储部分。
其中,对于基本执行虚拟机的网络虚拟机设计方案而言:
跨域安全终端为每个用户VM提供一个网络VM,由后者为其提供虚拟网络接口,由于每个网络VM通过VT-c机制使用预定义的单个网卡或者多端口网卡的一个特定网络端口,因此各个用户VM间的网络流量是严格隔离的,这样可以确保跨域安全终端同时多域访问时的网络数据安全;
为每个用户VM提供一个网络VM的原因是:
首先,虽然可以使用单个网络VM连接多个域网,为所有用户VM提供相互隔离的网络访问服务,但在跨域环境下,一旦该网络VM被攻陷,将允许恶意代码同时访问多个域网,这是跨域安全终端不能容忍的风险;
其次,虽然可以将网络栈直接集成在用户VM中,但由于网络栈包含非常复杂的代码,可能变成是跨域安全终端系统的最大攻击界面,网络栈中的漏洞可能导致用户VM被攻陷,进而导致用户信息泄露;
最后,如果将网络栈直接集成在用户VM中,恶意代码可以比较容易地绕过网络防护策略,对网络安全造成威胁;虽然为每个用户VM提供一个网络VM会消耗一定的系统资源,但通过对网络VM进行裁剪,并借助硬件虚拟化VT-c技术的能力,可以最大限度地降低资源消耗,提升网络服务性能;
网络VM的另一个重要用途在于代表用户VM向域网进行接入认证;在启动用户VM之前,Domain0将首先创建vTCM实例并启动一个对应的网络VM,它代表用户VM向域网证明用户的身份、终端平台的身份、终端平台及用户VM软件配置的可信性,如果这些认证步骤失败,则退出用户VM的创建,拒绝用户VM接入域网;只有当域网接入认证成功后,管理VM才启动与网络VM配对儿的用户VM。
其中,对于基本执行虚拟机的存储虚拟机设计方案而言:
主流的机械式硬盘或固态硬盘及SATA接口不易实现虚拟化分区式管理,因此只能采用单独的存储VM用于托管所有存储相关代码并为其它VM提供存储资源;
跨域安全终端计算环境通过存储VM来独占式管理磁盘设备,该VM实现了虚拟块设备的后端,并将虚拟存储设备暴露给包括Domain0在内的其它VM;采用这种做法,即使攻击者设法破坏了存储VM,也不会渗透到系统的其余部分;
除了将存储VM以单独的存根域实现之外,还需要考虑存储在硬盘上的数据的安全;
存储VM及其负责管理的硬盘中主要保存有三类数据,
一是终端的基础软件,包括终端引导程序、VMM、Domain0/网络VM/存储VM的虚拟机映像;
二是用户VM的虚拟装置,包括供用户VM使用的虚拟机映像;、
三是用户VM的私有数据,即用户VM工作过程中产生的数据,其中包含有从各个域网中获取的敏感数据,需要重点考虑在终端失控情况下的数据保护问题;
在终端失控情况下,攻击者可能通过插入U盘或光盘引导设备启动终端,或拆卸终端存储设备并安装到其它计算机中,以便绕过原有终端启动过程中的口令认证措施,进而修改终端系统程序并向其中植入恶意代码,或读取用户VM的虚拟磁盘映像中留存的敏感信息;在存储VM被攻陷情况下,攻击者可能向VM中植入木马程序,进而访问存储在磁盘中的数据;
综上分析,设置用户VM存储管理方案,并通过可信计算和数据加密机制来为防控以上安全风险,设计思路如下:
首先,借助终端x86平台提供的可信密码模块TCM和vTCM机制来防止终端的可信基被恶意修改,包括终端平台的基础软件以及用户VM的虚拟装置;每个用户VM对应一个由网络VM负责管理的vTCM实例,可在域网接入时对含基础软件和用户VM工作软件在内的代码进行完整性度量来确保关键代码的完整性,在在度量失败的情况下,将无法正常引导系统,从而防止对终端及用户VM的关键代码的恶意修改;
其次,考虑到用户VM中的软件在运行过程中可能产生临时数据,这部分临时数据不能直接保存在用户VM的虚拟装置对应的存储中,否则将破坏虚拟装置的完整性;为此,用户VM将以只读方式将虚拟装置对应的存储挂载到某个虚拟磁盘分区设备之上,之后利用device mapper技术创建一个以专用磁盘映像的写时拷贝设备,所有对用户VM的虚拟装置的写操作以及对更新内容的读操作将被重定向到COW设备之上;
再次,考虑到用户VM在使用过程中可能生成部分私有数据,为每个用户VM提供一个私有的磁盘映像,并将该映像以可读写的方式挂载到某个虚拟磁盘设备上,用户应将私有数据存储到该磁盘设备上;
最后,借助LUKS机制和SM4对称加密算法对用户VM的临时数据和私有数据进行加密,以便在终端失控的条件下也能保护数据的安全;设SM4密钥为SM4_KEY,可利用vTCM提供的封装机制将该密钥保存在vTCM内部,仅当基础软件及工作软件的完整性未被破坏的情况下才能解封该密钥,进而访问用户VM的临时数据和私有数据;因此,即使攻击者在物理上控制了终端,也无法直接读取加密后的数据;另外,如果攻击者试图通过正常启动用户VM来访问加密数据,则必须对基础软件和工作软件来进行修改以绕过登录流程,如此将导致完整性度量值发生变化,进而无法对SM4_KEY进行解封,也就无法访问加密数据。
其中,所述用户虚拟机是整个系统中直接与用户交互的部分,它接收用户命令,执行用户程序,使整个系统在外观和感受上与现有的操作系统完全相同;但用户虚拟机的硬件被简化了,它拥有自己的处理器、内存,却没有自己的外部设备,用户虚拟机通过虚拟设备驱动程序使用执行虚拟机中的外部设备;用户虚拟机的操作系统也被简化了,它运行所需要的大部分策略被移到了管理虚拟机上;它仅需要管理几个非常简单的虚拟设备和它们的驱动程序;它的文件系统仅剩余一个接口;用户虚拟机使用策略却不能修改策略,使用设备但不拥有设备,使用文件但不管理文件;
为了进一步提高系统的安全性和可靠性,系统中提供了一组用户虚拟机;可以将用户虚拟机分为两类,即私密用户虚拟机和开放用户虚拟机;
私密用户虚拟机是封闭的系统,不与外界交互,仅运行包括办公软件在内的封闭的应用程序,处理高安全性工作;
开放用户虚拟机是开放的系统,需要经常与外界交互,运行包括浏览器在内的开放的应用程序,处理一般性的工作;
原则上,私密用户虚拟机中不允许插入任何模块,而开放用户虚拟机中则允许插入内核模块,用户可以根据需要动态创建、撤销用户虚拟机,各用户虚拟机的运行策略和处理能力由管理虚拟机配置;在管理虚拟机的管理下,私密用户虚拟机可以存取开放用户虚拟机的文件,但开放用户虚拟机仅能访问自己的文件;开放用户虚拟机可能出现故障,但其故障不会对系统其它部分造成破坏性影响;将用户虚拟机分成两类,从另一个方面解决了操作系统的封闭性与可扩展性问题,也提高了系统的安全性和可靠性。
其中,所述实现方法中包括基于三权分立的文件系统执行流程设计:
用户虚拟机中的文件系统、管理虚拟机中的元数据管理系统和策略管理系统与执行虚拟机中的对象管理系统一起构成一个基于对象的分布式并行文件系统,共同管理块设备上的数据;
在基于对象的分布式并行文件系统中,传统文件系统的功能被分割并重组,其中名字空间管理部分交给了管理虚拟机中的元数据管理系统,存储空间管理部分交给了执行虚拟机中的对象管理系统,用户虚拟机中仅剩余一个文件系统接口;传统文件系统中的通信流也被分割开了,用户虚拟机与管理虚拟机之间仅传送控制流,用户虚拟机和执行虚拟机之间仅传送数据流;用户的文件管理操作,如创建文件、删除文件等,仅需要与元数据管理系统交互即可,不需要与对象管理系统通信;文件读写操作需要与元数据管理系统和对象管理系统交互,但也仅在打开、关闭文件时需要访问元数据管理系统,真正的文件读写操作不再需要元数据管理系统的参与;
(1)文件打开操作
当用户打开文件系统中的某个文件时,用户虚拟机中的文件系统向元数据管理系统发出请求:解析文件路径名并申请访问存储对象的安全证书;
元数据管理系统解析文件路径名,获得文件控制块,得到存储文件的对象ID;而后向策略管理系统申请存取对象的安全证书;
策略管理系统验证用户请求的合法性,颁发安全证书;
元数据服务器将文件所在的对象ID、文件在对象上的布局方式及各对象的安全证书等返还给文件系统;
(2)文件读写操作
文件系统向对象管理系统发送对象读写操作请求,请求中需包含对象ID和安全证书;
对象管理系统验证请求的合法性,请求块设备驱动程序完成用户请求的块操作;
块设备完成操作,将结果返还给驱动程序,并进而返还给对象管理系统;
对象管理系统将对象操作结果返还给文件系统;
(3)文件关闭操作
文件系统向元数据管理系统发送请求,关闭已打开的文件;
元数据管理系统释放有关的数据结构等,关闭文件。
其中,所述实现方法中包括立体交叉的虚拟机设备管控设计方案:
在跨域安全终端虚拟机系统中,设备管理系统是一个立体交叉的系统;
在Z轴上,最下层的虚拟机监控器负责外部设备的指派,保证只有特定的执行虚拟机才可以访问某种特定的外部设备;上层的执行虚拟机负责外部设备的驱动,而驱动程序之上的对象管理、统一威胁管理和字符设备管理系统负责实施对外部设备的访问控制;最上层的设备监控系统负责监督各外部设备及其驱动程序的运行情况,并在发现问题时重新加载驱动程序或将设备隔离;
在Y轴上,只有执行虚拟机中才有物理的外部设备,其它虚拟机中只有虚拟的外部设备,用户虚拟机和管理虚拟机只有通过执行虚拟机才能使用外部设备,执行虚拟机上的访问控制机制无法绕过;管理虚拟机中的设备管理系统与执行虚拟机中的设备监控系统合作,负责设备驱动程序的加载、卸载等工作,设备管理系统还负责监控整个执行虚拟机的运行,并在发现问题时重启整个执行虚拟机;
在X轴上,执行虚拟机被分成多个,分别管理基本的外部设备和扩展的外部设备;只有扩展执行虚拟机中才允许加载设备驱动程序,其问题与故障容易被隔离,影响与破坏容易被限制;
通过这种全方位、立体交叉式的设备管理,可以提高整个操作系统的安全性、可靠性、可用性,又不破坏系统的可扩展性;
虚拟设备的驱动程序建立在虚拟通道之上,实际上仅仅是一个驱动程序接口,负责将设备操作请求通过虚拟通道发送给执行虚拟机,并将来自执行虚拟机的操作结果转交给设备的用户;由于虚拟设备驱动程序并不需要驱动实际的设备,因此在用户虚拟机和管理虚拟机中仅需要提供几类虚拟设备驱动程序即可,包括虚拟块设备驱动程序、虚拟网络设备驱动程序、虚拟字符设备驱动程序;当然,虚拟设备管理系统中需要维护若干数据结构,记录各虚拟设备的状态等管理信息;加载虚拟设备驱动程序仅仅是修改一下数据结构,并不需要向内核中真正插入模块;
在执行虚拟机中,专门设计了一个I/O派遣系统,负责接收来自虚拟设备驱动程序的操作请求,并将其转发给对象管理系统、统一威胁管理或字符设备控制系统;I/O派发系统由一个内核态监听线程、多个请求队列和多个内核态处理线程组成;监听线程监听来自虚拟通道上的设备操作请求,并根据操作的设备类型将其分别挂在不同的请求队列中;处理线程从请求队列中取出操作请求,将其交给对象管理系统、统一威胁管理或字符设备控制系统处理。
其中,物理设备驱动程序的加载要由执行虚拟机和管理虚拟机配合完成,方式有两种:
(1)当用户虚拟机需要加载某种设备驱动程序时,它向管理虚拟机中的设备管理系统发出请求;设备管理系统根据策略决定此次加载是否合法;如合法,设备管理系统查阅自己的数据库,确定驱动程序的路径名,并请求元数据管理系统解析该路径名,以确定驱动程序的存储位置,而后向执行虚拟机中的设备监控系统发出命令,让其加载驱动程序;当驱动程序加载完成之后,设备监控系统通知用户虚拟机中的虚拟设备管理系统,向其报告设备的状态并让其修改数据结构;
(2)当系统总线发现某种新设备后,它通过中断机制报告给执行虚拟机中的设备监控系统;设备监控系统向管理虚拟机中的设备管理系统发送消息,报告新设备的信息;设备管理系统查询策略管理系统,决定是否允许使用该设备;如果允许,设备管理系统查阅自己的数据库,确定驱动程序的路径名,并请求元数据管理系统解析该路径名,以确定驱动程序的存储位置;存储位置确定后,设备管理系统向设备监控系统发出命令,让其加载驱动程序;当驱动程序加载完成之后,设备监控系统通知用户虚拟机中的虚拟设备管理系统,向其报告设备的状态并让其修改数据结构;
为了进一步提高系统的可靠性和可用性,在执行虚拟机中专门设计了一个设备监控系统,它与管理虚拟机中的设备管理系统一起监控各种外部设备及其驱动程序的运行情况;当发现某个设备或驱动程序出现故障时,设备监控系统可以重启设备或重新加载设备驱动程序;当设备管理系统发现某种设备或驱动程序出现故障时,它可以指示设备虚拟机重启设备或重新加载驱动程序;当发现执行虚拟机出现故障时,可以重新启动整个执行虚拟机。
(三)有益效果
与现有技术相比较,本发明在设计操作系统结构时,借鉴了政治制度中的三权分立原则,即将策略的制定(立法机构)、策略的实施(司法机构)和用户程序的执行(行政机构)三部分分割开来,让它们分别运行在三类不同的虚拟机上。利用虚拟机之间的强隔离特性保证各部分之间的独立性,利用专门设计的虚拟机间通信机制实现各部分间的协作与制约。
基于三权分立的安全基将操作系统的管理、I/O执行和用户操作分给不同的虚拟机来操作,解决了目前传统操作系统权力太大,既是计算机资源的管理者又是计算机资源的使用者的现象,从计算机系统结构层面解决了计算机的先天安全问题。
为了评估VMM在实际运行过程中的性能,并测试其是否能满足安全关键系统的隔离要求,本发明利用验证后抽取的VMM镜像,引导并支持一组带有实验程序的Linux客户系统(Ubuntu 16.04.3LTS,内核版本4.10.0)运行。实验运行于Intel Core i5—7600(3.5GHz,4核心,6MB L3缓存)处理器,8GB内存和120GB Toshiba SSD固态存储器平台。为了确保数据的一致性,禁止Turbo Boost和C—State状态。此外,在需要获得准确结果的性能测试中,VMM开启real_tsc状态,每个物理核心上最多运行一个虚拟机。
运行安全时
本节通过两组实验分别测试seVMM能否满足虚拟机对内存操作和处理器指令执行的安全隔离需求。
实验1测试seVMM对于内存操作的隔离性,实验由分别运行于两个处理器核心上的虚拟机(VM1和VM2)组成。首先在VM1内启动并持续执行lmbench中的内存宽带测试程序bw_mem,然后在VM2中使用内存压力测试工具memtester对物理内存(特别是内核和设备寄存器映射区域)进行写入,观察两个虚拟机的执行情况。VM1隔离性测试结果与基准的对比结果如图10-1级图10-2所示。
由于memtester对VM2物理内存的写入破坏了客户系统的内核数据,因此在执行一段时间后VM2崩溃,但VM1保持正常运行。图10-1中的序列“VM1”涵盖了mentester执行前后及VM2崩溃后VM1中内存拷贝性能测试结果。与没有执行memtester的基准序列“Baremetal”相比,其带宽基本保持恒定,VM2无法通过内存写入来影响VM1的正常运行。
实验2测试seVMM的性能隔离。实验继续沿用位于两个物理核心的虚拟机VM1和VM2。在VM1中启动并持续运行lmbench进程创建fork测试项,然后在VM2中使用shell脚本“:(){:|:&};:”对客户系统进行fork炸弹拒绝服务攻击,观察两个虚拟机的执行情况。
VM2在执行脚本一段时间后由于资源耗尽而崩溃,而VM1则继续正常运行。图10-2中的序列“VM1”记录了VM2在执行脚本前后和崩溃前后,fork测试项的性能数据。与在物理机上运行且未进行fork攻击的基准序列“Baremetal”相比,其时延基本保持稳定,针对VM2的fork攻击并未对VM1产生明显影响。
在功能方面,主流虚拟化方案(如Xen,KVM等)同样以虚拟机隔离性作为VMM设计的安全目标之一。但对于系统能否满足安全属性要求,则无法提供确凿的额证据。通过约39kloc的Coq代码,对运行在内核态中的VMM-SC完成了形式化验证。对所有证明目标进行了机器检查并链接形成最终定理。因此,安全性和正确性具备了较高的可信度。
附图说明
图1为虚拟机工作环境架构说明示意图。
图2-1为基于三权分立的虚拟机系统级操作执行流程图。
图2-2为基于分层的安全VMM设计流程图。
图3为网络VM结构图。
图4为存储VM结构图。
图5为用户VM存储管理方案示意图。
图6为文件操作流程图。
图7为设备管理系统图。
图8为I/O请求处理示意图。
图9为驱动程序加载示意图。
图10-1及图10-2为VM1隔离性测试结果与基准的对比结果图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
1、技术原理概述
在设计操作系统结构时,借鉴了政治制度中的三权分立原则,即将策略的制定(立法机构)、策略的实施(司法机构)和用户程序的执行(行政机构)三部分分割开来,让它们分别运行在三类不同的虚拟机上。利用虚拟机之间的强隔离特性保证各部分之间的独立性,利用专门设计的虚拟机间通信机制实现各部分间的协作与制约。
因而,所设计的操作系统结构在纵向上被分成两层,即虚拟机(Virtual Machine,VM)和虚拟机监控器(Virtual Machine Monitor,VMM),在横向上被分成三组,即管理虚拟机(管理VM,负责策略制定与系统管理,与用户虚拟机进行交互)、执行虚拟机(执行VM,负责I/O操作,包括磁盘操作和网卡操作等)和用户虚拟机(guestVM负责用户程序执行),它们各司其职,独立运行,互相制约又互相协作,共同为用户提供操作系统环境。
基于三权分立的安全基将操作系统的管理、I/O执行和用户操作分给不同的虚拟机来操作,解决了目前传统操作系统权力太大,既是计算机资源的管理者又是计算机资源的使用者的现象,从计算机系统结构层面解决了计算机的先天安全问题。
如图1,在纵向上,操作系统被分成了两层,虚拟机与虚拟机监控器(VMM)。VMM是直接运行在计算机硬件之上的第一层软件,处于传统操作系统的位置,控制所有的计算机硬件,包括处理器、内存、外存、网卡及其它外部设备,并实现这些硬件的虚拟化,将一台物理计算机虚拟成多台独立的虚拟机。对虚拟机的用户来说,虚拟机与真实的计算机是一样的,它拥有自己的处理器、内存和外部设备,可以运行自己的操作系统和应用程序。虚拟机之间完全隔离,各虚拟机独立运行,只能通过特定的手段相互通信。
在横向上,操作系统被分成了三组相互独立的实体,分别运行在三组独立的虚拟机中。他们分别是:
管理虚拟机(管理VM)负责系统的决策与管理;
执行虚拟机(执行VM)负责外部设备的管理与存取控制;
用户虚拟机(guestVM)负责与用户的交互,处理用户的日常工作。
在这种结构中,传统操作系统的工作被分割开,分别交给了不同的实体承担;传统操作系统的权力也被分割开,分别赋予了不同的实体。三组虚拟机之间相互独立、相互协作、相互制约,它们协调工作,共同完成整个计算机系统的管理工作。对用户来说,整个系统是一个有机的整体,而不再是多个分立的系统,用户甚至感觉不到虚拟机的存在。
如图2-1,当执行某一个系统任务时,如I/O操作,客户虚拟机首先向管理虚拟机申请许可,同时向执行虚拟机请求操作,执行虚拟机只有既得到了管理虚拟机的许可和又得到了用户虚拟机的执行请求的情况下,才会执行。这样就避免了管理虚拟机被攻克的情况下,系统级操作不受控制的结果。大大降低了客户虚拟机之间穿透风险。
2、管理虚拟机(管理VM)
管理虚拟机是整个系统管理的核心,它负责管理整个操作系统的运行。管理虚拟机内包括策略管理、设备管理、虚拟机管理、安全管理和元数据管理等。
策略管理系统负责管理整个操作系统运行所需要的各种策略,包括存储对象的存取策略、网络数据包的过滤策略、外部设备的分配策略和访问控制策略、系统资源的分配策略、用户虚拟机的创建与运行策略等。
虚拟机管理系统负责管理系统中的用户虚拟机和执行虚拟机,如虚拟机的动态创建与销毁、虚拟机资源的分配、虚拟机运行策略的维护、虚拟机运行状态的监控等。
设备管理系统负责管理执行虚拟机及其中的各类外部设备,包括设备驱动程序的加载、执行虚拟机的监控与重启、外部设备的分配、外部设备故障后的隔离等。
元数据管理系统负责管理文件系统的名字空间,即目录树,实现文件系统的管理操作,如文件或目录的创建、删除、换名等,并负责文件路径名的解析和对象安全证书的发放。
安全管理系统负责整个操作系统的安全监控,如系统运行日志管理、审计跟踪、入侵检测等。
与用户虚拟机相同,管理虚拟机也没有外部设备,其操作系统也被简化了,它甚至可以不含网络协议。
3、执行虚拟机(执行VM)
在三组虚拟机中,执行虚拟机是最基础的,执行虚拟机包括存储VM和网络VM,因为只有执行虚拟机才拥有外部设备,也只有执行虚拟机能够直接存取、操作外部设备。因而,执行虚拟机的主体部分是一组外部设备驱动程序,包括各类块设备驱动程序、各类网络设备驱动程序和字符设备驱动程序等。
为了提高系统的安全性,在块设备驱动程序之上增加了存储对象管理系统(充当块设备管理系统),负责块设备存储空间的管理和安全检查。存储对象管理系统将普通的块设备转化成了基于对象的存储设备(OSD),它向外提供对象接口,并提供对象级的存取控制。用户虚拟机和管理虚拟机以对象为单位访问执行虚拟机上的块设备,而且每一次访问都必须携带安全证书。在网络设备驱动程序之上增加了统一威胁管理(Unified ThreatManagement,UTM),负责来往数据包的过滤与检查,禁止非法数据包的出入。在字符设备驱动程序之上也有相应的控制系统,负责这些字符设备的访问控制。
为了解决操作系统内核的封闭性与可扩展性问题,减少不可靠驱动程序的影响,系统提供了多个执行虚拟机。一般情况下,至少应该提供两个执行虚拟机,即基本执行虚拟机和扩展执行虚拟机。
基本执行虚拟机管理计算机系统中最基本的外部设备,如硬盘、显示器、键盘、鼠标等,这些设备是系统运行所必须的,其驱动程序是由操作系统提供的,并经过了严格的测试与检查,具有较高的可靠性和安全性,而且在以后的运行过程中不再改变。
扩展执行虚拟机管理经常变动的外部设备,如USB设备等。扩展虚拟机中的设备驱动程序一般是动态加载的,其可靠性通常不高。如此分割以后,基本执行虚拟机保持封闭状态,以保证系统运行所需要的最基本的外部设备始终能够正常运行;扩展执行虚拟机处于开放状态,所有需要动态加载的驱动程序都运行在扩展执行虚拟机中,该执行虚拟机可能崩溃,但它的崩溃仅仅会使某些扩展设备暂时不能使用,并不会导致系统其它部分的崩溃。
基本执行虚拟机包括网络和存储部分,如下:
4、执行虚拟机之一(网络虚拟机)设计方案
跨域安全终端为每个用户VM提供一个网络VM,由后者为其提供虚拟网络接口,由于每个网络VM通过VT-c机制使用预定义的单个网卡或者多端口网卡的一个特定网络端口,因此各个用户VM间的网络流量是严格隔离的,这样可以确保跨域安全终端同时多域访问时的网络数据安全。网络VM的结构如图3所示。
为每个用户VM提供一个网络VM的主要原因是:
首先,虽然可以使用单个网络VM连接多个域网,为所有用户VM提供相互隔离的网络访问服务,但在跨域环境下,一旦该网络VM被攻陷,将允许恶意代码同时访问多个域网,这是跨域安全终端不能容忍的风险;
其次,虽然可以将网络栈直接集成在用户VM中,但由于网络栈包含非常复杂的代码,可能变成是跨域安全终端系统的最大攻击界面,网络栈中的漏洞可能导致用户VM被攻陷,进而导致用户信息泄露;
最后,如果将网络栈直接集成在用户VM中,恶意代码可以比较容易地绕过网络防护策略,对网络安全造成威胁。虽然为每个用户VM提供一个网络VM会消耗一定的系统资源,但通过对网络VM进行裁剪,并借助硬件虚拟化VT-c技术的能力,可以最大限度地降低资源消耗,提升网络服务性能。
网络VM的另一个重要用途在于代表用户VM向域网进行接入认证。在启动用户VM之前,Domain0将首先创建vTCM实例并启动一个对应的网络VM,它代表用户VM向域网证明用户的身份、终端平台的身份、终端平台及用户VM软件配置的可信性,如果这些认证步骤失败,则退出用户VM的创建,拒绝用户VM接入域网。只有当域网接入认证成功后,管理VM才启动与网络VM配对儿的用户VM。
5、执行虚拟机之二(存储虚拟机)设计方案
主流的机械式硬盘或固态硬盘及SATA接口不易实现虚拟化分区式管理,因此只能采用单独的存储VM用于托管所有存储相关代码并为其它VM提供存储资源。
如图4所示,跨域安全终端计算环境通过存储VM(存根域)来独占式管理磁盘设备,该VM实现了虚拟块设备的后端,并将虚拟存储设备暴露给包括Domain0在内的其它VM。采用这种做法,即使攻击者设法破坏了存储VM,也不会渗透到系统的其余部分。
除了将存储VM以单独的存根域实现之外,还需要考虑存储在硬盘上的数据的安全。
存储VM及其负责管理的硬盘中主要保存有三类数据,
一是终端的基础软件(终端引导程序、VMM、Domain0/网络VM/存储VM的虚拟机映像等),
二是用户VM的虚拟装置(主要是供用户VM使用的虚拟机映像),
三是用户VM的私有数据,即用户VM工作过程中产生的数据,其中可能包含有从各个域网中获取的敏感数据,需要重点考虑在终端失控情况下的数据保护问题。
在终端失控情况下,攻击者可能通过插入U盘或光盘等引导设备启动终端,或拆卸终端存储设备并安装到其它计算机中,以便绕过原有终端启动过程中的口令认证措施,进而修改终端系统程序(如引导程序、VMM、Domain0映像等)并向其中植入恶意代码,或读取用户VM的虚拟磁盘映像中留存的敏感信息。在存储VM被攻陷情况下,攻击者可能向VM中植入木马程序,进而访问存储在磁盘中的数据。
综上分析,本方案设计了如图5的用户VM存储管理方案,并通过可信计算和数据加密机制来为防控以上安全风险,设计思路描述如下:
首先,借助终端x86平台提供的可信密码模块TCM和vTCM机制来防止终端的可信基被恶意修改,包括终端平台的基础软件(BIOS、引导程序、VMM、Domain0/网络VM/存储VM的虚拟机映像)以及用户VM的虚拟装置(从域网获取的用户VM映像)。每个用户VM对应一个由网络VM负责管理的vTCM实例,可在域网接入时对含基础软件和用户VM工作软件在内的代码进行完整性度量来确保关键代码的完整性,在在度量失败的情况下,将无法正常引导系统,从而防止对终端及用户VM的关键代码的恶意修改。
其次,考虑到用户VM中的软件在运行过程中可能产生临时数据,这部分临时数据不能直接保存在用户VM的虚拟装置对应的存储中,否则将破坏虚拟装置的完整性。为此,用户VM将以只读方式将虚拟装置对应的存储(如uvm1_rootfs.img)挂载到某个虚拟磁盘分区设备(如/dev/xvda1)之上,之后利用device mapper技术创建一个以专用磁盘映像(如uvm1_cow.img)的写时拷贝(Copy-On-Write,COW)设备(如/dev/xvda2),所有对用户VM的虚拟装置的写操作以及对更新内容的读操作将被重定向到COW设备之上。
再次,考虑到用户VM在使用过程中可能生成部分私有数据(如从域网中获取的数据),为每个用户VM提供一个私有的磁盘映像(如uvm1_priv.img),并将该映像以可读写的方式挂载到某个虚拟磁盘设备上(如/dev/xvda3),用户应将私有数据存储到该磁盘设备上。
最后,借助LUKS(Linux Unified Key Setup)机制和SM4对称加密算法对用户VM的临时数据和私有数据进行加密,以便在终端失控的条件下也能保护数据的安全。设SM4密钥为SM4_KEY,可利用vTCM提供的封装机制将该密钥保存在vTCM内部,仅当基础软件及工作软件的完整性未被破坏的情况下才能解封该密钥,进而访问用户VM的临时数据和私有数据。因此,即使攻击者在物理上控制了终端,也无法直接读取加密后的数据。另外,如果攻击者试图通过正常启动用户VM来访问加密数据,则必须对基础软件和工作软件来进行修改以绕过登录流程,如此将导致完整性度量值发生变化,进而无法对SM4_KEY进行解封,也就无法访问加密数据。
最后需要说明的是,由于存储VM和网络VM中不存在敏感数据,也很难穿越VMM攻击其它VM,因此无需对其上的磁盘数据进行完整性度量和加密。
6、用户虚拟机(GuestVM)
用户虚拟机是整个系统中直接与用户交互的部分,它接收用户命令,执行用户程序,使整个系统在外观和感受上与现有的操作系统完全相同。但用户虚拟机的硬件被简化了,它拥有自己的处理器、内存,却没有自己的外部设备,用户虚拟机通过虚拟设备驱动程序使用执行虚拟机中的外部设备。用户虚拟机的操作系统也被简化了,它运行所需要的大部分策略被移到了管理虚拟机上;它仅需要管理几个非常简单的虚拟设备和它们的驱动程序;它的文件系统仅剩余一个接口等。用户虚拟机使用策略却不能修改策略,使用设备但不拥有设备,使用文件但不管理文件。
为了进一步提高系统的安全性和可靠性,系统中提供了一组用户虚拟机。可以将用户虚拟机分为两类,即私密用户虚拟机和开放用户虚拟机。
私密用户虚拟机是封闭的系统,不与外界交互,仅运行封闭的应用程序,如办公软件等,处理高安全性工作。
开放用户虚拟机是开放的系统,需要经常与外界交互,运行开放的应用程序,如浏览器等,处理一般性的工作。
原则上,私密用户虚拟机中不允许插入任何模块,而开放用户虚拟机中则允许插入内核模块,如文件系统、网络协议等。用户可以根据需要动态创建、撤销用户虚拟机,各用户虚拟机的运行策略和处理能力由管理虚拟机配置。在管理虚拟机的管理下,私密用户虚拟机可以存取开放用户虚拟机的文件,但开放用户虚拟机仅能访问自己的文件。开放用户虚拟机可能出现故障,但其故障不会对系统其它部分造成破坏性影响。将用户虚拟机分成两类,从另一个方面解决了操作系统的封闭性与可扩展性问题,也提高了系统的安全性和可靠性。
7、基于三权分立的文件系统执行流程设计
用户虚拟机中的文件系统、管理虚拟机中的元数据管理系统和策略管理系统与执行虚拟机中的对象管理系统一起构成一个基于对象的分布式并行文件系统,共同管理块设备上的数据。
在基于对象的分布式并行文件系统中,传统文件系统的功能被分割并重组,其中名字空间管理部分交给了管理虚拟机中的元数据管理系统,存储空间管理部分交给了执行虚拟机中的对象管理系统,用户虚拟机中仅剩余一个文件系统接口。传统文件系统中的通信流也被分割开了,用户虚拟机与管理虚拟机之间仅传送控制流,用户虚拟机和执行虚拟机之间仅传送数据流。用户的文件管理操作,如创建文件、删除文件等,仅需要与元数据管理系统交互即可,不需要与对象管理系统通信。文件读写操作需要与元数据管理系统和对象管理系统交互,但也仅在打开、关闭文件时需要访问元数据管理系统,真正的文件读写操作不再需要元数据管理系统的参与。
如图6所示是文件读写操作的流程:
(1)文件打开操作
当用户打开文件系统中的某个文件时,用户虚拟机中的文件系统向元数据管理系统发出请求:解析文件路径名并申请访问存储对象的安全证书。
元数据管理系统解析文件路径名,获得文件控制块,得到存储文件的对象ID。而后向策略管理系统申请存取对象的安全证书。
策略管理系统验证用户请求的合法性,颁发安全证书。
元数据服务器将文件所在的对象ID、文件在对象上的布局方式及各对象的安全证书等返还给文件系统。
(2)文件读写操作
文件系统向对象管理系统发送对象读写操作请求,请求中需包含对象ID和安全证书。
对象管理系统验证请求的合法性,请求块设备驱动程序完成用户请求的块操作。
块设备完成操作,将结果返还给驱动程序,并进而返还给对象管理系统。
对象管理系统将对象操作结果返还给文件系统。
(3)文件关闭操作
文件系统向元数据管理系统发送请求,关闭已打开的文件。
元数据管理系统释放有关的数据结构等,关闭文件。
8、立体交叉的虚拟机设备管控设计方案
在跨域安全终端虚拟机系统中,设备管理系统是一个立体交叉的系统,如图7所示。
在Z轴上,最下层的虚拟机监控器负责外部设备的指派,保证只有特定的执行虚拟机才可以访问某种特定的外部设备。上层的执行虚拟机负责外部设备的驱动,而驱动程序之上的对象管理、统一威胁管理和字符设备管理系统负责实施对外部设备的访问控制。最上层的设备监控系统负责监督各外部设备及其驱动程序的运行情况,并在发现问题时重新加载驱动程序或将设备隔离。
在Y轴上,只有执行虚拟机中才有物理的外部设备,其它虚拟机中只有虚拟的外部设备,用户虚拟机和管理虚拟机只有通过执行虚拟机才能使用外部设备,执行虚拟机上的访问控制机制无法绕过。管理虚拟机中的设备管理系统与执行虚拟机中的设备监控系统合作,负责设备驱动程序的加载、卸载等工作,设备管理系统还负责监控整个执行虚拟机的运行,并在发现问题时重启整个执行虚拟机。
在X轴上,执行虚拟机被分成多个,分别管理基本的外部设备(如磁盘、键盘、鼠标等)和扩展的外部设备(如各类USB设备等)。只有扩展执行虚拟机中才允许加载设备驱动程序,其问题与故障容易被隔离,影响与破坏容易被限制。
通过这种全方位、立体交叉式的设备管理,可以提高整个操作系统的安全性、可靠性、可用性,又不破坏系统的可扩展性。
虚拟设备的驱动程序建立在虚拟通道之上,实际上仅仅是一个驱动程序接口,负责将设备操作请求通过虚拟通道发送给执行虚拟机,并将来自执行虚拟机的操作结果转交给设备的用户。由于虚拟设备驱动程序并不需要驱动实际的设备,因此在用户虚拟机和管理虚拟机中仅需要提供几类虚拟设备驱动程序即可,如虚拟块设备驱动程序、虚拟网络设备驱动程序、虚拟字符设备驱动程序等。当然,虚拟设备管理系统中需要维护若干数据结构,记录各虚拟设备的状态等管理信息。加载虚拟设备驱动程序仅仅是修改一下数据结构,并不需要向内核中真正插入模块。
在执行虚拟机中,专门设计了一个I/O派遣系统,负责接收来自虚拟设备驱动程序的操作请求,并将其转发给对象管理系统、统一威胁管理或字符设备控制系统。I/O派发系统由一个内核态监听线程、多个请求队列和多个内核态处理线程组成。监听线程监听来自虚拟通道上的设备操作请求,并根据操作的设备类型将其分别挂在不同的请求队列中。处理线程从请求队列中取出操作请求,将其交给对象管理系统、统一威胁管理或字符设备控制系统处理。普通I/O请求的处理过程如图8所示。
物理设备驱动程序的加载要由执行虚拟机和管理虚拟机配合完成,方式有两种:
(1)当用户虚拟机需要加载某种设备驱动程序时,它向管理虚拟机中的设备管理系统发出请求。设备管理系统根据策略决定此次加载是否合法。如合法,设备管理系统查阅自己的数据库,确定驱动程序的路径名,并请求元数据管理系统解析该路径名,以确定驱动程序的存储位置(对象ID),而后向执行虚拟机中的设备监控系统发出命令,让其加载驱动程序。当驱动程序加载完成之后,设备监控系统通知用户虚拟机中的虚拟设备管理系统,向其报告设备的状态并让其修改数据结构。
(2)当系统总线发现某种新设备后,它通过中断机制报告给执行虚拟机中的设备监控系统。设备监控系统向管理虚拟机中的设备管理系统发送消息,报告新设备的信息。设备管理系统查询策略管理系统,决定是否允许使用该设备。如果允许,设备管理系统查阅自己的数据库,确定驱动程序的路径名,并请求元数据管理系统解析该路径名,以确定驱动程序的存储位置(对象ID)。存储位置确定后,设备管理系统向设备监控系统发出命令,让其加载驱动程序。当驱动程序加载完成之后,设备监控系统通知用户虚拟机中的虚拟设备管理系统,向其报告设备的状态并让其修改数据结构。
物理驱动程序的加载过程如图9所示。
为了进一步提高系统的可靠性和可用性,在执行虚拟机中专门设计了一个设备监控系统,它与管理虚拟机中的设备管理系统一起监控各种外部设备及其驱动程序的运行情况。当发现某个设备或驱动程序出现故障时,设备监控系统可以重启设备或重新加载设备驱动程序。当设备管理系统发现某种设备或驱动程序出现故障时,它可以指示设备虚拟机重启设备或重新加载驱动程序;当发现执行虚拟机出现故障时,可以重新启动整个执行虚拟机。
基于如上的设计原理,虚拟机的终端安全管控,包括网络、外设等设备管控是独立的,安全隔离强度高。而进程管控是用户VM内部,因此也是独立的,它的强度依赖于用户VM之间的隔离强度,这个强度也是可以保障的。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,所述虚拟机的实现方法借鉴了政治制度中的三权分立原则,即将策略的制定、策略的实施和用户程序的执行三部分分割开来,让它们分别运行在三类不同的虚拟机上;利用虚拟机之间的强隔离特性保证各部分之间的独立性,利用专门设计的虚拟机间通信机制实现各部分间的协作与制约;
所述虚拟机的操作系统被分成两层,虚拟机与虚拟机监控器;虚拟机监控器是直接运行在计算机硬件之上的第一层软件,处于传统操作系统的位置,控制所有的计算机硬件,包括处理器、内存、外存、网卡及其它外部设备,并实现这些硬件的虚拟化,将一台物理计算机虚拟成多台独立的虚拟机;对虚拟机的用户来说,虚拟机与真实的计算机是一样的,它拥有自己的处理器、内存和外部设备,可以运行自己的操作系统和应用程序;虚拟机之间完全隔离,各虚拟机独立运行,只能通过特定的手段相互通信;
在横向上,操作系统被分成了三组相互独立的实体,分别运行在三组独立的虚拟机中;他们分别是:
管理虚拟机,用于负责系统的决策与管理;
执行虚拟机,用于负责外部设备的管理与存取控制;
用户虚拟机,用于负责与用户的交互,处理用户的日常工作;
在这种结构中,传统操作系统的工作被分割开,分别交给了不同的实体承担;传统操作系统的权力也被分割开,分别赋予了不同的实体;三组虚拟机之间相互独立、相互协作、相互制约,它们协调工作,共同完成整个计算机系统的管理工作;对用户来说,整个系统是一个有机的整体,而不再是多个分立的系统,用户甚至感觉不到虚拟机的存在。
2.如权利要求1所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,当执行某一个系统任务时,客户虚拟机首先向管理虚拟机申请许可,同时向执行虚拟机请求操作,执行虚拟机只有既得到了管理虚拟机的许可和又得到了用户虚拟机的执行请求的情况下,才会执行;这样就避免了管理虚拟机被攻克的情况下,系统级操作不受控制的结果;大大降低了客户虚拟机之间穿透风险。
3.如权利要求2所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,所述管理虚拟机是整个虚拟机管理的核心,它负责管理整个操作系统的运行;管理虚拟机内包括策略管理系统、设备管理系统、虚拟机管理系统、安全管理系统和元数据管理系统;
所述策略管理系统负责管理整个操作系统运行所需要的各种策略,包括存储对象的存取策略、网络数据包的过滤策略、外部设备的分配策略和访问控制策略、系统资源的分配策略、用户虚拟机的创建与运行策略;
所述虚拟机管理系统负责管理系统中的用户虚拟机和执行虚拟机,包括虚拟机的动态创建与销毁、虚拟机资源的分配、虚拟机运行策略的维护、虚拟机运行状态的监控;
所述设备管理系统负责管理执行虚拟机及其中的各类外部设备,包括设备驱动程序的加载、执行虚拟机的监控与重启、外部设备的分配、外部设备故障后的隔离;
所述元数据管理系统负责管理文件系统的名字空间,即目录树,实现文件系统的管理操作,包括文件或目录的创建、删除、换名,并负责文件路径名的解析和对象安全证书的发放;
所述安全管理系统负责整个操作系统的安全监控,包括系统运行日志管理、审计跟踪、入侵检测;
与用户虚拟机相同,管理虚拟机也没有外部设备,其操作系统也被简化了,它甚至可以不含网络协议。
4.如权利要求2所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,在三组虚拟机中,所述执行虚拟机是最基础的,执行虚拟机包括存储VM和网络VM,因为只有执行虚拟机才拥有外部设备,也只有执行虚拟机能够直接存取、操作外部设备;因而,执行虚拟机的主体部分是一组外部设备驱动程序,包括各类块设备驱动程序、各类网络设备驱动程序和字符设备驱动程序;
为了提高系统的安全性,在块设备驱动程序之上增加了存储对象管理系统充当块设备管理系统,负责块设备存储空间的管理和安全检查;存储对象管理系统将普通的块设备转化成了基于对象的存储设备,它向外提供对象接口,并提供对象级的存取控制;
用户虚拟机和管理虚拟机以对象为单位访问执行虚拟机上的块设备,而且每一次访问都必须携带安全证书;在网络设备驱动程序之上增加了统一威胁管理,负责来往数据包的过滤与检查,禁止非法数据包的出入;在字符设备驱动程序之上也有相应的控制系统,负责这些字符设备的访问控制;
为了解决操作系统内核的封闭性与可扩展性问题,减少不可靠驱动程序的影响,系统提供了多个执行虚拟机;至少应该提供两个执行虚拟机,即基本执行虚拟机和扩展执行虚拟机;
基本执行虚拟机管理计算机系统中最基本的外部设备,包括硬盘、显示器、键盘、鼠标,这些设备是系统运行所必须的,其驱动程序是由操作系统提供的,并经过了严格的测试与检查,具有较高的可靠性和安全性,而且在以后的运行过程中不再改变;
扩展执行虚拟机管理经常变动的外部设备,包括USB设备;扩展虚拟机中的设备驱动程序是动态加载的,其可靠性通常不高;
如此分割以后,基本执行虚拟机保持封闭状态,以保证系统运行所需要的最基本的外部设备始终能够正常运行;扩展执行虚拟机处于开放状态,所有需要动态加载的驱动程序都运行在扩展执行虚拟机中,该执行虚拟机可能崩溃,但它的崩溃仅仅会使某些扩展设备暂时不能使用,并不会导致系统其它部分的崩溃;
基本执行虚拟机包括网络和存储部分。
5.如权利要求4所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,对于基本执行虚拟机的网络虚拟机设计方案而言:
跨域安全终端为每个用户VM提供一个网络VM,由后者为其提供虚拟网络接口,由于每个网络VM通过VT-c机制使用预定义的单个网卡或者多端口网卡的一个特定网络端口,因此各个用户VM间的网络流量是严格隔离的,这样可以确保跨域安全终端同时多域访问时的网络数据安全;
为每个用户VM提供一个网络VM的原因是:
首先,虽然可以使用单个网络VM连接多个域网,为所有用户VM提供相互隔离的网络访问服务,但在跨域环境下,一旦该网络VM被攻陷,将允许恶意代码同时访问多个域网,这是跨域安全终端不能容忍的风险;
其次,虽然可以将网络栈直接集成在用户VM中,但由于网络栈包含非常复杂的代码,可能变成是跨域安全终端系统的最大攻击界面,网络栈中的漏洞可能导致用户VM被攻陷,进而导致用户信息泄露;
最后,如果将网络栈直接集成在用户VM中,恶意代码可以比较容易地绕过网络防护策略,对网络安全造成威胁;虽然为每个用户VM提供一个网络VM会消耗一定的系统资源,但通过对网络VM进行裁剪,并借助硬件虚拟化VT-c技术的能力,可以最大限度地降低资源消耗,提升网络服务性能;
网络VM的另一个重要用途在于代表用户VM向域网进行接入认证;在启动用户VM之前,Domain0将首先创建vTCM实例并启动一个对应的网络VM,它代表用户VM向域网证明用户的身份、终端平台的身份、终端平台及用户VM软件配置的可信性,如果这些认证步骤失败,则退出用户VM的创建,拒绝用户VM接入域网;只有当域网接入认证成功后,管理VM才启动与网络VM配对儿的用户VM。
6.如权利要求4所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,对于基本执行虚拟机的存储虚拟机设计方案而言:
主流的机械式硬盘或固态硬盘及SATA接口不易实现虚拟化分区式管理,因此只能采用单独的存储VM用于托管所有存储相关代码并为其它VM提供存储资源;
跨域安全终端计算环境通过存储VM来独占式管理磁盘设备,该VM实现了虚拟块设备的后端,并将虚拟存储设备暴露给包括Domain0在内的其它VM;采用这种做法,即使攻击者设法破坏了存储VM,也不会渗透到系统的其余部分;
除了将存储VM以单独的存根域实现之外,还需要考虑存储在硬盘上的数据的安全;
存储VM及其负责管理的硬盘中主要保存有三类数据,
一是终端的基础软件,包括终端引导程序、VMM、Domain0/网络VM/存储VM的虚拟机映像;
二是用户VM的虚拟装置,包括供用户VM使用的虚拟机映像;、
三是用户VM的私有数据,即用户VM工作过程中产生的数据,其中包含有从各个域网中获取的敏感数据,需要重点考虑在终端失控情况下的数据保护问题;
在终端失控情况下,攻击者可能通过插入U盘或光盘引导设备启动终端,或拆卸终端存储设备并安装到其它计算机中,以便绕过原有终端启动过程中的口令认证措施,进而修改终端系统程序并向其中植入恶意代码,或读取用户VM的虚拟磁盘映像中留存的敏感信息;在存储VM被攻陷情况下,攻击者可能向VM中植入木马程序,进而访问存储在磁盘中的数据;
综上分析,设置用户VM存储管理方案,并通过可信计算和数据加密机制来为防控以上安全风险,设计思路如下:
首先,借助终端x86平台提供的可信密码模块TCM和vTCM机制来防止终端的可信基被恶意修改,包括终端平台的基础软件以及用户VM的虚拟装置;每个用户VM对应一个由网络VM负责管理的vTCM实例,可在域网接入时对含基础软件和用户VM工作软件在内的代码进行完整性度量来确保关键代码的完整性,在在度量失败的情况下,将无法正常引导系统,从而防止对终端及用户VM的关键代码的恶意修改;
其次,考虑到用户VM中的软件在运行过程中可能产生临时数据,这部分临时数据不能直接保存在用户VM的虚拟装置对应的存储中,否则将破坏虚拟装置的完整性;为此,用户VM将以只读方式将虚拟装置对应的存储挂载到某个虚拟磁盘分区设备之上,之后利用devicemapper技术创建一个以专用磁盘映像的写时拷贝设备,所有对用户VM的虚拟装置的写操作以及对更新内容的读操作将被重定向到COW设备之上;
再次,考虑到用户VM在使用过程中可能生成部分私有数据,为每个用户VM提供一个私有的磁盘映像,并将该映像以可读写的方式挂载到某个虚拟磁盘设备上,用户应将私有数据存储到该磁盘设备上;
最后,借助LUKS机制和SM4对称加密算法对用户VM的临时数据和私有数据进行加密,以便在终端失控的条件下也能保护数据的安全;设SM4密钥为SM4_KEY,可利用vTCM提供的封装机制将该密钥保存在vTCM内部,仅当基础软件及工作软件的完整性未被破坏的情况下才能解封该密钥,进而访问用户VM的临时数据和私有数据;因此,即使攻击者在物理上控制了终端,也无法直接读取加密后的数据;另外,如果攻击者试图通过正常启动用户VM来访问加密数据,则必须对基础软件和工作软件来进行修改以绕过登录流程,如此将导致完整性度量值发生变化,进而无法对SM4_KEY进行解封,也就无法访问加密数据。
7.如权利要求2所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,所述用户虚拟机是整个系统中直接与用户交互的部分,它接收用户命令,执行用户程序,使整个系统在外观和感受上与现有的操作系统完全相同;但用户虚拟机的硬件被简化了,它拥有自己的处理器、内存,却没有自己的外部设备,用户虚拟机通过虚拟设备驱动程序使用执行虚拟机中的外部设备;用户虚拟机的操作系统也被简化了,它运行所需要的大部分策略被移到了管理虚拟机上;它仅需要管理几个非常简单的虚拟设备和它们的驱动程序;它的文件系统仅剩余一个接口;用户虚拟机使用策略却不能修改策略,使用设备但不拥有设备,使用文件但不管理文件;
为了进一步提高系统的安全性和可靠性,系统中提供了一组用户虚拟机;可以将用户虚拟机分为两类,即私密用户虚拟机和开放用户虚拟机;
私密用户虚拟机是封闭的系统,不与外界交互,仅运行包括办公软件在内的封闭的应用程序,处理高安全性工作;
开放用户虚拟机是开放的系统,需要经常与外界交互,运行包括浏览器在内的开放的应用程序,处理一般性的工作;
原则上,私密用户虚拟机中不允许插入任何模块,而开放用户虚拟机中则允许插入内核模块,用户可以根据需要动态创建、撤销用户虚拟机,各用户虚拟机的运行策略和处理能力由管理虚拟机配置;在管理虚拟机的管理下,私密用户虚拟机可以存取开放用户虚拟机的文件,但开放用户虚拟机仅能访问自己的文件;开放用户虚拟机可能出现故障,但其故障不会对系统其它部分造成破坏性影响;将用户虚拟机分成两类,从另一个方面解决了操作系统的封闭性与可扩展性问题,也提高了系统的安全性和可靠性。
8.如权利要求2所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,所述实现方法中包括基于三权分立的文件系统执行流程设计:
用户虚拟机中的文件系统、管理虚拟机中的元数据管理系统和策略管理系统与执行虚拟机中的对象管理系统一起构成一个基于对象的分布式并行文件系统,共同管理块设备上的数据;
在基于对象的分布式并行文件系统中,传统文件系统的功能被分割并重组,其中名字空间管理部分交给了管理虚拟机中的元数据管理系统,存储空间管理部分交给了执行虚拟机中的对象管理系统,用户虚拟机中仅剩余一个文件系统接口;传统文件系统中的通信流也被分割开了,用户虚拟机与管理虚拟机之间仅传送控制流,用户虚拟机和执行虚拟机之间仅传送数据流;用户的文件管理操作,如创建文件、删除文件等,仅需要与元数据管理系统交互即可,不需要与对象管理系统通信;文件读写操作需要与元数据管理系统和对象管理系统交互,但也仅在打开、关闭文件时需要访问元数据管理系统,真正的文件读写操作不再需要元数据管理系统的参与;
(1)文件打开操作
当用户打开文件系统中的某个文件时,用户虚拟机中的文件系统向元数据管理系统发出请求:解析文件路径名并申请访问存储对象的安全证书;
元数据管理系统解析文件路径名,获得文件控制块,得到存储文件的对象ID;而后向策略管理系统申请存取对象的安全证书;
策略管理系统验证用户请求的合法性,颁发安全证书;
元数据服务器将文件所在的对象ID、文件在对象上的布局方式及各对象的安全证书等返还给文件系统;
(2)文件读写操作
文件系统向对象管理系统发送对象读写操作请求,请求中需包含对象ID和安全证书;
对象管理系统验证请求的合法性,请求块设备驱动程序完成用户请求的块操作;
块设备完成操作,将结果返还给驱动程序,并进而返还给对象管理系统;
对象管理系统将对象操作结果返还给文件系统;
(3)文件关闭操作
文件系统向元数据管理系统发送请求,关闭已打开的文件;
元数据管理系统释放有关的数据结构等,关闭文件。
9.如权利要求2所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,所述实现方法中包括立体交叉的虚拟机设备管控设计方案:
在跨域安全终端虚拟机系统中,设备管理系统是一个立体交叉的系统;
在Z轴上,最下层的虚拟机监控器负责外部设备的指派,保证只有特定的执行虚拟机才可以访问某种特定的外部设备;上层的执行虚拟机负责外部设备的驱动,而驱动程序之上的对象管理、统一威胁管理和字符设备管理系统负责实施对外部设备的访问控制;最上层的设备监控系统负责监督各外部设备及其驱动程序的运行情况,并在发现问题时重新加载驱动程序或将设备隔离;
在Y轴上,只有执行虚拟机中才有物理的外部设备,其它虚拟机中只有虚拟的外部设备,用户虚拟机和管理虚拟机只有通过执行虚拟机才能使用外部设备,执行虚拟机上的访问控制机制无法绕过;管理虚拟机中的设备管理系统与执行虚拟机中的设备监控系统合作,负责设备驱动程序的加载、卸载等工作,设备管理系统还负责监控整个执行虚拟机的运行,并在发现问题时重启整个执行虚拟机;
在X轴上,执行虚拟机被分成多个,分别管理基本的外部设备和扩展的外部设备;只有扩展执行虚拟机中才允许加载设备驱动程序,其问题与故障容易被隔离,影响与破坏容易被限制;
通过这种全方位、立体交叉式的设备管理,可以提高整个操作系统的安全性、可靠性、可用性,又不破坏系统的可扩展性;
虚拟设备的驱动程序建立在虚拟通道之上,实际上仅仅是一个驱动程序接口,负责将设备操作请求通过虚拟通道发送给执行虚拟机,并将来自执行虚拟机的操作结果转交给设备的用户;由于虚拟设备驱动程序并不需要驱动实际的设备,因此在用户虚拟机和管理虚拟机中仅需要提供几类虚拟设备驱动程序即可,包括虚拟块设备驱动程序、虚拟网络设备驱动程序、虚拟字符设备驱动程序;当然,虚拟设备管理系统中需要维护若干数据结构,记录各虚拟设备的状态等管理信息;加载虚拟设备驱动程序仅仅是修改一下数据结构,并不需要向内核中真正插入模块;
在执行虚拟机中,专门设计了一个I/O派遣系统,负责接收来自虚拟设备驱动程序的操作请求,并将其转发给对象管理系统、统一威胁管理或字符设备控制系统;I/O派发系统由一个内核态监听线程、多个请求队列和多个内核态处理线程组成;监听线程监听来自虚拟通道上的设备操作请求,并根据操作的设备类型将其分别挂在不同的请求队列中;处理线程从请求队列中取出操作请求,将其交给对象管理系统、统一威胁管理或字符设备控制系统处理。
10.如权利要求9所述的基于三权分立的跨域网络终端虚拟机的实现方法,其特征在于,物理设备驱动程序的加载要由执行虚拟机和管理虚拟机配合完成,方式有两种:
(1)当用户虚拟机需要加载某种设备驱动程序时,它向管理虚拟机中的设备管理系统发出请求;设备管理系统根据策略决定此次加载是否合法;如合法,设备管理系统查阅自己的数据库,确定驱动程序的路径名,并请求元数据管理系统解析该路径名,以确定驱动程序的存储位置,而后向执行虚拟机中的设备监控系统发出命令,让其加载驱动程序;当驱动程序加载完成之后,设备监控系统通知用户虚拟机中的虚拟设备管理系统,向其报告设备的状态并让其修改数据结构;
(2)当系统总线发现某种新设备后,它通过中断机制报告给执行虚拟机中的设备监控系统;设备监控系统向管理虚拟机中的设备管理系统发送消息,报告新设备的信息;设备管理系统查询策略管理系统,决定是否允许使用该设备;如果允许,设备管理系统查阅自己的数据库,确定驱动程序的路径名,并请求元数据管理系统解析该路径名,以确定驱动程序的存储位置;存储位置确定后,设备管理系统向设备监控系统发出命令,让其加载驱动程序;当驱动程序加载完成之后,设备监控系统通知用户虚拟机中的虚拟设备管理系统,向其报告设备的状态并让其修改数据结构;
为了进一步提高系统的可靠性和可用性,在执行虚拟机中专门设计了一个设备监控系统,它与管理虚拟机中的设备管理系统一起监控各种外部设备及其驱动程序的运行情况;当发现某个设备或驱动程序出现故障时,设备监控系统可以重启设备或重新加载设备驱动程序;当设备管理系统发现某种设备或驱动程序出现故障时,它可以指示设备虚拟机重启设备或重新加载驱动程序;当发现执行虚拟机出现故障时,可以重新启动整个执行虚拟机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011428331.7A CN112433822A (zh) | 2020-12-07 | 2020-12-07 | 基于三权分立的跨域网络终端虚拟机的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011428331.7A CN112433822A (zh) | 2020-12-07 | 2020-12-07 | 基于三权分立的跨域网络终端虚拟机的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112433822A true CN112433822A (zh) | 2021-03-02 |
Family
ID=74692069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011428331.7A Pending CN112433822A (zh) | 2020-12-07 | 2020-12-07 | 基于三权分立的跨域网络终端虚拟机的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433822A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485755A (zh) * | 2021-06-30 | 2021-10-08 | 深圳市科力锐科技有限公司 | 设备驱动程序验证方法、装置、设备及存储介质 |
CN113626149A (zh) * | 2021-08-03 | 2021-11-09 | 浙江中电远为科技有限公司 | 一种基于终端虚拟化的商业秘密保护方法及系统 |
CN114116655A (zh) * | 2021-12-08 | 2022-03-01 | 北京交研智慧科技有限公司 | 基于虚拟机的并行文件存储方法、装置、设备及存储介质 |
CN114253672A (zh) * | 2022-02-24 | 2022-03-29 | 中瓴智行(成都)科技有限公司 | 基于Hypervisor的可持续化安全存储方法、系统及存储介质 |
CN114880076A (zh) * | 2022-05-11 | 2022-08-09 | 科东(广州)软件科技有限公司 | 一种用户态虚拟机的动态映像文件的动态加载方法及装置 |
CN115037800A (zh) * | 2022-08-10 | 2022-09-09 | 广州明领基因科技有限公司 | 基于微隔离的生物信息学容器的构建系统及构建方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104589A1 (en) * | 2006-11-01 | 2008-05-01 | Mccrory Dave Dennis | Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks |
CN101398768A (zh) * | 2008-10-28 | 2009-04-01 | 北京航空航天大学 | 一种分布式虚拟机监视器系统的构建方法 |
CN101661381A (zh) * | 2009-09-08 | 2010-03-03 | 华南理工大学 | 一种基于Xen的数据共享与访问控制方法 |
CN102034052A (zh) * | 2010-12-03 | 2011-04-27 | 北京工业大学 | 基于三权分立的操作系统体系结构及实现方法 |
US20150256341A1 (en) * | 2012-11-22 | 2015-09-10 | Huawei Technologies Co., Ltd. | Management Control Method, Apparatus, and System for Virtual Machine |
CN106529284A (zh) * | 2016-11-02 | 2017-03-22 | 深圳前海生生科技有限公司 | 基于安全芯片的虚拟机监控器安全加固方法 |
CN111951004A (zh) * | 2019-05-17 | 2020-11-17 | 国际商业机器公司 | 数据库世界状态完整性证实 |
-
2020
- 2020-12-07 CN CN202011428331.7A patent/CN112433822A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104589A1 (en) * | 2006-11-01 | 2008-05-01 | Mccrory Dave Dennis | Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks |
CN101398768A (zh) * | 2008-10-28 | 2009-04-01 | 北京航空航天大学 | 一种分布式虚拟机监视器系统的构建方法 |
CN101661381A (zh) * | 2009-09-08 | 2010-03-03 | 华南理工大学 | 一种基于Xen的数据共享与访问控制方法 |
CN102034052A (zh) * | 2010-12-03 | 2011-04-27 | 北京工业大学 | 基于三权分立的操作系统体系结构及实现方法 |
US20150256341A1 (en) * | 2012-11-22 | 2015-09-10 | Huawei Technologies Co., Ltd. | Management Control Method, Apparatus, and System for Virtual Machine |
CN106529284A (zh) * | 2016-11-02 | 2017-03-22 | 深圳前海生生科技有限公司 | 基于安全芯片的虚拟机监控器安全加固方法 |
CN111951004A (zh) * | 2019-05-17 | 2020-11-17 | 国际商业机器公司 | 数据库世界状态完整性证实 |
Non-Patent Citations (4)
Title |
---|
CHUNXIAO LI: "Secure Virtual Machine Execution under an Untrusted Management OS", 2010 IEEE 3RD INTERNATIONAL CONFERENCE ON CLOUD COMPUTING, 26 August 2010 (2010-08-26) * |
吴志峰: "一种基于众核处理器的操作系统研究", 河南理工大学学报(自然科学版), 31 October 2009 (2009-10-31), pages 0 - 3 * |
段翼真: "一种支持多域访问的可信云终端设计", 华中科技大学学报(自然科学版), 31 December 2017 (2017-12-31), pages 3 * |
黄玉琪: "基于三权分立原则的安全操作系统结构设计", 计算机应用与软件, 31 August 2010 (2010-08-31), pages 1 - 5 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485755A (zh) * | 2021-06-30 | 2021-10-08 | 深圳市科力锐科技有限公司 | 设备驱动程序验证方法、装置、设备及存储介质 |
CN113485755B (zh) * | 2021-06-30 | 2023-08-18 | 深圳市科力锐科技有限公司 | 设备驱动程序验证方法、装置、设备及存储介质 |
CN113626149A (zh) * | 2021-08-03 | 2021-11-09 | 浙江中电远为科技有限公司 | 一种基于终端虚拟化的商业秘密保护方法及系统 |
CN113626149B (zh) * | 2021-08-03 | 2024-05-10 | 浙江中电远为科技有限公司 | 一种基于终端虚拟化的商业秘密保护方法及系统 |
CN114116655A (zh) * | 2021-12-08 | 2022-03-01 | 北京交研智慧科技有限公司 | 基于虚拟机的并行文件存储方法、装置、设备及存储介质 |
CN114253672A (zh) * | 2022-02-24 | 2022-03-29 | 中瓴智行(成都)科技有限公司 | 基于Hypervisor的可持续化安全存储方法、系统及存储介质 |
CN114880076A (zh) * | 2022-05-11 | 2022-08-09 | 科东(广州)软件科技有限公司 | 一种用户态虚拟机的动态映像文件的动态加载方法及装置 |
CN115037800A (zh) * | 2022-08-10 | 2022-09-09 | 广州明领基因科技有限公司 | 基于微隔离的生物信息学容器的构建系统及构建方法 |
CN115037800B (zh) * | 2022-08-10 | 2022-10-25 | 广州明领基因科技有限公司 | 基于微隔离的生物信息学容器的构建系统及构建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pék et al. | A survey of security issues in hardware virtualization | |
Hetzelt et al. | Security analysis of encrypted virtual machines | |
CN112433822A (zh) | 基于三权分立的跨域网络终端虚拟机的实现方法 | |
US9311483B2 (en) | Local secure service partitions for operating system security | |
Pearce et al. | Virtualization: Issues, security threats, and solutions | |
US20180045189A1 (en) | System and Method for Processor-Based Security | |
Scarfone | Guide to security for full virtualization technologies | |
US20180046479A1 (en) | On-demand disposable virtual work system | |
US8839239B2 (en) | Protection of virtual machines executing on a host device | |
Li et al. | A trusted virtual machine in an untrusted management environment | |
Li et al. | Mycloud: supporting user-configured privacy protection in cloud computing | |
van Cleeff et al. | Security implications of virtualization: A literature study | |
Wu et al. | Comprehensive VM protection against untrusted hypervisor through retrofitted AMD memory encryption | |
Patil et al. | An exhaustive survey on security concerns and solutions at different components of virtualization | |
Zhang et al. | PALM: security preserving VM live migration for systems with VMM-enforced protection | |
Mi et al. | (mostly) exitless {VM} protection from untrusted hypervisor through disaggregated nested virtualization | |
CN104598842B (zh) | 一种虚拟机监控器信任域分割方法 | |
Zhu et al. | HA-VMSI: A lightweight virtual machine isolation approach with commodity hardware for ARM | |
Inokuchi et al. | Secure VM management with strong user binding in semi-trusted clouds | |
Dubrulle et al. | Blind hypervision to protect virtual machine privacy against hypervisor escape vulnerabilities | |
Zhao et al. | Virtual machine security systems | |
Potter et al. | Secure Isolation of Untrusted Legacy Applications. | |
Fernandes et al. | Decomposable trust for Android applications | |
Zhang et al. | Hypebios: enforcing vm isolation with minimized and decomposed cloud tcb | |
Dimou | Automatic security hardening of Docker containers using Mandatory Access Control, specialized in defending isolation |
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 |