CN107562514B - 一种物理内存访问控制与隔离方法 - Google Patents

一种物理内存访问控制与隔离方法 Download PDF

Info

Publication number
CN107562514B
CN107562514B CN201710655806.8A CN201710655806A CN107562514B CN 107562514 B CN107562514 B CN 107562514B CN 201710655806 A CN201710655806 A CN 201710655806A CN 107562514 B CN107562514 B CN 107562514B
Authority
CN
China
Prior art keywords
information
page
task
vmid
physical
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
CN201710655806.8A
Other languages
English (en)
Other versions
CN107562514A (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.)
Tangram Microelectronic Technology Shanghai Co ltd
Original Assignee
Tangram Microelectronic Technology Shanghai 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 Tangram Microelectronic Technology Shanghai Co ltd filed Critical Tangram Microelectronic Technology Shanghai Co ltd
Priority to CN201710655806.8A priority Critical patent/CN107562514B/zh
Publication of CN107562514A publication Critical patent/CN107562514A/zh
Application granted granted Critical
Publication of CN107562514B publication Critical patent/CN107562514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种物理内存访问控制与隔离方法,包括:根据虚拟机中的任务发出的内存访问请求,得到该虚拟机的第一拥有者信息(VMID)、所述任务的第一任务信息(TID)。根据请求产生的虚拟地址查找系统页表,找到虚拟地址对应的物理地址。查找物理页面属性表,并获取与物理地址对应的第二拥有者信息(VMID)和第二任务信息(TID)。至少根据第一拥有者信息(VMID)、第一任务信息(TID)、第二拥有者信息(VMID)和第二任务信息(TID),确定是否允许内存访问。本发明可以很好地解决虚拟化平台中虚拟机管理程序、虚拟机内部其他任务以及当前任务的非法代码对当前任务数据的非法访问。

Description

