CN108932205B - 一种防御RowHammer攻击的方法及设备 - Google Patents

一种防御RowHammer攻击的方法及设备 Download PDF

Info

Publication number
CN108932205B
CN108932205B CN201710380532.6A CN201710380532A CN108932205B CN 108932205 B CN108932205 B CN 108932205B CN 201710380532 A CN201710380532 A CN 201710380532A CN 108932205 B CN108932205 B CN 108932205B
Authority
CN
China
Prior art keywords
entity
memory
physical memory
physical
host
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
CN201710380532.6A
Other languages
English (en)
Other versions
CN108932205A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710380532.6A priority Critical patent/CN108932205B/zh
Publication of CN108932205A publication Critical patent/CN108932205A/zh
Application granted granted Critical
Publication of CN108932205B publication Critical patent/CN108932205B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种防御RowHammer攻击的方法及设备,涉及计算机技术领域,解决了现有在防御RowHammer攻击时,加速DRAM内存刷新速率导致的处理器耗能加大、以及内存的吞吐率受影响的问题,具体方案为:当需要将第一物理内存分配给第一实体时,确定与第一物理内存相邻的一物理内存所属的第一实体集、以及与第一物理内存相邻的另一物理内存所属的第二实体集,若第一实体集和/或第二实体集中存在第二实体,第二实体包含在所述物理主机中不允许访问与所述第一实体的物理内存相邻的物理内存的第三实体集中,则不将第一物理内存分配给第一实体。本发明实施例用于防御RowHammer攻击的过程。

Description

