[发明专利]用于过程返回地址验证的系统和方法有效
申请号: | 201480029684.6 | 申请日: | 2014-05-30 |
公开(公告)号: | CN105264513B | 公开(公告)日: | 2018-01-23 |
发明(设计)人: | G·歌宗;J·W·施塔克;G·迪斯金 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F13/40 | 分类号: | G06F13/40 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 黄嵩泉 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 过程 返回 地址 验证 系统 方法 | ||
技术领域
本公开一般涉及计算机系统,具体而言,涉及用于过程返回地址验证的系统和方法。
背景技术
各种返回地址破坏技术可以由恶意软件使用以实施面向返回的编程(return-oriented programming,ROP)攻击。ROP是通过利用返回指令来劫持当前进程的执行流的方法,在许多处理器架构中,所述返回指令从栈的顶部检索要被执行的下一条指令(通常是在调用例程内在对应的调用指令之后的指令)的地址。如此,通过修改栈上的返回地址,攻击者可以将当前进程的执行流转移到任意的存储器位置。在劫持了执行流之后,攻击者可以例如初始化自变量并执行库函数调用。此技术被称为“返回进库”(“return-into-library”)。在另一个示例中,攻击者可以在代码段内定位多个要被执行的指令序列。此方法被称为“借用的代码块技术”。
攻击者可以利用各种方法来进行初始的栈破坏,这也被称为“栈枢转”(“stack pivoting”)。例如,假设输入缓冲器位于栈上,则缓冲器溢出方法涉及提供相比例程正在预期接收的更多的输入数据。
附图说明
本公开是通过示例而不是限制方式来说明的,当结合附图一起考虑时,参照下列具体实施方式可以更充分地理解本公开,在附图中:
图1描绘了根据本公开的一个或多个方面的示例计算机系统的高层级组件图;
图2描绘了根据本发明的一个或多个方面的处理器的框图;
图3a-3b示意性地示出了根据本公开的一个或多个方面的处理器微架构的要素;
图4示意性地示出了根据本公开的一个或多个方面的图1的示例计算机系统100的示例处理器及其他组件的若干方面;
图5示意性地示出了根据本公开的一个或多个方面的计算机系统栈的存储器布局的一个示例;
图6示意性地示出了根据本公开的一个或多个方面的返回地址缓冲器的存储器布局的一个示例;
图7描绘了根据本公开的一个或多个方面的用于检测未经授权的栈枢转的示例方法的流程图;
图8描绘了根据本公开的一个或多个方面的示例计算机系统的框图;
图9描绘了根据本公开的一个或多个方面的示例芯片上系统(SoC)的框图;
图10描绘了根据本公开的一个或多个方面的示例计算机系统的框图;以及
图11描绘了根据本公开的一个或多个方面的示例芯片上系统(SoC)的框图;以及
具体实施方式
此处描述了用于过程返回地址验证的计算机系统以及相关的方法。未经授权的栈修改或枢转可以被潜在的攻击者用来尝试进行面向返回的编程(ROP)攻击。后者可能涉及对存储在栈上的过程返回地址的未授权的修改以将当前进程的执行流转移到任意存储器位置。攻击者会利用各种方法来进行未经授权的栈修改。例如,假设输入缓冲器位于栈上,则缓冲器溢出方法涉及提供相比例程正在预期接收的更多的输入数据。
为了防止未经授权的栈修改,计算机系统可以维持返回地址缓冲器,该返回地址缓冲器设计成用于与计算机系统栈一起冗余地存储过程返回地址。响应于接收到调用指令,计算机系统的处理器可以将返回地址置于栈以及返回地址缓冲器两者中。响应于接收到返回指令,处理器可以从栈和返回地址缓冲器中检索返回地址并将它们进行比较。如果这两个地址匹配,则处理器可以继续执行该返回指令;否则,处理器可以生成异常,从而阻止潜在的攻击者劫持当前进程的执行流。下面以示例方式而非限制方式详细描述以上引用的方法和系统的各方面。
在以下描述中,阐明了众多具体细节以提供对本公开的透彻理解,具体细节诸如,特定类型的处理器和系统配置、特定的硬件结构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的测量/高度、特定的处理器流水线级与操作的示例。然而,对本领域普通技术人员而言显而易见的是,并不需要采用这些特定细节来实施本文所公开的诸方法。在其他实例中,未详细描述公知的组件或方法,以避免不必要地使本公开模糊,公知的组件或方法诸如,特定或替代的处理器架构、用于所描述算法的特定逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现、代码中算法的特定表达、特定的掉电和功率门控技术/逻辑以及计算机系统的其他特定的操作细节。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480029684.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:将用于本机应用的数据编索引
- 下一篇:融合网络中的自适应中断联合