一种物理内存访问控制与隔离方法
技术领域
本发明涉及物理内存访问控制与隔离方法,尤其是涉及一种添加物理页面属性实现虚拟机内任务级别的物理内存访问控制与隔离方法。
背景技术
AMD公司的SEV技术可以实现对虚拟机所使用的物理内存进行加密。加密的密钥只有安全处理器能够访问,不同的虚拟机所用的密钥不同,虚拟机和管理程序所用的密钥也不相同,因此可以保证虚拟机的内存不能被其他的虚拟机或者管理程序访问。这种基于加密来实现的内存保护存在3个主要的安全隐患:1)如果攻击者破解了加密算法那么保护就会完全失效或算法实现存在某些漏洞导致保护强度的降低;2)数据缺乏完整性保护,攻击者可以修改加密的数据而CPU无法实时动态检测出数据发生的变化;3)虚拟机内部的任务之间使用相同的密钥,因此加密的数据对于虚拟机内部的任务是透明的,攻击者仍然可以利用虚拟机的漏洞访问应该被保护的数据。
发明内容
本发明主要一种物理内存访问控制与隔离方法,通过为每个物理页面增加物理页面属性表来实现对虚拟机内存访问的控制与隔离,通过这种方法来增加安全性。页面属性中包含当前页面所属的虚拟机ID,因此只有页面的拥有者虚拟机能够访问此物理页面;同时页面属性中还包含了使用当前页面的任务信息,因此同一虚拟机内的其他任务无法访问此物理页面。
为实现上述目的,本发明提供一种物理内存访问控制与隔离方法,方法包括:根据虚拟机中的任务发出的内存访问请求,得到该虚拟机的第一拥有者信息(VMID)、所述任务的第一任务信息(TID)。根据请求产生的虚拟地址查找系统页表,找到虚拟地址对应的物理地址。查找物理页面属性表,并获取与物理地址对应的第二拥有者信息(VMID)和第二任务信息(TID)。至少根据第一拥有者信息(VMID)、第一任务信息(TID)、第二拥有者信息(VMID)和第二任务信息(TID),确定是否允许内存访问。
优选地,确定是否允许内存访问的步骤包括:判断第一拥有者信息(VMID)和第二拥有者信息(VMID)是否相等。如果判断为否,拒绝访问;如果判断为是,继续判断第一任务信息(TID)和第二任务信息(TID)是否相等。如果判断为否,拒绝访问。
优选地,上述方法还包括:根据内存访问请求,获取第一页面线性地址信息(LADDR)。第一页面线性地址信息(LADDR)是根据请求的虚拟地址所产生的。通过查找物理页面属性表,获取第二页面线性地址信息(LADDR),第二页面线性地址信息是由安全处理器写入到物理页面属性表中。在第一拥有者信息(VMID)和第二拥有者信息(VMID)相等,且第一任务信息(TID)和第二任务信息(TID)相等的情况下,判断第一页面线性地址信息(LADDR)和第二页面线性地址信息(LADDR)是否相等。判断为是,则允许访问;判断为否,则拒绝访问。
优选地,物理页面属性表中包含多个条目,每个条目记录一个物理页面对应的拥有者信息(VMID)、任务信息(TID)和页面线性地址信息(LADDR)。
优选地,拥有者信息(VMID)、任务信息(TID)和页面线性地址信息(LADDR)只有安全处理器能够设置,防止虚拟机管理程序篡改页面的安全属性进而非法访问虚拟机的数据。
发明为物理页面添加物理页面属性表,属性中包含页面的拥有者信息(VMID)、任务信息(TID)和页面线性地址信息(LADDR),其他的虚拟机由于具有不同的VMID因此对此页面的访问会被拒绝;当前虚拟机内的其他任务由于具有不同的TID对此页面的访问会被拒绝;恶意程序如果通过篡改地址的映射关系来访问此物理页面,由于具有不同的LADDR对此页面的访问也会被拒绝。因此本发明可以很好地解决虚拟化平台中虚拟机管理程序、虚拟机内部其他任务以及当前任务的非法代码对当前任务数据的非法访问。
附图说明
图1一种物理内存访问控制与隔离方法流程图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
在内存管理领域,CPU以页面(Page)为单位管理内存,页面的大小比如可以为4K或者2M Bytes,在CPU内运行的任务/虚拟机使用的是虚拟地址,虚拟地址经过页表(Pagetable)映射到物理地址之后才能被CPU访问。页表属性用来描述当前页面的信息,比如R/W属性表示页面是否可读写或者只读,NX属性表示页面是否可以执行。
为了实现虚拟机内存访问的控制与隔离,在本发明的实施例中,我们为每个物理页面增加物理页面属性表(page frame attribute table)。在运行时,虚拟机如果需要访问内存,首先根据虚拟机的虚拟地址查询系统原有的页表得到真实的物理地址,再通过物理地址查询新增的物理页面属性表,表项里含有页面的拥有者信息VMID(virtual machineid),如果是拥有者虚拟机想要访问当前页面,VMID匹配则允许访问;而其他的虚拟机或者管理程序想要访问此页面,由于VMID不匹配CPU拒绝此次访问。
为了防止同一个虚拟机内部的其他任务非法访问当前任务的数据,我们在页面属性中增加任务信息TID(task ID)。进一步优选地,为了防止恶意程序通过篡改虚拟地址和物理地址的映射关系进行攻击,我们在页面属性中增加页面线性地址信息LADDR(LinearAddress)。安全处理器为任务分配TID,并且将TID和页面线性地址LADDR写入页面的页面属性。如果是当前任务想要访问此页面,TID匹配并且页面的映射关系没有被篡改则允许访问,否则拒绝访问;而当前虚拟机内的其他任务想要访问此页面,由于TID不匹配CPU拒绝此次访问。
基于以上思路,本发明的实施例提供一种物理内存访问控制与隔离方法,下面结合附图描述该方法的执行过程。
如图1所示,在一个实施例中,本发明的内存控制与隔离方法包括以下步骤:
首先在步骤101,根据虚拟机中的任务发出的内存访问请求,得到该虚拟机的第一拥有者信息(VMID)和所述任务的第一任务信息(TID)。
然后在步骤102:根据所述请求产生的虚拟地址查找系统页表。如前所述,页表记录了虚拟地址到物理地址的映射,因此,在步骤103,可以找到虚拟地址对应的物理地址。
然后在步骤104,查找我们增加的物理页面属性表,并获取与物理地址对应的第二拥有者信息(VMID)和第二任务信息(TID)。
基于以上获取的第一拥有者信息(VMID)、第一任务信息(TID)、第二拥有者信息(VMID)和第二任务信息(TID),确定是否允许内存访问。
具体而言,在一个实施例中,步骤105进一步包括:
步骤106:判断第一拥有者信息(VMID)和第二拥有者信息(VMID)是否相等;
如果步骤106中判断为否,拒绝访问;如果判断为是,执行步骤107;
步骤107:判断第一任务信息(TID)和第二任务信息(TID)是否相等;如果步骤107中判断为否,拒绝访问。
为了进一步增加安全性,防止地址被篡改的可能,在一个实施例中,本发明的方法还包括:在步骤101中,根据内存访问请求,还获取第一页面线性地址信息(LADDR);所述第一页面线性地址信息(LADDR)是根据请求的虚拟地址所产生的;
在步骤104,通过查找物理页面属性表,还获取第二页面线性地址信息(LADDR),所述第二页面线性地址信息是由安全处理器写入到物理页面属性表中。
在步骤106和步骤107中的判断均为是的情况下,执行步骤108:判断第一页面线性地址信息(LADDR)和第二页面线性地址信息(LADDR)是否相等;
如果步骤108中的判断为是,则允许访问;
如果该判断为否,则拒绝访问。
所应理解的是,增加页面线性地址信息LADDR(Linear Address)是为了保证数据访问的更加安全,可以保证防止恶意程序篡改虚拟地址和物理地址的映射关系进行攻击。
只有安全处理器(假设这是CPU内部一个特殊管理单元,比如AMD的PSP和Intel的ME)能够设置扩展的页表属性VMID,TID和LADDR,这样可以防止虚拟机管理程序篡改页面的安全属性进而非法访问虚拟机的数据。
任务在访问某个物理页面时,内存控制器会依次检查当前虚拟机的信息VMID,任务的信息TID以及页面的线性地址LADDR,只有3条信息与被访问的物理页面的信息都匹配时访问才被允许,否则会被拒绝,以此来保证数据不能被非法访问。
本发明为物理页面添加物理页面属性表,属性中包含页面的拥有者虚拟机和任务信息VMID,TID和LADDR,其他的虚拟机由于具有不同的VMID因此对此页面的访问会被拒绝;当前虚拟机内的其他任务由于具有不同的TID对此页面的访问会被拒绝;恶意程序如果通过篡改地址的映射关系来访问此物理页面,由于具有不同的LADDR对此页面的访问也会被拒绝。因此本发明可以很好地解决虚拟化平台中虚拟机管理程序,虚拟机内部其他任务以及当前任务的非法代码对当前任务数据的非法访问。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种物理内存访问控制与隔离方法,其特征在于,所述方法包括:
步骤101:根据虚拟机中的任务发出的内存访问请求,得到该虚拟机的第一拥有者信息VMID和所述任务的第一任务信息TID;根据内存访问请求,获取第一页面线性地址信息LADDR;所述第一页面线性地址信息LADDR是根据请求的虚拟地址所产生的;
在所述步骤101之前,还包括:为每个物理页面增加物理页面属性表;
步骤102:根据所述请求产生的虚拟地址查找系统页表;
步骤103:找到虚拟地址对应的物理地址;
步骤104:根据所述物理地址查找物理页面属性表,并获取与物理地址对应的第二拥有者信息VMID和第二任务信息TID;通过查找物理页面属性表,获取第二页面线性地址信息LADDR,所述第二页面线性地址信息是由安全处理器写入到物理页面属性表中;
步骤105:至少根据所述第一拥有者信息VMID、所述第一任务信息TID、所述第二拥有者信息VMID和所述第二任务信息TID,确定是否允许内存访问;
所述步骤105确定是否允许内存访问的步骤包括:
步骤106:判断第一拥有者信息VMID和第二拥有者信息VMID是否相等;
如果步骤106中判断为否,拒绝访问;如果判断为是,执行步骤107;
步骤107:判断第一任务信息TID和第二任务信息TID是否相等;
如果步骤107中判断为否,拒绝访问;
在步骤106和步骤107中的判断均为是的情况下,执行步骤108:判断第一页面线性地址信息LADDR和第二页面线性地址信息LADDR是否相等;
如果步骤108中的判断为是,则允许访问;
如果该判断为否,则拒绝访问。
2.根据权利要求1所述的方法,其特征在于,所述物理页面属性表中包含多个条目,每个条目记录一个物理页面对应的拥有者信息VMID、任务信息TID和页面线性地址信息LADDR。
3.根据权利要求2所述的方法,其特征在于,所述拥有者信息VMID、所述任务信息TID和所述页面线性地址信息LADDR仅由安全处理器设置。
CN201710655806.8A 2017-08-03 2017-08-03 一种物理内存访问控制与隔离方法 Active CN107562514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710655806.8A CN107562514B (zh) 2017-08-03 2017-08-03 一种物理内存访问控制与隔离方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710655806.8A CN107562514B (zh) 2017-08-03 2017-08-03 一种物理内存访问控制与隔离方法