一种防御RowHammer攻击的方法及设备
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种防御RowHammer攻击的方法及设备。
背景技术
RowHammer攻击是一种针对动态随机存取内存(dynamic random access memory,DRAM)的攻击。它的主要工作原理是:利用高密度内存中相邻存储单元相互间的电磁作用来引发错误,如:攻击者可以通过频繁地访问目标内存相邻行的内存来增大目标内存突变的概率,在其原本无权访问的目标内存区域引发存储值的变化。
目前针对Rowhammer攻击的防御机制已经存在一些,如:可以通过加速DRAM内存刷新速率(从每隔64ms一次加速到每隔32ms一次)来防御RowHammer攻击。但是,加速DRAM内存刷新速率方案会带来更大的处理器耗能,且会影响内存的吞吐率。
发明内容
本发明实施例提供一种防御RowHammer攻击的方法及设备,解决了现有在防御RowHammer攻击的过程中,加速DRAM内存刷新速率导致的处理器耗能加大、以及内存的吞吐率受影响的问题。
为达到上述目的,本发明实施例采用如下技术方案:
本发明实施例的第一方面,提供一种防御RowHammer攻击的方法,该方法可以应用于包含至少一个实体的物理主机,包括:
当需要将第一物理内存分配给第一实体时,确定与第一物理内存相邻的第二物理内存所属的第一实体集、以及与第一物理内存相邻的第三物理内存所属的第二实体集,若第一实体集和/或第二实体集中存在第二实体,且该第二实体包含在孤岛安全策略定义的第三实体集中,则放弃将第一物理内存分配给第一实体;
其中,所述第三实体集包含至少一个与第一实体间满足孤岛条件的实体,所述与第一实体间满足孤岛条件的实体为:所述物理主机中不允许访问与所述第一实体的物理内存相邻的物理内存的实体。
如此,当物理主机内在给第一实体分配物理内存时,确定物理内存的相邻物理内存所属的实体,若相邻物理内存所属的实体在孤岛安全策略定义的实体集(即物理主机内对第一实体易产生RowHammer攻击、需要防御的实体集)中,则表示该实体可以访问到待分配给第一实体的物理内存的相邻物理内存,易对第一实体造成RowHammer攻击,不能将该物理内存分配给第一实体,使得物理主机内易对第一实体造成RowHammer攻击的实体访问不到分配给第一实体的物理内存的相邻物理内存,避免了物理主机内的其他实体通过访问第一实体所包含的物理内存的相邻物理内存来实现对第一实体的RowHammer攻击。与现有技术相比,该方案无需加速DRAM内存刷新速率就可以防御RowHammer攻击,避免了处理器耗能加大、以及内存的吞吐率受影响的问题。
其中,上述第一实体可以物理主机内的任一实体,该物理主机可以为X86-64位的计算机。具体的,当该物理主机处在虚拟环境下时,该第一实体可以为虚拟机或者虚拟机监控器,当该物理主机为单机系统时,该第一实体还可以为进程或者内核。
第三实体集可以包含至少一个与第一实体间满足孤岛条件的实体,对于第一实体内的任意物理内存而言,该物理内存的相邻物理内存不属于与第一实体间满足孤岛条件的实体,即在物理主机中与第一实体间满足孤岛条件的实体为易对第一实体产生RowHammer攻击的实体,需要防止其通过访问物理内存的相邻物理内存来实现对第一实体的RowHammer攻击。
第一实体集和/或第二实体集中存在第二实体可以包括:第三实体集包含第二实体、第二实体集包含第二实体,或者第一实体集和第二实体集均包含第二实体。
本发明实施例的第一方面所述的物理内存可以指DRAM中以行为单位的物理内存,其中,若第一物理内存为第n行物理内存,则与第一物理内存相邻的第二物理内存可以为第n-1行物理内存,与第一物理内存相邻的第三物理内存可以为第n+1行物理内存,即第一物理内存与其相邻的物理内存在物理地址上是连续的。可以理解的是,若第一物理内存为首行内存或末行内存,则仅存在与第一物理内存相邻的一个物理内存,如:若第一物理内存为第1行物理内存,则与第一物理内存相邻的物理内存仅为第2行物理内存。
结合第一方面,在一种可能的实现方式中,
若第一实体集和/或第二实体集中未存在第二实体,且该第二实体包含在孤岛安全策略定义的第三实体集中,则将第一物理内存分配给第一实体。
结合第一方面,在一种可能的实现方式中,该方法还可以包括:
接收第一实体发出的包含第一实体的标识以及内存大小的内存分配请求;
根据第一实体的标识以及内存大小,为第一实体获取满足该内存大小的物理内存集,第一物理内存可以为该物理内存集中的任意物理内存。
其中,第一实体的标识用于标识第一实体,内存大小为大于等于1的整数,该内存大小可以根据需要进行设置,本发明实施例对此不进行限定。
其中,物理内存集中的物理内存在物理地址上是连续的。可选的,可以通过传统物理内存分配算法获取满足内存大小的物理内存集,如:可以采用Buddy伙伴算法。
如此,可以在第一实体发出内存分配请求的情况下,才采用本发明实施例提供的技术方案判断是否将第一物理内存分配给第一实体,这与现有的物理内存分配是不同的,采用本方案可以实现在物理内存分配后避免了其他实体对第一实体的RowHammer攻击。
在X86分页内存管理机制下,由页表控制实体的虚拟地址到物理地址的映射,实体间广泛存在共享内存的情况,即一个物理内存在页表中可以存在多个映射路径被实体访问到,很容易导致某一实体在通过修改页表映射的方式实现对其他实体的物理内存的共享访问后,其他实体通过频繁访问共享物理内存的相邻物理内存对该实体造成RowHammer攻击,如:采用上述物理内存方式将物理内存1分配给虚拟机VM1,虚拟机VM2可以通过页表映射的方式共享该物理内存1,但不可避免的会出现其他实体(如虚拟机VM3)通过频繁访问物理内存1的相邻物理内存对虚拟机VM2造成RowHammer攻击,因此,结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若接收到第一实体发出的用于指示:第一实体对第一物理内存进行访问映射的内存管理单元(memory management unit,MMU)更新请求,则表示第一实体需要共享该第一物理内存,确定采用第一方面所述的防御RowHammer攻击的方式判断是否将第一物理内存分配给第一实体;
同时,在第一实体集和/或第二实体集中未存在第二实体,确定将所述第一物理内存分配给所述第一实体之后,查看所述第一实体对所述第一物理内存进行访问的路径个数,将所述路径个数加1;以及,若所述加1后的路径个数为1,则表示第一实体对第一物理内存为首次映射,将所述第一实体添加到所述第一物理内存所属的实体集中。
其中,在X86分页内存管理机制下将第一物理内存分配给第一实体可以指:通过页表映射方式将第一实体的虚拟内存映射到第一物理内存。
如此,可以在MMU页表更新时,避免通过共享后的物理内存对实体产生RowHammer攻击,确保实体内存访问的控制和安全隔离。
此外,若MMU更新请求用于指示:删除第一实体对第一物理内存的访问映射,则表示第一实体不需要访问第一物理内存,需要将第一实体对第一物理内存进行访问的路径个数减1,若减1后的路径个数为零,则将第一实体从第一物理内存所属的实体集中删除;
若MMU更新请求用于指示:更新与第一实体相关的页表页,该页表页用于表示:第一实体的虚拟内存到第一实体所属的物理内存的映射关系,则检测页表页所在内存是否满足孤岛内存M(S0*{S1,S2,…Sn}),S0为物理主机内的安全可信基,S1,S2,…Sn为物理主机内除安全可信基之外的其他实体,若该页表页所在内存满足所述孤岛内存,则表示该页表页所在的物理内存仅安全可信基可以访问,其他实体是不能通过RowHammer攻击实现对该页表页所在物理内存的篡改,此次页表页更改是安全,可以更新该页表页,否则,不更新所述页表页。
其中,更新与第一实体相关的页表页可以指:更新与第一实体相关的现存的页表页中的内容,或者新增与第一实体相关的页表页。
如此,可以避免在更新页表页时,其他实体通过RowHammer攻击对该页表页所在物理内存的篡改。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,
若上述第一实体为物理主机内的安全可信基,则第一实体的孤岛安全策略定义的第三实体集包含:物理主机中除安全可信基之外的所有实体。
其中,安全可信基的孤岛安全策略可以在物理主机的初始化过程(如:物理主机开机时)中进行配置。
如此,可以保证采用本发明实施例所提供的方案之后,物理主机内其他所有实体对安全可信基的RowHammer攻击是安全的。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在需要将第一物理内存分配给第一实体之前,可以预先配置第一实体的用于定义第三实体集的孤岛安全策略,如:
物理主机可以调用物理主机内安全可信基的配置接口,以向安全可信基发送用于请求为第一实体配置孤岛安全策略的配置请求,在安全可信基配置完第一实体的孤岛安全策略后,将孤岛安全策略记录在物理主机的安全可信基中。
其中,配置接口可以为系统调用接口或者超级调用接口。
需要说明的是,在配置第一实体的孤岛安全策略过程中,安全可信基的孤岛安全策略不允许被修改,且第一实体只能申请与自身相关的孤岛安全策略,不允许申请与其他实体相关的孤岛安全策略,如:实体1只能申请配置实体1的孤岛安全策略,不允许申请配置实体1之外的其他实体(如实体2)的孤岛安全策略。
由于物理主机内其他所有实体对安全可信基的RowHammer攻击是安全的,所以,通过将孤岛安全策略存储在物理主机中的安全可信基中,可以有效防止其他实体通过RowHammer攻击来篡改孤岛安全策略,进而保证在实施本发明实施例提供的方案时物理内存分配的准确性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,
在配置完第一实体的孤岛安全策略之后,将第一物理内存分配给第一实体之前,可以重新启动物理主机,以此保证第一实体的孤岛安全策略完整地加载到物理主机内。
本发明实施例的第二方面,提供一种物理主机,该物理主机可以包括:
确定单元,用于当需要将第一物理内存分配给第一实体时,分别确定与第一物理内存相邻的第二物理内存所属的第一实体集、以及与第一物理内存相邻的第三物理内存所属的第二实体集;
分配单元,用于若确定单元确定的第一实体集、第二实体集中任意实体集内存在第二实体,且第二实体包含在孤岛安全策略定义的第三实体集中,则放弃将第一物理内存分配给第一实体;
其中,所述第三实体集包含至少一个与第一实体间满足孤岛条件的实体,所述与第一实体间满足孤岛条件的实体为:所述物理主机中不允许访问与所述第一实体的物理内存相邻的物理内存的实体。
其中,第二方面的具体实现方式可以参考第一方面或第一方面的可能的实现方式提供的防御RowHammer攻击的中物理主机的行为功能,在此不再重复赘述。因此,第二方面提供的物理主机可以达到与第一方面相同的有益效果。
本发明实施例的第三方面,提供一种物理主机,该物理主机可以包括:至少一个处理器,存储器、通信接口、通信总线;至少一个处理器与存储器、通信接口通过通信总线连接;
存储器用于存储计算机执行指令,当处理器运行时,处理器执行存储器存储的计算机执行指令,以使处理器执行第一方面或第一方面的可能的实现方式中任一所述的防御RowHammer攻击的方法,实现第二方面或第二方面的可能的实现方式中配置单元、确定单元、分配单元的功能。
本发明实施例的第四方面,提供一种计算机存储介质,用于存储上述物理主机所用的计算机软件指令,该计算机软件指令包含用于执行上述防御RowHammer攻击的方法所设计的程序。
附图说明
图1为DRAM内存空间布局示意图;
图2为内存分配示意图;
图3为RowHammer攻击场景示意图;
图4为本发明实施例提供的物理主机10的组成示意图;
图5为本发明实施例提供的防御RowHammer攻击的方法的流程图;
图6为本发明实施例提供的防御RowHammer攻击的方法的流程图;
图7为本发明实施例提供的物理主机20的组成示意图;
图8为本发明实施例提供的物理主机30的组成示意图。
具体实施方式
本发明实施例提供一种防御RowHammer攻击的方法,其基本原理是:当物理主机内在给该实体分配物理内存时,确定与该物理内存相邻的物理内存(又可称为该物理内存的相邻物理内存)所属的实体,若与该物理内存相邻的物理内存所属的实体在孤岛安全策略定义的实体集(即对该实体易产生RowHammer攻击、需要防御的实体集)中,则表示若将该物理内存分配给该实体,则会有其他该实体本应防御的实体对其产生RowHammer攻击,不将该物理内存分配给该实体,以避免其他实体通过访问该实体所包含的物理内存的相邻物理内存来实现对该实体的RowHammer攻击。
下面结合附图对本发明实施例的实施方式进行详细描述。在描述技术方案之前,为了便于理解本发明实施例中的技术方案,首先对本发明实施例中的一些名词进行解释说明:
DRAM:图1为DRAM内存空间布局示意图,在图1中,一块2GB大小的第三代双倍数据率同步动态随机存取存储器(double-data-rate three synchronous dynamic randomaccess memory,DDR3)双列直插内存模块(dual inline memory module,DIMM)中有两个rank,每个rank分别有8个bank作为基本区域。在每个bank中有许多的基本单元(cell),每一个基本单元由一个电容和一个晶体管构成,其中,电容可储存1比特(bit)的数据量,电容的电势高低分别对应二进制数据0和1。DRAM中的基本单元按矩阵排列,每一行和每一列都会有一个对应的行地址线路(row)和列地址线路(column)。在内存寻址时先通过行地址找到对应的行地址线路,再通过列地址找到对应的基本单元,内存的访问是以行为基本单位,对内存中的bit进行读写时,首先把该bit所在的整行数据读入行缓存中,操作完成后再将行缓存中的数据写回DRAM。
内存Mi:通常指物理内存Mi,如:DRAM中的第i行内存,其中,i为大于等于1的整数,例如,若i=2,则M2表示DRAM中的第2行内存。
实体Sj:计算机操作系统中逻辑上与其他组件相互独立的组件j,其中,j为大于等于1的整数,比如虚拟化场景中的虚拟机监控器(Hypervisor)、虚拟机(virtual machine,VM),主机系统中的内核(kernel)、进程(process)、驱动等等。
属于∈/包含
Figure BDA0001305079730000051
如果内存Mi能够被实体Sj访问到,则称Mi属于Sj(Mi∈Sj),Sj包含
Figure BDA0001305079730000052
反之,若实体Sj不能访问到内存Mi,则称Mi不属于
Figure BDA0001305079730000054
Sj不包含
Figure BDA0001305079730000053
需要说明的是,在本发明实施例中一块内存可以属于多个实体,一个实体可以包含多块内存。
孤岛内存Mi(Sj*Sk):如果内存Mi属于实体Sj,并且内存Mi相邻行的内存Mp和Mq都不属于Sk,则该内存Mi被称为孤岛内存Mi(Sj*Sk),即满足下述条件的内存称为孤岛内存,其中,k、p以及q分别为大于等于1的整数,j≠k:
Figure BDA0001305079730000055
需要说明的是,在本发明实施例中,内存Mi相邻行的内存(可称为与内存Mi相邻的内存)是指:DRAM中与内存Mi所在行相邻的行的内存,例如:M2相邻行的内存为:M1、M3,第2行内存相邻行的内存为:第1行内存以及第3行内存。可以理解的是,若内存Mi为DRAM中的首行内存,则内存Mi相邻行的内存仅为Mi+1,若内存Mi为DRAM中的末行内存,则内存Mi相邻行的内存仅为Mi-1。此外,在本发明实施例中,若内存Mi属于实体Sj,并且内存Mi相邻行的内存Mp和Mq都不属于Sk、Sn,n为大于等于1的整数,n≠j≠k,则该内存Mi可以被称为孤岛内存Mi(Sj*{Sk,Sn})。
例如:图2为内存分配示意图,如图2所示,分配给实体Hypervisor(S0)的内存为孤岛内存M(S0*{S1,S2}),分配给实体VM2(S2)的内存为孤岛内存M(S2*S1)。
孤岛(Si*Sj):实体Si包含的任意内存Mk都是孤岛内存Mk(Si*Sj),k为大于等于1的整数,则该实体Si是孤岛(Si*Sj),即满足:
Figure BDA0001305079730000061
安全可信基:计算机操作系统中具备系统最高权限,且唯一具备对系统内存管理单元(memory management unit,MMU)进行管理和更新的实体,比如:在虚拟化场景中,可以将Hypervisor作为系统的安全可信基,在单机系统中,可以将系统内核作为安全可信基。
本发明实施例提供的防御RowHammer攻击的方法,可用于防御物理主机10中进程之间的RowHammer攻击(如图3所示process1→process2的攻击),以及进程向内核的RowHammer攻击(如图3所示process1→kernel的攻击),还可用于防御其他场景下的RowHammer攻击,如:虚拟化场景下物理主机10中各虚拟机之间的RowHammer攻击(如图4所示VM1→VM2的攻击),以及虚拟机向Hypervisor发动的RowHammer攻击(如图4所示VM1→Hypervisor的攻击),本发明实施例提供的技术方案对应用场景不进行限定,具体的,本发明实施例以虚拟化场景为例对防御RowHammer攻击的方案进行介绍。
其中,物理主机10可以为X86-64位的计算机,如图4所示,在虚拟化场景下,该物理主机10可以包括:硬件层100、运行在该硬件层之上的虚拟机监视器(Hypervisor)101、以及运行在该虚拟机监视器之上的至少一个虚拟机(VM)102。
硬件层100为虚拟化环境运行的硬件平台,可以包括至少一个处理器1001,存储器1002、通信接口1003、通信总线1004。需要说明的是,图4仅为示例图,在实际应用中,硬件层100还可以包括具有特定处理功能的其它设备。
处理器1001是物理主机10的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器1001是一个中央处理器(central processing unit,CPU),也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signalprocessor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。其中,处理器1001可以通过运行或执行存储在存储器1002内的软件程序,以及调用存储在存储器1002内的数据,执行物理主机的各种功能。在具体的实现中,作为一种实施例,处理器1001可以包括一个或多个CPU,例如图4中所示的CPU0和CPU1,这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、或用于处理数据(例如计算机程序指令)的处理核。
存储器1002可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,DRAM或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-onlymemory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1002可以是独立存在,通过通信总线1004与处理器1001相连接。存储器1002也可以和处理器1001集成在一起。
其中,所述存储器1002用于存储执行本发明方案的软件程序,并由处理器1001来控制执行。
通信接口1003,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。通信接口1003可以包括接收单元实现接收功能,以及发送单元实现发送功能。
通信总线1004,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
虚拟机监控器101作为管理层,用以完成硬件资源的管理、分配,为虚拟机呈现虚拟硬件平台,实现虚拟机的调度和隔离。具体的,虚拟机监控器101可以对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。
虚拟机102:通过虚拟机软件在物理主机10上模拟出的虚拟的计算机,虚拟机102上可以安装操作系统和应用程序,虚拟机还可访问网络资源。
为使本发明实施例的目的、技术方案和优点更加清楚,下面结合图4所示的物理主机10中的具体部件,以防御虚拟机VM1对虚拟机VM2的RowHammer攻击为例,对本发明实施例提供的防御RowHammer攻击的方法进行详细描述,其中,物理主机10为X86的计算机,虚拟机VM1为实体S1,虚拟机VM2为实体S2,计算机内的安全可信基为虚拟机监控器S0。需要说明的是,其他实体间RowHammer攻击的防御也可参照该实施例,在此不再详细赘述。
图5为本发明实施例提供的防御RowHammer攻击的方法的流程图,如图5所示,该方法可以包括:
计算机厂商或者防御RowHammer攻击的开发者,编写能执行本发明实施例提供的方案的程序代码,加载到计算机的存储器中,如:在需要向计算机内加载该程序代码时,计算机的处理器可以在计算机的显示屏上显示有关防御RowHammer攻击的程序代码加载的用户界面,用户下载或编写该程序代码,并点击用户界面上的加载按钮,计算机的处理器通过显示屏接收到用户点击加载按钮的操作后,加载该程序代码到计算机中。
步骤S101:计算机的处理器在检测到计算机开启后,计算机的处理器自动开启计算机中执行本发明实施例提供的防御RowHammer攻击的功能;或者,计算机的处理器在接收到用户发出的开启本发明实施例提供的防御RowHammer攻击的功能的操作后,开启计算机中执行本发明实施例提供的防御RowHammer攻击的功能。
步骤S102:计算机的处理器将全局默认的孤岛安全策略记录到安全可信基S0内的安全策略表中。
其中,安全策略表可以包含多项孤岛安全策略,如:安全策略表P={p0,p1,p2,...pn},每项孤岛安全策略pi规定了计算机系统中存在的孤岛,即pi=Si*Sj,不同的孤岛安全策略定义的孤岛是不同的。
全局默认的孤岛安全策略为:p0={(S0*{S1,S2,...Sn})},即安全可信基S0必须对计算机内所有其他实体都满足孤岛条件,从而保证安全可信基S0对于其他实体的RowHammer攻击是安全的。
步骤S103:重新启动计算机。
步骤S104:计算机的处理器检测到虚拟机VM1会对虚拟机VM2产生RowHammer攻击。
其中,计算机的处理器可以通过现有技术手段检测到虚拟机VM1会对虚拟机VM2产生RowHammer攻击,如:若虚拟机VM2在执行某项功能时,需要额外增加一些从虚拟机VM1处获取的代码,或者从虚拟机VM1中下载的插件。
步骤S105:计算机的处理器控制虚拟机VM2向安全可信基S0发送安全策略配置请求,该安全策略配置请求用于请求为VM2配置孤岛安全策略(S2*S1)。
步骤S106:计算机中的安全可信基S0为VM2配置孤岛安全策略,并将为VM2配置的孤岛安全策略记录在自身的安全策略表p中。
可选的,安全可信基S0可以采用现有技术检测出计算机中易对VM2产生的RowHammer攻击的实体,根据检测结果配置VM2的孤岛安全策略;或者,在步骤S105中的安全策略配置请求中包含易对VM2产生的RowHammer攻击的实体的标识,步骤S106中,安全可信基可以根据安全策略配置请求包含的信息为VM2配置孤岛安全策略。
步骤S107:计算机中的VM2向安全可信基S0发送内存分配请求。
该内存分配请求用于请求安全可信基S0为VM2分配内存,其中,该内存分配请求可以包含:VM2的标识、以及分配的内存大小Size。
步骤S108:若安全可信基S0获取到满足内存大小Size的可用物理内存,则执行步骤S109;否则,物理内存资源不足,分配失败。
可选的,安全可信基S0可以采用传统物理内存分配算法获取满足内存大小要求的可用物理内存,如:Linux内核可采用Buddy伙伴算法来进行物理内存分配。
步骤S109:对于获取到的可用物理内存中的任意物理内存M,当需要将该物理内存M分配给虚拟机VM2时,计算机中的安全可信基S0查询与该物理内存相邻的物理内存Mp所属的实体集合B[Mp]、以及与该物理内存相邻的物理内存Mq所属的实体集合B[Mq]。
可选的,在本发明实施例中,可以将物理内存所属的实体放在实体集中,并将物理内存、以及该物理内存对应的实体集记录在计算机中,在执行步骤S109时,可以直接从物理内存对应的实体集中查看该物理内存所述的实体。
步骤S110:计算机中的安全可信基S0检查B[Mp]和/或者B[Mq]中是否存在实体S1(即是否满足条件(S1∈B[Mp]||S1∈B[Mq])&&{S2*S1}∈P),如果存在,则放弃将该物理内存分配给虚拟机VM2,重新执行步骤S107;否则,执行步骤S111。
需要说明的是,在步骤S110中,可以先一一查看B[Mp]和/或者B[Mq]中包含的实体,确定查看到的实体是否包含在步骤S105中的孤岛安全策略中定义的与虚拟机VM2间满足孤岛条件的实体中,也可以先查看步骤S105中的孤岛安全策略中定义的与虚拟机VM2间满足孤岛条件的实体,确定查看到的实体是否包含在B[Mp]和/或者B[Mq]中,具体采用哪种执行过程,本发明并不限定。
步骤S111:将该物理内存分配给虚拟机VM2,并将S2添加到该物理内存所属的实体集B[M]中。
需要说明的是,计算机中的安全可信基S0、虚拟机VM2等实体可以在计算机中的处理器的控制下执行上述过程。
如此,可以在给实体分配物理内存时,若其他实体能够访问到物理内存的相邻物理内存,则不将该物理内存分配给该实体,避免了其他实体通过访问该实体的物理内存的相邻物理内存,造成对该实体的RowHammer攻击。
在本发明实施例的又一可行性方案中,为了避免在X86分页内存管理机制下,某一实体在通过修改页表映射的方式实现对其他实体的物理内存的共享访问后,其他实体通过频繁访问共享物理内存的相邻物理内存对该实体造成RowHammer攻击,如:虚拟机VM2共享虚拟机VM3的物理内存Mj,而虚拟机VM1可能会通过访问物理内存Mj的相邻物理内存对虚拟机VM2造成RowHammer攻击,j为大于等于的整数,本发明实施例还提供如图6所示的技术方案,包括:
执行步骤S201-206,其中,步骤S201与步骤S101相同,步骤S202与步骤S102相同,步骤S203与步骤S103相同,步骤S204与步骤S104相同,步骤S205与步骤S105相同,步骤S206与步骤S106相同,在此不再重复赘述。
步骤S207:计算机中的安全可信基S0接收虚拟机VM2发送的MMU更新请求,若该MMU更新请求用于请求对内存Mj进行访问映射,则执行步骤S208-210;若该MMU更新请求用于指示:删除虚拟机VM2对物理内存Mj的访问映射,则执行步骤S211;若该MMU更新请求用于指示:更新与虚拟机VM2相关的页表页,则执行步骤S212。
步骤S208:计算机中的安全可信基S0查询与该物理内存Mj相邻的物理内存Mp所属的实体集合B[Mp]、以及与该物理内存相邻的物理内存Mq所属的实体集合B[Mq]。
步骤S209:计算机中的安全可信基S0检查B[Mp]和/或者B[Mq]中是否存在实体S1(即是否满足条件(S1∈B[Mp]||S1∈B[Mq])&&{S2*S1}∈P),如果存在,则拒绝虚拟机VM2对内存Mj的访问映射;否则执行步骤S210。
其中,步骤S209的检查过程与步骤S110的检测过程雷同,在此不再重复赘述。
步骤S210:计算机中的安全可信基S0对Count[S2,Mj]计数加1,判断Count[S2,Mj]是否等于1,若等于,则表示是实体S2对内存Mj是首次访问映射,将实体S2添加进物理内存Mj所属的实体集B[Mj]中。
其中,Count[S2,Mj]表示实体S2对内存Mj进行访问的路径个数。可理解的是,在计算机的初始化过程(如开机)中,Count[S2,Mj]可以设置为0。
步骤S211:计算机中的安全可信基S0将Count[S2,Mj]减1,判断减1后的Count[S2,Mj]是否为0,如果为0则将实体S2从B[Mj]中删除。
步骤S212:计算机中的安全可信基S0检测页表页所在内存是否满足孤岛内存M(S0*{S1,S2,…Sn}),S0为物理主机内的安全可信基,S1,S2,…Sn为物理主机内除安全可信基之外的其他实体,若该页表页所在内存满足所述孤岛内存,则表示该页表页所在的物理内存仅安全可信基可以访问,其他实体是不能通过RowHammer攻击实现对该页表页所在物理内存的篡改,此次页表页更改是安全,可以更新该页表页,否则,不更新所述页表页。
其中,更新与第一实体相关的页表页可以指:更新与第一实体相关的现存的页表页中的内容,或者新增与第一实体相关的页表页。
需要说明的是,计算机中的安全可信基S0、虚拟机VM2等实体可以在计算机中的处理器的控制下执行上述过程。
如此,可以在对物理内存进行访问映射时,避免通过共享后的物理内存对实体产生RowHammer攻击,确保了实体内存访问的控制和安全隔离,同时,保证了在更新页表页时,其他实体通过RowHammer攻击对该页表页所在物理内存的篡改。
上述主要从物理主机为X86的计算机的角度对本发明实施例提供的方案进行了介绍。可以理解的是,为了实现上述功能,其包含了执行各个功能相应的硬件结构或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对物理主机进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述和实施例中涉及的物理主机的一种可能的组成示意图,如图7所示,该物理主机20可以包括:配置单元201、确定单元202、分配单元203、获取单元204、MMU更新单元205、重启单元206、发送单元207。
其中,配置单元201,用于支持物理主机20执行图5所示的防御RowHammer方法中的步骤S106,图6所示的防御RowHammer方法中的步骤S206。该配置单元201可以位于物理主机20内的安全可信基中。
确定单元202,用于指示物理主机20执行图5所示的防御RowHammer方法中的步骤S109,图6所示的防御RowHammer方法中的步骤S208。
分配单元203,用于物理主机20执行图5所示的防御RowHammer方法中的步骤S110-S111。图6所示的防御RowHammer方法中的步骤S209-210。
获取单元204,用于物理主机20执行图5所示的防御RowHammer方法中的步骤S108。图6所示的防御RowHammer方法中的步骤S207-S208。
MMU更新单元205,用于物理主机20执行图6所示的防御RowHammer方法中的步骤S211-212。
重启单元206,用于物理主机20执行图5所示的防御RowHammer方法中的步骤S103。图6所示的防御RowHammer方法中的步骤S203。
发送单元207,用于物理主机20执行图5所示的防御RowHammer方法中的步骤S105。图6所示的防御RowHammer方法中的步骤S205。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。本发明实施例提供的物理主机,用于执行上述防御RowHammer攻击的方法,因此可以达到与上述方法相同的效果。
在采用集成的单元的情况下,图8示出了上述实施例中所涉及的物理主机的另一种可能的组成示意图。如图8所示,该物理主机30可以包括:处理模块301和通信模块302。
处理模块81用于对物理主机的动作进行控制管理,例如,处理模块301用于支持物理主机执行图5中的步骤S101-110、以及图6中的步骤S201-212、或用于本文所描述的技术的其它过程。通信模块302用于支持物理主机与其他网络实体的通信。物理主机还可以包括存储模块303,用于存储物理主机的程序代码和数据。
其中,处理模块301可以是处理器或控制器。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。处理模块301也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块302可以是收发器、收发电路或通信接口等。存储模块303可以是存储器。
当处理模块301为处理器1001,通信模块302为通信接口1003,存储模块303为存储器1002时,本发明实施例所涉及的物理主机30可以为图4所示的物理主机10。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种防御RowHammer攻击的方法,所述方法应用于包含至少一个实体的物理主机,其特征在于,包括:
当需要将第一物理内存分配给第一实体时,确定与所述第一物理内存相邻的第二物理内存所属的第一实体集、以及与所述第一物理内存相邻的第三物理内存所属的第二实体集;
若所述第一实体集和/或所述第二实体集中存在第二实体,且所述第二实体包含在第三实体集中,则放弃将所述第一物理内存分配给所述第一实体;
所述第三实体集包含一个或多个实体,其中至少一个实体与第一实体间满足孤岛条件,所述与第一实体间满足孤岛条件的实体为:所述物理主机中不允许访问与所述第一实体的物理内存相邻的物理内存的实体。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一实体发出的内存分配请求,所述内存分配请求包含所述第一实体的标识以及内存大小;
根据所述第一实体的标识以及所述内存大小,为所述第一实体获取满足所述内存大小的物理内存集;
其中,所述第一物理内存为所述物理内存集中的任意物理内存。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一实体发出的内存管理单元MMU更新请求,所述MMU更新请求用于指示所述第一实体对所述第一物理内存进行访问映射;
若所述第一实体集和/或所述第二实体集中未存在所述第二实体,则确定将所述第一物理内存分配给所述第一实体,并查看所述第一实体对所述第一物理内存进行访问的路径个数,将所述路径个数加1,若加1后的路径个数为1,则将所述第一实体添加到所述第一物理内存所属的实体集中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一实体发出的MMU更新请求,所述MMU更新请求用于指示:删除所述第一实体对所述第一物理内存的访问映射;
将所述第一实体对所述第一物理内存进行访问的路径个数减1;
若减1后的路径个数为零,则将所述第一实体从所述第一物理内存所属的实体集中删除。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一实体发出的MMU更新请求,所述MMU更新请求用于指示:更新与所述第一实体相关的页表页,所述页表页用于表示:所述第一实体的虚拟内存到所述第一实体所属的物理内存的映射关系;
检测所述页表页所在内存是否满足孤岛内存M(S0*{S1,S2,…Sn}),所述S0为所述物理主机内的安全可信基,所述{S1,S2,…Sn}包含所述物理主机内除所述安全可信基之外的其他实体;
若所述页表页所在内存满足所述孤岛内存,则更新所述页表页,否则,不更新所述页表页。
6.一种物理主机,所述物理主机包含至少一个实体,其特征在于,包括:
确定单元,用于当需要将第一物理内存分配给第一实体时,确定与所述第一物理内存相邻的第二物理内存所属的第一实体集、以及与所述第一物理内存相邻的第三物理内存所属的第二实体集;
分配单元,用于若所述确定单元确定的第一实体集和/或所述第二实体集中存在第二实体,且所述第二实体包含在第三实体集中,则放弃将所述第一物理内存分配给所述第一实体;
所述第三实体集包含一个或多个实体,其中至少一个实体与第一实体间满足孤岛条件,所述与第一实体间满足孤岛条件的实体为:所述物理主机中不允许访问与所述第一实体的物理内存相邻的物理内存的实体。
7.根据权利要求6所述的物理主机,其特征在于,所述物理主机还包括:
获取单元,用于在将第一物理内存分配给所述第一实体之前,接收所述第一实体发出包含所述第一实体的标识以及内存大小的内存分配请求,根据所述第一实体的标识以及所述内存大小,为所述第一实体获取满足所述内存大小的物理内存集;
其中,所述第一物理内存为所述物理内存集中的任意物理内存。
8.根据权利要求6所述的物理主机,其特征在于,所述物理主机还包括:
获取单元,用于在将第一物理内存分配给所述第一实体之前,接收所述第一实体发出的内存管理单元MMU更新请求;所述MMU更新请求用于指示所述第一实体对所述第一物理内存进行访问映射;
所述分配单元,还用于:若所述第一实体集和/或所述第二实体集中未存在所述第二实体,则确定将所述第一物理内存分配给所述第一实体;
所述物理主机还包括:
MMU更新单元,用于在所述分配单元确定将所述第一物理内存分配给所述第一实体之后,查看所述第一实体对所述第一物理内存进行访问的路径个数,将所述路径个数加1;以及,若所述加1后的路径个数为1,则将所述第一实体添加到所述第一物理内存所属的实体集中。
9.根据权利要求6所述的物理主机,其特征在于,所述物理主机还包括:
获取单元,用于在将第一物理内存分配给所述第一实体之前,接收所述第一实体发出的内存管理单元MMU更新请求;所述MMU更新请求用于指示:删除所述第一实体对所述第一物理内存的访问映射,则述物理主机还包括:
MMU更新单元,用于将所述第一实体对所述第一物理内存进行访问的路径个数减1;
若减1后的路径个数为零,则将所述第一实体从所述第一物理内存所属的实体集中删除。
10.根据权利要求6所述的物理主机,其特征在于,所述物理主机还包括:
获取单元,用于在将第一物理内存分配给所述第一实体之前,接收所述第一实体发出的内存管理单元MMU更新请求,所述MMU更新请求用于指示:更新与所述第一实体相关的页表页,所述页表页用于表示:所述第一实体的虚拟内存到所述第一实体所属的物理内存的映射关系,所述物理主机还包括:
MMU更新单元,用于检测所述页表页所在内存是否满足孤岛内存M(S0*{S1,S2,…Sn}),若所述页表页所在内存满足所述孤岛内存,则更新所述页表页,否则,不更新所述页表页;
所述S0为所述物理主机内的安全可信基,所述{S1,S2,…Sn}包含所述物理主机内除所述安全可信基之外的其他实体。
CN201710380532.6A 2017-05-25 2017-05-25 一种防御RowHammer攻击的方法及设备 Active CN108932205B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710380532.6A CN108932205B (zh) 2017-05-25 2017-05-25 一种防御RowHammer攻击的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710380532.6A CN108932205B (zh) 2017-05-25 2017-05-25 一种防御RowHammer攻击的方法及设备

Publications (2)

Publication Number Publication Date
CN108932205A CN108932205A (zh) 2018-12-04
CN108932205B true CN108932205B (zh) 2021-01-29

Family

ID=64450784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710380532.6A Active CN108932205B (zh) 2017-05-25 2017-05-25 一种防御RowHammer攻击的方法及设备

Country Status (1)

Country Link
CN (1) CN108932205B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104350546A (zh) * 2012-06-30 2015-02-11 英特尔公司 行锤击刷新命令
CN104778013A (zh) * 2014-01-15 2015-07-15 三星电子株式会社 追踪对存储器的行的激活的方法和设备
CN105304138A (zh) * 2014-07-21 2016-02-03 爱思开海力士有限公司 存储器件

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9269436B2 (en) * 2013-03-12 2016-02-23 Intel Corporation Techniques for determining victim row addresses in a volatile memory
US10497409B2 (en) * 2014-12-17 2019-12-03 International Business Machines Corporation Implementing DRAM row hammer avoidance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104350546A (zh) * 2012-06-30 2015-02-11 英特尔公司 行锤击刷新命令
CN104778013A (zh) * 2014-01-15 2015-07-15 三星电子株式会社 追踪对存储器的行的激活的方法和设备
CN105304138A (zh) * 2014-07-21 2016-02-03 爱思开海力士有限公司 存储器件

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANVIL:Software-Based Protection Against Next-Generation Rowhammer Attacks;Aweke Z B,Yitbarek S F,Qiao R,et al.;《ACM SIGPLAN Notices》;20160331;第51卷(第4期);第743-755页 *

