用于软件安全的装置和方法制造方法及图纸

技术编号:34717149 阅读:15 留言:0更新日期:2022-08-31 18:00
提供了一种装置,包括处理器和耦合到所述处理器的存储器。所述处理器用于将指针值加载到第一处理器寄存器中。所述指针值包括目标存储器位置的地址。然后,所述处理器执行从只读存储器加载操作。所述从只读存储器加载操作使所述处理器验证所述目标存储器位置是否标记为只读,当所述目标存储器位置标记为只读时,所述处理器将目标数据值加载到第二处理器寄存器中。当所述目标存储器位置未标记为只读时,所述处理器用于生成存储器故障。所述处理器用于生成存储器故障。所述处理器用于生成存储器故障。

【技术实现步骤摘要】
【国外来华专利技术】用于软件安全的装置和方法


[0001]所公开实施例的各方面大体上涉及计算机安全,更具体地,涉及防止利用编码弱点。

技术介绍

[0002]许多传统的计算装置(例如手机、个人电脑、汽车等)执行高度敏感的计算机应用程序,例如金融应用程序、在线商店和关键系统控制,其中软件安全至关重要。存储器不安全的编程语言(例如C和C++)可能会与不安全的编程实践和编码缺陷结合起来,使攻击者有机会利用代码。通过利用代码中的弱点,攻击者可以改写计算机存储器中的值,并获得对软件程序的完全或部分控制,并可能访问底层计算机系统本身。
[0003]可以采用防止这些类型攻击的传统技术,例如堆栈canaries、地址空间布局随机化(address space layout randomization,ASLR)等。不利的是,这些方法只提供统计保护,不提供确定性保护。此外,堆栈canaries等技术也会增加内存占用和编程复杂性,这通常会导致执行时间增加。
[0004]因此,需要改进的方法和装置,其可以提供确定性保护,防止软件利用,而不增加复杂性或增加资源使用。因此,希望提供解决上述至少一些问题的方法和装置。

技术实现思路

[0005]所公开实施例的各方面涉及适于提供确定性保护,防止软件利用而不增加复杂性或增加资源使用的装置和方法。所公开实施例用于提供指针篡改的改进的确定性检测和攻击避免。该目的和其它目的通过独立权利要求请求保护的主题来实现。在从属权利要求中提供了其它有利修改。
[0006]根据第一方面,通过一种装置获得上述以及其它目的和优点。在一个实施例中,所述装置包括处理器和耦合到所述处理器的存储器。所述处理器用于将指针值加载到第一处理器寄存器中。所述指针值包括目标存储器位置的地址。然后,所述处理器执行从只读存储器加载操作,所述从只读存储器加载操作使所述处理器验证所述目标存储器位置是否标记为只读,当所述目标存储器位置标记为只读时,所述处理器将目标数据值加载到第二处理器寄存器中。当所述目标存储器位置未标记为只读时,所述处理器用于生成存储器故障。
[0007]在编程攻击期间,攻击者可能会试图用自己的数据替换有效的目标数据,以改变程序流程或触发其它未经授权的行为。为此,攻击者可能会使用包括攻击者的数据的不同存储器地址修改指针。由于难以修改只读存储器映射,攻击者的数据可能存储在可写存储器位置。因此,通过验证目标数据存储在标记为只读的位置中,可以检测到试图从可写存储器位置加载数据的攻击,并且可以生成故障以改变程序流程并可以避免攻击。
[0008]根据第一方面,在所述装置的一种可能的实现方式中,所述处理器包括内存标签扩展,所述目标存储器位置与目标标签相关联。所述处理器用于将所述指针值加载到所述第一处理器寄存器中,其中,所述指针值还包括关联标签。所述从只读存储器加载操作使所
述处理器:将所述关联标签设置为第一标签值,其中,所述第一标签值对应于只读标签值;验证所述目标标签是否等于所述第一标签值。当所述目标标签等于所述第一标签值时,所述处理器将所述数据值加载到所述第二处理器寄存器中。当所述目标标签不等于所述第一标签值时,所述处理器生成存储器故障。利用内存标签扩展执行从只读存储器加载操作可以具有确定性安全益处,而不会产生与扩展处理器的指令集架构以包括额外的特殊用途加载指令相关联的成本。
[0009]根据第一方面,在所述装置的一种可能的实现方式中,所述处理器包括指针验证特征,并且所述处理器用于将所述指针值加载到所述第一处理器寄存器中。所述指针值包括指针验证码,所述指针验证码基于只读修饰符。所述处理器执行所述从只读存储器加载操作,其中,所述从只读存储器加载操作使所述处理器基于所述只读修饰符验证所述指针验证码。当所述指针验证码有效时,所述处理器将所述数据值加载到所述第二处理器寄存器中;或当所述指针验证码无效时,所述处理器生成存储器故障。利用指针验证特征执行从只读存储器加载操作可以具有所公开实施例的改进的安全益处,而不会产生与扩展指令集架构以包括额外的特殊用途加载指令相关联的成本。
[0010]根据第一方面,在所述装置的一种可能的实现方式中,所述装置还包括存储器管理单元,所述处理器用于基于缓存值和转译后备缓冲区验证所述目标存储器位置是否标记为只读。使用如MMU等存储器管理硬件验证只读标记提高了计算装置的整体性能。
[0011]根据第一方面,在所述装置的一种可能的实现方式中,所述存储器故障使所述处理器改变程序流程并执行纠正动作。在检测到指针篡改时改变程序流程支持通过纠正操作(例如中止程序执行)避免攻击。
[0012]根据第二方面,通过一种方法获得上述以及其它目的和优点。在一个实施例中,所述方法包括将指针值加载到第一处理器寄存器中。所述指针值包括目标存储器位置的地址。所述方法包括执行从只读存储器加载操作,其中,所述从只读存储器加载操作包括:验证所述目标存储器位置是否标记为只读;当所述目标存储器位置标记为只读时,将所述数据值加载到第二处理器寄存器中。当所述目标存储器位置未标记为只读时,所述方法生成存储器故障。
[0013]在编程攻击期间,攻击者可能会试图用自己的数据替换有效的目标数据,以改变程序流程或触发其它未经授权的行为。为此,攻击者可以修改指针,以指向攻击者的数据,该攻击者的数据可能位于可写存储器位置。由于所描述的实施例验证目标数据的只读属性,因此检测到试图从可写存储器位置加载数据的攻击,并生成故障以改变程序流程,并避免为攻击提供机会。
[0014]根据第二方面,在所述装置的一种可能的实现方式中,所述目标存储器位置与目标标签相关联,所述方法包括将所述指针值加载到所述第一处理器寄存器中,其中,所述指针值还包括关联标签。所述方法执行所述从只读存储器加载操作,其中,所述从只读存储器加载操作包括:将所述关联标签设置为第一标签值,其中,所述第一标签值对应于只读标签值;验证所述目标标签是否等于所述第一标签值。当所述目标标签等于所述第一标签值时,所述方法将所述数据值加载到所述第二处理器寄存器中;或当所述目标标签不等于所述第一标签值时,生成存储器故障。利用内存标签扩展执行从只读存储器加载操作可以具有所公开实施例的改进的安全益处,而不会产生与扩展指令集架构以包括额外的特殊用途加载
指令相关联的成本。
[0015]根据第二方面,在所述装置的一种可能的实现方式中,所述方法包括:将所述指针值加载到第一处理器寄存器中,其中,所述指针值还包括指针验证码,所述指针验证码基于只读修饰符;执行所述从只读存储器加载操作。所述从只读存储器加载操作包括:基于所述只读修饰符验证所述指针验证码;当所述指针验证码有效时,将所述数据值加载到所述第二处理器寄存器中。当所述指针验证码无效时,生成存储器故障。存储器故障使计算装置可以从无效指针条件中恢复,例如通过中止正在执行的程序,从而避免可能已经发起的任何攻击。利用指针验证特征执行从只读存储器加载操作可以具有所公开实施例的改进的安全益处,而不会产生与扩展指令集架构以包括额外的特殊用途加载指令本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种装置(100),其特征在于,包括通信耦合到存储器(104)的处理器(102),其中,所述处理器(102)用于:将指针值(120)加载到第一处理器寄存器(112)中,其中,所述指针值(120)包括目标存储器位置(108)的地址;执行从只读存储器加载操作,其中,所述从只读存储器加载操作使所述处理器(102):验证所述目标存储器位置(108)是否标记为只读;当所述目标存储器位置(108)标记为只读时,将数据值(118)加载到第二处理器寄存器(114)中,或当所述目标存储器位置(108)未标记为只读时,生成存储器故障(310)。2.根据权利要求1所述的装置(100),其特征在于,所述处理器(102)包括内存标签扩展,所述目标存储器位置(108)与目标标签相关联,其中,所述处理器(102)用于:将所述指针值(120)加载到所述第一处理器寄存器(112)中,其中,所述指针值还包括关联标签;执行所述从只读存储器加载操作,其中,所述从只读存储器加载操作使所述处理器(102):将所述关联标签设置为第一标签值,其中,所述第一标签值对应于只读标签值;验证所述目标标签是否等于所述第一标签值;当所述目标标签等于所述第一标签值时,将所述数据值(118)加载到所述第二处理器寄存器(114)中;或当所述目标标签不等于所述第一标签值时,生成存储器故障。3.根据权利要求1所述的装置(100),其特征在于,所述处理器(102)包括指针验证特征,并且所述处理器(102)用于:将所述指针值(120)加载到第一处理器寄存器(112)中,其中,所述指针值(120)包括指针验证码,并且所述指针验证码基于只读修饰符;执行所述从只读存储器加载操作,其中,所述从只读存储器加载操作使所述处理器(102):基于所述只读修饰符验证所述指针验证码;当所述指针验证码有效时,将所述数据值(118)加载到所述第二处理器寄存器(114)中;或当所述指针验证码无效时,生成存储器故障。4.根据上述权利要求中任一项所述的装置(100),其特征在于,所述装置(100)还包括存储器管理单元(128),所述...

【专利技术属性】
技术研发人员:雷米
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1