CN107368354B - 一种虚拟机安全隔离方法 - Google Patents

一种虚拟机安全隔离方法 Download PDF

Info

Publication number
CN107368354B
CN107368354B CN201710657661.5A CN201710657661A CN107368354B CN 107368354 B CN107368354 B CN 107368354B CN 201710657661 A CN201710657661 A CN 201710657661A CN 107368354 B CN107368354 B CN 107368354B
Authority
CN
China
Prior art keywords
virtual machine
page frame
memory
attribute table
frame attribute
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.)
Active
Application number
CN201710657661.5A
Other languages
English (en)
Other versions
CN107368354A (zh
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN201710657661.5A priority Critical patent/CN107368354B/zh
Publication of CN107368354A publication Critical patent/CN107368354A/zh
Application granted granted Critical
Publication of CN107368354B publication Critical patent/CN107368354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

本发明涉及一种虚拟机安全隔离方法,包括:获取虚拟机或虚拟机管理器所请求的内存页框物理地址,CPU运行时虚拟机标签。通过页框地址检查器查询页框属性表,得到内存页框物理地址对应的虚拟机标签。根据查询页框属性表获取的虚拟机标签,判断是否允许虚拟机或虚拟机管理器访问该内存页框。本发明能完全隔离虚拟机管理器对虚拟机物理内存访问和虚拟机之间的内存互访。如果与内存加密技术相结合,则能做到虚拟机之间或虚拟机管理器和虚拟机之间,完全的物理内存空间访问隔离同时又能对内存加密。如果单独使用,由于不需要内存加解密环节,在取得完全隔离虚拟机之间或虚拟机管理器和虚拟机之间访问的安全前提下,可以达到比AMD的SEV更好的内存访问效率。

Description

一种虚拟机安全隔离方法
技术领域
本发明涉及虚拟机安全,尤其是涉及一种虚拟机安全隔离方法。
背景技术
AMD的SEV(Secure Encrypted Virtualization)技术能实现对虚拟机管理器的物理内存和每个虚拟机的物理内存分别使用不同的密钥进行加密。对于密钥的管理只能通过特殊的安全处理器进行,CPU不能直接访问密钥,这样就可以隔离虚拟机间内存互访或虚拟机管理器对虚拟机内存的访问。
主要不足是1)对内存加解密会降低系统访问内存性能。2)不能阻止虚拟机管理器访问虚拟机加密以后的内存。3)缺乏数据的完整性保护。
发明内容
本发明主要提供一种虚拟机安全隔离方法,用于完全隔离虚拟机管理器对虚拟机物理内存访问和虚拟机之间的内存互访,且能与内存加密技术结合使用,做到完全隔离物理内存空间访问同时又能对内存加密。本发明的方案可以使得虚拟机防止软件攻击效果更好,同时又能保持良好的防硬件攻击能力。
为实现上述目的,本发明提供一种虚拟机安全隔离方法,方法包括:获取虚拟机或者虚拟机管理器所请求的内存页框的物理地址和CPU运行时虚拟机标签;通过页框地址检查器查询页框属性表,得到内存页框的物理地址对应的虚拟机标签;通过查询页框属性表得到的虚拟机标签判断是否允许虚拟机或者虚拟机管理器访问该内存页框。虚拟机标签也可称为虚拟机属性。
判断查询页框属性表得到的虚拟机标签是否允许虚拟机或者虚拟机管理器访问内存页框具体包括:判断虚拟机标签是否等于共享页框标识;判断CPU运行时虚拟机标签和查询页框属性表得到的虚拟机标签是否相等;上述两个判断中任意步骤判断为是,则允许访问,否则拒绝访问。
优选地,页框属性表中包含多个条目,每个条目记录一个内存页框与允许访问该内存页框的虚拟机或虚拟机管理器的对应信息。
优选地,查询页框属性表具体包括,用请求的物理地址减去系统主内存起始地址,得到的差除以页框大小,再乘以页框属性表条目大小,最后再用得到的乘积加上页框属性表基址,找到该物理地址对应的页框属性表条目地址,从而取得对应的虚拟机标签VMID。页框大小和页框属性表条目大小,单位为字节。
优选地,页框属性表的存储位置包括:主内存中划分出的一段连续或非连续物理内存,或者独立于主内存外的一块高速存储器。
优选地,页框地址检查器是一个硬件电路模块,能够根据给定内存页框的物理地址查询页框属性表。
优选地,还包括步骤:初始化页框属性表和更新页框属性表。
优选地,初始化页框属性表包括,当系统冷启动或重启后,系统根据页框属性表的配置会把页框属性表的物理地址范围空间告诉给安全处理器,当系统启动完成后,仅由安全处理器将页框属性表中的内容初始化为默认值。
优选地,更新页框属性表包括,虚拟机管理器删除、增加或修改nPT嵌套页表、sPT影子页表或PT页表条目,然后通知安全处理器,所述安全处理器将对页框地址对应的页框属性表条目写入更新后的虚拟机标签VMID。
本发明能完全隔离虚拟机管理器对虚拟机物理内存访问和虚拟机之间的内存互访。本发明既能与内存加密技术(例如AMD的SME)共同使用又可以单独使用。如果和内存加密技术结合使用,则能做到虚拟机之间或虚拟机管理器和虚拟机之间,完全的物理内存空间访问隔离同时又能对内存加密。如果单独使用,由于不需要内存加解密环节,在取得完全隔离虚拟机管理器对虚拟机物理的内存访问和虚拟机之间内存互访的安全前提下,可以达到比AMD的SEV更好的内存访问效率。
附图说明
图1本发明实施例提供的一种虚拟机安全隔离方法系统概要图;
图2本发明实施例提供的一种虚拟机安全隔离方法流程图;
图3为图2所示实施例提供的方法中步骤103的判断流程图;
图4本发明实施例提供的一种虚拟机安全隔离方法页框属性表查询流程图。
具体实施方式
下面通过附图和实施例,来说明本发明提供的一种物理内存访问控制与隔离方法。
如图1所示,本发明实施例提供的一种虚拟机安全隔离系统概要图。本发明设计了一个物理内存页(页框)属性表即页框属性表(Page Frame Attribute Table,简称页框表,PFAT)和页框地址检查器。从硬件设计角度来看,页框表可以是从主内存中划分出的一段连续或非连续物理内存,也可以是独立于主内存外的一块高速存储器,用来记录每个页框和虚拟机或虚拟机管理器的对应关系。页框地址检查器是一个硬件电路模块,该模块能根据给定页框地址查询页框表。CPU运行虚拟机管理器或某个虚拟机,虚拟机管理器管理自身页表,安全处理器驱动和若干虚拟机。虚拟机管理器对虚拟机内存的管理,可选择嵌套页表nPT或影子页表sPT的方式。每个虚拟机都有自己的客机页表gPT。当CPU想要访问虚拟机或者虚拟机管理器内存时,会获取到相应虚拟机或虚拟机管理器的虚拟地址,通过虚拟机管理器中的嵌套页表(可选)、影子页表(可选)或页表得到相应物理地址。页框地址检查器根据物理地址和CPU运行时虚拟机标签查询页框属性表,得到对应页框属性表项的虚拟机标签。然后比较CPU运行时虚拟机标签和查询页框属性表取得的虚拟机标签是否相等,或者判断查询页框属性表取得的虚拟机标签是否为共享页框标识。如果是则允许访问。否则拒绝访问。如果允许访问,则内存控制器负责具体的地址访问,获取所需信息。
如图2所示,为本发明实施例提供的一种虚拟机安全隔离方法流程图。方法包括:步骤101:获取虚拟机或者虚拟机管理器所请求的内存页框的物理地址和CPU运行时虚拟机标签。步骤102:通过页框地址检查器查询页框属性表,得到内存页框的物理地址对应的虚拟机标签。步骤103:通过查询页框属性表得到的虚拟机标签判断是否允许虚拟机或者虚拟机管理器访问内存页框。
如图3所示,为图2所示实施例提供的方法中步骤103的判断流程图。具体包括,步骤104:判断所述查询页框属性表得到的虚拟机标签是否等于共享页框标识。步骤105:判断所述CPU运行时虚拟机标签和查询页框属性表得到的虚拟机标签是否相等。在步骤104和步骤105中任意步骤判断为是,则进入步骤106允许访问,否则进入步骤107拒绝访问。值得注意的是,本发明实施例只是提供了一种判断顺序。其步骤104和步骤105之间的顺序不做规定,先判断步骤105后判断步骤104,同样适用。
如图4所示,为本发明实施例提供的一种虚拟机安全隔离方法页框属性表查询流程图。具体包括,用请求的物理地址减去系统主内存起始地址,得到的差除以页框大小,再乘以页框属性表条目大小,最后再用得到的乘积加上页框属性表基址,找到该页框地址对应的页框属性表条目地址,从而取得对应的虚拟机标签VMID。页框大小和虚拟机标签VMID大小,单位为字节。对应的虚拟机标签VMID位于页框属性表中。
本发明能完全隔离虚拟机管理器对虚拟机物理内存访问和虚拟机之间的内存互访。本发明既能与内存加密技术(例如AMD的SME)共同使用又可以单独使用。如果和内存加密技术结合使用,则能做到虚拟机之间或虚拟机管理器和虚拟机之间,完全的物理内存空间隔离同时又能对内存加密。如果单独使用,由于不需要内存加解密环节,在取得完全隔离虚拟机管理器对虚拟机物理内存访问和虚拟机之间的内存互访的安全前提下,可以达到比AMD的SEV更好的内存访问效率。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种虚拟机安全隔离方法,其特征在于,所述方法包括:
步骤101:获取虚拟机或者虚拟机管理器所请求的内存页框的物理地址和CPU运行时虚拟机标签;
步骤102:通过页框地址检查器查询页框属性表,得到所述内存页框的物理地址对应的虚拟机标签;
步骤103:通过比较CPU运行时虚拟机标签和查询页框属性表得到的虚拟机标签判断是否允许所述虚拟机或者虚拟机管理器访问所述内存页框,
其中,所述步骤103具体包括:
步骤104:判断所述查询页框属性表得到的虚拟机标签是否为共享页框标识;
步骤105:判断所述查询页框属性表得到的虚拟机标签和CPU运行时虚拟机标签是否相等;
在步骤104和步骤105中任意步骤判断为是,则允许访问,否则拒绝访问。
2.根据权利要求1所述的方法,其特征在于,所述页框属性表中包含多个条目,每个条目记录一个内存页框与允许访问该内存页框的虚拟机或虚拟机管理器的对应关系。
3.根据权利要求1所述的方法,其特征在于,所述查询页框属性表具体包括,用所述物理地址减去系统主内存起始地址,得到的差除以页框大小,再乘以页框属性表条目大小,最后再用得到的乘积加上页框属性表基址,找到该物理地址对应的页框属性表条目地址,从而取得对应的虚拟机标签(VMID)。
4.根据权利要求1所述的方法,其特征在于,所述页框属性表的存储位置包括:主内存中划分出的一段连续或非连续物理内存,或者独立于主内存外的一块高速存储器。
5.根据权利要求1所述的方法,其特征在于,所述页框地址检查器是一个硬件电路模块。
6.根据权利要求1所述的方法,其特征在于,还包括步骤:初始化页框属性表和更新页框属性表。
7.根据权利要求6所述的方法,其特征在于,所述初始化页框属性表包括,当系统冷启动或重启后,系统根据页框属性表的配置会把页框属性表的物理地址范围空间告诉给安全处理器,当系统启动完成后,仅由安全处理器将页框属性表中的内容初始化为默认值。
8.根据权利要求6所述的方法,其特征在于,所述更新页框属性表包括,虚拟机管理器删除、增加或修改nPT(嵌套页表)、sPT(影子页表)或PT(页表)条目,然后通知安全处理器,所述安全处理器将对页框地址对应的页框属性表条目写入更新后的虚拟机标签(VMID)。
CN201710657661.5A 2017-08-03 2017-08-03 一种虚拟机安全隔离方法 Active CN107368354B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710657661.5A CN107368354B (zh) 2017-08-03 2017-08-03 一种虚拟机安全隔离方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710657661.5A CN107368354B (zh) 2017-08-03 2017-08-03 一种虚拟机安全隔离方法

