【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
软件实施错误,例如遗漏或不正确输入验证,可导致越界缓冲区存取和内存损坏。这些实施错误可导致软件在正常条件下变得不稳定或最终失效。然而,当输入由意图攻击计算机系统的恶意方操控时,攻击者可利用这些内存损坏和溢出错误来改变软件代码的预期行为,并执行由攻击者确定的代码或功能。攻击者通常通过覆写在存储器中的数据结构(例如返回解决、函数指针或虚表指针)取得对执行的控制。在大型和传统的代码库中发现和修理全部可利用的内存损坏错误并不总是可能的。因此,许多计算机系统含有被称作“攻击缓解机制”的一般防御特征,其有效地对抗攻击者用来利用这些错误取得对目标计算机系统的控制和/或破坏目标计算机系统的熟知技术。通常包含于计算机系统中的攻击缓解机制的一些实例包含:数据执行防止(DEP)、堆栈保护(SP)和地址空间布局随机化(ASLR)。在DEP技术中,全部代码区被标记为只读,并且全部可写入区域不可执行。通常,代码区的只读特性和可写入区的不可执行特性通过处理器的内存管理单元(MMU)强制执行。此技术可防止攻击者将其自己的代码放置到数据区中并引导执行流到那一代码。在SP方法中,编译程序实施用于检测堆栈上的缓冲区溢出。由于就在局部数组后的堆栈上经常存在返回地址或所保存的链接寄存器,所以基于堆栈的缓冲区溢出会很容易被利用。攻击者可使局部数组溢出并覆写返回地址/链接寄存器,且重新引导软件的执行流。许多常规堆栈保护实施方案插入保护值到函数序言中的堆栈上,并且在从那个函数返回之前,检查那个值的修改。如果已发生缓冲区溢出,那么保护值连同返回地址将已经被覆写,因为保护值位于缓冲区和返回地址之间的堆 ...
【技术保护点】
一种用于保护与处理器相关的堆栈的内容的方法,所述方法包括:从正通过所述处理器执行的软件程序接收存储指令,所述存储指令包含与子例程相关的控制信息;响应于从所述软件程序接收所述存储指令,更改所述控制信息以产生受保护的控制信息;在所述堆栈上存储所述受保护的控制信息;从所述软件程序接收加载指令;以及响应于从所述软件程序接收所述加载指令,从所述堆栈加载所述受保护的控制信息,更改所述受保护的控制信息以恢复所述控制信息,以及将所述控制信息返回到所述软件程序。
【技术特征摘要】
【国外来华专利技术】2014.04.18 US 14/256,6811.一种用于保护与处理器相关的堆栈的内容的方法,所述方法包括:从正通过所述处理器执行的软件程序接收存储指令,所述存储指令包含与子例程相关的控制信息;响应于从所述软件程序接收所述存储指令,更改所述控制信息以产生受保护的控制信息;在所述堆栈上存储所述受保护的控制信息;从所述软件程序接收加载指令;以及响应于从所述软件程序接收所述加载指令,从所述堆栈加载所述受保护的控制信息,更改所述受保护的控制信息以恢复所述控制信息,以及将所述控制信息返回到所述软件程序。2.根据权利要求1所述的方法,其中更改所述控制信息以产生所述受保护的控制信息包括:加密所述控制信息以产生所述受保护的控制信息。3.根据权利要求2所述的方法,其中所述加密所述控制信息以产生所述受保护的控制信息包括使用基于分块密码的消息认证码算法加密所述控制信息。4.根据权利要求2所述的方法,其中所述加密所述控制信息以产生所述受保护的控制信息包括使用与当前堆栈帧相关的密钥加密所述控制信息,所述当前堆栈帧与所述子例程相关。5.根据权利要求2所述的方法,其中更改所述受保护的控制信息以恢复所述控制信息包括:解密所述受保护的控制信息以恢复所述控制信息。6.根据权利要求1所述的方法,其中更改所述控制信息以产生所述受保护的控制信息包括:添加认证标签到所述控制信息以产生所述受保护的控制信息。7.根据权利要求6所述的方法,其中所述认证标签与当前堆栈帧相关,所述当前堆栈帧与所述子例程相关。8.根据权利要求6所述的方法,其中更改所述受保护的控制信息以恢复所述控制信息包括从所述受保护的控制信息导出帧指针和返回地址。9.根据权利要求8所述的方法,其中更改所述受保护的控制信息以恢复所述控制信息包括:应用消息认证码到所述帧指针和所述返回地址以产生标签值;以及比较所述标签值与包含于所述受保护的控制信息中的所述认证标签来验证所述控制信息在所述堆栈上时未被更改。10.一种处理器,其用于保护与所述处理器相关的堆栈的内容,所述处理器包括:用于从正通过所述处理器执行的软件程序接收存储指令的装置,所述存储指令包含与子例程相关的控制信息;用于响应于从所述软件程序接收所述存储指令,更改所述控制信息以产生受保护的控制信息的装置;用于在所述堆栈上存储所述受保护的控制信息的装置;用于从所述软件程序接收加载指令的装置;以及响应于从所述软件程序接收所述加载指令,用于从所述堆栈加载所述受保护的控制信息的装置,用于更改所述受保护的控制信息以恢复所述控制信息的装置,以及用于将所述控制信息返回到所述软件程序的装置。11.根据权利要求10所述的处理器,其中用于更改所述控制信息以产生所述受保护的控制信息的所述装置包括:用于加密所述控制信息以产生所述受保护的控制信息的装置。12.根据权利要求11所述的处理器,其中用于加密所述控制信息以产生所述受保护的控制信息的所述装置包括用于使用基于分块密码的消息认证码算法加密所述控制信息的装置。13.根据权利要求11所述的处理器,其中用于加密所述控制信息以产生所述受保护的控制信息的所述装置包括用于使用与当前堆栈帧相关的密钥加密所述控制信息的装置,所述当前堆...
【专利技术属性】
技术研发人员:C·E·阿卡尔,埃里希·詹姆士·普罗恩德克,罗伯特·J·图尔纳,B·B·布伦利,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。