[发明专利]用于保护影子栈的处理器、方法、系统和指令在审
申请号: | 202110256487.X | 申请日: | 2016-05-26 |
公开(公告)号: | CN112988624A | 公开(公告)日: | 2021-06-18 |
发明(设计)人: | V·尚伯格;J·W·布兰德特;R·L·萨希塔;B·E·亨特利;B·V·帕特尔 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F12/1081 | 分类号: | G06F12/1081;G06F3/06;G06F9/30;G06F9/38;G06F12/1009;G06F12/1027;G06F12/1036;G06F12/1045;G06F12/109;G06F12/14;G06F21/52;G06F21/57 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 陈依心;黄嵩泉 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 保护 影子 处理器 方法 系统 指令 | ||
本申请公开了用于保护影子栈的处理器、方法、系统和指令。本发明的一方面的处理器包括用于对指令进行解码的解码单元。所述处理器还包括与所述解码单元耦合的执行单元。所述执行单元响应于所述指令而用于确定:由于所述指令而导致的对影子栈的影子栈指针的试图改变将使所述影子栈指针超出允许范围。所述执行单元还用于响应于确定对所述影子栈指针的所述试图改变将使所述影子栈指针超出所述允许范围而引发异常。公开了其他处理器、方法、系统和指令。
本发明专利申请是国际申请号为PCT/US2016/034364,国际申请日为2016 年5月26日,进入中国国家阶段的申请号为201680029980.5,名称为“用于 保护影子栈的处理器、方法、系统和指令”的发明专利申请的分案申请。
背景技术
技术领域
本文描述的实施例总体上涉及处理器。具体地,本文描述的实施例总体上 涉及具有增强安全性的处理器。
返回导向编程(ROP)和跳转导向编程(JOP)是攻击者可用于获得对计 算机系统或其他电子设备的控制并执行恶意动作的计算机安全利用技术。在这 些技术中,攻击者获得对调用栈的控制以便劫持程序控制流。
对调用栈的控制经常通过缓冲区溢出利用或攻击来实现。在缓冲区溢出 中,在将数据存储到存储器中之前不充分执行边界检查的函数可以接受比可以 适当存储的数据更多的数据。例如,攻击者可以向web浏览器发送比web浏 览器可以适当存储的数据更多的数据。如果数据存储在栈上,则一些数据可能 超出向所述函数的变量分配的存储空间并且重写返回地址。返回地址可以表示 通过调用程序指令存储在所述栈上的地址,所述调用程序指令旨在用于在被调 用程序已经完成之后将控制流重定向回到调用函数。然而,在缓冲区溢出攻击 或利用中,可以使用不同返回地址来重写返回地址。这可能允许攻击者将控制流转移到不同返回地址、在不同返回地址处开始执行代码并且执行可能不期望 和/或恶意的动作。
例如,在ROP攻击中,攻击者可以将被称为“小程序(gadget)”的事物 的序列链接在一起。每个小程序可以表示具有一个或几个指令的集合,随后是 从程序返回指令。攻击者可以对代码(比如,应用、系统级代码、驱动程序、 库等)进行分析以便定位或识别期望小程序。例如,攻击者可以扫描从程序返 回指令的操作码。在这种被识别的从程序返回指令之前的先前指令可能表示不 同类型的具有不同功能的小程序。通过示例的方式,攻击者可以将返回指令之 前的弹出栈指令(pop stack instruction)识别为第一小程序、将返回指令之前 的寄存器到寄存器移动指令识别为第二小程序以此类推。在一些情况下,攻击 者可以能够识别足够多的小程序以便能够串在一起并且执行各种不同的恶意 动作。
典型地,初始地,缓冲区溢出攻击可以用于劫持栈上的返回地址并且由此 劫持控制流。第一小程序的第一指令的地址可以存储在栈上以便将控制流转移 到第一小程序。控制流可以转移至由攻击者选择的第一小程序的第一指令,而 不是返回至与调用程序指令相关联的调用程序。然后,第一小程序的返回指令 可以将控制流转移至第二小程序。以此方式,一系列小程序的返回地址可以被 顺序地存储在栈上并且根据链接小程序的返回指令跳转。通过按特定顺序将小 程序链接在一起,攻击者可以能够从现有代码中创建新的程序功能。攻击者可 能将这种一点用于不期望或有害目的,如例如,窃取机密信息、干扰或攻击其 他应用、发送邮件、发送文本消息、发布推文或利用内核漏洞。
附图说明
可以通过参考以下用于展示实施例的描述和附图来最佳地理解本发明。在 附图中:
图1是可以实施本发明的实施例的计算机系统的实施例的框图。
图2是一组影子栈寄存器的实施例和一组影子栈描述符表寄存器的实施 例的框图。
图3是影子栈描述符表的实施例的框图。
图4是适合影子栈描述符表(SSDT)条目的一个特定示例实施例的框图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110256487.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种水利工程用拔桩机
- 下一篇:一种双目人脸识别技术的智能枪弹柜