Publications (2)

Publication Number Publication Date
CN107562514A CN107562514A (zh) 2018-01-09
CN107562514B true CN107562514B (zh) 2020-11-24

Family

ID=60974184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710655806.8A Active CN107562514B (zh) 2017-08-03 2017-08-03 一种物理内存访问控制与隔离方法

Country Status (1)

Country Link
CN (1) CN107562514B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766165B (zh) * 2018-11-22 2022-07-08 海光信息技术股份有限公司 一种内存访问控制方法、装置、内存控制器及计算机系统
CN109800050B (zh) * 2018-11-22 2021-11-23 海光信息技术股份有限公司 一种虚拟机的内存管理方法、装置、相关设备及系统
CN110928646B (zh) * 2019-11-22 2023-02-17 海光信息技术股份有限公司 一种访问共享内存的方法、装置、处理器和计算机系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064723A1 (en) * 2001-10-31 2004-04-01 Barnes Brian C. Method and apparatus for physical address-based security to determine target security
US7734892B1 (en) * 2005-03-31 2010-06-08 Rozas Guillermo J Memory protection and address translation hardware support for virtual machines
US8522253B1 (en) * 2005-03-31 2013-08-27 Guillermo Rozas Hardware support for virtual machine and operating system context switching in translation lookaside buffers and virtually tagged caches
US8645666B2 (en) * 2006-12-28 2014-02-04 Intel Corporation Means to share translation lookaside buffer (TLB) entries between different contexts
US20140108701A1 (en) * 2010-07-16 2014-04-17 Memory Technologies Llc Memory protection unit in a virtual processing environment
WO2012026877A1 (en) * 2010-08-23 2012-03-01 Empire Technology Development Llc Context switching
JP5541036B2 (ja) * 2010-09-21 2014-07-09 富士通株式会社 メモリアクセス制御プログラム、メモリアクセス制御方法、及び情報処理装置
US9400890B2 (en) * 2012-08-10 2016-07-26 Qualcomm Incorporated Method and devices for selective RAM scrambling
CN104346284B (zh) * 2013-08-02 2017-10-24 华为技术有限公司 一种内存管理方法及内存管理设备
US10261813B2 (en) * 2013-09-25 2019-04-16 Arm Limited Data processing system for dispatching tasks from a plurality of applications to a shared resource provided by an accelerator
US9619387B2 (en) * 2014-02-21 2017-04-11 Arm Limited Invalidating stored address translations
CN105183565B (zh) * 2015-09-30 2018-12-07 华为技术有限公司 计算机、服务质量控制方法及装置
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法