Publications (2)

Publication Number Publication Date
CN107368354A CN107368354A (zh) 2017-11-21
CN107368354B true CN107368354B (zh) 2021-02-02

Family

ID=60310502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710657661.5A Active CN107368354B (zh) 2017-08-03 2017-08-03 一种虚拟机安全隔离方法

Country Status (1)

Country Link
CN (1) CN107368354B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108418817B (zh) * 2018-02-14 2021-02-26 华为技术有限公司 一种加密方法及装置
CN109901911B (zh) * 2018-11-22 2023-07-07 海光信息技术股份有限公司 一种信息设置方法、控制方法、装置及相关设备
CN109766164B (zh) * 2018-11-22 2021-06-18 海光信息技术股份有限公司 一种访问控制方法、内存管理方法及相关装置
CN109614204A (zh) * 2018-12-21 2019-04-12 成都海光集成电路设计有限公司 内存隔离保护方法、隔离检查硬件、soc芯片和存储介质
US10936506B2 (en) * 2019-02-22 2021-03-02 Chengdu Haiguang Integrated Circuit Design Co., Ltd. Method for tagging control information associated with a physical address, processing system and device
CN110825492B (zh) * 2019-10-31 2023-05-09 海光信息技术股份有限公司 安全数据内存隔离方法、装置、设备、存储介质
CN110928646B (zh) * 2019-11-22 2023-02-17 海光信息技术股份有限公司 一种访问共享内存的方法、装置、处理器和计算机系统
CN111124956B (zh) * 2019-11-22 2023-03-07 海光信息技术股份有限公司 一种容器保护方法、处理器、操作系统及计算机设备
CN112099903B (zh) * 2020-08-18 2023-01-31 海光信息技术股份有限公司 一种虚拟机的内存管理方法、装置、cpu芯片及服务器
CN112052069B (zh) * 2020-08-25 2024-03-12 海光信息技术股份有限公司 一种写、读虚拟机标识的方法、装置及相关设备
CN112988508B (zh) * 2021-03-04 2022-03-18 浙江中控研究院有限公司 一种基于内存隔离的可信plc嵌入式系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101158924A (zh) * 2007-11-27 2008-04-09 北京大学 一种虚拟机管理器的动态内存映射方法
CN101520738A (zh) * 2008-02-27 2009-09-02 黄歆媚 基于设备访存管理技术的虚拟机系统及其设备访问方法
CN103488588A (zh) * 2013-10-09 2014-01-01 中国科学院计算技术研究所 一种内存保护方法、系统及网络接口控制器
CN104468568A (zh) * 2014-12-05 2015-03-25 国云科技股份有限公司 一种虚拟机安全隔离方法
CN105939309A (zh) * 2015-07-28 2016-09-14 杭州迪普科技有限公司 一种虚拟机隔离方法及装置
CN105978915A (zh) * 2016-07-19 2016-09-28 浪潮电子信息产业股份有限公司 一种基于云资源控制的安全隔离方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464252B2 (en) * 2009-02-27 2013-06-11 Red Hat, Inc. Per process virtual machines

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101158924A (zh) * 2007-11-27 2008-04-09 北京大学 一种虚拟机管理器的动态内存映射方法
CN101520738A (zh) * 2008-02-27 2009-09-02 黄歆媚 基于设备访存管理技术的虚拟机系统及其设备访问方法
CN103488588A (zh) * 2013-10-09 2014-01-01 中国科学院计算技术研究所 一种内存保护方法、系统及网络接口控制器
CN104468568A (zh) * 2014-12-05 2015-03-25 国云科技股份有限公司 一种虚拟机安全隔离方法
CN105939309A (zh) * 2015-07-28 2016-09-14 杭州迪普科技有限公司 一种虚拟机隔离方法及装置
CN105978915A (zh) * 2016-07-19 2016-09-28 浪潮电子信息产业股份有限公司 一种基于云资源控制的安全隔离方法