Also Published As

Publication number Publication date
CN108932205A (zh) 2018-12-04

Similar Documents

Publication Publication Date Title
CN107636625B (zh) 用于共享系统高速缓存的虚拟化控制的方法和装置
CN110245001B (zh) 数据隔离方法及装置、电子设备
US8190839B2 (en) Using domains for physical address management in a multiprocessor system
RU2602793C2 (ru) Способ модификации разрешений на доступ к памяти в защищенной процессорной среде
US8893267B1 (en) System and method for partitioning resources in a system-on-chip (SoC)
US20120072906A1 (en) Memory Overcommit by Using an Emulated IOMMU in a Computer System without a Host IOMMU
US8631170B2 (en) Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU
US10019276B2 (en) Dynamic non-uniform memory architecture (NUMA) locality for remote direct memory access (RDMA) applications
US7757034B1 (en) Expansion of virtualized physical memory of virtual machine
US20120036308A1 (en) Supporting a secure readable memory region for pre-boot and secure mode operations
US9715410B2 (en) Protected virtual machine function access
CN106415574B (zh) 采用用于促进对安全存储器的访问的中间结构
CN105393229A (zh) 虚拟机中的页面错误注入使得经换出的存储器页面映射到虚拟机虚拟化存储器中
WO2014105160A1 (en) Logging in secure enclaves
US11188365B2 (en) Memory overcommit by speculative fault
CN113094700A (zh) 执行安全操作的系统以及系统执行安全操作的方法
US20110264841A1 (en) Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility
US12020050B2 (en) Processor feature ID response for virtualization
US8751724B2 (en) Dynamic memory reconfiguration to delay performance overhead
CN108932205B (zh) 一种防御RowHammer攻击的方法及设备
US20230029331A1 (en) Dynamically allocatable physically addressed metadata storage
CN111666579A (zh) 计算机设备及其访问控制方法和计算机可读介质
RU2780973C2 (ru) Ответ с идентификатором функции процессора для виртуализации
US20230410882A1 (en) Defense against row hammer attacks
CN116561824A (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