Also Published As

Publication number Publication date
CN107562514A (zh) 2018-01-09

Similar Documents

Publication Publication Date Title
JP7428770B2 (ja) コンピュータプログラム、コンピュータ可読記憶媒体及び装置
CN109901911B (zh) 一种信息设置方法、控制方法、装置及相关设备
CN110928646B (zh) 一种访问共享内存的方法、装置、处理器和计算机系统
US9772953B2 (en) Methods and apparatus for protecting operating system data
CN111400702A (zh) 一种虚拟化的操作系统内核保护方法
EP3867783B1 (en) Parameter signature for realm security configuration parameters
US11481339B2 (en) Trusted intermediary realm
CN107562514B (zh) 一种物理内存访问控制与隔离方法
CN112639789A (zh) 用于存储器完好性检查的完好性树
CN109617977B (zh) 一种网页请求处理方法及装置
CN112099904B (zh) 一种虚拟机的嵌套页表管理方法、装置、处理器芯片及服务器
EP3178032B1 (en) Embedding secret data in code
EP1989627A2 (en) Prevention of executable code modification
US11886350B2 (en) System memory context determination for integrity monitoring and related techniques
US20160044041A1 (en) Verifying caller authorization using secret data embedded in code
US10606813B2 (en) Systems and methods for securely managing program execution
US20160140055A1 (en) Least Privileged Operating System
WO2019148447A1 (zh) 数据保护方法和数据保护装置
CN115474197A (zh) 访问虚拟电子设备的方法及装置、电子设备、存储介质
Taassori Low Overhead Secure Systems
CN115982699A (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
GR01 Patent grant
GR01 Patent grant