当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于防止未经授权的堆栈转移的系统和方法技术方案

技术编号:12568497 阅读:100 留言:0更新日期:2015-12-23 11:25
示例处理系统可以包括:堆栈下界寄存器,其被配置为存储第一存储器地址,该第一存储器地址标识能够经由堆栈段寻址的存储器的下界;堆栈上界寄存器,其被配置为存储第二存储器地址,该第二存储器地址标识能够经由堆栈段寻址的存储器的上界;以及堆栈边界校验逻辑,其被配置为通过将经由堆栈段访问的存储器地址与第一存储器地址和第二存储器地址中的至少一个进行比较来检测未经授权的堆栈转移。

【技术实现步骤摘要】
【国外来华专利技术】
本公开一般涉及计算机系统,具体涉及用于防止未经授权的堆栈转移(stack pivoting)的系统和方法。 上下文技术 堆栈转移经常用于面向返回的编程(ROP)攻击。ROP是一种通过利用返回指令来 操纵(hijacking)当前进程的执行流的方法,在许多处理器体系结构中,返回指令从堆栈 顶部取回调用例程内下一可执行指令的地址。因此,通过修改堆栈上的返回地址,攻击者能 够将当前进程的执行流转向到任意的存储器位置。 在操纵了执行流后,攻击者可以例如对自变量进行初始化并且执行库函数调用。 该技术称为"返回入库"(return-into-library)。在另一示例中,攻击者能够在代码段 内定位待执行的多个指令序列。该方法称为"借位代码块技术"(borrowed code chunks technique)〇【附图说明】 本公开是通过示例方式而不是限制的方式来示出说明的,并且当结合附图考虑 时,参考下面的详细说明,将更全面地理解本公开,在附图中: 图1描绘了根据本公开的一个或多个方面的示例计算机系统的高级部件图; 图2描绘了根据本公开的一个或多个方面的处理器的框图; 图3a_3b示意性地示出了根据本公开的一个或多个方面的处理器微体系结构的 要素; 图4示意性地示出了根据本公开的一个或多个方面的图1的示例计算机系统100 的示例处理器和其他部件的多个方面; 图5示意性地示出了根据本公开的一个或多个方面的图1的示例计算机系统100 的处理器102所采用的存储器分段机制; 图6示意性地示出了根据本公开的一个或多个方面的处理器的存储器保护机制 的特权级别; 图7示意性地示出了根据本公开的一个或多个方面的图1的计算机系统100的堆 栈段可访问的存储器布局; 图8a_8b示意性地示出了根据本公开的一个或多个方面的由堆栈边界校验逻辑 进行评估的条件;以及 图9示出了根据本公开的一个或多个方面的用于检测未经授权的堆栈转移的示 例方法的流程图。【具体实施方式】 本文描述了用于检测未经授权的堆栈转移的计算机系统及相关方法。未经授权的 堆栈修改或转移可以由潜在的攻击者在试图进行面向返回的编程(ROP)攻击中使用。ROP 攻击可能涉及到对存储在堆栈上的程序返回地址进行未经授权的修改,从而将当前进程的 执行流转向到任意的存储器位置。攻击者可以利用各种方法来进行未经授权的堆栈修改。 例如,缓冲区溢出方法涉及到:假设输入缓冲区定位在堆栈上,供应比例程所期望接收到的 更多的输入数据。 为了防止未经授权的堆栈修改,一对堆栈边界寄存器可以被提供在处理器内,用 于存储堆栈边界。此处的"堆栈边界"应指堆栈段中代表能够经由堆栈段寻址的存储器的 可容许范围的下限和上限的预定义存储器地址。 处理器可以通过将经由堆栈段访问的存储器地址与存储在堆栈边界寄存器中的 值进行比较来实现堆栈边界校验逻辑。如果存储器地址在堆栈边界寄存器的值所确立的可 容许范围之外,则处理器可以在堆栈状态寄存器中存储经由堆栈段访问的地址并且生成堆 栈出错异常。 在一些实现中,处理器可以具有用于32位用户模式、64位用户模式和管理模式 (supervisor mode)中的每一种的不同的堆栈边界寄存器。堆栈边界寄存器的值能够利用 处理器状态保存/恢复命令(例如,XSAVE/XRST0R)进行上下文切换。 在下文中通过示例方式而不是限制的方式来详细描述上述提及的方法和系统的 各个方面。 在下面的说明中,阐述了若干具体的细节,例如以下内容的示例:处理器的具体类 型和系统配置、具体硬件结构、具体体系结构和微体系结构细节、具体的寄存器配置、具体 指令类型、具体系统部件、具体测量/高度、具体处理器流水线级和操作,从而提供对本公 开内容的全面理解。然而,对本领域的技术人员而言显然的是,无需采用这些具体细节来实 践本文所公开的方法。在其他情况下,公知的部件或方法,诸如具体的、可替代的处理器体 系结构、用于所述算法的具体的逻辑电路/代码、具体的固件代码、具体的互连操作、具体 的逻辑配置、具体的制造技术和材料、具体的编译器实现、算法的具体代码表达、具体的掉 电和选通技术/逻辑以及计算机系统的其他具体的操作细节,未进行详细说明,以免不必 要地导致本公开不清楚。 虽然参考处理器描述了下面的实施例,但是其他的实施例能适用于其他类型的集 成电路和逻辑器件。与本文所描述的实施例的类似的技术和教导能够应用于能够受益于更 高流水线吞吐量以及改进的性能的其他类型的电路或半导体器件。本文所描述的实施例的 教导能够应用于执行数据操纵的任何处理器或机器。然而,本公开不限于执行512位、256 位、128位、64位、32位或16位数据操作的处理器或机器,并且能够应用于执行数据操纵或 管理的任何处理器和机器。另外,下面的说明提供了示例,附图显示了各个示例,以用于示 例说明的目的。然而,这些示例不应在限制的意义上进行解释,因为它们仅旨在提供本文所 描述的实施例的示例,而不是提供本文所述的实施例的所有可能的实现的穷尽列表。 虽然下面的示例描述了在执行单元和逻辑电路上下文中的指令处置和分布,但是 本文所描述的系统和方法的其他实施例能够通过存储在机器可读的、有形介质上的数据或 指令来实现,当通过机器执行时,这些数据或指令使机器实施与本文所描述的至少一个实 施例一致的功能。在一个实施例中,与本文所描述的实施例相关联的功能是以机器可执行 指令来具体实施的。指令能够用来使编程有指令的通用或专用处理器实施本文所描述的方 法。本文所描述的实施例可作为计算机程序产品或软件来提供,该计算机程序产品或软件 可以包括机器或计算机可读介质,其中存储有指令,指令可以用来对计算机(或其他电子 设备)进行编程以实施根据本文所述的实施例的一个或多个操作。可替代地,本文所描述 的实施例的操作可能通过包含用于实施操作的固定功能逻辑的具体的硬件部件来实施,或 者通过编程的计算机部件和固定功能硬件部件的任意组合来实施。 用于对逻辑编程以实施本文所描述的方法的指令可以存储在系统中的存储器内, 存储器诸如DRAM、高速缓存、闪存或其他存储设备。此外,指令能够经由网络或者通过其 他的计算机可读介质来分布。如此,机器可读介质可以包括任何用于存储或传输能够由机 器(例如,计算机)读取的形式的信息的机制,但不限于,软盘、光盘、压缩盘只读存储器 (CD-ROM)、和磁光盘、只读存储器(R0M)、随机存取存储器(RAM)、可擦除可编程只读存储器 (EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或在通过互联网经由电 的、光的、声学的、或其他形式的传播信号(例如,载波、红外信号、数字信号等)传输信息中 所使用的有形的、机器可读存储设备。因此,计算机可读介质包括适合于存储或传输机器 (例如,计算机)能够读取的形式的电子指令或信息的任何类型的有形机器可读介质。 本文的"处理器"应指能够执行对算术、逻辑或I/O操作进行编码的指令的设备。 在一个示例中,处理器可以遵从Von诺伊曼体系结构模型,并且可以包括算术逻辑单元 (ALU)、控制单元和多个寄存器。在另一方面中,处理器可以包括一个或多个处理器核心,并 且因此可以是典型地能够处理单个指令流水线的本文档来自技高网...

【技术保护点】
一种处理系统,包括:堆栈下界寄存器,其被配置为存储第一存储器地址,所述第一存储器地址标识能够经由堆栈段寻址的存储器的下界;堆栈上界寄存器,其被配置为存储第二存储器地址,所述第二存储器地址标识能够经由所述堆栈段寻址的所述存储器的上界;以及堆栈边界校验逻辑,其被配置为通过将经由所述堆栈段访问的存储器地址与所述第一存储器地址和所述第二存储器地址中的至少一个进行比较来检测未经授权的堆栈转移。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:B·V·帕特尔李晓宁H·P·安维恩A·K·马利克G·奈格J·B·克罗斯兰T·奥普费尔曼A·A·哈雷J·W·布兰特J·S·科克B·L·瓦伊达
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1