Also Published As

Publication number Publication date
CN107368354A (zh) 2017-11-21

Similar Documents

Publication Publication Date Title
CN107368354B (zh) 一种虚拟机安全隔离方法
US11321452B2 (en) Execution environment virtualization method and apparatus and virtual execution environment access method and apparatus
EP3602376B1 (en) Monitoring of memory page transitions between a hypervisor and a virtual machine
US9098325B2 (en) Persistent volume at an offset of a virtual block device of a storage server
CN107562515B (zh) 一种在虚拟化技术中管理内存的方法
CN110928646B (zh) 一种访问共享内存的方法、装置、处理器和计算机系统
KR101966767B1 (ko) 클라우드 서비스를 위한 암호화 키 관리 시스템
US20170277898A1 (en) Key management for secure memory address spaces
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
CN109901911A (zh) 一种信息设置方法、控制方法、装置及相关设备
CN109523261B (zh) 区块链终端的交易验证方法、相关装置及可读存储介质
CN101783801A (zh) 一种基于网络的软件保护方法、客户端及服务器
US10938559B2 (en) Security key identifier remapping
US11468201B2 (en) System and method for slice virtual disk encryption
CN107430555B (zh) 用于存储器保护的高速缓存和数据组织
CN113395271A (zh) 一种云计算平台中数据安全访问方法及云计算平台
TWI797353B (zh) 動態密碼密鑰擴展之電路、方法及系統
CN110188051B (zh) 标记与物理地址相关的控制信息的方法、处理系统和设备
CN107562514B (zh) 一种物理内存访问控制与隔离方法
US20140289517A1 (en) Methods and apparatuses for securing tethered data
KR101761799B1 (ko) 단말의 보안 데이터 관리 장치 및 그 방법
CN107516052B (zh) 一种内存访问隔离方法
CN112416526B (zh) 一种直接存储访问方法、装置及相关设备
CN111857947B (zh) 内存隔离方法、隔离检查电路和cpu芯片
CN110990120B (zh) 虚拟机监视器分区间通信方法及装置、存储介质和终端

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
TA01 Transfer of patent application right

Effective date of registration: 20180110

Address after: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Applicant after: Hai Guang Information Technology Co., Ltd.

Address before: 201203 3F, No. 1388, 02-01, Zhang Dong Road, Pudong New Area, Shanghai

Applicant before: Analog Microelectronics (Shanghai) Co., Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Applicant after: Haiguang Information Technology Co., Ltd

Address before: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant