访存方法、处理装置和存储介质制造方法及图纸

技术编号:37276505 阅读:12 留言:0更新日期:2023-04-20 23:43
本公开的实施例提供了一种访存方法、处理装置和存储介质。该访存指令的访存方法包括:获取访存指令对应的第一内存标记信息,其中,第一内存标记信息包括第一内存标记;获取访存指令包括的目标地址对应的第二内存标记信息,其中,第二内存标记信息包括第二内存标记;基于第一内存标记信息和第二内存标记信息,确定第一内存标记和第二内存标记是否匹配;响应于第一内存标记和第二内存标记匹配,允许访存指令继续执行,或者,响应于第一内存标记和第二内存标记不匹配,进入异常处理。该访存方法改善了系统的安全性。善了系统的安全性。善了系统的安全性。

【技术实现步骤摘要】
访存方法、处理装置和存储介质


[0001]本公开的实施例涉及一种访存方法、处理装置和存储介质。

技术介绍

[0002]计算机系统的安全问题一直悬而未决。1988年计算机蠕虫病毒问世,自此以后,计算机系统的安全状况便一直停留在一个恶性循环中:防护者不断开发出针对漏洞的防护补丁,而攻击者却能不断找到新的系统漏洞。据调查,计算机漏洞中有超过七成为内存漏洞,所以这个恶性循环现象也被称为“内存战争”。这个过程中,形式多样的防护方案被不断提出,有一些被工业界采纳,譬如DEP(NX/XD)、栈保护(stack canaries)、随机化(ASLR,KASLR)以及最近的控制流完整性、内存屏障(memory barrier)等。
[0003]截至目前,上述每一个防护方案均能够被新的攻击方法攻破。这些新的攻击绕过防护方法的方式多种多样。有的通过特意的裁剪自己的攻击方法,从而绕过防护方案中特定的检查(比如,面向返回编程,return

oriented programming),有的则是利用之前未知的攻击方法(比如,Row Hammer)。尤其是在内存保护领域,传统防护方法中的随机化以及控制流完整性防护均已经被证明可以被绕过,譬如程序复用攻击(code reuse),基于数据的控制流攻击(control jujutsu)和越界读取导致的信息泄露(information leaks)攻击等。
[0004]这些新的攻击方法出现的根源所在,便是由于诸多现有的软件是由不安全的开发语言(如C/C++)开发,而硬件对程序编写者的信任程度一直停留在计算机创造初期时代
‑‑
即相信程序员是专业的、不会犯错误。但随着软件系统的不断增大,编程错误已被实践证明是不可避免的。传统处理器设计中对内存内容的无差别设计使得硬件本身对编程者的编程错误没有任何容忍度。
[0005]另一方面,虽然仅仅基于现有的硬件可以开发出一定的安全防护功能,避免或者检测出程序错误。但是这些方案已经被证明是无法高效地应用到这些计算机系统当中的,譬如,软件实现的完整的内存安全方案会引起计算机系统超过100%的性能损失。如此高的性能损失使得纯软件的安全防护很少落地到广泛的应用当中。
[0006]因此,现在越来越多的安全工作将重心转移到了硬件方面,因为硬件实现的安全功能在性能损失方面是很低的,甚至接近于0。同时,传统处理器设计中对内存内容的无差别设计导致了很多诸如内存安全漏洞频出、高性能优化困难等问题也可以在一定程度上被弥补。尤其是标记内存的提出,可以通过内存元数据(metadata)的管理,有效辅助处理器智能识别内存中不同类型的存储内容,从而做出不同处理。如果经过合理的标记架构的系统设计,诸如堆栈溢出(空间安全)、悬空指针复用(时间安全)、控制流攻击、信息流泄露等问题,均能起到一定的防护作用。

技术实现思路

[0007]本公开的至少一个实施例提供了一种访存指令的访存方法,该访存方法包括:获
取所述访存指令对应的第一内存标记信息,其中,所述第一内存标记信息包括第一内存标记,所述第一内存标记对应于存储所述访存指令的第一存储地址在内存空间中的第一存储位置;获取所述访存指令包括的目标地址对应的第二内存标记信息,其中,所述第二内存标记信息包括第二内存标记,所述第二内存标记对应于所述目标地址在所述内存空间中的第二存储位置;基于所述第一内存标记信息和所述第二内存标记信息,确定所述第一内存标记和所述第二内存标记是否匹配;响应于所述第一内存标记和所述第二内存标记匹配,允许所述访存指令继续执行,或者,响应于所述第一内存标记和所述第二内存标记不匹配,进入异常处理。
[0008]本公开的至少一个实施例提供了一种处理装置,该处理装置包括:第一获取单元,配置为获取所述访存指令对应的第一内存标记信息,其中,所述第一内存标记信息包括第一内存标记,所述第一内存标记对应于存储所述访存指令的第一存储地址在内存空间中的第一存储位置;第二获取单元,配置为获取所述访存指令包括的目标地址对应的第二内存标记信息,其中,所述第二内存标记信息包括第二内存标记,所述第二内存标记对应于所述目标地址在所述内存空间中的第二存储位置;第一确定单元,配置为基于所述第一内存标记信息和所述第二内存标记信息,确定所述第一内存标记和所述第二内存标记是否匹配;第一操作单元,配置为响应于所述第一内存标记和所述第二内存标记匹配,允许所述访存指令继续执行,或者,响应于所述第一内存标记和所述第二内存标记不匹配,进入异常处理。
[0009]本公开的至少一个实施例提供了一种处理装置,该处理装置包括:处理单元和存储器,在所述存储器上存储有一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被配置为由所述处理单元执行时实现上述实施例所述的访存方法。
[0010]本公开的至少一个实施例提供了一种非瞬时可读存储介质,其中,所述非瞬时可读存储介质上存储有计算机指令,其中,所述计算机指令被处理器执行时实现上述实施例所述的访存方法。
[0011]本专利技术实施例的基于内存标记的安全方案相对于纯软件方案的效率更高,安全性更好。
附图说明
[0012]为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
[0013]图1A示出了根据本公开一实施例的计算机系统中内存空间的示意图;
[0014]图1B示出了根据本公开另一实施例的计算机系统中内存空间的示意图;
[0015]图2A示出使用本公开实施例的内存标记对内存空间的访问进行保护的流程图;
[0016]图2B示出了使用本公开实施例的内存标记提供安全保护的示意图;
[0017]图3示出了使用本公开实施例的一个示例的内存标记提供安全保护的示意图;
[0018]图4示出了使用本公开实施例的另一个示例的内存标记提供安全保护的示意图。
[0019]图5A示出了使用本公开实施例的另一个示例的内存标记提供安全保护的示意图;
[0020]图5B示出了根据本公开至少一实施例的包括内存标记的内存地址的示例;
[0021]图6示出了使用本公开实施例的另一个示例的内存标记提供安全保护的示意图;
[0022]图7展示了一种示例性的实现内存标记对应内存粒度的配置方案;
[0023]图8示出了根据本公开至少一实施例的处理装置的示意图;
[0024]图9为本公开至少一个实施例提供的一种电子装置的示意框图。
具体实施方式
[0025]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0026]除非另作定本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种访存指令的访存方法,包括:获取所述访存指令对应的第一内存标记信息,其中,所述第一内存标记信息包括第一内存标记,所述第一内存标记对应于存储所述访存指令的第一存储地址在内存空间中的第一存储位置;获取所述访存指令包括的目标地址对应的第二内存标记信息,其中,所述第二内存标记信息包括第二内存标记,所述第二内存标记对应于所述目标地址在所述内存空间中的第二存储位置;基于所述第一内存标记信息和所述第二内存标记信息,确定所述第一内存标记和所述第二内存标记是否匹配;响应于所述第一内存标记和所述第二内存标记匹配,允许所述访存指令继续执行,或者,响应于所述第一内存标记和所述第二内存标记不匹配,进入异常处理。2.根据权利要求1所述的访存方法,其中,基于所述第一内存标记信息和所述第二内存标记信息,确定所述第一内存标记和所述第二内存标记是否匹配,包括:从所述第一内存标记信息中提取所述第一内存标记以及从所述第二内存标记信息中提取所述第二内存标记;比较所述第一内存标记和所述第二内存标记,以确定所述第一内存标记和所述第二内存标记是否匹配。3.根据权利要求2所述的访存方法,其中,从所述第一内存标记信息中提取所述第一内存标记以及从所述第二内存标记信息中提取所述第二内存标记,包括:获取所述第一内存标记或所述第二内存标记对应的标记宽度信息,根据所述标记宽度信息,从所述第一内存标记信息中提取部分数据位以得到所述第一内存标记,以及从所述第二内存标记信息中提取部分数据位以得到所述第二内存标记。4.根据权利要求3所述的访存方法,其中,获取所述第一内存标记或所述第二内存标记对应的标记宽度信息,包括:获取所述第一内存标记信息或所述第二内存标记信息对应的标记存储位置;根据所述标记存储位置获取所述标记宽度信息。5.根据权利要求4所述的访存方法,其中,所述标记存储位置位于所述内存空间中被选择专用于存储内存标记信息的存储页、存储段,或者位于独立于所述内存空间的存储装置。6.根据权利要求3所述的访存方法,其中,获取所述第一内存标记或所述第二内存标记对应的标记宽度信息,包括:从所述访存指令的第一存储地址或所述目标地址本身中的冗余位获取所述标记宽度信息。7.根据权利要求3所述的访存方法,其中,获取所述第一内存标记或所述第二内存标记对应的标记宽度信息,包括:从所述内存空间中与所述第一存储地址或所述目标地址相邻的存储地址获取所述标记宽度信息。8.根据权利要求3所述的访存方法,其中,获取所述第一内存标记或所述第二内存标记对应的标记宽度信息,包括:从第一寄存器中获取所述标记宽度信息,其中,所述标记宽度信息由系统设置于所述
第一寄存器中。9.根据权利要求4、6

8任一所述的访存方法,其中,在获取所述第一内存标记或所述第二内存标记对应的标记宽度信息的同时获取所述内存空间中的标记内存粒度信息。10.根据权利要求8所述的访存方...

【专利技术属性】
技术研发人员:马乐乐
申请(专利权)人:北京奕斯伟计算技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1